diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json new file mode 100644 index 0000000000000000000000000000000000000000..ce0014b42e551eef043337c64b283ba6a0cd2971 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json @@ -0,0 +1,1686 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adexchange.buyer": { + "description": "Manage your Ad Exchange buyer account configuration" + } + } + } + }, + "basePath": "/adexchangebuyer/v1.3/", + "baseUrl": "https://www.googleapis.com/adexchangebuyer/v1.3/", + "batchPath": "batch/adexchangebuyer/v1.3", + "canonicalName": "Ad Exchange Buyer", + "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", + "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/NOgo5Rz2N67ZT2NXIcz-dCGvAbI\"", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "id": "adexchangebuyer:v1.3", + "kind": "discovery#restDescription", + "name": "adexchangebuyer", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "alt": { + "default": "json", + "description": "Data format for the response.", + "enum": [ + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json" + ], + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "key": { + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.", + "location": "query", + "type": "string" + }, + "userIp": { + "description": "Deprecated. Please use quotaUser instead.", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "accounts": { + "methods": { + "get": { + "description": "Gets one account by ID.", + "httpMethod": "GET", + "id": "adexchangebuyer.accounts.get", + "parameterOrder": [ + "id" + ], + "parameters": { + "id": { + "description": "The account id", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + } + }, + "path": "accounts/{id}", + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "Retrieves the authenticated user's list of accounts.", + "httpMethod": "GET", + "id": "adexchangebuyer.accounts.list", + "path": "accounts", + "response": { + "$ref": "AccountsList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "patch": { + "description": "Updates an existing account. This method supports patch semantics.", + "httpMethod": "PATCH", + "id": "adexchangebuyer.accounts.patch", + "parameterOrder": [ + "id" + ], + "parameters": { + "id": { + "description": "The account id", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + } + }, + "path": "accounts/{id}", + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "description": "Updates an existing account.", + "httpMethod": "PUT", + "id": "adexchangebuyer.accounts.update", + "parameterOrder": [ + "id" + ], + "parameters": { + "id": { + "description": "The account id", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + } + }, + "path": "accounts/{id}", + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "billingInfo": { + "methods": { + "get": { + "description": "Returns the billing information for one account specified by account ID.", + "httpMethod": "GET", + "id": "adexchangebuyer.billingInfo.get", + "parameterOrder": [ + "accountId" + ], + "parameters": { + "accountId": { + "description": "The account id.", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + } + }, + "path": "billinginfo/{accountId}", + "response": { + "$ref": "BillingInfo" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "Retrieves a list of billing information for all accounts of the authenticated user.", + "httpMethod": "GET", + "id": "adexchangebuyer.billingInfo.list", + "path": "billinginfo", + "response": { + "$ref": "BillingInfoList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "budget": { + "methods": { + "get": { + "description": "Returns the budget information for the adgroup specified by the accountId and billingId.", + "httpMethod": "GET", + "id": "adexchangebuyer.budget.get", + "parameterOrder": [ + "accountId", + "billingId" + ], + "parameters": { + "accountId": { + "description": "The account id to get the budget information for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "billingId": { + "description": "The billing id to get the budget information for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "billinginfo/{accountId}/{billingId}", + "response": { + "$ref": "Budget" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "patch": { + "description": "Updates the budget amount for the budget of the adgroup specified by the accountId and billingId, with the budget amount in the request. This method supports patch semantics.", + "httpMethod": "PATCH", + "id": "adexchangebuyer.budget.patch", + "parameterOrder": [ + "accountId", + "billingId" + ], + "parameters": { + "accountId": { + "description": "The account id associated with the budget being updated.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "billingId": { + "description": "The billing id associated with the budget being updated.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "billinginfo/{accountId}/{billingId}", + "request": { + "$ref": "Budget" + }, + "response": { + "$ref": "Budget" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "description": "Updates the budget amount for the budget of the adgroup specified by the accountId and billingId, with the budget amount in the request.", + "httpMethod": "PUT", + "id": "adexchangebuyer.budget.update", + "parameterOrder": [ + "accountId", + "billingId" + ], + "parameters": { + "accountId": { + "description": "The account id associated with the budget being updated.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "billingId": { + "description": "The billing id associated with the budget being updated.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "billinginfo/{accountId}/{billingId}", + "request": { + "$ref": "Budget" + }, + "response": { + "$ref": "Budget" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "creatives": { + "methods": { + "get": { + "description": "Gets the status for a single creative. A creative will be available 30-40 minutes after submission.", + "httpMethod": "GET", + "id": "adexchangebuyer.creatives.get", + "parameterOrder": [ + "accountId", + "buyerCreativeId" + ], + "parameters": { + "accountId": { + "description": "The id for the account that will serve this creative.", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + }, + "buyerCreativeId": { + "description": "The buyer-specific id for this creative.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "creatives/{accountId}/{buyerCreativeId}", + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "insert": { + "description": "Submit a new creative.", + "httpMethod": "POST", + "id": "adexchangebuyer.creatives.insert", + "path": "creatives", + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "Retrieves a list of the authenticated user's active creatives. A creative will be available 30-40 minutes after submission.", + "httpMethod": "GET", + "id": "adexchangebuyer.creatives.list", + "parameters": { + "accountId": { + "description": "When specified, only creatives for the given account ids are returned.", + "format": "int32", + "location": "query", + "repeated": true, + "type": "integer" + }, + "buyerCreativeId": { + "description": "When specified, only creatives for the given buyer creative ids are returned.", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "description": "Maximum number of entries returned on one result page. If not set, the default is 100. Optional.", + "format": "uint32", + "location": "query", + "maximum": "1000", + "minimum": "1", + "type": "integer" + }, + "pageToken": { + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response. Optional.", + "location": "query", + "type": "string" + }, + "statusFilter": { + "description": "When specified, only creatives having the given status are returned.", + "enum": [ + "approved", + "disapproved", + "not_checked" + ], + "enumDescriptions": [ + "Creatives which have been approved.", + "Creatives which have been disapproved.", + "Creatives whose status is not yet checked." + ], + "location": "query", + "type": "string" + } + }, + "path": "creatives", + "response": { + "$ref": "CreativesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "directDeals": { + "methods": { + "get": { + "description": "Gets one direct deal by ID.", + "httpMethod": "GET", + "id": "adexchangebuyer.directDeals.get", + "parameterOrder": [ + "id" + ], + "parameters": { + "id": { + "description": "The direct deal id", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "directdeals/{id}", + "response": { + "$ref": "DirectDeal" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "Retrieves the authenticated user's list of direct deals.", + "httpMethod": "GET", + "id": "adexchangebuyer.directDeals.list", + "path": "directdeals", + "response": { + "$ref": "DirectDealsList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "performanceReport": { + "methods": { + "list": { + "description": "Retrieves the authenticated user's list of performance metrics.", + "httpMethod": "GET", + "id": "adexchangebuyer.performanceReport.list", + "parameterOrder": [ + "accountId", + "endDateTime", + "startDateTime" + ], + "parameters": { + "accountId": { + "description": "The account id to get the reports.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "endDateTime": { + "description": "The end time of the report in ISO 8601 timestamp format using UTC.", + "location": "query", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Maximum number of entries returned on one result page. If not set, the default is 100. Optional.", + "format": "uint32", + "location": "query", + "maximum": "1000", + "minimum": "1", + "type": "integer" + }, + "pageToken": { + "description": "A continuation token, used to page through performance reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response. Optional.", + "location": "query", + "type": "string" + }, + "startDateTime": { + "description": "The start time of the report in ISO 8601 timestamp format using UTC.", + "location": "query", + "required": true, + "type": "string" + } + }, + "path": "performancereport", + "response": { + "$ref": "PerformanceReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "pretargetingConfig": { + "methods": { + "delete": { + "description": "Deletes an existing pretargeting config.", + "httpMethod": "DELETE", + "id": "adexchangebuyer.pretargetingConfig.delete", + "parameterOrder": [ + "accountId", + "configId" + ], + "parameters": { + "accountId": { + "description": "The account id to delete the pretargeting config for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "configId": { + "description": "The specific id of the configuration to delete.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "pretargetingconfigs/{accountId}/{configId}", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "get": { + "description": "Gets a specific pretargeting configuration", + "httpMethod": "GET", + "id": "adexchangebuyer.pretargetingConfig.get", + "parameterOrder": [ + "accountId", + "configId" + ], + "parameters": { + "accountId": { + "description": "The account id to get the pretargeting config for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "configId": { + "description": "The specific id of the configuration to retrieve.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "pretargetingconfigs/{accountId}/{configId}", + "response": { + "$ref": "PretargetingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "insert": { + "description": "Inserts a new pretargeting configuration.", + "httpMethod": "POST", + "id": "adexchangebuyer.pretargetingConfig.insert", + "parameterOrder": [ + "accountId" + ], + "parameters": { + "accountId": { + "description": "The account id to insert the pretargeting config for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "pretargetingconfigs/{accountId}", + "request": { + "$ref": "PretargetingConfig" + }, + "response": { + "$ref": "PretargetingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "Retrieves a list of the authenticated user's pretargeting configurations.", + "httpMethod": "GET", + "id": "adexchangebuyer.pretargetingConfig.list", + "parameterOrder": [ + "accountId" + ], + "parameters": { + "accountId": { + "description": "The account id to get the pretargeting configs for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "pretargetingconfigs/{accountId}", + "response": { + "$ref": "PretargetingConfigList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "patch": { + "description": "Updates an existing pretargeting config. This method supports patch semantics.", + "httpMethod": "PATCH", + "id": "adexchangebuyer.pretargetingConfig.patch", + "parameterOrder": [ + "accountId", + "configId" + ], + "parameters": { + "accountId": { + "description": "The account id to update the pretargeting config for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "configId": { + "description": "The specific id of the configuration to update.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "pretargetingconfigs/{accountId}/{configId}", + "request": { + "$ref": "PretargetingConfig" + }, + "response": { + "$ref": "PretargetingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "description": "Updates an existing pretargeting config.", + "httpMethod": "PUT", + "id": "adexchangebuyer.pretargetingConfig.update", + "parameterOrder": [ + "accountId", + "configId" + ], + "parameters": { + "accountId": { + "description": "The account id to update the pretargeting config for.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "configId": { + "description": "The specific id of the configuration to update.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "pretargetingconfigs/{accountId}/{configId}", + "request": { + "$ref": "PretargetingConfig" + }, + "response": { + "$ref": "PretargetingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + } + }, + "revision": "20210815", + "rootUrl": "https://www.googleapis.com/", + "schemas": { + "Account": { + "description": "Configuration data for an Ad Exchange buyer account.", + "id": "Account", + "properties": { + "bidderLocation": { + "description": "Your bidder locations that have distinct URLs.", + "items": { + "properties": { + "maximumQps": { + "description": "The maximum queries per second the Ad Exchange will send.", + "format": "int32", + "type": "integer" + }, + "region": { + "description": "The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values: \n- ASIA \n- EUROPE \n- US_EAST \n- US_WEST", + "type": "string" + }, + "url": { + "description": "The URL to which the Ad Exchange will send bid requests.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cookieMatchingNid": { + "description": "The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.", + "type": "string" + }, + "cookieMatchingUrl": { + "description": "The base URL used in cookie match requests.", + "type": "string" + }, + "id": { + "description": "Account id.", + "format": "int32", + "type": "integer" + }, + "kind": { + "default": "adexchangebuyer#account", + "description": "Resource type.", + "type": "string" + }, + "maximumActiveCreatives": { + "description": "The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.", + "format": "int32", + "type": "integer" + }, + "maximumTotalQps": { + "description": "The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.", + "format": "int32", + "type": "integer" + }, + "numberActiveCreatives": { + "description": "The number of creatives that this account inserted or bid with in the last 30 days.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AccountsList": { + "description": "An account feed lists Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single buyer account.", + "id": "AccountsList", + "properties": { + "items": { + "description": "A list of accounts.", + "items": { + "$ref": "Account" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#accountsList", + "description": "Resource type.", + "type": "string" + } + }, + "type": "object" + }, + "BillingInfo": { + "description": "The configuration data for an Ad Exchange billing info.", + "id": "BillingInfo", + "properties": { + "accountId": { + "description": "Account id.", + "format": "int32", + "type": "integer" + }, + "accountName": { + "description": "Account name.", + "type": "string" + }, + "billingId": { + "description": "A list of adgroup IDs associated with this particular account. These IDs may show up as part of a realtime bidding BidRequest, which indicates a bid request for this account.", + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#billingInfo", + "description": "Resource type.", + "type": "string" + } + }, + "type": "object" + }, + "BillingInfoList": { + "description": "A billing info feed lists Billing Info the Ad Exchange buyer account has access to. Each entry in the feed corresponds to a single billing info.", + "id": "BillingInfoList", + "properties": { + "items": { + "description": "A list of billing info relevant for your account.", + "items": { + "$ref": "BillingInfo" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#billingInfoList", + "description": "Resource type.", + "type": "string" + } + }, + "type": "object" + }, + "Budget": { + "description": "The configuration data for Ad Exchange RTB - Budget API.", + "id": "Budget", + "properties": { + "accountId": { + "description": "The id of the account. This is required for get and update requests.", + "format": "int64", + "type": "string" + }, + "billingId": { + "description": "The billing id to determine which adgroup to provide budget information for. This is required for get and update requests.", + "format": "int64", + "type": "string" + }, + "budgetAmount": { + "description": "The daily budget amount in unit amount of the account currency to apply for the billingId provided. This is required for update requests.", + "format": "int64", + "type": "string" + }, + "currencyCode": { + "description": "The currency code for the buyer. This cannot be altered here.", + "type": "string" + }, + "id": { + "description": "The unique id that describes this item.", + "type": "string" + }, + "kind": { + "default": "adexchangebuyer#budget", + "description": "The kind of the resource, i.e. \"adexchangebuyer#budget\".", + "type": "string" + } + }, + "type": "object" + }, + "Creative": { + "description": "A creative and its classification data.", + "id": "Creative", + "properties": { + "HTMLSnippet": { + "description": "The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.", + "type": "string" + }, + "accountId": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "Account id.", + "format": "int32", + "type": "integer" + }, + "adTechnologyProviders": { + "properties": { + "detectedProviderIds": { + "description": "The detected ad technology provider IDs for this creative. See https://storage.googleapis.com/adx-rtb-dictionaries/providers.csv for mapping of provider ID to provided name, a privacy policy URL, and a list of domains which can be attributed to the provider. If this creative contains provider IDs that are outside of those listed in the `BidRequest.adslot.consented_providers_settings.consented_providers` field on the Authorized Buyers Real-Time Bidding protocol or the `BidRequest.user.ext.consented_providers_settings.consented_providers` field on the OpenRTB protocol, a bid submitted for a European Economic Area (EEA) user with this creative is not compliant with the GDPR policies as mentioned in the \"Third-party Ad Technology Vendors\" section of Authorized Buyers Program Guidelines.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "hasUnidentifiedProvider": { + "description": "Whether the creative contains an unidentified ad technology provider. If true, a bid submitted for a European Economic Area (EEA) user with this creative is not compliant with the GDPR policies as mentioned in the \"Third-party Ad Technology Vendors\" section of Authorized Buyers Program Guidelines.", + "type": "boolean" + } + }, + "type": "object" + }, + "advertiserId": { + "description": "Detected advertiser id, if any. Read-only. This field should not be set in requests.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "advertiserName": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "The name of the company being advertised in the creative.", + "type": "string" + }, + "agencyId": { + "description": "The agency id for this creative.", + "format": "int64", + "type": "string" + }, + "apiUploadTimestamp": { + "description": "The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).", + "format": "date-time", + "type": "string" + }, + "attribute": { + "description": "All attributes for the ads that may be shown from this snippet.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "buyerCreativeId": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "A buyer-specific id identifying the creative in this ad.", + "type": "string" + }, + "clickThroughUrl": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "The set of destination urls for the snippet.", + "items": { + "type": "string" + }, + "type": "array" + }, + "corrections": { + "description": "Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.", + "items": { + "properties": { + "details": { + "description": "Additional details about the correction.", + "items": { + "type": "string" + }, + "type": "array" + }, + "reason": { + "description": "The type of correction that was applied to the creative.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "disapprovalReasons": { + "description": "The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.", + "items": { + "properties": { + "details": { + "description": "Additional details about the reason for disapproval.", + "items": { + "type": "string" + }, + "type": "array" + }, + "reason": { + "description": "The categorized reason for disapproval.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "filteringReasons": { + "description": "The filtering reasons for the creative. Read-only. This field should not be set in requests.", + "properties": { + "date": { + "description": "The date in ISO 8601 format for the data. The data is collected from 00:00:00 to 23:59:59 in PST.", + "type": "string" + }, + "reasons": { + "description": "The filtering reasons.", + "items": { + "properties": { + "filteringCount": { + "description": "The number of times the creative was filtered for the status. The count is aggregated across all publishers on the exchange.", + "format": "int64", + "type": "string" + }, + "filteringStatus": { + "description": "The filtering status code. Please refer to the creative-status-codes.txt file for different statuses.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "height": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "Ad height.", + "format": "int32", + "type": "integer" + }, + "impressionTrackingUrl": { + "description": "The set of urls to be called to record an impression.", + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#creative", + "description": "Resource type.", + "type": "string" + }, + "nativeAd": { + "description": "If nativeAd is set, HTMLSnippet and videoURL should not be set.", + "properties": { + "advertiser": { + "type": "string" + }, + "appIcon": { + "description": "The app icon, for app download ads.", + "properties": { + "height": { + "format": "int32", + "type": "integer" + }, + "url": { + "type": "string" + }, + "width": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "body": { + "description": "A long description of the ad.", + "type": "string" + }, + "callToAction": { + "description": "A label for the button that the user is supposed to click.", + "type": "string" + }, + "clickTrackingUrl": { + "description": "The URL to use for click tracking.", + "type": "string" + }, + "headline": { + "description": "A short title for the ad.", + "type": "string" + }, + "image": { + "description": "A large image.", + "properties": { + "height": { + "format": "int32", + "type": "integer" + }, + "url": { + "type": "string" + }, + "width": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "impressionTrackingUrl": { + "description": "The URLs are called when the impression is rendered.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "A smaller image, for the advertiser logo.", + "properties": { + "height": { + "format": "int32", + "type": "integer" + }, + "url": { + "type": "string" + }, + "width": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "price": { + "description": "The price of the promoted app including the currency info.", + "type": "string" + }, + "starRating": { + "description": "The app rating in the app store. Must be in the range [0-5].", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "productCategories": { + "description": "Detected product categories, if any. Read-only. This field should not be set in requests.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "restrictedCategories": { + "description": "All restricted categories for the ads that may be shown from this snippet.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "sensitiveCategories": { + "description": "Detected sensitive categories, if any. Read-only. This field should not be set in requests.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "status": { + "description": "Creative serving status. Read-only. This field should not be set in requests.", + "type": "string" + }, + "vendorType": { + "description": "All vendor types for the ads that may be shown from this snippet.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "version": { + "description": "The version for this creative. Read-only. This field should not be set in requests.", + "format": "int32", + "type": "integer" + }, + "videoURL": { + "description": "The URL to fetch a video ad. If set, HTMLSnippet and the nativeAd should not be set.", + "type": "string" + }, + "width": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "Ad width.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CreativesList": { + "description": "The creatives feed lists the active creatives for the Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single creative.", + "id": "CreativesList", + "properties": { + "items": { + "description": "A list of creatives.", + "items": { + "$ref": "Creative" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#creativesList", + "description": "Resource type.", + "type": "string" + }, + "nextPageToken": { + "description": "Continuation token used to page through creatives. To retrieve the next page of results, set the next request's \"pageToken\" value to this.", + "type": "string" + } + }, + "type": "object" + }, + "DirectDeal": { + "description": "The configuration data for an Ad Exchange direct deal.", + "id": "DirectDeal", + "properties": { + "accountId": { + "description": "The account id of the buyer this deal is for.", + "format": "int32", + "type": "integer" + }, + "advertiser": { + "description": "The name of the advertiser this deal is for.", + "type": "string" + }, + "allowsAlcohol": { + "description": "Whether the publisher for this deal is eligible for alcohol ads.", + "type": "boolean" + }, + "buyerAccountId": { + "description": "The account id that this deal was negotiated for. It is either the buyer or the client that this deal was negotiated on behalf of.", + "format": "int64", + "type": "string" + }, + "currencyCode": { + "description": "The currency code that applies to the fixed_cpm value. If not set then assumed to be USD.", + "type": "string" + }, + "dealTier": { + "description": "The deal type such as programmatic reservation or fixed price and so on.", + "type": "string" + }, + "endTime": { + "description": "End time for when this deal stops being active. If not set then this deal is valid until manually disabled by the publisher. In seconds since the epoch.", + "format": "int64", + "type": "string" + }, + "fixedCpm": { + "description": "The fixed price for this direct deal. In cpm micros of currency according to currency_code. If set, then this deal is eligible for the fixed price tier of buying (highest priority, pay exactly the configured fixed price).", + "format": "int64", + "type": "string" + }, + "id": { + "description": "Deal id.", + "format": "int64", + "type": "string" + }, + "kind": { + "default": "adexchangebuyer#directDeal", + "description": "Resource type.", + "type": "string" + }, + "name": { + "description": "Deal name.", + "type": "string" + }, + "privateExchangeMinCpm": { + "description": "The minimum price for this direct deal. In cpm micros of currency according to currency_code. If set, then this deal is eligible for the private exchange tier of buying (below fixed price priority, run as a second price auction).", + "format": "int64", + "type": "string" + }, + "publisherBlocksOverriden": { + "description": "If true, the publisher has opted to have their blocks ignored when a creative is bid with for this deal.", + "type": "boolean" + }, + "sellerNetwork": { + "description": "The name of the publisher offering this direct deal.", + "type": "string" + }, + "startTime": { + "description": "Start time for when this deal becomes active. If not set then this deal is active immediately upon creation. In seconds since the epoch.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "DirectDealsList": { + "description": "A direct deals feed lists Direct Deals the Ad Exchange buyer account has access to. This includes direct deals set up for the buyer account as well as its merged stream seats.", + "id": "DirectDealsList", + "properties": { + "directDeals": { + "description": "A list of direct deals relevant for your account.", + "items": { + "$ref": "DirectDeal" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#directDealsList", + "description": "Resource type.", + "type": "string" + } + }, + "type": "object" + }, + "PerformanceReport": { + "description": "The configuration data for an Ad Exchange performance report list.", + "id": "PerformanceReport", + "properties": { + "bidRate": { + "description": "The number of bid responses with an ad.", + "format": "double", + "type": "number" + }, + "bidRequestRate": { + "description": "The number of bid requests sent to your bidder.", + "format": "double", + "type": "number" + }, + "calloutStatusRate": { + "description": "Rate of various prefiltering statuses per match. Please refer to the callout-status-codes.txt file for different statuses.", + "items": { + "type": "any" + }, + "type": "array" + }, + "cookieMatcherStatusRate": { + "description": "Average QPS for cookie matcher operations.", + "items": { + "type": "any" + }, + "type": "array" + }, + "creativeStatusRate": { + "description": "Rate of ads with a given status. Please refer to the creative-status-codes.txt file for different statuses.", + "items": { + "type": "any" + }, + "type": "array" + }, + "filteredBidRate": { + "description": "The number of bid responses that were filtered due to a policy violation or other errors.", + "format": "double", + "type": "number" + }, + "hostedMatchStatusRate": { + "description": "Average QPS for hosted match operations.", + "items": { + "type": "any" + }, + "type": "array" + }, + "inventoryMatchRate": { + "description": "The number of potential queries based on your pretargeting settings.", + "format": "double", + "type": "number" + }, + "kind": { + "default": "adexchangebuyer#performanceReport", + "description": "Resource type.", + "type": "string" + }, + "latency50thPercentile": { + "description": "The 50th percentile round trip latency(ms) as perceived from Google servers for the duration period covered by the report.", + "format": "double", + "type": "number" + }, + "latency85thPercentile": { + "description": "The 85th percentile round trip latency(ms) as perceived from Google servers for the duration period covered by the report.", + "format": "double", + "type": "number" + }, + "latency95thPercentile": { + "description": "The 95th percentile round trip latency(ms) as perceived from Google servers for the duration period covered by the report.", + "format": "double", + "type": "number" + }, + "noQuotaInRegion": { + "description": "Rate of various quota account statuses per quota check.", + "format": "double", + "type": "number" + }, + "outOfQuota": { + "description": "Rate of various quota account statuses per quota check.", + "format": "double", + "type": "number" + }, + "pixelMatchRequests": { + "description": "Average QPS for pixel match requests from clients.", + "format": "double", + "type": "number" + }, + "pixelMatchResponses": { + "description": "Average QPS for pixel match responses from clients.", + "format": "double", + "type": "number" + }, + "quotaConfiguredLimit": { + "description": "The configured quota limits for this account.", + "format": "double", + "type": "number" + }, + "quotaThrottledLimit": { + "description": "The throttled quota limits for this account.", + "format": "double", + "type": "number" + }, + "region": { + "description": "The trading location of this data.", + "type": "string" + }, + "successfulRequestRate": { + "description": "The number of properly formed bid responses received by our servers within the deadline.", + "format": "double", + "type": "number" + }, + "timestamp": { + "description": "The unix timestamp of the starting time of this performance data.", + "format": "int64", + "type": "string" + }, + "unsuccessfulRequestRate": { + "description": "The number of bid responses that were unsuccessful due to timeouts, incorrect formatting, etc.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "PerformanceReportList": { + "description": "The configuration data for an Ad Exchange performance report list.", + "id": "PerformanceReportList", + "properties": { + "kind": { + "default": "adexchangebuyer#performanceReportList", + "description": "Resource type.", + "type": "string" + }, + "performanceReport": { + "description": "A list of performance reports relevant for the account.", + "items": { + "$ref": "PerformanceReport" + }, + "type": "array" + } + }, + "type": "object" + }, + "PretargetingConfig": { + "id": "PretargetingConfig", + "properties": { + "billingId": { + "description": "The id for billing purposes, provided for reference. Leave this field blank for insert requests; the id will be generated automatically.", + "format": "int64", + "type": "string" + }, + "configId": { + "description": "The config id; generated automatically. Leave this field blank for insert requests.", + "format": "int64", + "type": "string" + }, + "configName": { + "description": "The name of the config. Must be unique. Required for all requests.", + "type": "string" + }, + "creativeType": { + "description": "List must contain exactly one of PRETARGETING_CREATIVE_TYPE_HTML or PRETARGETING_CREATIVE_TYPE_VIDEO.", + "items": { + "type": "string" + }, + "type": "array" + }, + "dimensions": { + "description": "Requests which allow one of these (width, height) pairs will match. All pairs must be supported ad dimensions.", + "items": { + "properties": { + "height": { + "description": "Height in pixels.", + "format": "int64", + "type": "string" + }, + "width": { + "description": "Width in pixels.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludedContentLabels": { + "description": "Requests with any of these content labels will not match. Values are from content-labels.txt in the downloadable files section.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "excludedGeoCriteriaIds": { + "description": "Requests containing any of these geo criteria ids will not match.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "excludedPlacements": { + "description": "Requests containing any of these placements will not match.", + "items": { + "properties": { + "token": { + "description": "The value of the placement. Interpretation depends on the placement type, e.g. URL for a site placement, channel name for a channel placement, app id for a mobile app placement.", + "type": "string" + }, + "type": { + "description": "The type of the placement.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludedUserLists": { + "description": "Requests containing any of these users list ids will not match.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "excludedVerticals": { + "description": "Requests containing any of these vertical ids will not match. Values are from the publisher-verticals.txt file in the downloadable files section.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "geoCriteriaIds": { + "description": "Requests containing any of these geo criteria ids will match.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "isActive": { + "description": "Whether this config is active. Required for all requests.", + "type": "boolean" + }, + "kind": { + "default": "adexchangebuyer#pretargetingConfig", + "description": "The kind of the resource, i.e. \"adexchangebuyer#pretargetingConfig\".", + "type": "string" + }, + "languages": { + "description": "Request containing any of these language codes will match.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maximumQps": { + "description": "The maximum QPS allocated to this pretargeting configuration, used for pretargeting-level QPS limits. By default, this is not set, which indicates that there is no QPS limit at the configuration level (a global or account-level limit may still be imposed).", + "format": "int64", + "type": "string" + }, + "mobileCarriers": { + "description": "Requests containing any of these mobile carrier ids will match. Values are from mobile-carriers.csv in the downloadable files section.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "mobileDevices": { + "description": "Requests containing any of these mobile device ids will match. Values are from mobile-devices.csv in the downloadable files section.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "mobileOperatingSystemVersions": { + "description": "Requests containing any of these mobile operating system version ids will match. Values are from mobile-os.csv in the downloadable files section.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "placements": { + "description": "Requests containing any of these placements will match.", + "items": { + "properties": { + "token": { + "description": "The value of the placement. Interpretation depends on the placement type, e.g. URL for a site placement, channel name for a channel placement, app id for a mobile app placement.", + "type": "string" + }, + "type": { + "description": "The type of the placement.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "platforms": { + "description": "Requests matching any of these platforms will match. Possible values are PRETARGETING_PLATFORM_MOBILE, PRETARGETING_PLATFORM_DESKTOP, and PRETARGETING_PLATFORM_TABLET.", + "items": { + "type": "string" + }, + "type": "array" + }, + "supportedCreativeAttributes": { + "description": "Creative attributes should be declared here if all creatives corresponding to this pretargeting configuration have that creative attribute. Values are from pretargetable-creative-attributes.txt in the downloadable files section.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "userLists": { + "description": "Requests containing any of these user list ids will match.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "vendorTypes": { + "description": "Requests that allow any of these vendor ids will match. Values are from vendors.txt in the downloadable files section.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "verticals": { + "description": "Requests containing any of these vertical ids will match.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PretargetingConfigList": { + "id": "PretargetingConfigList", + "properties": { + "items": { + "description": "A list of pretargeting configs", + "items": { + "$ref": "PretargetingConfig" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#pretargetingConfigList", + "description": "Resource type.", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "adexchangebuyer/v1.3/", + "title": "Ad Exchange Buyer API", + "version": "v1.3" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/admin.reports_v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/admin.reports_v1.json new file mode 100644 index 0000000000000000000000000000000000000000..d19fec1ccc734978349e6522206ef7323c8fcec5 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/admin.reports_v1.json @@ -0,0 +1,1079 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/admin.reports.audit.readonly": { +"description": "View audit reports for your G Suite domain" +}, +"https://www.googleapis.com/auth/admin.reports.usage.readonly": { +"description": "View usage reports for your G Suite domain" +} +} +} +}, +"basePath": "", +"baseUrl": "https://admin.googleapis.com/", +"batchPath": "batch", +"canonicalName": "reports", +"description": "Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/admin-sdk/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "admin:reports_v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://admin.mtls.googleapis.com/", +"name": "admin", +"ownerDomain": "google.com", +"ownerName": "Google", +"packagePath": "admin", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"activities": { +"methods": { +"list": { +"description": "Retrieves a list of activities for a specific customer's account and application such as the Admin console application or the Google Drive application. For more information, see the guides for administrator and Google Drive activity reports. For more information about the activity report's parameters, see the activity parameters reference guides. ", +"flatPath": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}", +"httpMethod": "GET", +"id": "reports.activities.list", +"parameterOrder": [ +"userKey", +"applicationName" +], +"parameters": { +"actorIpAddress": { +"description": "The Internet Protocol (IP) Address of host where the event was performed. This is an additional way to filter a report's summary using the IP address of the user whose activity is being reported. This IP address may or may not reflect the user's physical location. For example, the IP address can be the user's proxy server's address or a virtual private network (VPN) address. This parameter supports both IPv4 and IPv6 address versions.", +"location": "query", +"type": "string" +}, +"applicationName": { +"description": "Application name for which the events are to be retrieved.", +"enum": [ +"access_transparency", +"admin", +"calendar", +"chat", +"drive", +"gcp", +"gplus", +"groups", +"groups_enterprise", +"jamboard", +"login", +"meet", +"mobile", +"rules", +"saml", +"token", +"user_accounts", +"context_aware_access", +"chrome", +"data_studio", +"keep", +"vault" +], +"enumDescriptions": [ +"The Google Workspace Access Transparency activity reports return information about different types of Access Transparency activity events.", +"The Admin console application's activity reports return account information about different types of administrator activity events.", +"The Google Calendar application's activity reports return information about various Calendar activity events.", +"The Chat activity reports return information about various Chat activity events.", +"The Google Drive application's activity reports return information about various Google Drive activity events. The Drive activity report is only available for Google Workspace Business and Enterprise customers.", +"The Google Cloud Platform application's activity reports return information about various GCP activity events.", +"The Google+ application's activity reports return information about various Google+ activity events.", +"The Google Groups application's activity reports return information about various Groups activity events.", +"The Enterprise Groups activity reports return information about various Enterprise group activity events.", +"The Jamboard activity reports return information about various Jamboard activity events.", +"The Login application's activity reports return account information about different types of Login activity events.", +"The Meet Audit activity report returns information about different types of Meet Audit activity events.", +"The Device Audit activity report returns information about different types of Device Audit activity events.", +"The Rules activity report returns information about different types of Rules activity events.", +"The SAML activity report returns information about different types of SAML activity events.", +"The Token application's activity reports return account information about different types of Token activity events.", +"The User Accounts application's activity reports return account information about different types of User Accounts activity events.", +"The Context-aware access activity reports return information about users' access denied events due to Context-aware access rules.", +"The Chrome activity reports return information about Chrome browser and Chrome OS events.", +"The Data Studio activity reports return information about various types of Data Studio activity events.", +"The Keep application's activity reports return information about various Google Keep activity events. The Keep activity report is only available for Google Workspace Business and Enterprise customers.", +"The Vault activity reports return information about various types of Vault activity events." +], +"location": "path", +"pattern": "(access_transparency)|(admin)|(calendar)|(chat)|(chrome)|(context_aware_access)|(data_studio)|(drive)|(gcp)|(gplus)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(login)|(meet)|(mobile)|(rules)|(saml)|(token)|(user_accounts)|(vault)", +"required": true, +"type": "string" +}, +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"endTime": { +"description": "Sets the end of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The default value is the approximate time of the API request. An API report has three basic time concepts: - *Date of the API's request for a report*: When the API created and retrieved the report. - *Report's start time*: The beginning of the timespan shown in the report. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error. - *Report's end time*: The end of the timespan shown in the report. For example, the timespan of events summarized in a report can start in April and end in May. The report itself can be requested in August. If the `endTime` is not specified, the report returns all activities from the `startTime` until the current time or the most recent 180 days if the `startTime` is more than 180 days in the past.", +"location": "query", +"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", +"type": "string" +}, +"eventName": { +"description": "The name of the event being queried by the API. Each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. An example is the Google Calendar events in the Admin console application's reports. The Calendar Settings `type` structure has all of the Calendar `eventName` activities reported by the API. When an administrator changes a Calendar setting, the API reports this activity in the Calendar Settings `type` and `eventName` parameters. For more information about `eventName` query strings and parameters, see the list of event names for various applications above in `applicationName`.", +"location": "query", +"type": "string" +}, +"filters": { +"description": "The `filters` query string is a comma-separated list composed of event parameters manipulated by relational operators. Event parameters are in the form `{parameter1 name}{relational operator}{parameter1 value},{parameter2 name}{relational operator}{parameter2 value},...` These event parameters are associated with a specific `eventName`. An empty report is returned if the request's parameter doesn't belong to the `eventName`. For more information about the available `eventName` fields for each application and their associated parameters, go to the [ApplicationName](#applicationname) table, then click through to the Activity Events page in the Appendix for the application you want. In the following Drive activity examples, the returned list consists of all `edit` events where the `doc_id` parameter value matches the conditions defined by the relational operator. In the first example, the request returns all edited documents with a `doc_id` value equal to `12345`. In the second example, the report returns any edited documents where the `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in the request's query string (`%3C%3E`): ``` GET...&eventName=edit&filters=doc_id==12345 GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query supports these relational operators: * `==`\u2014'equal to'. * `<>`\u2014'not equal to'. Must be URL-encoded (%3C%3E). * `<`\u2014'less than'. Must be URL-encoded (%3C). * `<=`\u2014'less than or equal to'. Must be URL-encoded (%3C=). * `>`\u2014'greater than'. Must be URL-encoded (%3E). * `>=`\u2014'greater than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't accept multiple values of the same parameter. If a parameter is supplied more than once in the API request, the API only accepts the last value of that parameter. In addition, if an invalid parameter is supplied in the API request, the API ignores that parameter and returns the response corresponding to the remaining valid parameters. If no parameters are requested, all parameters are returned.", +"location": "query", +"pattern": "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)", +"type": "string" +}, +"groupIdFilter": { +"description": "Comma separated group ids (obfuscated) on which user activities are filtered, i.e. the response will contain activities for only those users that are a part of at least one of the group ids mentioned here. Format: \"id:abc123,id:xyz456\"", +"location": "query", +"pattern": "(id:[a-z0-9]+(,id:[a-z0-9]+)*)", +"type": "string" +}, +"maxResults": { +"default": "1000", +"description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page. The `maxResults` query string is optional in the request. The default value is 1000.", +"format": "int32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"type": "integer" +}, +"orgUnitID": { +"default": "", +"description": "ID of the organizational unit to report on. Activity records will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.", +"location": "query", +"pattern": "(id:[a-z0-9]+)", +"type": "string" +}, +"pageToken": { +"description": "The token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"startTime": { +"description": "Sets the beginning of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The report returns all activities from `startTime` until `endTime`. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error.", +"location": "query", +"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", +"type": "string" +}, +"userKey": { +"description": "Represents the profile ID or the user email for which the data should be filtered. Can be `all` for all information, or `userKey` for a user's unique Google Workspace profile ID or their primary email address. Must not be a deleted user. For a deleted user, call `users.list` in Directory API with `showDeleted=true`, then use the returned `ID` as the `userKey`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}", +"response": { +"$ref": "Activities" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.audit.readonly" +] +}, +"watch": { +"description": "Start receiving notifications for account activities. For more information, see Receiving Push Notifications.", +"flatPath": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}/watch", +"httpMethod": "POST", +"id": "reports.activities.watch", +"parameterOrder": [ +"userKey", +"applicationName" +], +"parameters": { +"actorIpAddress": { +"description": "The Internet Protocol (IP) Address of host where the event was performed. This is an additional way to filter a report's summary using the IP address of the user whose activity is being reported. This IP address may or may not reflect the user's physical location. For example, the IP address can be the user's proxy server's address or a virtual private network (VPN) address. This parameter supports both IPv4 and IPv6 address versions.", +"location": "query", +"type": "string" +}, +"applicationName": { +"description": "Application name for which the events are to be retrieved.", +"enum": [ +"access_transparency", +"admin", +"calendar", +"chat", +"drive", +"gcp", +"gplus", +"groups", +"groups_enterprise", +"jamboard", +"login", +"meet", +"mobile", +"rules", +"saml", +"token", +"user_accounts", +"context_aware_access", +"chrome", +"data_studio", +"keep" +], +"enumDescriptions": [ +"The Google Workspace Access Transparency activity reports return information about different types of Access Transparency activity events.", +"The Admin console application's activity reports return account information about different types of administrator activity events.", +"The Google Calendar application's activity reports return information about various Calendar activity events.", +"The Chat activity reports return information about various Chat activity events.", +"The Google Drive application's activity reports return information about various Google Drive activity events. The Drive activity report is only available for Google Workspace Business and Google Workspace Enterprise customers.", +"The Google Cloud Platform application's activity reports return information about various GCP activity events.", +"The Google+ application's activity reports return information about various Google+ activity events.", +"The Google Groups application's activity reports return information about various Groups activity events.", +"The Enterprise Groups activity reports return information about various Enterprise group activity events.", +"The Jamboard activity reports return information about various Jamboard activity events.", +"The Login application's activity reports return account information about different types of Login activity events.", +"The Meet Audit activity report returns information about different types of Meet Audit activity events.", +"The Device Audit activity report returns information about different types of Device Audit activity events.", +"The Rules activity report returns information about different types of Rules activity events.", +"The SAML activity report returns information about different types of SAML activity events.", +"The Token application's activity reports return account information about different types of Token activity events.", +"The User Accounts application's activity reports return account information about different types of User Accounts activity events.", +"The Context-aware access activity reports return information about users' access denied events due to Context-aware access rules.", +"The Chrome activity reports return information about Chrome browser and Chrome OS events.", +"The Data Studio activity reports return information about various types of Data Studio activity events.", +"The Keep application's activity reports return information about various Google Keep activity events. The Keep activity report is only available for Google Workspace Business and Enterprise customers." +], +"location": "path", +"pattern": "(access_transparency)|(admin)|(calendar)|(chat)|(chrome)|(context_aware_access)|(data_studio)|(drive)|(gcp)|(gplus)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(login)|(meet)|(mobile)|(rules)|(saml)|(token)|(user_accounts)", +"required": true, +"type": "string" +}, +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"endTime": { +"description": "Sets the end of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The default value is the approximate time of the API request. An API report has three basic time concepts: - *Date of the API's request for a report*: When the API created and retrieved the report. - *Report's start time*: The beginning of the timespan shown in the report. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error. - *Report's end time*: The end of the timespan shown in the report. For example, the timespan of events summarized in a report can start in April and end in May. The report itself can be requested in August. If the `endTime` is not specified, the report returns all activities from the `startTime` until the current time or the most recent 180 days if the `startTime` is more than 180 days in the past.", +"location": "query", +"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", +"type": "string" +}, +"eventName": { +"description": "The name of the event being queried by the API. Each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. An example is the Google Calendar events in the Admin console application's reports. The Calendar Settings `type` structure has all of the Calendar `eventName` activities reported by the API. When an administrator changes a Calendar setting, the API reports this activity in the Calendar Settings `type` and `eventName` parameters. For more information about `eventName` query strings and parameters, see the list of event names for various applications above in `applicationName`.", +"location": "query", +"type": "string" +}, +"filters": { +"description": "The `filters` query string is a comma-separated list composed of event parameters manipulated by relational operators. Event parameters are in the form `{parameter1 name}{relational operator}{parameter1 value},{parameter2 name}{relational operator}{parameter2 value},...` These event parameters are associated with a specific `eventName`. An empty report is returned if the request's parameter doesn't belong to the `eventName`. For more information about the available `eventName` fields for each application and their associated parameters, go to the [ApplicationName](#applicationname) table, then click through to the Activity Events page in the Appendix for the application you want. In the following Drive activity examples, the returned list consists of all `edit` events where the `doc_id` parameter value matches the conditions defined by the relational operator. In the first example, the request returns all edited documents with a `doc_id` value equal to `12345`. In the second example, the report returns any edited documents where the `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in the request's query string (`%3C%3E`): ``` GET...&eventName=edit&filters=doc_id==12345 GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query supports these relational operators: * `==`\u2014'equal to'. * `<>`\u2014'not equal to'. Must be URL-encoded (%3C%3E). * `<`\u2014'less than'. Must be URL-encoded (%3C). * `<=`\u2014'less than or equal to'. Must be URL-encoded (%3C=). * `>`\u2014'greater than'. Must be URL-encoded (%3E). * `>=`\u2014'greater than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't accept multiple values of the same parameter. If a parameter is supplied more than once in the API request, the API only accepts the last value of that parameter. In addition, if an invalid parameter is supplied in the API request, the API ignores that parameter and returns the response corresponding to the remaining valid parameters. If no parameters are requested, all parameters are returned.", +"location": "query", +"pattern": "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)", +"type": "string" +}, +"groupIdFilter": { +"description": "Comma separated group ids (obfuscated) on which user activities are filtered, i.e. the response will contain activities for only those users that are a part of at least one of the group ids mentioned here. Format: \"id:abc123,id:xyz456\"", +"location": "query", +"pattern": "(id:[a-z0-9]+(,id:[a-z0-9]+)*)", +"type": "string" +}, +"maxResults": { +"default": "1000", +"description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page. The `maxResults` query string is optional in the request. The default value is 1000.", +"format": "int32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"type": "integer" +}, +"orgUnitID": { +"default": "", +"deprecated": true, +"description": "`Deprecated`. This field is deprecated and is no longer supported. ID of the organizational unit to report on. Activity records will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.", +"location": "query", +"pattern": "(id:[a-z0-9]+)", +"type": "string" +}, +"pageToken": { +"description": "The token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"startTime": { +"description": "Sets the beginning of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The report returns all activities from `startTime` until `endTime`. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error.", +"location": "query", +"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", +"type": "string" +}, +"userKey": { +"description": "Represents the profile ID or the user email for which the data should be filtered. Can be `all` for all information, or `userKey` for a user's unique Google Workspace profile ID or their primary email address. Must not be a deleted user. For a deleted user, call `users.list` in Directory API with `showDeleted=true`, then use the returned `ID` as the `userKey`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}/watch", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.audit.readonly" +] +} +} +}, +"channels": { +"methods": { +"stop": { +"description": "Stop watching resources through this channel.", +"flatPath": "admin/reports_v1/channels/stop", +"httpMethod": "POST", +"id": "admin.channels.stop", +"parameterOrder": [], +"parameters": {}, +"path": "admin/reports_v1/channels/stop", +"request": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.audit.readonly" +] +} +} +}, +"customerUsageReports": { +"methods": { +"get": { +"description": "Retrieves a report which is a collection of properties and statistics for a specific customer's account. For more information, see the Customers Usage Report guide. For more information about the customer report's parameters, see the Customers Usage parameters reference guides. ", +"flatPath": "admin/reports/v1/usage/dates/{date}", +"httpMethod": "GET", +"id": "reports.customerUsageReports.get", +"parameterOrder": [ +"date" +], +"parameters": { +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"date": { +"description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", +"location": "path", +"pattern": "(\\d){4}-(\\d){2}-(\\d){2}", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. For your follow-on requests getting all of the report's pages, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"parameters": { +"description": "The `parameters` query string is a comma-separated list of event parameters that refine a report's results. The parameter is associated with a specific application. The application values for the Customers usage report include `accounts`, `app_maker`, `apps_scripts`, `calendar`, `classroom`, `cros`, `docs`, `gmail`, `gplus`, `device_management`, `meet`, and `sites`. A `parameters` query string is in the CSV form of `app_name1:param_name1, app_name2:param_name2`. *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. An example of an invalid request parameter is one that does not belong to the application. If no parameters are requested, all parameters are returned. ", +"location": "query", +"pattern": "(((accounts)|(app_maker)|(apps_scripts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)|(meet)):[^,]+,)*(((accounts)|(app_maker)|(apps_scripts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)|(meet)):[^,]+)", +"type": "string" +} +}, +"path": "admin/reports/v1/usage/dates/{date}", +"response": { +"$ref": "UsageReports" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.usage.readonly" +] +} +} +}, +"entityUsageReports": { +"methods": { +"get": { +"description": "Retrieves a report which is a collection of properties and statistics for entities used by users within the account. For more information, see the Entities Usage Report guide. For more information about the entities report's parameters, see the Entities Usage parameters reference guides.", +"flatPath": "admin/reports/v1/usage/{entityType}/{entityKey}/dates/{date}", +"httpMethod": "GET", +"id": "reports.entityUsageReports.get", +"parameterOrder": [ +"entityType", +"entityKey", +"date" +], +"parameters": { +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"date": { +"description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", +"location": "path", +"pattern": "(\\d){4}-(\\d){2}-(\\d){2}", +"required": true, +"type": "string" +}, +"entityKey": { +"description": "Represents the key of the object to filter the data with. It is a string which can take the value `all` to get activity events for all users, or any other value for an app-specific entity. For details on how to obtain the `entityKey` for a particular `entityType`, see the Entities Usage parameters reference guides.", +"location": "path", +"required": true, +"type": "string" +}, +"entityType": { +"description": "Represents the type of entity for the report.", +"enum": [ +"gplus_communities" +], +"enumDescriptions": [ +"Returns a report on Google+ communities." +], +"location": "path", +"pattern": "(gplus_communities)", +"required": true, +"type": "string" +}, +"filters": { +"description": "The `filters` query string is a comma-separated list of an application's event parameters where the parameter's value is manipulated by a relational operator. The `filters` query string includes the name of the application whose usage is returned in the report. The application values for the Entities usage report include `accounts`, `docs`, and `gmail`. Filters are in the form `[application name]:parameter name[parameter value],...`. In this example, the `<>` 'not equal to' operator is URL-encoded in the request's query string (%3C%3E): GET https://www.googleapis.com/admin/reports/v1/usage/gplus_communities/all/dates/2017-12-01 ?parameters=gplus:community_name,gplus:num_total_members &filters=gplus:num_total_members%3C%3E0 The relational operators include: - `==` - 'equal to'. - `<>` - 'not equal to'. It is URL-encoded (%3C%3E). - `<` - 'less than'. It is URL-encoded (%3C). - `<=` - 'less than or equal to'. It is URL-encoded (%3C=). - `>` - 'greater than'. It is URL-encoded (%3E). - `>=` - 'greater than or equal to'. It is URL-encoded (%3E=). Filters can only be applied to numeric parameters.", +"location": "query", +"pattern": "(((gplus)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+,)*(((gplus)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+)", +"type": "string" +}, +"maxResults": { +"default": "1000", +"description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page.", +"format": "uint32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"type": "integer" +}, +"pageToken": { +"description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"parameters": { +"description": "The `parameters` query string is a comma-separated list of event parameters that refine a report's results. The parameter is associated with a specific application. The application values for the Entities usage report are only `gplus`. A `parameter` query string is in the CSV form of `[app_name1:param_name1], [app_name2:param_name2]...`. *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. An example of an invalid request parameter is one that does not belong to the application. If no parameters are requested, all parameters are returned. ", +"location": "query", +"pattern": "(((gplus)):[^,]+,)*(((gplus)):[^,]+)", +"type": "string" +} +}, +"path": "admin/reports/v1/usage/{entityType}/{entityKey}/dates/{date}", +"response": { +"$ref": "UsageReports" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.usage.readonly" +] +} +} +}, +"userUsageReport": { +"methods": { +"get": { +"description": "Retrieves a report which is a collection of properties and statistics for a set of users with the account. For more information, see the User Usage Report guide. For more information about the user report's parameters, see the Users Usage parameters reference guides.", +"flatPath": "admin/reports/v1/usage/users/{userKey}/dates/{date}", +"httpMethod": "GET", +"id": "reports.userUsageReport.get", +"parameterOrder": [ +"userKey", +"date" +], +"parameters": { +"customerId": { +"description": "The unique ID of the customer to retrieve data for.", +"location": "query", +"pattern": "C.+|my_customer", +"type": "string" +}, +"date": { +"description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.", +"location": "path", +"pattern": "(\\d){4}-(\\d){2}-(\\d){2}", +"required": true, +"type": "string" +}, +"filters": { +"description": "The `filters` query string is a comma-separated list of an application's event parameters where the parameter's value is manipulated by a relational operator. The `filters` query string includes the name of the application whose usage is returned in the report. The application values for the Users Usage Report include `accounts`, `docs`, and `gmail`. Filters are in the form `[application name]:parameter name[parameter value],...`. In this example, the `<>` 'not equal to' operator is URL-encoded in the request's query string (%3C%3E): GET https://www.googleapis.com/admin/reports/v1/usage/users/all/dates/2013-03-03 ?parameters=accounts:last_login_time &filters=accounts:last_login_time%3C%3E2010-10-28T10:26:35.000Z The relational operators include: - `==` - 'equal to'. - `<>` - 'not equal to'. It is URL-encoded (%3C%3E). - `<` - 'less than'. It is URL-encoded (%3C). - `<=` - 'less than or equal to'. It is URL-encoded (%3C=). - `>` - 'greater than'. It is URL-encoded (%3E). - `>=` - 'greater than or equal to'. It is URL-encoded (%3E=). ", +"location": "query", +"pattern": "(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+,)*(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+)", +"type": "string" +}, +"groupIdFilter": { +"description": "Comma separated group ids (obfuscated) on which user activities are filtered, i.e. the response will contain activities for only those users that are a part of at least one of the group ids mentioned here. Format: \"id:abc123,id:xyz456\"", +"location": "query", +"pattern": "(id:[a-z0-9]+(,id:[a-z0-9]+)*)", +"type": "string" +}, +"maxResults": { +"default": "1000", +"description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page. The `maxResults` query string is optional.", +"format": "uint32", +"location": "query", +"maximum": "1000", +"minimum": "1", +"type": "integer" +}, +"orgUnitID": { +"default": "", +"description": "ID of the organizational unit to report on. User activity will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.", +"location": "query", +"pattern": "(id:[a-z0-9]+)", +"type": "string" +}, +"pageToken": { +"description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.", +"location": "query", +"type": "string" +}, +"parameters": { +"description": "The `parameters` query string is a comma-separated list of event parameters that refine a report's results. The parameter is associated with a specific application. The application values for the Customers Usage report include `accounts`, `app_maker`, `apps_scripts`, `calendar`, `classroom`, `cros`, `docs`, `gmail`, `gplus`, `device_management`, `meet`, and `sites`. A `parameters` query string is in the CSV form of `app_name1:param_name1, app_name2:param_name2`. *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. An example of an invalid request parameter is one that does not belong to the application. If no parameters are requested, all parameters are returned. ", +"location": "query", +"pattern": "(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+,)*(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+)", +"type": "string" +}, +"userKey": { +"description": "Represents the profile ID or the user email for which the data should be filtered. Can be `all` for all information, or `userKey` for a user's unique Google Workspace profile ID or their primary email address. Must not be a deleted user. For a deleted user, call `users.list` in Directory API with `showDeleted=true`, then use the returned `ID` as the `userKey`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "admin/reports/v1/usage/users/{userKey}/dates/{date}", +"response": { +"$ref": "UsageReports" +}, +"scopes": [ +"https://www.googleapis.com/auth/admin.reports.usage.readonly" +] +} +} +} +}, +"revision": "20240618", +"rootUrl": "https://admin.googleapis.com/", +"schemas": { +"Activities": { +"description": "JSON template for a collection of activities.", +"id": "Activities", +"properties": { +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"items": { +"description": "Each activity record in the response.", +"items": { +"$ref": "Activity" +}, +"type": "array" +}, +"kind": { +"default": "admin#reports#activities", +"description": "The type of API resource. For an activity report, the value is `reports#activities`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token for retrieving the follow-on next page of the report. The `nextPageToken` value is used in the request's `pageToken` query string.", +"type": "string" +} +}, +"type": "object" +}, +"Activity": { +"description": "JSON template for the activity resource.", +"id": "Activity", +"properties": { +"actor": { +"description": "User doing the action.", +"properties": { +"callerType": { +"description": "The type of actor.", +"type": "string" +}, +"email": { +"description": "The primary email address of the actor. May be absent if there is no email address associated with the actor.", +"type": "string" +}, +"key": { +"description": "Only present when `callerType` is `KEY`. Can be the `consumer_key` of the requestor for OAuth 2LO API requests or an identifier for robot accounts.", +"type": "string" +}, +"profileId": { +"description": "The unique Google Workspace profile ID of the actor. This value might be absent if the actor is not a Google Workspace user, or may be the number 105250506097979753968 which acts as a placeholder ID.", +"type": "string" +} +}, +"type": "object" +}, +"etag": { +"description": "ETag of the entry.", +"type": "string" +}, +"events": { +"description": "Activity events in the report.", +"items": { +"properties": { +"name": { +"description": "Name of the event. This is the specific name of the activity reported by the API. And each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. For `eventName` request parameters in general: - If no `eventName` is given, the report returns all possible instances of an `eventName`. - When you request an `eventName`, the API's response returns all activities which contain that `eventName`. For more information about `eventName` properties, see the list of event names for various applications above in `applicationName`.", +"type": "string" +}, +"parameters": { +"description": "Parameter value pairs for various applications. For more information about `eventName` parameters, see the list of event names for various applications above in `applicationName`.", +"items": { +"properties": { +"boolValue": { +"description": "Boolean value of the parameter.", +"type": "boolean" +}, +"intValue": { +"description": "Integer value of the parameter.", +"format": "int64", +"type": "string" +}, +"messageValue": { +"description": "Nested parameter value pairs associated with this parameter. Complex value type for a parameter are returned as a list of parameter values. For example, the address parameter may have a value as `[{parameter: [{name: city, value: abc}]}]`", +"properties": { +"parameter": { +"description": "Parameter values", +"items": { +"$ref": "NestedParameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"multiIntValue": { +"description": "Integer values of the parameter.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"multiMessageValue": { +"description": "List of `messageValue` objects.", +"items": { +"properties": { +"parameter": { +"description": "Parameter values", +"items": { +"$ref": "NestedParameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"type": "array" +}, +"multiValue": { +"description": "String values of the parameter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the parameter.", +"type": "string" +}, +"value": { +"description": "String value of the parameter.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"type": { +"description": "Type of event. The Google Workspace service or feature that an administrator changes is identified in the `type` property which identifies an event using the `eventName` property. For a full list of the API's `type` categories, see the list of event names for various applications above in `applicationName`.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"id": { +"description": "Unique identifier for each activity record.", +"properties": { +"applicationName": { +"description": "Application name to which the event belongs. For possible values see the list of applications above in `applicationName`.", +"type": "string" +}, +"customerId": { +"description": "The unique identifier for a Google Workspace account.", +"type": "string" +}, +"time": { +"description": "Time of occurrence of the activity. This is in UNIX epoch time in seconds.", +"format": "date-time", +"type": "string" +}, +"uniqueQualifier": { +"description": "Unique qualifier if multiple events have the same time.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ipAddress": { +"description": "IP address of the user doing the action. This is the Internet Protocol (IP) address of the user when logging into Google Workspace, which may or may not reflect the user's physical location. For example, the IP address can be the user's proxy server's address or a virtual private network (VPN) address. The API supports IPv4 and IPv6.", +"type": "string" +}, +"kind": { +"default": "admin#reports#activity", +"description": "The type of API resource. For an activity report, the value is `audit#activity`.", +"type": "string" +}, +"ownerDomain": { +"description": "This is the domain that is affected by the report's event. For example domain of Admin console or the Drive application's document owner.", +"type": "string" +} +}, +"type": "object" +}, +"Channel": { +"description": "A notification channel used to watch for resource changes.", +"id": "Channel", +"properties": { +"address": { +"description": "The address where notifications are delivered for this channel.", +"type": "string" +}, +"expiration": { +"description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.", +"format": "int64", +"type": "string" +}, +"id": { +"description": "A UUID or similar unique string that identifies this channel.", +"type": "string" +}, +"kind": { +"default": "api#channel", +"description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"`api#channel`\".", +"type": "string" +}, +"params": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional parameters controlling delivery channel behavior. Optional.", +"type": "object" +}, +"payload": { +"description": "A Boolean value to indicate whether payload is wanted. A payload is data that is sent in the body of an HTTP POST, PUT, or PATCH message and contains important information about the request. Optional.", +"type": "boolean" +}, +"resourceId": { +"description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.", +"type": "string" +}, +"resourceUri": { +"description": "A version-specific identifier for the watched resource.", +"type": "string" +}, +"token": { +"description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.", +"type": "string" +}, +"type": { +"description": "The type of delivery mechanism used for this channel. The value should be set to `\"web_hook\"`.", +"type": "string" +} +}, +"type": "object" +}, +"NestedParameter": { +"description": "JSON template for a parameter used in various reports.", +"id": "NestedParameter", +"properties": { +"boolValue": { +"description": "Boolean value of the parameter.", +"type": "boolean" +}, +"intValue": { +"description": "Integer value of the parameter.", +"format": "int64", +"type": "string" +}, +"multiBoolValue": { +"description": "Multiple boolean values of the parameter.", +"items": { +"type": "boolean" +}, +"type": "array" +}, +"multiIntValue": { +"description": "Multiple integer values of the parameter.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"multiValue": { +"description": "Multiple string values of the parameter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the parameter.", +"type": "string" +}, +"value": { +"description": "String value of the parameter.", +"type": "string" +} +}, +"type": "object" +}, +"UsageReport": { +"description": "JSON template for a usage report.", +"id": "UsageReport", +"properties": { +"date": { +"description": "Output only. The date of the report request.", +"readOnly": true, +"type": "string" +}, +"entity": { +"description": "Output only. Information about the type of the item.", +"properties": { +"customerId": { +"description": "Output only. The unique identifier of the customer's account.", +"readOnly": true, +"type": "string" +}, +"entityId": { +"description": "Output only. Object key. Only relevant if entity.type = \"OBJECT\" Note: external-facing name of report is \"Entities\" rather than \"Objects\".", +"readOnly": true, +"type": "string" +}, +"profileId": { +"description": "Output only. The user's immutable Google Workspace profile identifier.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type of item. The value is `user`.", +"readOnly": true, +"type": "string" +}, +"userEmail": { +"description": "Output only. The user's email address. Only relevant if entity.type = \"USER\"", +"readOnly": true, +"type": "string" +} +}, +"readOnly": true, +"type": "object" +}, +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"kind": { +"default": "admin#reports#usageReport", +"description": "The type of API resource. For a usage report, the value is `admin#reports#usageReport`.", +"type": "string" +}, +"parameters": { +"description": "Output only. Parameter value pairs for various applications. For the Entity Usage Report parameters and values, see [the Entity Usage parameters reference](/admin-sdk/reports/v1/reference/usage-ref-appendix-a/entities).", +"items": { +"properties": { +"boolValue": { +"description": "Output only. Boolean value of the parameter.", +"readOnly": true, +"type": "boolean" +}, +"datetimeValue": { +"description": "The RFC 3339 formatted value of the parameter, for example 2010-10-28T10:26:35.000Z.", +"format": "date-time", +"readOnly": true, +"type": "string" +}, +"intValue": { +"description": "Output only. Integer value of the parameter.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"msgValue": { +"description": "Output only. Nested message value of the parameter.", +"items": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "The name of the parameter. For the User Usage Report parameter names, see the User Usage parameters reference.", +"type": "string" +}, +"stringValue": { +"description": "Output only. String value of the parameter.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"UsageReports": { +"id": "UsageReports", +"properties": { +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"kind": { +"default": "admin#reports#usageReports", +"description": "The type of API resource. For a usage report, the value is `admin#reports#usageReports`.", +"type": "string" +}, +"nextPageToken": { +"description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. For your follow-on requests getting all of the report's pages, enter the `nextPageToken` value in the `pageToken` query string.", +"type": "string" +}, +"usageReports": { +"description": "Various application parameter records.", +"items": { +"$ref": "UsageReport" +}, +"type": "array" +}, +"warnings": { +"description": "Warnings, if any.", +"items": { +"properties": { +"code": { +"description": "Machine readable code or warning type. The warning code value is `200`.", +"type": "string" +}, +"data": { +"description": "Key-value pairs to give detailed information on the warning.", +"items": { +"properties": { +"key": { +"description": "Key associated with a key-value pair to give detailed information on the warning.", +"type": "string" +}, +"value": { +"description": "Value associated with a key-value pair to give detailed information on the warning.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "The human readable messages for a warning are: - Data is not available warning - Sorry, data for date yyyy-mm-dd for application \"`application name`\" is not available. - Partial data is available warning - Data for date yyyy-mm-dd for application \"`application name`\" is not available right now, please try again after a few hours. ", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Admin SDK API", +"version": "reports_v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adsense.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adsense.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..f1d37367010cf54549d14f3016a0204071bfa618 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adsense.v2.json @@ -0,0 +1,2829 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/adsense": { +"description": "View and manage your AdSense data" +}, +"https://www.googleapis.com/auth/adsense.readonly": { +"description": "View your AdSense data" +} +} +} +}, +"basePath": "", +"baseUrl": "https://adsense.googleapis.com/", +"batchPath": "batch", +"description": "The AdSense Management API allows publishers to access their inventory and run earnings and performance reports.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/adsense/management/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "adsense:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://adsense.mtls.googleapis.com/", +"name": "adsense", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"methods": { +"get": { +"description": "Gets information about the selected AdSense account.", +"flatPath": "v2/accounts/{accountsId}", +"httpMethod": "GET", +"id": "adsense.accounts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Account to get information about. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Account" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"getAdBlockingRecoveryTag": { +"description": "Gets the ad blocking recovery tag of an account.", +"flatPath": "v2/accounts/{accountsId}/adBlockingRecoveryTag", +"httpMethod": "GET", +"id": "adsense.accounts.getAdBlockingRecoveryTag", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the account to get the tag for. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}/adBlockingRecoveryTag", +"response": { +"$ref": "AdBlockingRecoveryTag" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"list": { +"description": "Lists all accounts available to this user.", +"flatPath": "v2/accounts", +"httpMethod": "GET", +"id": "adsense.accounts.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "The maximum number of accounts to include in the response, used for paging. If unspecified, at most 10000 accounts will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccounts` must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2/accounts", +"response": { +"$ref": "ListAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"listChildAccounts": { +"description": "Lists all accounts directly managed by the given AdSense account.", +"flatPath": "v2/accounts/{accountsId}:listChildAccounts", +"httpMethod": "GET", +"id": "adsense.accounts.listChildAccounts", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of accounts to include in the response, used for paging. If unspecified, at most 10000 accounts will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListChildAccounts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListChildAccounts` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent account, which owns the child accounts. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}:listChildAccounts", +"response": { +"$ref": "ListChildAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +} +}, +"resources": { +"adclients": { +"methods": { +"get": { +"description": "Gets the ad client from the given resource name.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ad client to retrieve. Format: accounts/{account}/adclients/{adclient}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "AdClient" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"getAdcode": { +"description": "Gets the AdSense code for a given ad client. This returns what was previously known as the 'auto ad code'. This is only supported for ad clients with a product_code of AFC. For more information, see [About the AdSense code](https://support.google.com/adsense/answer/9274634).", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adcode", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.getAdcode", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the ad client for which to get the adcode. Format: accounts/{account}/adclients/{adclient}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}/adcode", +"response": { +"$ref": "AdClientAdCode" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"list": { +"description": "Lists all the ad clients available in an account.", +"flatPath": "v2/accounts/{accountsId}/adclients", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ad clients to include in the response, used for paging. If unspecified, at most 10000 ad clients will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListAdClients` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAdClients` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account which owns the collection of ad clients. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/adclients", +"response": { +"$ref": "ListAdClientsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +} +}, +"resources": { +"adunits": { +"methods": { +"create": { +"description": "Creates an ad unit. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method. Note that ad units can only be created for ad clients with an \"AFC\" product code. For more info see the [AdClient resource](/adsense/management/reference/rest/v2/accounts.adclients). For now, this method can only be used to create `DISPLAY` ad units. See: https://support.google.com/adsense/answer/9183566", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits", +"httpMethod": "POST", +"id": "adsense.accounts.adclients.adunits.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Ad client to create an ad unit under. Format: accounts/{account}/adclients/{adclient}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/adunits", +"request": { +"$ref": "AdUnit" +}, +"response": { +"$ref": "AdUnit" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense" +] +}, +"get": { +"description": "Gets an ad unit from a specified account and ad client.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits/{adunitsId}", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.adunits.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. AdUnit to get information about. Format: accounts/{account}/adclients/{adclient}/adunits/{adunit}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+/adunits/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "AdUnit" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"getAdcode": { +"description": "Gets the ad unit code for a given ad unit. For more information, see [About the AdSense code](https://support.google.com/adsense/answer/9274634) and [Where to place the ad code in your HTML](https://support.google.com/adsense/answer/9190028).", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits/{adunitsId}/adcode", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.adunits.getAdcode", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the adunit for which to get the adcode. Format: accounts/{account}/adclients/{adclient}/adunits/{adunit}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+/adunits/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}/adcode", +"response": { +"$ref": "AdUnitAdCode" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"list": { +"description": "Lists all ad units under a specified account and ad client.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.adunits.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ad units to include in the response, used for paging. If unspecified, at most 10000 ad units will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListAdUnits` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAdUnits` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The ad client which owns the collection of ad units. Format: accounts/{account}/adclients/{adclient}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/adunits", +"response": { +"$ref": "ListAdUnitsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"listLinkedCustomChannels": { +"description": "Lists all the custom channels available for an ad unit.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits/{adunitsId}:listLinkedCustomChannels", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.adunits.listLinkedCustomChannels", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of custom channels to include in the response, used for paging. If unspecified, at most 10000 custom channels will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListLinkedCustomChannels` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListLinkedCustomChannels` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The ad unit which owns the collection of custom channels. Format: accounts/{account}/adclients/{adclient}/adunits/{adunit}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+/adunits/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}:listLinkedCustomChannels", +"response": { +"$ref": "ListLinkedCustomChannelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"patch": { +"description": "Updates an ad unit. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method. For now, this method can only be used to update `DISPLAY` ad units. See: https://support.google.com/adsense/answer/9183566", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits/{adunitsId}", +"httpMethod": "PATCH", +"id": "adsense.accounts.adclients.adunits.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of the ad unit. Format: accounts/{account}/adclients/{adclient}/adunits/{adunit}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+/adunits/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to update. If empty, a full update is performed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "AdUnit" +}, +"response": { +"$ref": "AdUnit" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense" +] +} +} +}, +"customchannels": { +"methods": { +"create": { +"description": "Creates a custom channel. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels", +"httpMethod": "POST", +"id": "adsense.accounts.adclients.customchannels.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The ad client to create a custom channel under. Format: accounts/{account}/adclients/{adclient}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/customchannels", +"request": { +"$ref": "CustomChannel" +}, +"response": { +"$ref": "CustomChannel" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense" +] +}, +"delete": { +"description": "Deletes a custom channel. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels/{customchannelsId}", +"httpMethod": "DELETE", +"id": "adsense.accounts.adclients.customchannels.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom channel to delete. Format: accounts/{account}/adclients/{adclient}/customchannels/{customchannel}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+/customchannels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense" +] +}, +"get": { +"description": "Gets information about the selected custom channel.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels/{customchannelsId}", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.customchannels.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the custom channel. Format: accounts/{account}/adclients/{adclient}/customchannels/{customchannel}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+/customchannels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "CustomChannel" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"list": { +"description": "Lists all the custom channels available in an ad client.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.customchannels.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of custom channels to include in the response, used for paging. If unspecified, at most 10000 custom channels will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListCustomChannels` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCustomChannels` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The ad client which owns the collection of custom channels. Format: accounts/{account}/adclients/{adclient}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/customchannels", +"response": { +"$ref": "ListCustomChannelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"listLinkedAdUnits": { +"description": "Lists all the ad units available for a custom channel.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels/{customchannelsId}:listLinkedAdUnits", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.customchannels.listLinkedAdUnits", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ad units to include in the response, used for paging. If unspecified, at most 10000 ad units will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListLinkedAdUnits` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListLinkedAdUnits` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The custom channel which owns the collection of ad units. Format: accounts/{account}/adclients/{adclient}/customchannels/{customchannel}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+/customchannels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}:listLinkedAdUnits", +"response": { +"$ref": "ListLinkedAdUnitsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"patch": { +"description": "Updates a custom channel. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels/{customchannelsId}", +"httpMethod": "PATCH", +"id": "adsense.accounts.adclients.customchannels.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of the custom channel. Format: accounts/{account}/adclients/{adclient}/customchannels/{customchannel}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+/customchannels/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to update. If empty, a full update is performed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "CustomChannel" +}, +"response": { +"$ref": "CustomChannel" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense" +] +} +} +}, +"urlchannels": { +"methods": { +"get": { +"description": "Gets information about the selected url channel.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/urlchannels/{urlchannelsId}", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.urlchannels.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the url channel to retrieve. Format: accounts/{account}/adclients/{adclient}/urlchannels/{urlchannel}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+/urlchannels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "UrlChannel" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"list": { +"description": "Lists active url channels.", +"flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/urlchannels", +"httpMethod": "GET", +"id": "adsense.accounts.adclients.urlchannels.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of url channels to include in the response, used for paging. If unspecified, at most 10000 url channels will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListUrlChannels` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListUrlChannels` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The ad client which owns the collection of url channels. Format: accounts/{account}/adclients/{adclient}", +"location": "path", +"pattern": "^accounts/[^/]+/adclients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/urlchannels", +"response": { +"$ref": "ListUrlChannelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +} +} +} +} +}, +"alerts": { +"methods": { +"list": { +"description": "Lists all the alerts available in an account.", +"flatPath": "v2/accounts/{accountsId}/alerts", +"httpMethod": "GET", +"id": "adsense.accounts.alerts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language to use for translating alert messages. If unspecified, this defaults to the user's display language. If the given language is not supported, alerts will be returned in English. The language is specified as an [IETF BCP-47 language code](https://en.wikipedia.org/wiki/IETF_language_tag).", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account which owns the collection of alerts. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/alerts", +"response": { +"$ref": "ListAlertsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +} +} +}, +"payments": { +"methods": { +"list": { +"description": "Lists all the payments available for an account.", +"flatPath": "v2/accounts/{accountsId}/payments", +"httpMethod": "GET", +"id": "adsense.accounts.payments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The account which owns the collection of payments. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/payments", +"response": { +"$ref": "ListPaymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +} +} +}, +"policyIssues": { +"methods": { +"get": { +"description": "Gets information about the selected policy issue.", +"flatPath": "v2/accounts/{accountsId}/policyIssues/{policyIssuesId}", +"httpMethod": "GET", +"id": "adsense.accounts.policyIssues.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the policy issue. Format: accounts/{account}/policyIssues/{policy_issue}", +"location": "path", +"pattern": "^accounts/[^/]+/policyIssues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "PolicyIssue" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"list": { +"description": "Lists all the policy issues where the specified account is involved, both directly and through any AFP child accounts.", +"flatPath": "v2/accounts/{accountsId}/policyIssues", +"httpMethod": "GET", +"id": "adsense.accounts.policyIssues.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of policy issues to include in the response, used for paging. If unspecified, at most 10000 policy issues will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListPolicyIssues` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPolicyIssues` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account for which policy issues are being retrieved. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/policyIssues", +"response": { +"$ref": "ListPolicyIssuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +} +} +}, +"reports": { +"methods": { +"generate": { +"description": "Generates an ad hoc report.", +"flatPath": "v2/accounts/{accountsId}/reports:generate", +"httpMethod": "GET", +"id": "adsense.accounts.reports.generate", +"parameterOrder": [ +"account" +], +"parameters": { +"account": { +"description": "Required. The account which owns the collection of reports. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +}, +"currencyCode": { +"description": "The [ISO-4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) to use when reporting on monetary metrics. Defaults to the account's currency if not set.", +"location": "query", +"type": "string" +}, +"dateRange": { +"description": "Date range of the report, if unset the range will be considered CUSTOM.", +"enum": [ +"REPORTING_DATE_RANGE_UNSPECIFIED", +"CUSTOM", +"TODAY", +"YESTERDAY", +"MONTH_TO_DATE", +"YEAR_TO_DATE", +"LAST_7_DAYS", +"LAST_30_DAYS" +], +"enumDescriptions": [ +"Unspecified date range.", +"A custom date range specified using the `start_date` and `end_date` fields. This is the default if no ReportingDateRange is provided.", +"Current day.", +"Yesterday.", +"From the start of the current month to the current day. e.g. if the current date is 2020-03-12 then the range will be [2020-03-01, 2020-03-12].", +"From the start of the current year to the current day. e.g. if the current date is 2020-03-12 then the range will be [2020-01-01, 2020-03-12].", +"Last 7 days, excluding current day.", +"Last 30 days, excluding current day." +], +"location": "query", +"type": "string" +}, +"dimensions": { +"description": "Dimensions to base the report on.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"DATE", +"WEEK", +"MONTH", +"ACCOUNT_NAME", +"AD_CLIENT_ID", +"HOSTED_AD_CLIENT_ID", +"PRODUCT_NAME", +"PRODUCT_CODE", +"AD_UNIT_NAME", +"AD_UNIT_ID", +"AD_UNIT_SIZE_NAME", +"AD_UNIT_SIZE_CODE", +"CUSTOM_CHANNEL_NAME", +"CUSTOM_CHANNEL_ID", +"HOSTED_CUSTOM_CHANNEL_ID", +"OWNED_SITE_DOMAIN_NAME", +"OWNED_SITE_ID", +"PAGE_URL", +"URL_CHANNEL_NAME", +"URL_CHANNEL_ID", +"BUYER_NETWORK_NAME", +"BUYER_NETWORK_ID", +"BID_TYPE_NAME", +"BID_TYPE_CODE", +"CREATIVE_SIZE_NAME", +"CREATIVE_SIZE_CODE", +"DOMAIN_NAME", +"DOMAIN_CODE", +"COUNTRY_NAME", +"COUNTRY_CODE", +"PLATFORM_TYPE_NAME", +"PLATFORM_TYPE_CODE", +"TARGETING_TYPE_NAME", +"TARGETING_TYPE_CODE", +"CONTENT_PLATFORM_NAME", +"CONTENT_PLATFORM_CODE", +"AD_PLACEMENT_NAME", +"AD_PLACEMENT_CODE", +"REQUESTED_AD_TYPE_NAME", +"REQUESTED_AD_TYPE_CODE", +"SERVED_AD_TYPE_NAME", +"SERVED_AD_TYPE_CODE", +"AD_FORMAT_NAME", +"AD_FORMAT_CODE", +"CUSTOM_SEARCH_STYLE_NAME", +"CUSTOM_SEARCH_STYLE_ID", +"DOMAIN_REGISTRANT", +"WEBSEARCH_QUERY_STRING" +], +"enumDescriptions": [ +"Unspecified dimension.", +"Date dimension in YYYY-MM-DD format (e.g. \"2010-02-10\").", +"Week dimension in YYYY-MM-DD format, representing the first day of each week (e.g. \"2010-02-08\"). The first day of the week is determined by the language_code specified in a report generation request (so e.g. this would be a Monday for \"en-GB\" or \"es\", but a Sunday for \"en\" or \"fr-CA\").", +"Month dimension in YYYY-MM format (e.g. \"2010-02\").", +"Account name. The members of this dimension match the values from Account.display_name.", +"Unique ID of an ad client. The members of this dimension match the values from AdClient.reporting_dimension_id.", +"Unique ID of a sub-account's ad client. The members of this dimension match the values from AdClient.reporting_dimension_id (for the sub-account).", +"Localized product name (e.g. \"AdSense for Content\", \"AdSense for Search\").", +"Product code (e.g. \"AFC\", \"AFS\"). The members of this dimension match the values from AdClient.product_code.", +"Ad unit name (within which an ad was served). The members of this dimension match the values from AdUnit.display_name.", +"Unique ID of an ad unit (within which an ad was served). The members of this dimension match the values from AdUnit.reporting_dimension_id.", +"Localized size of an ad unit (e.g. \"728x90\", \"Responsive\").", +"The size code of an ad unit (e.g. \"728x90\", \"responsive\").", +"Custom channel name. The members of this dimension match the values from CustomChannel.display_name.", +"Unique ID of a custom channel. The members of this dimension match the values from CustomChannel.reporting_dimension_id.", +"Unique ID of a hosted client's custom channel.", +"Domain name of a verified site (e.g. \"example.com\"). The members of this dimension match the values from Site.domain.", +"Unique ID of a verified site. The members of this dimension match the values from Site.reporting_dimension_id.", +"URL of the page upon which the ad was served. This is a complete URL including scheme and query parameters. Note that the URL that appears in this dimension may be a canonicalized version of the one that was used in the original request, and so may not exactly match the URL that a user might have seen. Note that there are also some caveats to be aware of when using this dimension. For more information, see [Page URL breakdown](https://support.google.com/adsense/answer/11988478).", +"Name of a URL channel. The members of this dimension match the values from UrlChannel.uri_pattern.", +"Unique ID of a URL channel. The members of this dimension match the values from UrlChannel.reporting_dimension_id.", +"Name of an ad network that returned the winning ads for an ad request (e.g. \"Google AdWords\"). Note that unlike other \"NAME\" dimensions, the members of this dimensions are not localized.", +"Unique (opaque) ID of an ad network that returned the winning ads for an ad request.", +"Localized bid type name (e.g. \"CPC bids\", \"CPM bids\") for a served ad.", +"Type of a bid (e.g. \"cpc\", \"cpm\") for a served ad.", +"Localized creative size name (e.g. \"728x90\", \"Dynamic\") of a served ad.", +"Creative size code (e.g. \"728x90\", \"dynamic\") of a served ad.", +"Localized name of a host on which an ad was served, after IDNA decoding (e.g. \"www.google.com\", \"Web caches and other\", \"b\u00fccher.example\").", +"Name of a host on which an ad was served (e.g. \"www.google.com\", \"webcaches\", \"xn--bcher-kva.example\").", +"Localized region name of a user viewing an ad (e.g. \"United States\", \"France\").", +"CLDR region code of a user viewing an ad (e.g. \"US\", \"FR\").", +"Localized platform type name (e.g. \"High-end mobile devices\", \"Desktop\").", +"Platform type code (e.g. \"HighEndMobile\", \"Desktop\").", +"Localized targeting type name (e.g. \"Contextual\", \"Personalized\", \"Run of Network\").", +"Targeting type code (e.g. \"Keyword\", \"UserInterest\", \"RunOfNetwork\").", +"Localized content platform name an ad request was made from (e.g. \"AMP\", \"Web\").", +"Content platform code an ad request was made from (e.g. \"AMP\", \"HTML\").", +"Localized ad placement name (e.g. \"Ad unit\", \"Global settings\", \"Manual\").", +"Ad placement code (e.g. \"AD_UNIT\", \"ca-pub-123456:78910\", \"OTHER\").", +"Localized requested ad type name (e.g. \"Display\", \"Link unit\", \"Other\").", +"Requested ad type code (e.g. \"IMAGE\", \"RADLINK\", \"OTHER\").", +"Localized served ad type name (e.g. \"Display\", \"Link unit\", \"Other\").", +"Served ad type code (e.g. \"IMAGE\", \"RADLINK\", \"OTHER\").", +"Localized ad format name indicating the way an ad is shown to the users on your site (e.g. \"In-page\", \"Anchor\", \"Vignette\").", +"Ad format code indicating the way an ad is shown to the users on your site (e.g. \"ON_PAGE\", \"ANCHOR\", \"INTERSTITIAL\").", +"Custom search style name.", +"Custom search style id.", +"Domain registrants.", +"Query strings for web searches." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"endDate.day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"filters": { +"description": "A list of [filters](/adsense/management/reporting/filtering) to apply to the report. All provided filters must match in order for the data to be included in the report.", +"location": "query", +"repeated": true, +"type": "string" +}, +"languageCode": { +"description": "The language to use for translating report output. If unspecified, this defaults to English (\"en\"). If the given language is not supported, report output will be returned in English. The language is specified as an [IETF BCP-47 language code](https://en.wikipedia.org/wiki/IETF_language_tag).", +"location": "query", +"type": "string" +}, +"limit": { +"description": "The maximum number of rows of report data to return. Reports producing more rows than the requested limit will be truncated. If unset, this defaults to 100,000 rows for `Reports.GenerateReport` and 1,000,000 rows for `Reports.GenerateCsvReport`, which are also the maximum values permitted here. Report truncation can be identified (for `Reports.GenerateReport` only) by comparing the number of rows returned to the value returned in `total_matched_rows`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"metrics": { +"description": "Required. Reporting metrics.", +"enum": [ +"METRIC_UNSPECIFIED", +"PAGE_VIEWS", +"AD_REQUESTS", +"MATCHED_AD_REQUESTS", +"TOTAL_IMPRESSIONS", +"IMPRESSIONS", +"INDIVIDUAL_AD_IMPRESSIONS", +"CLICKS", +"PAGE_VIEWS_SPAM_RATIO", +"AD_REQUESTS_SPAM_RATIO", +"MATCHED_AD_REQUESTS_SPAM_RATIO", +"IMPRESSIONS_SPAM_RATIO", +"INDIVIDUAL_AD_IMPRESSIONS_SPAM_RATIO", +"CLICKS_SPAM_RATIO", +"AD_REQUESTS_COVERAGE", +"PAGE_VIEWS_CTR", +"AD_REQUESTS_CTR", +"MATCHED_AD_REQUESTS_CTR", +"IMPRESSIONS_CTR", +"INDIVIDUAL_AD_IMPRESSIONS_CTR", +"ACTIVE_VIEW_MEASURABILITY", +"ACTIVE_VIEW_VIEWABILITY", +"ACTIVE_VIEW_TIME", +"ESTIMATED_EARNINGS", +"PAGE_VIEWS_RPM", +"AD_REQUESTS_RPM", +"MATCHED_AD_REQUESTS_RPM", +"IMPRESSIONS_RPM", +"INDIVIDUAL_AD_IMPRESSIONS_RPM", +"COST_PER_CLICK", +"ADS_PER_IMPRESSION", +"TOTAL_EARNINGS", +"WEBSEARCH_RESULT_PAGES", +"FUNNEL_REQUESTS", +"FUNNEL_IMPRESSIONS", +"FUNNEL_CLICKS", +"FUNNEL_RPM" +], +"enumDescriptions": [ +"Unspecified metric.", +"Number of page views.", +"Number of ad units that requested ads (for content ads) or search queries (for search ads). An ad request may result in zero, one, or multiple individual ad impressions depending on the size of the ad unit and whether any ads were available.", +"Requests that returned at least one ad.", +"Impressions. An impression is counted for each ad request where at least one ad has been downloaded to the user\u2019s device and has begun to load. It is the number of ad units (for content ads) or search queries (for search ads) that showed ads.", +"Impressions. An impression is counted for each ad request where at least one ad has been downloaded to the user\u2019s device and has begun to load. It is the number of ad units (for content ads) or search queries (for search ads) that showed ads.", +"Ads shown. Different ad formats will display varying numbers of ads. For example, a vertical banner may consist of 2 or more ads. Also, the number of ads in an ad unit may vary depending on whether the ad unit is displaying standard text ads, expanded text ads or image ads.", +"Number of times a user clicked on a standard content ad.", +"Fraction of page views considered to be spam. Only available to premium accounts.", +"Fraction of ad requests considered to be spam. Only available to premium accounts.", +"Fraction of ad requests that returned ads considered to be spam. Only available to premium accounts.", +"Fraction of impressions considered to be spam. Only available to premium accounts.", +"Fraction of ad impressions considered to be spam. Only available to premium accounts.", +"Fraction of clicks considered to be spam. Only available to premium accounts.", +"Ratio of requested ad units or queries to the number returned to the site.", +"Ratio of individual page views that resulted in a click.", +"Ratio of ad requests that resulted in a click.", +"Ratio of clicks to matched requests.", +"Ratio of IMPRESSIONS that resulted in a click.", +"Ratio of individual ad impressions that resulted in a click.", +"Ratio of requests that were measurable for viewability.", +"Ratio of requests that were viewable.", +"Mean time an ad was displayed on screen.", +"Estimated earnings of the publisher. Note that earnings up to yesterday are accurate, more recent earnings are estimated due to the possibility of spam, or exchange rate fluctuations.", +"Revenue per thousand page views. This is calculated by dividing the estimated revenue by the number of page views multiplied by 1000.", +"Revenue per thousand ad requests. This is calculated by dividing estimated revenue by the number of ad requests multiplied by 1000.", +"Revenue per thousand matched ad requests. This is calculated by dividing estimated revenue by the number of matched ad requests multiplied by 1000.", +"Revenue per thousand ad impressions. This is calculated by dividing estimated revenue by the number of ad impressions multiplied by 1000.", +"Revenue per thousand individual ad impressions. This is calculated by dividing estimated revenue by the number of individual ad impressions multiplied by 1000.", +"Amount the publisher earns each time a user clicks on an ad. CPC is calculated by dividing the estimated revenue by the number of clicks received.", +"Number of ad views per impression.", +"Total earnings are the gross estimated earnings from revenue shared traffic before any parent and child account revenue share is applied.", +"Number of results pages.", +"Number of requests for non-ad units (for example a related search unit). For more information, see [Funnel requests](https://support.google.com/adsense/answer/11586959).", +"Number of requests for non-ad units ads that returned content that was shown to the user. For more information, see [Funnel impressions](https://support.google.com/adsense/answer/11585767).", +"Number of times a user clicked on a non-ad unit, triggering further ad requests. For more information, see [Funnel clicks](https://support.google.com/adsense/answer/11586382).", +"Revenue per thousand funnel impressions. This is calculated by dividing estimated revenue by the number of funnel impressions multiplied by 1000. For more information, see [Funnel RPM](https://support.google.com/adsense/answer/11585979)." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"orderBy": { +"description": "The name of a dimension or metric to sort the resulting report on, can be prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", +"location": "query", +"repeated": true, +"type": "string" +}, +"reportingTimeZone": { +"description": "Timezone in which to generate the report. If unspecified, this defaults to the account timezone. For more information, see [changing the time zone of your reports](https://support.google.com/adsense/answer/9830725).", +"enum": [ +"REPORTING_TIME_ZONE_UNSPECIFIED", +"ACCOUNT_TIME_ZONE", +"GOOGLE_TIME_ZONE" +], +"enumDescriptions": [ +"Unspecified timezone.", +"Use the account timezone in the report.", +"Use the Google timezone in the report (America/Los_Angeles)." +], +"location": "query", +"type": "string" +}, +"startDate.day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v2/{+account}/reports:generate", +"response": { +"$ref": "ReportResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"generateCsv": { +"description": "Generates a csv formatted ad hoc report.", +"flatPath": "v2/accounts/{accountsId}/reports:generateCsv", +"httpMethod": "GET", +"id": "adsense.accounts.reports.generateCsv", +"parameterOrder": [ +"account" +], +"parameters": { +"account": { +"description": "Required. The account which owns the collection of reports. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +}, +"currencyCode": { +"description": "The [ISO-4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) to use when reporting on monetary metrics. Defaults to the account's currency if not set.", +"location": "query", +"type": "string" +}, +"dateRange": { +"description": "Date range of the report, if unset the range will be considered CUSTOM.", +"enum": [ +"REPORTING_DATE_RANGE_UNSPECIFIED", +"CUSTOM", +"TODAY", +"YESTERDAY", +"MONTH_TO_DATE", +"YEAR_TO_DATE", +"LAST_7_DAYS", +"LAST_30_DAYS" +], +"enumDescriptions": [ +"Unspecified date range.", +"A custom date range specified using the `start_date` and `end_date` fields. This is the default if no ReportingDateRange is provided.", +"Current day.", +"Yesterday.", +"From the start of the current month to the current day. e.g. if the current date is 2020-03-12 then the range will be [2020-03-01, 2020-03-12].", +"From the start of the current year to the current day. e.g. if the current date is 2020-03-12 then the range will be [2020-01-01, 2020-03-12].", +"Last 7 days, excluding current day.", +"Last 30 days, excluding current day." +], +"location": "query", +"type": "string" +}, +"dimensions": { +"description": "Dimensions to base the report on.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"DATE", +"WEEK", +"MONTH", +"ACCOUNT_NAME", +"AD_CLIENT_ID", +"HOSTED_AD_CLIENT_ID", +"PRODUCT_NAME", +"PRODUCT_CODE", +"AD_UNIT_NAME", +"AD_UNIT_ID", +"AD_UNIT_SIZE_NAME", +"AD_UNIT_SIZE_CODE", +"CUSTOM_CHANNEL_NAME", +"CUSTOM_CHANNEL_ID", +"HOSTED_CUSTOM_CHANNEL_ID", +"OWNED_SITE_DOMAIN_NAME", +"OWNED_SITE_ID", +"PAGE_URL", +"URL_CHANNEL_NAME", +"URL_CHANNEL_ID", +"BUYER_NETWORK_NAME", +"BUYER_NETWORK_ID", +"BID_TYPE_NAME", +"BID_TYPE_CODE", +"CREATIVE_SIZE_NAME", +"CREATIVE_SIZE_CODE", +"DOMAIN_NAME", +"DOMAIN_CODE", +"COUNTRY_NAME", +"COUNTRY_CODE", +"PLATFORM_TYPE_NAME", +"PLATFORM_TYPE_CODE", +"TARGETING_TYPE_NAME", +"TARGETING_TYPE_CODE", +"CONTENT_PLATFORM_NAME", +"CONTENT_PLATFORM_CODE", +"AD_PLACEMENT_NAME", +"AD_PLACEMENT_CODE", +"REQUESTED_AD_TYPE_NAME", +"REQUESTED_AD_TYPE_CODE", +"SERVED_AD_TYPE_NAME", +"SERVED_AD_TYPE_CODE", +"AD_FORMAT_NAME", +"AD_FORMAT_CODE", +"CUSTOM_SEARCH_STYLE_NAME", +"CUSTOM_SEARCH_STYLE_ID", +"DOMAIN_REGISTRANT", +"WEBSEARCH_QUERY_STRING" +], +"enumDescriptions": [ +"Unspecified dimension.", +"Date dimension in YYYY-MM-DD format (e.g. \"2010-02-10\").", +"Week dimension in YYYY-MM-DD format, representing the first day of each week (e.g. \"2010-02-08\"). The first day of the week is determined by the language_code specified in a report generation request (so e.g. this would be a Monday for \"en-GB\" or \"es\", but a Sunday for \"en\" or \"fr-CA\").", +"Month dimension in YYYY-MM format (e.g. \"2010-02\").", +"Account name. The members of this dimension match the values from Account.display_name.", +"Unique ID of an ad client. The members of this dimension match the values from AdClient.reporting_dimension_id.", +"Unique ID of a sub-account's ad client. The members of this dimension match the values from AdClient.reporting_dimension_id (for the sub-account).", +"Localized product name (e.g. \"AdSense for Content\", \"AdSense for Search\").", +"Product code (e.g. \"AFC\", \"AFS\"). The members of this dimension match the values from AdClient.product_code.", +"Ad unit name (within which an ad was served). The members of this dimension match the values from AdUnit.display_name.", +"Unique ID of an ad unit (within which an ad was served). The members of this dimension match the values from AdUnit.reporting_dimension_id.", +"Localized size of an ad unit (e.g. \"728x90\", \"Responsive\").", +"The size code of an ad unit (e.g. \"728x90\", \"responsive\").", +"Custom channel name. The members of this dimension match the values from CustomChannel.display_name.", +"Unique ID of a custom channel. The members of this dimension match the values from CustomChannel.reporting_dimension_id.", +"Unique ID of a hosted client's custom channel.", +"Domain name of a verified site (e.g. \"example.com\"). The members of this dimension match the values from Site.domain.", +"Unique ID of a verified site. The members of this dimension match the values from Site.reporting_dimension_id.", +"URL of the page upon which the ad was served. This is a complete URL including scheme and query parameters. Note that the URL that appears in this dimension may be a canonicalized version of the one that was used in the original request, and so may not exactly match the URL that a user might have seen. Note that there are also some caveats to be aware of when using this dimension. For more information, see [Page URL breakdown](https://support.google.com/adsense/answer/11988478).", +"Name of a URL channel. The members of this dimension match the values from UrlChannel.uri_pattern.", +"Unique ID of a URL channel. The members of this dimension match the values from UrlChannel.reporting_dimension_id.", +"Name of an ad network that returned the winning ads for an ad request (e.g. \"Google AdWords\"). Note that unlike other \"NAME\" dimensions, the members of this dimensions are not localized.", +"Unique (opaque) ID of an ad network that returned the winning ads for an ad request.", +"Localized bid type name (e.g. \"CPC bids\", \"CPM bids\") for a served ad.", +"Type of a bid (e.g. \"cpc\", \"cpm\") for a served ad.", +"Localized creative size name (e.g. \"728x90\", \"Dynamic\") of a served ad.", +"Creative size code (e.g. \"728x90\", \"dynamic\") of a served ad.", +"Localized name of a host on which an ad was served, after IDNA decoding (e.g. \"www.google.com\", \"Web caches and other\", \"b\u00fccher.example\").", +"Name of a host on which an ad was served (e.g. \"www.google.com\", \"webcaches\", \"xn--bcher-kva.example\").", +"Localized region name of a user viewing an ad (e.g. \"United States\", \"France\").", +"CLDR region code of a user viewing an ad (e.g. \"US\", \"FR\").", +"Localized platform type name (e.g. \"High-end mobile devices\", \"Desktop\").", +"Platform type code (e.g. \"HighEndMobile\", \"Desktop\").", +"Localized targeting type name (e.g. \"Contextual\", \"Personalized\", \"Run of Network\").", +"Targeting type code (e.g. \"Keyword\", \"UserInterest\", \"RunOfNetwork\").", +"Localized content platform name an ad request was made from (e.g. \"AMP\", \"Web\").", +"Content platform code an ad request was made from (e.g. \"AMP\", \"HTML\").", +"Localized ad placement name (e.g. \"Ad unit\", \"Global settings\", \"Manual\").", +"Ad placement code (e.g. \"AD_UNIT\", \"ca-pub-123456:78910\", \"OTHER\").", +"Localized requested ad type name (e.g. \"Display\", \"Link unit\", \"Other\").", +"Requested ad type code (e.g. \"IMAGE\", \"RADLINK\", \"OTHER\").", +"Localized served ad type name (e.g. \"Display\", \"Link unit\", \"Other\").", +"Served ad type code (e.g. \"IMAGE\", \"RADLINK\", \"OTHER\").", +"Localized ad format name indicating the way an ad is shown to the users on your site (e.g. \"In-page\", \"Anchor\", \"Vignette\").", +"Ad format code indicating the way an ad is shown to the users on your site (e.g. \"ON_PAGE\", \"ANCHOR\", \"INTERSTITIAL\").", +"Custom search style name.", +"Custom search style id.", +"Domain registrants.", +"Query strings for web searches." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"endDate.day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"filters": { +"description": "A list of [filters](/adsense/management/reporting/filtering) to apply to the report. All provided filters must match in order for the data to be included in the report.", +"location": "query", +"repeated": true, +"type": "string" +}, +"languageCode": { +"description": "The language to use for translating report output. If unspecified, this defaults to English (\"en\"). If the given language is not supported, report output will be returned in English. The language is specified as an [IETF BCP-47 language code](https://en.wikipedia.org/wiki/IETF_language_tag).", +"location": "query", +"type": "string" +}, +"limit": { +"description": "The maximum number of rows of report data to return. Reports producing more rows than the requested limit will be truncated. If unset, this defaults to 100,000 rows for `Reports.GenerateReport` and 1,000,000 rows for `Reports.GenerateCsvReport`, which are also the maximum values permitted here. Report truncation can be identified (for `Reports.GenerateReport` only) by comparing the number of rows returned to the value returned in `total_matched_rows`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"metrics": { +"description": "Required. Reporting metrics.", +"enum": [ +"METRIC_UNSPECIFIED", +"PAGE_VIEWS", +"AD_REQUESTS", +"MATCHED_AD_REQUESTS", +"TOTAL_IMPRESSIONS", +"IMPRESSIONS", +"INDIVIDUAL_AD_IMPRESSIONS", +"CLICKS", +"PAGE_VIEWS_SPAM_RATIO", +"AD_REQUESTS_SPAM_RATIO", +"MATCHED_AD_REQUESTS_SPAM_RATIO", +"IMPRESSIONS_SPAM_RATIO", +"INDIVIDUAL_AD_IMPRESSIONS_SPAM_RATIO", +"CLICKS_SPAM_RATIO", +"AD_REQUESTS_COVERAGE", +"PAGE_VIEWS_CTR", +"AD_REQUESTS_CTR", +"MATCHED_AD_REQUESTS_CTR", +"IMPRESSIONS_CTR", +"INDIVIDUAL_AD_IMPRESSIONS_CTR", +"ACTIVE_VIEW_MEASURABILITY", +"ACTIVE_VIEW_VIEWABILITY", +"ACTIVE_VIEW_TIME", +"ESTIMATED_EARNINGS", +"PAGE_VIEWS_RPM", +"AD_REQUESTS_RPM", +"MATCHED_AD_REQUESTS_RPM", +"IMPRESSIONS_RPM", +"INDIVIDUAL_AD_IMPRESSIONS_RPM", +"COST_PER_CLICK", +"ADS_PER_IMPRESSION", +"TOTAL_EARNINGS", +"WEBSEARCH_RESULT_PAGES", +"FUNNEL_REQUESTS", +"FUNNEL_IMPRESSIONS", +"FUNNEL_CLICKS", +"FUNNEL_RPM" +], +"enumDescriptions": [ +"Unspecified metric.", +"Number of page views.", +"Number of ad units that requested ads (for content ads) or search queries (for search ads). An ad request may result in zero, one, or multiple individual ad impressions depending on the size of the ad unit and whether any ads were available.", +"Requests that returned at least one ad.", +"Impressions. An impression is counted for each ad request where at least one ad has been downloaded to the user\u2019s device and has begun to load. It is the number of ad units (for content ads) or search queries (for search ads) that showed ads.", +"Impressions. An impression is counted for each ad request where at least one ad has been downloaded to the user\u2019s device and has begun to load. It is the number of ad units (for content ads) or search queries (for search ads) that showed ads.", +"Ads shown. Different ad formats will display varying numbers of ads. For example, a vertical banner may consist of 2 or more ads. Also, the number of ads in an ad unit may vary depending on whether the ad unit is displaying standard text ads, expanded text ads or image ads.", +"Number of times a user clicked on a standard content ad.", +"Fraction of page views considered to be spam. Only available to premium accounts.", +"Fraction of ad requests considered to be spam. Only available to premium accounts.", +"Fraction of ad requests that returned ads considered to be spam. Only available to premium accounts.", +"Fraction of impressions considered to be spam. Only available to premium accounts.", +"Fraction of ad impressions considered to be spam. Only available to premium accounts.", +"Fraction of clicks considered to be spam. Only available to premium accounts.", +"Ratio of requested ad units or queries to the number returned to the site.", +"Ratio of individual page views that resulted in a click.", +"Ratio of ad requests that resulted in a click.", +"Ratio of clicks to matched requests.", +"Ratio of IMPRESSIONS that resulted in a click.", +"Ratio of individual ad impressions that resulted in a click.", +"Ratio of requests that were measurable for viewability.", +"Ratio of requests that were viewable.", +"Mean time an ad was displayed on screen.", +"Estimated earnings of the publisher. Note that earnings up to yesterday are accurate, more recent earnings are estimated due to the possibility of spam, or exchange rate fluctuations.", +"Revenue per thousand page views. This is calculated by dividing the estimated revenue by the number of page views multiplied by 1000.", +"Revenue per thousand ad requests. This is calculated by dividing estimated revenue by the number of ad requests multiplied by 1000.", +"Revenue per thousand matched ad requests. This is calculated by dividing estimated revenue by the number of matched ad requests multiplied by 1000.", +"Revenue per thousand ad impressions. This is calculated by dividing estimated revenue by the number of ad impressions multiplied by 1000.", +"Revenue per thousand individual ad impressions. This is calculated by dividing estimated revenue by the number of individual ad impressions multiplied by 1000.", +"Amount the publisher earns each time a user clicks on an ad. CPC is calculated by dividing the estimated revenue by the number of clicks received.", +"Number of ad views per impression.", +"Total earnings are the gross estimated earnings from revenue shared traffic before any parent and child account revenue share is applied.", +"Number of results pages.", +"Number of requests for non-ad units (for example a related search unit). For more information, see [Funnel requests](https://support.google.com/adsense/answer/11586959).", +"Number of requests for non-ad units ads that returned content that was shown to the user. For more information, see [Funnel impressions](https://support.google.com/adsense/answer/11585767).", +"Number of times a user clicked on a non-ad unit, triggering further ad requests. For more information, see [Funnel clicks](https://support.google.com/adsense/answer/11586382).", +"Revenue per thousand funnel impressions. This is calculated by dividing estimated revenue by the number of funnel impressions multiplied by 1000. For more information, see [Funnel RPM](https://support.google.com/adsense/answer/11585979)." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"orderBy": { +"description": "The name of a dimension or metric to sort the resulting report on, can be prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", +"location": "query", +"repeated": true, +"type": "string" +}, +"reportingTimeZone": { +"description": "Timezone in which to generate the report. If unspecified, this defaults to the account timezone. For more information, see [changing the time zone of your reports](https://support.google.com/adsense/answer/9830725).", +"enum": [ +"REPORTING_TIME_ZONE_UNSPECIFIED", +"ACCOUNT_TIME_ZONE", +"GOOGLE_TIME_ZONE" +], +"enumDescriptions": [ +"Unspecified timezone.", +"Use the account timezone in the report.", +"Use the Google timezone in the report (America/Los_Angeles)." +], +"location": "query", +"type": "string" +}, +"startDate.day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v2/{+account}/reports:generateCsv", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"getSaved": { +"description": "Gets the saved report from the given resource name.", +"flatPath": "v2/accounts/{accountsId}/reports/{reportsId}/saved", +"httpMethod": "GET", +"id": "adsense.accounts.reports.getSaved", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the saved report to retrieve. Format: accounts/{account}/reports/{report}", +"location": "path", +"pattern": "^accounts/[^/]+/reports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}/saved", +"response": { +"$ref": "SavedReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +} +}, +"resources": { +"saved": { +"methods": { +"generate": { +"description": "Generates a saved report.", +"flatPath": "v2/accounts/{accountsId}/reports/{reportsId}/saved:generate", +"httpMethod": "GET", +"id": "adsense.accounts.reports.saved.generate", +"parameterOrder": [ +"name" +], +"parameters": { +"currencyCode": { +"description": "The [ISO-4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) to use when reporting on monetary metrics. Defaults to the account's currency if not set.", +"location": "query", +"type": "string" +}, +"dateRange": { +"description": "Date range of the report, if unset the range will be considered CUSTOM.", +"enum": [ +"REPORTING_DATE_RANGE_UNSPECIFIED", +"CUSTOM", +"TODAY", +"YESTERDAY", +"MONTH_TO_DATE", +"YEAR_TO_DATE", +"LAST_7_DAYS", +"LAST_30_DAYS" +], +"enumDescriptions": [ +"Unspecified date range.", +"A custom date range specified using the `start_date` and `end_date` fields. This is the default if no ReportingDateRange is provided.", +"Current day.", +"Yesterday.", +"From the start of the current month to the current day. e.g. if the current date is 2020-03-12 then the range will be [2020-03-01, 2020-03-12].", +"From the start of the current year to the current day. e.g. if the current date is 2020-03-12 then the range will be [2020-01-01, 2020-03-12].", +"Last 7 days, excluding current day.", +"Last 30 days, excluding current day." +], +"location": "query", +"type": "string" +}, +"endDate.day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"languageCode": { +"description": "The language to use for translating report output. If unspecified, this defaults to English (\"en\"). If the given language is not supported, report output will be returned in English. The language is specified as an [IETF BCP-47 language code](https://en.wikipedia.org/wiki/IETF_language_tag).", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the saved report. Format: accounts/{account}/reports/{report}", +"location": "path", +"pattern": "^accounts/[^/]+/reports/[^/]+$", +"required": true, +"type": "string" +}, +"reportingTimeZone": { +"description": "Timezone in which to generate the report. If unspecified, this defaults to the account timezone. For more information, see [changing the time zone of your reports](https://support.google.com/adsense/answer/9830725).", +"enum": [ +"REPORTING_TIME_ZONE_UNSPECIFIED", +"ACCOUNT_TIME_ZONE", +"GOOGLE_TIME_ZONE" +], +"enumDescriptions": [ +"Unspecified timezone.", +"Use the account timezone in the report.", +"Use the Google timezone in the report (America/Los_Angeles)." +], +"location": "query", +"type": "string" +}, +"startDate.day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v2/{+name}/saved:generate", +"response": { +"$ref": "ReportResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"generateCsv": { +"description": "Generates a csv formatted saved report.", +"flatPath": "v2/accounts/{accountsId}/reports/{reportsId}/saved:generateCsv", +"httpMethod": "GET", +"id": "adsense.accounts.reports.saved.generateCsv", +"parameterOrder": [ +"name" +], +"parameters": { +"currencyCode": { +"description": "The [ISO-4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) to use when reporting on monetary metrics. Defaults to the account's currency if not set.", +"location": "query", +"type": "string" +}, +"dateRange": { +"description": "Date range of the report, if unset the range will be considered CUSTOM.", +"enum": [ +"REPORTING_DATE_RANGE_UNSPECIFIED", +"CUSTOM", +"TODAY", +"YESTERDAY", +"MONTH_TO_DATE", +"YEAR_TO_DATE", +"LAST_7_DAYS", +"LAST_30_DAYS" +], +"enumDescriptions": [ +"Unspecified date range.", +"A custom date range specified using the `start_date` and `end_date` fields. This is the default if no ReportingDateRange is provided.", +"Current day.", +"Yesterday.", +"From the start of the current month to the current day. e.g. if the current date is 2020-03-12 then the range will be [2020-03-01, 2020-03-12].", +"From the start of the current year to the current day. e.g. if the current date is 2020-03-12 then the range will be [2020-01-01, 2020-03-12].", +"Last 7 days, excluding current day.", +"Last 30 days, excluding current day." +], +"location": "query", +"type": "string" +}, +"endDate.day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"endDate.year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"languageCode": { +"description": "The language to use for translating report output. If unspecified, this defaults to English (\"en\"). If the given language is not supported, report output will be returned in English. The language is specified as an [IETF BCP-47 language code](https://en.wikipedia.org/wiki/IETF_language_tag).", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the saved report. Format: accounts/{account}/reports/{report}", +"location": "path", +"pattern": "^accounts/[^/]+/reports/[^/]+$", +"required": true, +"type": "string" +}, +"reportingTimeZone": { +"description": "Timezone in which to generate the report. If unspecified, this defaults to the account timezone. For more information, see [changing the time zone of your reports](https://support.google.com/adsense/answer/9830725).", +"enum": [ +"REPORTING_TIME_ZONE_UNSPECIFIED", +"ACCOUNT_TIME_ZONE", +"GOOGLE_TIME_ZONE" +], +"enumDescriptions": [ +"Unspecified timezone.", +"Use the account timezone in the report.", +"Use the Google timezone in the report (America/Los_Angeles)." +], +"location": "query", +"type": "string" +}, +"startDate.day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"startDate.year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"location": "query", +"type": "integer" +} +}, +"path": "v2/{+name}/saved:generateCsv", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"list": { +"description": "Lists saved reports.", +"flatPath": "v2/accounts/{accountsId}/reports/saved", +"httpMethod": "GET", +"id": "adsense.accounts.reports.saved.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of reports to include in the response, used for paging. If unspecified, at most 10000 reports will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListSavedReports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSavedReports` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account which owns the collection of reports. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/reports/saved", +"response": { +"$ref": "ListSavedReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +} +} +} +} +}, +"sites": { +"methods": { +"get": { +"description": "Gets information about the selected site.", +"flatPath": "v2/accounts/{accountsId}/sites/{sitesId}", +"httpMethod": "GET", +"id": "adsense.accounts.sites.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the site. Format: accounts/{account}/sites/{site}", +"location": "path", +"pattern": "^accounts/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Site" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +}, +"list": { +"description": "Lists all the sites available in an account.", +"flatPath": "v2/accounts/{accountsId}/sites", +"httpMethod": "GET", +"id": "adsense.accounts.sites.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of sites to include in the response, used for paging. If unspecified, at most 10000 sites will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListSites` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSites` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account which owns the collection of sites. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/sites", +"response": { +"$ref": "ListSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adsense", +"https://www.googleapis.com/auth/adsense.readonly" +] +} +} +} +} +} +}, +"revision": "20241211", +"rootUrl": "https://adsense.googleapis.com/", +"schemas": { +"Account": { +"description": "Representation of an account.", +"id": "Account", +"properties": { +"createTime": { +"description": "Output only. Creation time of the account.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. Display name of this account.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Resource name of the account. Format: accounts/pub-[0-9]+", +"readOnly": true, +"type": "string" +}, +"pendingTasks": { +"description": "Output only. Outstanding tasks that need to be completed as part of the sign-up process for a new account. e.g. \"billing-profile-creation\", \"phone-pin-verification\".", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"premium": { +"description": "Output only. Whether this account is premium.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. State of the account.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"NEEDS_ATTENTION", +"CLOSED" +], +"enumDescriptions": [ +"State unspecified.", +"The account is open and ready to serve ads.", +"There are some issues with this account. Publishers should visit AdSense in order to fix the account.", +"The account is closed and can't serve ads." +], +"readOnly": true, +"type": "string" +}, +"timeZone": { +"$ref": "TimeZone", +"description": "The account time zone, as used by reporting. For more information, see [changing the time zone of your reports](https://support.google.com/adsense/answer/9830725)." +} +}, +"type": "object" +}, +"AdBlockingRecoveryTag": { +"description": "Representation of an ad blocking recovery tag. See https://support.google.com/adsense/answer/11575177.", +"id": "AdBlockingRecoveryTag", +"properties": { +"errorProtectionCode": { +"description": "Error protection code that can be used in conjunction with the tag. It'll display a message to users if an [ad blocking extension blocks their access to your site](https://support.google.com/adsense/answer/11575480).", +"type": "string" +}, +"tag": { +"description": "The ad blocking recovery tag. Note that the message generated by the tag can be blocked by an ad blocking extension. If this is not your desired outcome, then you'll need to use it in conjunction with the error protection code.", +"type": "string" +} +}, +"type": "object" +}, +"AdClient": { +"description": "Representation of an ad client. An ad client represents a user's subscription with a specific AdSense product.", +"id": "AdClient", +"properties": { +"name": { +"description": "Output only. Resource name of the ad client. Format: accounts/{account}/adclients/{adclient}", +"readOnly": true, +"type": "string" +}, +"productCode": { +"description": "Output only. Reporting product code of the ad client. For example, \"AFC\" for AdSense for Content. Corresponds to the `PRODUCT_CODE` dimension, and present only if the ad client supports reporting.", +"readOnly": true, +"type": "string" +}, +"reportingDimensionId": { +"description": "Output only. Unique ID of the ad client as used in the `AD_CLIENT_ID` reporting dimension. Present only if the ad client supports reporting.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the ad client.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"GETTING_READY", +"REQUIRES_REVIEW" +], +"enumDescriptions": [ +"State unspecified.", +"The ad client is ready to show ads.", +"Running some checks on the ad client before it is ready to serve ads.", +"The ad client hasn't been checked yet. There are tasks pending before AdSense will start the review." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdClientAdCode": { +"description": "Representation of the AdSense code for a given ad client. For more information, see [About the AdSense code](https://support.google.com/adsense/answer/9274634).", +"id": "AdClientAdCode", +"properties": { +"adCode": { +"description": "Output only. The AdSense code snippet to add to the head of an HTML page.", +"readOnly": true, +"type": "string" +}, +"ampBody": { +"description": "Output only. The AdSense code snippet to add to the body of an AMP page.", +"readOnly": true, +"type": "string" +}, +"ampHead": { +"description": "Output only. The AdSense code snippet to add to the head of an AMP page.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdUnit": { +"description": "Representation of an ad unit. An ad unit represents a saved ad unit with a specific set of ad settings that have been customized within an account.", +"id": "AdUnit", +"properties": { +"contentAdsSettings": { +"$ref": "ContentAdsSettings", +"description": "Required. Settings specific to content ads (AFC)." +}, +"displayName": { +"description": "Required. Display name of the ad unit, as provided when the ad unit was created.", +"type": "string" +}, +"name": { +"description": "Output only. Resource name of the ad unit. Format: accounts/{account}/adclients/{adclient}/adunits/{adunit}", +"readOnly": true, +"type": "string" +}, +"reportingDimensionId": { +"description": "Output only. Unique ID of the ad unit as used in the `AD_UNIT_ID` reporting dimension.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Required. State of the ad unit.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"ARCHIVED" +], +"enumDescriptions": [ +"State unspecified.", +"Ad unit has been activated by the user.", +"Ad unit has been archived by the user. Note that archived ad units are only removed from the default view in the UI. Archived ad units can still serve ads." +], +"type": "string" +} +}, +"type": "object" +}, +"AdUnitAdCode": { +"description": "Representation of the ad unit code for a given ad unit. For more information, see [About the AdSense code](https://support.google.com/adsense/answer/9274634) and [Where to place the ad code in your HTML](https://support.google.com/adsense/answer/9190028).", +"id": "AdUnitAdCode", +"properties": { +"adCode": { +"description": "Output only. The code snippet to add to the body of an HTML page.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Alert": { +"description": "Representation of an alert.", +"id": "Alert", +"properties": { +"message": { +"description": "Output only. The localized alert message. This may contain HTML markup, such as phrase elements or links.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Resource name of the alert. Format: accounts/{account}/alerts/{alert}", +"readOnly": true, +"type": "string" +}, +"severity": { +"description": "Output only. Severity of this alert.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"INFO", +"WARNING", +"SEVERE" +], +"enumDescriptions": [ +"Unspecified severity.", +"Info.", +"Warning.", +"Severe." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. Type of alert. This identifies the broad type of this alert, and provides a stable machine-readable identifier that will not be translated. For example, \"payment-hold\".", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Cell": { +"description": "Cell representation.", +"id": "Cell", +"properties": { +"value": { +"description": "Value in the cell. The dimension cells contain strings, and the metric cells contain numbers.", +"type": "string" +} +}, +"type": "object" +}, +"ContentAdsSettings": { +"description": "Settings specific to content ads (AFC).", +"id": "ContentAdsSettings", +"properties": { +"size": { +"description": "Required. Size of the ad unit. e.g. \"728x90\", \"1x3\" (for responsive ad units).", +"type": "string" +}, +"type": { +"description": "Required. Type of the ad unit.", +"enum": [ +"TYPE_UNSPECIFIED", +"DISPLAY", +"FEED", +"ARTICLE", +"MATCHED_CONTENT", +"LINK" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +true +], +"enumDescriptions": [ +"Unspecified ad unit type.", +"Display ad unit.", +"In-feed ad unit.", +"In-article ad unit.", +"Matched content unit.", +"Link ad unit. Note that link ad units have now been retired, see https://support.google.com/adsense/answer/9987221." +], +"type": "string" +} +}, +"type": "object" +}, +"CustomChannel": { +"description": "Representation of a custom channel.", +"id": "CustomChannel", +"properties": { +"active": { +"description": "Whether the custom channel is active and collecting data. See https://support.google.com/adsense/answer/10077192.", +"type": "boolean" +}, +"displayName": { +"description": "Required. Display name of the custom channel.", +"type": "string" +}, +"name": { +"description": "Output only. Resource name of the custom channel. Format: accounts/{account}/adclients/{adclient}/customchannels/{customchannel}", +"readOnly": true, +"type": "string" +}, +"reportingDimensionId": { +"description": "Output only. Unique ID of the custom channel as used in the `CUSTOM_CHANNEL_ID` reporting dimension.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Header": { +"description": "The header information of the columns requested in the report.", +"id": "Header", +"properties": { +"currencyCode": { +"description": "The [ISO-4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) of this column. Only present if the header type is METRIC_CURRENCY.", +"type": "string" +}, +"name": { +"description": "Required. Name of the header.", +"type": "string" +}, +"type": { +"description": "Required. Type of the header.", +"enum": [ +"HEADER_TYPE_UNSPECIFIED", +"DIMENSION", +"METRIC_TALLY", +"METRIC_RATIO", +"METRIC_CURRENCY", +"METRIC_MILLISECONDS", +"METRIC_DECIMAL" +], +"enumDescriptions": [ +"Unspecified header.", +"Dimension header type.", +"Tally header type.", +"Ratio header type.", +"Currency header type.", +"Milliseconds header type.", +"Decimal header type." +], +"type": "string" +} +}, +"type": "object" +}, +"HttpBody": { +"description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", +"id": "HttpBody", +"properties": { +"contentType": { +"description": "The HTTP Content-Type header value specifying the content type of the body.", +"type": "string" +}, +"data": { +"description": "The HTTP request/response body as raw binary.", +"format": "byte", +"type": "string" +}, +"extensions": { +"description": "Application specific response metadata. Must be set in the first response for streaming APIs.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListAccountsResponse": { +"description": "Response definition for the account list rpc.", +"id": "ListAccountsResponse", +"properties": { +"accounts": { +"description": "The accounts returned in this list response.", +"items": { +"$ref": "Account" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token used to page through accounts. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdClientsResponse": { +"description": "Response definition for the ad client list rpc.", +"id": "ListAdClientsResponse", +"properties": { +"adClients": { +"description": "The ad clients returned in this list response.", +"items": { +"$ref": "AdClient" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token used to page through ad clients. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdUnitsResponse": { +"description": "Response definition for the adunit list rpc.", +"id": "ListAdUnitsResponse", +"properties": { +"adUnits": { +"description": "The ad units returned in the list response.", +"items": { +"$ref": "AdUnit" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token used to page through ad units. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +} +}, +"type": "object" +}, +"ListAlertsResponse": { +"description": "Response definition for the alerts list rpc.", +"id": "ListAlertsResponse", +"properties": { +"alerts": { +"description": "The alerts returned in this list response.", +"items": { +"$ref": "Alert" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListChildAccountsResponse": { +"description": "Response definition for the child account list rpc.", +"id": "ListChildAccountsResponse", +"properties": { +"accounts": { +"description": "The accounts returned in this list response.", +"items": { +"$ref": "Account" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token used to page through accounts. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +} +}, +"type": "object" +}, +"ListCustomChannelsResponse": { +"description": "Response definition for the custom channel list rpc.", +"id": "ListCustomChannelsResponse", +"properties": { +"customChannels": { +"description": "The custom channels returned in this list response.", +"items": { +"$ref": "CustomChannel" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token used to page through alerts. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +} +}, +"type": "object" +}, +"ListLinkedAdUnitsResponse": { +"description": "Response definition for the ad units linked to a custom channel list rpc.", +"id": "ListLinkedAdUnitsResponse", +"properties": { +"adUnits": { +"description": "The ad units returned in the list response.", +"items": { +"$ref": "AdUnit" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token used to page through ad units. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +} +}, +"type": "object" +}, +"ListLinkedCustomChannelsResponse": { +"description": "Response definition for the custom channels linked to an adunit list rpc.", +"id": "ListLinkedCustomChannelsResponse", +"properties": { +"customChannels": { +"description": "The custom channels returned in this list response.", +"items": { +"$ref": "CustomChannel" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token used to page through alerts. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +} +}, +"type": "object" +}, +"ListPaymentsResponse": { +"description": "Response definition for the payments list rpc.", +"id": "ListPaymentsResponse", +"properties": { +"payments": { +"description": "The payments returned in this list response.", +"items": { +"$ref": "Payment" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPolicyIssuesResponse": { +"description": "Response definition for the policy issues list rpc. Policy issues are reported only if the publisher has at least one AFC ad client in READY or GETTING_READY state. If the publisher has no such AFC ad client, the response will be an empty list.", +"id": "ListPolicyIssuesResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token used to page through policy issues. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +}, +"policyIssues": { +"description": "The policy issues returned in the list response.", +"items": { +"$ref": "PolicyIssue" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSavedReportsResponse": { +"description": "Response definition for the saved reports list rpc.", +"id": "ListSavedReportsResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token used to page through reports. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +}, +"savedReports": { +"description": "The reports returned in this list response.", +"items": { +"$ref": "SavedReport" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSitesResponse": { +"description": "Response definition for the sites list rpc.", +"id": "ListSitesResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token used to page through sites. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +}, +"sites": { +"description": "The sites returned in this list response.", +"items": { +"$ref": "Site" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUrlChannelsResponse": { +"description": "Response definition for the url channels list rpc.", +"id": "ListUrlChannelsResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token used to page through url channels. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", +"type": "string" +}, +"urlChannels": { +"description": "The url channels returned in this list response.", +"items": { +"$ref": "UrlChannel" +}, +"type": "array" +} +}, +"type": "object" +}, +"Payment": { +"description": "Representation of an unpaid or paid payment. See [Payment timelines for AdSense](https://support.google.com/adsense/answer/7164703) for more information about payments and the [YouTube homepage and payments account](https://support.google.com/adsense/answer/11622510) article for information about dedicated payments accounts for YouTube.", +"id": "Payment", +"properties": { +"amount": { +"description": "Output only. The amount of unpaid or paid earnings, as a formatted string, including the currency. E.g. \"\u00a51,235 JPY\", \"$1,234.57\", \"\u00a387.65\".", +"readOnly": true, +"type": "string" +}, +"date": { +"$ref": "Date", +"description": "Output only. For paid earnings, the date that the payment was credited. For unpaid earnings, this field is empty. Payment dates are always returned in the billing timezone (America/Los_Angeles).", +"readOnly": true +}, +"name": { +"description": "Output only. Resource name of the payment. Format: - accounts/{account}/payments/unpaid for unpaid (current) AdSense earnings. - accounts/{account}/payments/youtube-unpaid for unpaid (current) YouTube earnings. - accounts/{account}/payments/yyyy-MM-dd for paid AdSense earnings. - accounts/{account}/payments/youtube-yyyy-MM-dd for paid YouTube earnings.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PolicyIssue": { +"description": "Representation of a policy issue for a single entity (site, site-section, or page). All issues for a single entity are represented by a single PolicyIssue resource, though that PolicyIssue can have multiple causes (or \"topics\") that can change over time. Policy issues are removed if there are no issues detected recently or if there's a recent successful appeal for the entity.", +"id": "PolicyIssue", +"properties": { +"action": { +"description": "Required. The most severe action taken on the entity over the past seven days.", +"enum": [ +"ENFORCEMENT_ACTION_UNSPECIFIED", +"WARNED", +"AD_SERVING_RESTRICTED", +"AD_SERVING_DISABLED", +"AD_SERVED_WITH_CLICK_CONFIRMATION", +"AD_PERSONALIZATION_RESTRICTED" +], +"enumDescriptions": [ +"The action is unspecified.", +"No ad serving enforcement is currently present, but enforcement will start on the `warning_escalation_date` if the issue is not resolved.", +"Ad serving demand has been restricted on the entity.", +"Ad serving has been disabled on the entity.", +"Ads are being served for the entity but Confirmed Click is being applied to the ads. See https://support.google.com/adsense/answer/10025624.", +"Ad personalization is restricted because the ad requests coming from the EEA and UK do not have a TCF string or the Consent Management Platform (CMP) indicated by the TCF string is not Google certified. As a result, basic/limited ads will be served. See https://support.google.com/adsense/answer/13554116" +], +"type": "string" +}, +"adClients": { +"description": "Optional. List of ad clients associated with the policy issue (either as the primary ad client or an associated host/secondary ad client). In the latter case, this will be an ad client that is not owned by the current account.", +"items": { +"type": "string" +}, +"type": "array" +}, +"adRequestCount": { +"description": "Required. Total number of ad requests affected by the policy violations over the past seven days.", +"format": "int64", +"type": "string" +}, +"entityType": { +"description": "Required. Type of the entity indicating if the entity is a site, site-section, or page.", +"enum": [ +"ENTITY_TYPE_UNSPECIFIED", +"SITE", +"SITE_SECTION", +"PAGE" +], +"enumDescriptions": [ +"The entity type is unspecified.", +"The enforced entity is an entire website.", +"The enforced entity is a particular section of a website. All the pages with this prefix are enforced.", +"The enforced entity is a single web page." +], +"type": "string" +}, +"firstDetectedDate": { +"$ref": "Date", +"description": "Required. The date (in the America/Los_Angeles timezone) when policy violations were first detected on the entity." +}, +"lastDetectedDate": { +"$ref": "Date", +"description": "Required. The date (in the America/Los_Angeles timezone) when policy violations were last detected on the entity." +}, +"name": { +"description": "Required. Resource name of the entity with policy issues. Format: accounts/{account}/policyIssues/{policy_issue}", +"type": "string" +}, +"policyTopics": { +"description": "Required. Unordered list. The policy topics that this entity was found to violate over the past seven days.", +"items": { +"$ref": "PolicyTopic" +}, +"type": "array" +}, +"site": { +"description": "Required. Hostname/domain of the entity (for example \"foo.com\" or \"www.foo.com\"). This _should_ be a bare domain/host name without any protocol. This will be present for all policy issues.", +"type": "string" +}, +"siteSection": { +"description": "Optional. Prefix of the site-section having policy issues (For example \"foo.com/bar-section\"). This will be present if the `entity_type` is `SITE_SECTION` and will be absent for other entity types.", +"type": "string" +}, +"uri": { +"description": "Optional. URI of the page having policy violations (for example \"foo.com/bar\" or \"www.foo.com/bar\"). This will be present if the `entity_type` is `PAGE` and will be absent for other entity types.", +"type": "string" +}, +"warningEscalationDate": { +"$ref": "Date", +"description": "Optional. The date (in the America/Los_Angeles timezone) when the entity will have ad serving demand restricted or ad serving disabled. This is present only for issues with a `WARNED` enforcement action. See https://support.google.com/adsense/answer/11066888." +} +}, +"type": "object" +}, +"PolicyTopic": { +"description": "Information about a particular policy topic. A policy topic represents a single class of policy issue that can impact ad serving for your site. For example, sexual content or having ads that obscure your content. A single policy issue can have multiple policy topics for a single entity.", +"id": "PolicyTopic", +"properties": { +"mustFix": { +"description": "Required. Indicates if this is a policy violation or not. When the value is true, issues that are instances of this topic must be addressed to remain in compliance with the partner's agreements with Google. A false value indicates that it's not mandatory to fix the issues but advertising demand might be restricted.", +"type": "boolean" +}, +"topic": { +"description": "Required. The policy topic. For example, \"sexual-content\" or \"ads-obscuring-content\".\"", +"type": "string" +} +}, +"type": "object" +}, +"ReportResult": { +"description": "Result of a generated report.", +"id": "ReportResult", +"properties": { +"averages": { +"$ref": "Row", +"description": "The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty." +}, +"endDate": { +"$ref": "Date", +"description": "Required. End date of the range (inclusive)." +}, +"headers": { +"description": "The header information; one for each dimension in the request, followed by one for each metric in the request.", +"items": { +"$ref": "Header" +}, +"type": "array" +}, +"rows": { +"description": "The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request.", +"items": { +"$ref": "Row" +}, +"type": "array" +}, +"startDate": { +"$ref": "Date", +"description": "Required. Start date of the range (inclusive)." +}, +"totalMatchedRows": { +"description": "The total number of rows matched by the report request.", +"format": "int64", +"type": "string" +}, +"totals": { +"$ref": "Row", +"description": "The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty." +}, +"warnings": { +"description": "Any warnings associated with generation of the report. These warnings are always returned in English.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Row": { +"description": "Row representation.", +"id": "Row", +"properties": { +"cells": { +"description": "Cells in the row.", +"items": { +"$ref": "Cell" +}, +"type": "array" +} +}, +"type": "object" +}, +"SavedReport": { +"description": "Representation of a saved report.", +"id": "SavedReport", +"properties": { +"name": { +"description": "Output only. Resource name of the report. Format: accounts/{account}/reports/{report}", +"readOnly": true, +"type": "string" +}, +"title": { +"description": "Report title as specified by publisher.", +"type": "string" +} +}, +"type": "object" +}, +"Site": { +"description": "Representation of a Site.", +"id": "Site", +"properties": { +"autoAdsEnabled": { +"description": "Whether auto ads is turned on for the site.", +"type": "boolean" +}, +"domain": { +"description": "Domain (or subdomain) of the site, e.g. \"example.com\" or \"www.example.com\". This is used in the `OWNED_SITE_DOMAIN_NAME` reporting dimension.", +"type": "string" +}, +"name": { +"description": "Output only. Resource name of a site. Format: accounts/{account}/sites/{site}", +"readOnly": true, +"type": "string" +}, +"reportingDimensionId": { +"description": "Output only. Unique ID of the site as used in the `OWNED_SITE_ID` reporting dimension.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of a site.", +"enum": [ +"STATE_UNSPECIFIED", +"REQUIRES_REVIEW", +"GETTING_READY", +"READY", +"NEEDS_ATTENTION" +], +"enumDescriptions": [ +"State unspecified.", +"Either: * The site hasn't been checked yet. * The site is inactive and needs another review before it can show ads again. Learn how to [request a review for an inactive site](https://support.google.com/adsense/answer/9393996).", +"Google is running some checks on the site. This usually takes a few days, but in some cases it can take two to four weeks.", +"The site is ready to show ads. Learn how to [set up ads on the site](https://support.google.com/adsense/answer/7037624).", +"Publisher needs to fix some issues before the site is ready to show ads. Learn what to do [if a new site isn't ready](https://support.google.com/adsense/answer/9061852)." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TimeZone": { +"description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", +"id": "TimeZone", +"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" +} +}, +"type": "object" +}, +"UrlChannel": { +"description": "Representation of a URL channel. URL channels allow you to track the performance of particular pages in your site; see [URL channels](https://support.google.com/adsense/answer/2923836) for more information.", +"id": "UrlChannel", +"properties": { +"name": { +"description": "Output only. Resource name of the URL channel. Format: accounts/{account}/adclients/{adclient}/urlchannels/{urlchannel}", +"readOnly": true, +"type": "string" +}, +"reportingDimensionId": { +"description": "Output only. Unique ID of the custom channel as used in the `URL_CHANNEL_ID` reporting dimension.", +"readOnly": true, +"type": "string" +}, +"uriPattern": { +"description": "URI pattern of the channel. Does not include \"http://\" or \"https://\". Example: www.example.com/home", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "AdSense Management API", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/apigee.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/apigee.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..1e5a61868d4e3f425076f0078b6f7e37711ce72e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/apigee.v1.json @@ -0,0 +1,18993 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://apigee.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Apigee", +"description": "Use the Apigee API to programmatically develop and manage APIs with a set of RESTful operations. Develop and secure API proxies, deploy and undeploy API proxy revisions, monitor APIs, configure environments, manage users, and more. Note: This product is available as a free trial for a time period of 60 days.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/apigee-api-management/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://apigee.us.rep.googleapis.com/", +"location": "us" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://apigee.eu.rep.googleapis.com/", +"location": "eu" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "apigee:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://apigee.mtls.googleapis.com/", +"name": "apigee", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"hybrid": { +"resources": { +"issuers": { +"methods": { +"list": { +"description": "Lists hybrid services and its trusted issuers service account ids. This api is authenticated and unauthorized(allow all the users) and used by runtime authn-authz service to query control plane's issuer service account ids.", +"flatPath": "v1/hybrid/issuers", +"httpMethod": "GET", +"id": "apigee.hybrid.issuers.list", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Must be of the form `hybrid/issuers`.", +"location": "path", +"pattern": "^hybrid/issuers$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ListHybridIssuersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"organizations": { +"methods": { +"create": { +"description": "Creates an Apigee organization. See [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).", +"flatPath": "v1/organizations", +"httpMethod": "POST", +"id": "apigee.organizations.create", +"parameterOrder": [], +"parameters": { +"parent": { +"description": "Required. Name of the Google Cloud project in which to associate the Apigee organization. Pass the information as a query parameter using the following structure in your request: `projects/`", +"location": "query", +"type": "string" +} +}, +"path": "v1/organizations", +"request": { +"$ref": "GoogleCloudApigeeV1Organization" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete an Apigee organization. For organizations with BillingType EVALUATION, an immediate deletion is performed. For paid organizations (Subscription or Pay-as-you-go), a soft-deletion is performed. The organization can be restored within the soft-deletion period, which is specified using the `retention` field in the request or by filing a support ticket with Apigee. During the data retention period specified in the request, the Apigee organization cannot be recreated in the same Google Cloud project. **IMPORTANT: The default data retention setting for this operation is 7 days. To permanently delete the organization in 24 hours, set the retention parameter to `MINIMUM`.**", +"flatPath": "v1/organizations/{organizationsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the organization. Use the following structure in your request: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"retention": { +"description": "Optional. This setting is applicable only for organizations that are soft-deleted (i.e., BillingType is not EVALUATION). It controls how long Organization data will be retained after the initial delete operation completes. During this period, the Organization may be restored to its last known state. After this period, the Organization will no longer be able to be restored. **Note: During the data retention period specified using this field, the Apigee organization cannot be recreated in the same Google Cloud project.**", +"enum": [ +"DELETION_RETENTION_UNSPECIFIED", +"MINIMUM" +], +"enumDescriptions": [ +"Default data retention setting of seven days will be applied.", +"Organization data will be retained for the minimum period of 24 hours." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the profile for an Apigee organization. See [Understanding organizations](https://cloud.google.com/apigee/docs/api-platform/fundamentals/organization-structure).", +"flatPath": "v1/organizations/{organizationsId}", +"httpMethod": "GET", +"id": "apigee.organizations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Apigee organization name in the following format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Organization" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getControlPlaneAccess": { +"description": "Lists the service accounts allowed to access Apigee control plane directly for limited functionality. **Note**: Available to Apigee hybrid only.", +"flatPath": "v1/organizations/{organizationsId}/controlPlaneAccess", +"httpMethod": "GET", +"id": "apigee.organizations.getControlPlaneAccess", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Control Plane Access. Use the following structure in your request: `organizations/{org}/controlPlaneAccess`", +"location": "path", +"pattern": "^organizations/[^/]+/controlPlaneAccess$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ControlPlaneAccess" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDeployedIngressConfig": { +"description": "Gets the deployed ingress configuration for an organization.", +"flatPath": "v1/organizations/{organizationsId}/deployedIngressConfig", +"httpMethod": "GET", +"id": "apigee.organizations.getDeployedIngressConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the deployed configuration for the organization in the following format: 'organizations/{org}/deployedIngressConfig'.", +"location": "path", +"pattern": "^organizations/[^/]+/deployedIngressConfig$", +"required": true, +"type": "string" +}, +"view": { +"description": "When set to FULL, additional details about the specific deployments receiving traffic will be included in the IngressConfig response's RoutingRules.", +"enum": [ +"INGRESS_CONFIG_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default/unset value. The API will default to the BASIC view.", +"Include all ingress config data necessary for the runtime to configure ingress, but no more. Routing rules will include only basepath and destination environment. This the default value.", +"Include all ingress config data, including internal debug info for each routing rule such as the proxy claiming a particular basepath and when the routing rule first appeared in the env group." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1IngressConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getProjectMapping": { +"description": "Gets the project ID and region for an Apigee organization.", +"flatPath": "v1/organizations/{organizationsId}:getProjectMapping", +"httpMethod": "GET", +"id": "apigee.organizations.getProjectMapping", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Apigee organization name in the following format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:getProjectMapping", +"response": { +"$ref": "GoogleCloudApigeeV1OrganizationProjectMapping" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getRuntimeConfig": { +"description": "Get runtime config for an organization.", +"flatPath": "v1/organizations/{organizationsId}/runtimeConfig", +"httpMethod": "GET", +"id": "apigee.organizations.getRuntimeConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the runtime config for the organization in the following format: 'organizations/{org}/runtimeConfig'.", +"location": "path", +"pattern": "^organizations/[^/]+/runtimeConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1RuntimeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSecuritySettings": { +"description": "GetSecuritySettings gets the security settings for API Security.", +"flatPath": "v1/organizations/{organizationsId}/securitySettings", +"httpMethod": "GET", +"id": "apigee.organizations.getSecuritySettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecuritySettings to retrieve. This will always be: 'organizations/{org}/securitySettings'.", +"location": "path", +"pattern": "^organizations/[^/]+/securitySettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecuritySettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSyncAuthorization": { +"description": "Lists the service accounts with the permissions required to allow the Synchronizer to download environment data from the control plane. An ETag is returned in the response to `getSyncAuthorization`. Pass that ETag when calling [setSyncAuthorization](setSyncAuthorization) to ensure that you are updating the correct version. If you don't pass the ETag in the call to `setSyncAuthorization`, then the existing authorization is overwritten indiscriminately. For more information, see [Configure the Synchronizer](https://cloud.google.com/apigee/docs/hybrid/latest/synchronizer-access). **Note**: Available to Apigee hybrid only.", +"flatPath": "v1/organizations/{organizationsId}:getSyncAuthorization", +"httpMethod": "POST", +"id": "apigee.organizations.getSyncAuthorization", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:getSyncAuthorization", +"request": { +"$ref": "GoogleCloudApigeeV1GetSyncAuthorizationRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SyncAuthorization" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Apigee organizations and associated Google Cloud projects that you have permission to access. See [Understanding organizations](https://cloud.google.com/apigee/docs/api-platform/fundamentals/organization-structure).", +"flatPath": "v1/organizations", +"httpMethod": "GET", +"id": "apigee.organizations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Use the following structure in your request: `organizations`", +"location": "path", +"pattern": "^organizations$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}", +"response": { +"$ref": "GoogleCloudApigeeV1ListOrganizationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setAddons": { +"description": "Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced.", +"flatPath": "v1/organizations/{organizationsId}:setAddons", +"httpMethod": "POST", +"id": "apigee.organizations.setAddons", +"parameterOrder": [ +"org" +], +"parameters": { +"org": { +"description": "Required. Name of the organization. Use the following structure in your request: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+org}:setAddons", +"request": { +"$ref": "GoogleCloudApigeeV1SetAddonsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setSyncAuthorization": { +"description": "Sets the permissions required to allow the Synchronizer to download environment data from the control plane. You must call this API to enable proper functioning of hybrid. Pass the ETag when calling `setSyncAuthorization` to ensure that you are updating the correct version. To get an ETag, call [getSyncAuthorization](getSyncAuthorization). If you don't pass the ETag in the call to `setSyncAuthorization`, then the existing authorization is overwritten indiscriminately. For more information, see [Configure the Synchronizer](https://cloud.google.com/apigee/docs/hybrid/latest/synchronizer-access). **Note**: Available to Apigee hybrid only.", +"flatPath": "v1/organizations/{organizationsId}:setSyncAuthorization", +"httpMethod": "POST", +"id": "apigee.organizations.setSyncAuthorization", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setSyncAuthorization", +"request": { +"$ref": "GoogleCloudApigeeV1SyncAuthorization" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SyncAuthorization" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the properties for an Apigee organization. No other fields in the organization profile will be updated.", +"flatPath": "v1/organizations/{organizationsId}", +"httpMethod": "PUT", +"id": "apigee.organizations.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Apigee organization name in the following format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Organization" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Organization" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateControlPlaneAccess": { +"description": "Updates the permissions required to allow Apigee runtime-plane components access to the control plane. Currently, the permissions required are to: 1. Allow runtime components to publish analytics data to the control plane. **Note**: Available to Apigee hybrid only.", +"flatPath": "v1/organizations/{organizationsId}/controlPlaneAccess", +"httpMethod": "PATCH", +"id": "apigee.organizations.updateControlPlaneAccess", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the ControlPlaneAccess. Format: \"organizations/{org}/controlPlaneAccess\"", +"location": "path", +"pattern": "^organizations/[^/]+/controlPlaneAccess$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated. Fields that can be updated: synchronizer_identities, publisher_identities.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1ControlPlaneAccess" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecuritySettings": { +"description": "UpdateSecuritySettings updates the current security settings for API Security.", +"flatPath": "v1/organizations/{organizationsId}/securitySettings", +"httpMethod": "PATCH", +"id": "apigee.organizations.updateSecuritySettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Full resource name is always `organizations/{org}/securitySettings`.", +"location": "path", +"pattern": "^organizations/[^/]+/securitySettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The list of fields to update. Allowed fields are: - ml_retraining_feedback_enabled", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1SecuritySettings" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecuritySettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"analytics": { +"resources": { +"datastores": { +"methods": { +"create": { +"description": "Create a Datastore for an org", +"flatPath": "v1/organizations/{organizationsId}/analytics/datastores", +"httpMethod": "POST", +"id": "apigee.organizations.analytics.datastores.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent organization name. Must be of the form `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/analytics/datastores", +"request": { +"$ref": "GoogleCloudApigeeV1Datastore" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Datastore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a Datastore from an org.", +"flatPath": "v1/organizations/{organizationsId}/analytics/datastores/{datastoresId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.analytics.datastores.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Datastore to be deleted. Must be of the form `organizations/{org}/analytics/datastores/{datastoreId}`", +"location": "path", +"pattern": "^organizations/[^/]+/analytics/datastores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a Datastore", +"flatPath": "v1/organizations/{organizationsId}/analytics/datastores/{datastoresId}", +"httpMethod": "GET", +"id": "apigee.organizations.analytics.datastores.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Datastore to be get. Must be of the form `organizations/{org}/analytics/datastores/{datastoreId}`", +"location": "path", +"pattern": "^organizations/[^/]+/analytics/datastores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Datastore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List Datastores", +"flatPath": "v1/organizations/{organizationsId}/analytics/datastores", +"httpMethod": "GET", +"id": "apigee.organizations.analytics.datastores.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent organization name. Must be of the form `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"targetType": { +"description": "Optional. TargetType is used to fetch all Datastores that match the type", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/analytics/datastores", +"response": { +"$ref": "GoogleCloudApigeeV1ListDatastoresResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"test": { +"description": "Test if Datastore configuration is correct. This includes checking if credentials provided by customer have required permissions in target destination storage", +"flatPath": "v1/organizations/{organizationsId}/analytics/datastores:test", +"httpMethod": "POST", +"id": "apigee.organizations.analytics.datastores.test", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent organization name Must be of the form `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/analytics/datastores:test", +"request": { +"$ref": "GoogleCloudApigeeV1Datastore" +}, +"response": { +"$ref": "GoogleCloudApigeeV1TestDatastoreResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Update a Datastore", +"flatPath": "v1/organizations/{organizationsId}/analytics/datastores/{datastoresId}", +"httpMethod": "PUT", +"id": "apigee.organizations.analytics.datastores.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of datastore to be updated. Must be of the form `organizations/{org}/analytics/datastores/{datastoreId}`", +"location": "path", +"pattern": "^organizations/[^/]+/analytics/datastores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Datastore" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Datastore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"apiproducts": { +"methods": { +"attributes": { +"description": "Updates or creates API product attributes. This API **replaces** the current list of attributes with the attributes specified in the request body. In this way, you can update existing attributes, add new attributes, or delete existing attributes by omitting them from the request body. **Note**: OAuth access tokens and Key Management Service (KMS) entities (apps, developers, and API products) are cached for 180 seconds (current default). Any custom attributes associated with entities also get cached for at least 180 seconds after entity is accessed during runtime. In this case, the `ExpiresIn` element on the OAuthV2 policy won't be able to expire an access token in less than 180 seconds.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/attributes", +"httpMethod": "POST", +"id": "apigee.organizations.apiproducts.attributes", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/attributes", +"request": { +"$ref": "GoogleCloudApigeeV1Attributes" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Attributes" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates an API product in an organization. You create API products after you have proxied backend services using API proxies. An API product is a collection of API resources combined with quota settings and metadata that you can use to deliver customized and productized API bundles to your developer community. This metadata can include: - Scope - Environments - API proxies - Extensible profile API products enable you repackage APIs on the fly, without having to do any additional coding or configuration. Apigee recommends that you start with a simple API product including only required elements. You then provision credentials to apps to enable them to start testing your APIs. After you have authentication and authorization working against a simple API product, you can iterate to create finer-grained API products, defining different sets of API resources for each API product. **WARNING:** - If you don't specify an API proxy in the request body, *any* app associated with the product can make calls to *any* API in your entire organization. - If you don't specify an environment in the request body, the product allows access to all environments. For more information, see What is an API product?", +"flatPath": "v1/organizations/{organizationsId}/apiproducts", +"httpMethod": "POST", +"id": "apigee.organizations.apiproducts.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the organization in which the API product will be created. Use the following structure in your request: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/apiproducts", +"request": { +"$ref": "GoogleCloudApigeeV1ApiProduct" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an API product from an organization. Deleting an API product causes app requests to the resource URIs defined in the API product to fail. Ensure that you create a new API product to serve existing apps, unless your intention is to disable access to the resources defined in the API product. The API product name required in the request URL is the internal name of the product, not the display name. While they may be the same, it depends on whether the API product was created via the UI or the API. View the list of API products to verify the internal name.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.apiproducts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ApiProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets configuration details for an API product. The API product name required in the request URL is the internal name of the product, not the display name. While they may be the same, it depends on whether the API product was created via the UI or the API. View the list of API products to verify the internal name.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}", +"httpMethod": "GET", +"id": "apigee.organizations.apiproducts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ApiProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all API product names for an organization. Filter the list by passing an `attributename` and `attibutevalue`. The maximum number of API products returned is 1000. You can paginate the list of API products returned using the `startKey` and `count` query parameters.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts", +"httpMethod": "GET", +"id": "apigee.organizations.apiproducts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"attributename": { +"description": "Name of the attribute used to filter the search.", +"location": "query", +"type": "string" +}, +"attributevalue": { +"description": "Value of the attribute used to filter the search.", +"location": "query", +"type": "string" +}, +"count": { +"description": "Enter the number of API products you want returned in the API call. The limit is 1000.", +"format": "int64", +"location": "query", +"type": "string" +}, +"expand": { +"description": "Flag that specifies whether to expand the results. Set to `true` to get expanded details about each API.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. Name of the organization. Use the following structure in your request: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"startKey": { +"description": "Gets a list of API products starting with a specific API product in the list. For example, if you're returning 50 API products at a time (using the `count` query parameter), you can view products 50-99 by entering the name of the 50th API product in the first API (without using `startKey`). Product name is case sensitive.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/apiproducts", +"response": { +"$ref": "GoogleCloudApigeeV1ListApiProductsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates an existing API product. You must include all required values, whether or not you are updating them, as well as any optional values that you are updating. The API product name required in the request URL is the internal name of the product, not the display name. While they may be the same, it depends on whether the API product was created via UI or API. View the list of API products to identify their internal names.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}", +"httpMethod": "PUT", +"id": "apigee.organizations.apiproducts.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1ApiProduct" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiProduct" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attributes": { +"methods": { +"delete": { +"description": "Deletes an API product attribute.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/attributes/{attributesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.apiproducts.attributes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API product attribute. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/attributes/{attribute}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the value of an API product attribute.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/attributes/{attributesId}", +"httpMethod": "GET", +"id": "apigee.organizations.apiproducts.attributes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API product attribute. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/attributes/{attribute}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all API product attributes.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/attributes", +"httpMethod": "GET", +"id": "apigee.organizations.apiproducts.attributes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attributes", +"response": { +"$ref": "GoogleCloudApigeeV1Attributes" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateApiProductAttribute": { +"description": "Updates the value of an API product attribute. **Note**: OAuth access tokens and Key Management Service (KMS) entities (apps, developers, and API products) are cached for 180 seconds (current default). Any custom attributes associated with entities also get cached for at least 180 seconds after entity is accessed during runtime. In this case, the `ExpiresIn` element on the OAuthV2 policy won't be able to expire an access token in less than 180 seconds.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/attributes/{attributesId}", +"httpMethod": "POST", +"id": "apigee.organizations.apiproducts.attributes.updateApiProductAttribute", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"rateplans": { +"methods": { +"create": { +"description": "Create a rate plan that is associated with an API product in an organization. Using rate plans, API product owners can monetize their API products by configuring one or more of the following: - Billing frequency - Initial setup fees for using an API product - Payment funding model (postpaid only) - Fixed recurring or consumption-based charges for using an API product - Revenue sharing with developer partners An API product can have multiple rate plans associated with it but *only one* rate plan can be active at any point of time. **Note: From the developer's perspective, they purchase API products not rate plans.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/rateplans", +"httpMethod": "POST", +"id": "apigee.organizations.apiproducts.rateplans.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the API product that is associated with the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/rateplans", +"request": { +"$ref": "GoogleCloudApigeeV1RatePlan" +}, +"response": { +"$ref": "GoogleCloudApigeeV1RatePlan" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a rate plan.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/rateplans/{rateplansId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.apiproducts.rateplans.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. ID of the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/rateplans/{rateplan}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+/rateplans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1RatePlan" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a rate plan.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/rateplans/{rateplansId}", +"httpMethod": "GET", +"id": "apigee.organizations.apiproducts.rateplans.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/rateplans/{rateplan}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+/rateplans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1RatePlan" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all the rate plans for an API product.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/rateplans", +"httpMethod": "GET", +"id": "apigee.organizations.apiproducts.rateplans.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"count": { +"description": "Number of rate plans to return in the API call. Use with the `startKey` parameter to provide more targeted filtering. The maximum limit is 1000. Defaults to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"expand": { +"description": "Flag that specifies whether to expand the results. Set to `true` to get expanded details about each API. Defaults to `false`.", +"location": "query", +"type": "boolean" +}, +"orderBy": { +"description": "Name of the attribute used for sorting. Valid values include: * `name`: Name of the rate plan. * `state`: State of the rate plan (`DRAFT`, `PUBLISHED`). * `startTime`: Time when the rate plan becomes active. * `endTime`: Time when the rate plan expires. **Note**: Not supported by Apigee at this time.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` Use `organizations/{org}/apiproducts/-` to return rate plans for all API products within the organization.", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +}, +"startKey": { +"description": "Name of the rate plan from which to start displaying the list of rate plans. If omitted, the list starts from the first item. For example, to view the rate plans from 51-150, set the value of `startKey` to the name of the 51st rate plan and set the value of `count` to 100.", +"location": "query", +"type": "string" +}, +"state": { +"description": "State of the rate plans (`DRAFT`, `PUBLISHED`) that you want to display.", +"enum": [ +"STATE_UNSPECIFIED", +"DRAFT", +"PUBLISHED" +], +"enumDescriptions": [ +"State of the rate plan is not specified.", +"Rate plan is in draft mode and only visible to API providers.", +"Rate plan is published and will become visible to developers for the configured duration (between `startTime` and `endTime`)." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/rateplans", +"response": { +"$ref": "GoogleCloudApigeeV1ListRatePlansResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates an existing rate plan.", +"flatPath": "v1/organizations/{organizationsId}/apiproducts/{apiproductsId}/rateplans/{rateplansId}", +"httpMethod": "PUT", +"id": "apigee.organizations.apiproducts.rateplans.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/rateplans/{rateplan}`", +"location": "path", +"pattern": "^organizations/[^/]+/apiproducts/[^/]+/rateplans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1RatePlan" +}, +"response": { +"$ref": "GoogleCloudApigeeV1RatePlan" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"apis": { +"methods": { +"create": { +"description": "Creates an API proxy. The API proxy created will not be accessible at runtime until it is deployed to an environment. Create a new API proxy by setting the `name` query parameter to the name of the API proxy. Import an API proxy configuration bundle stored in zip format on your local machine to your organization by doing the following: * Set the `name` query parameter to the name of the API proxy. * Set the `action` query parameter to `import`. * Set the `Content-Type` header to `multipart/form-data`. * Pass as a file the name of API proxy configuration bundle stored in zip format on your local machine using the `file` form field. **Note**: To validate the API proxy configuration bundle only without importing it, set the `action` query parameter to `validate`. When importing an API proxy configuration bundle, if the API proxy does not exist, it will be created. If the API proxy exists, then a new revision is created. Invalid API proxy configurations are rejected, and a list of validation errors is returned to the client.", +"flatPath": "v1/organizations/{organizationsId}/apis", +"httpMethod": "POST", +"id": "apigee.organizations.apis.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"action": { +"description": "Action to perform when importing an API proxy configuration bundle. Set this parameter to one of the following values: * `import` to import the API proxy configuration bundle. * `validate` to validate the API proxy configuration bundle without importing it.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Name of the API proxy. Restrict the characters used to: A-Za-z0-9._-", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the organization in the following format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"validate": { +"description": "Ignored. All uploads are validated regardless of the value of this field. Maintained for compatibility with Apigee Edge API.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/apis", +"request": { +"$ref": "GoogleApiHttpBody" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiProxyRevision" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an API proxy and all associated endpoints, policies, resources, and revisions. The API proxy must be undeployed before you can delete it.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.apis.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API proxy in the following format: `organizations/{org}/apis/{api}`", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ApiProxy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an API proxy including a list of existing revisions.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}", +"httpMethod": "GET", +"id": "apigee.organizations.apis.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API proxy in the following format: `organizations/{org}/apis/{api}`", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ApiProxy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the names of all API proxies in an organization. The names returned correspond to the names defined in the configuration files for each API proxy.", +"flatPath": "v1/organizations/{organizationsId}/apis", +"httpMethod": "GET", +"id": "apigee.organizations.apis.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"includeMetaData": { +"description": "Flag that specifies whether to include API proxy metadata in the response.", +"location": "query", +"type": "boolean" +}, +"includeRevisions": { +"description": "Flag that specifies whether to include a list of revisions in the response.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. Name of the organization in the following format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/apis", +"response": { +"$ref": "GoogleCloudApigeeV1ListApiProxiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing API proxy.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.apis.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API proxy to update in the following format: `organizations/{org}/apis/{api}`", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1ApiProxy" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiProxy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"deployments": { +"methods": { +"list": { +"description": "Lists all deployments of an API proxy.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.apis.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the API proxy for which to return deployment information in the following format: `organizations/{org}/apis/{api}`", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"keyvaluemaps": { +"methods": { +"create": { +"description": "Creates a key value map in an API proxy.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps", +"httpMethod": "POST", +"id": "apigee.organizations.apis.keyvaluemaps.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the environment in which to create the key value map. Use the following structure in your request: `organizations/{org}/apis/{api}`", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/keyvaluemaps", +"request": { +"$ref": "GoogleCloudApigeeV1KeyValueMap" +}, +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a key value map from an API proxy.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.apis.keyvaluemaps.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the key value map. Use the following structure in your request: `organizations/{org}/apis/{api}/keyvaluemaps/{keyvaluemap}`", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/keyvaluemaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"entries": { +"methods": { +"create": { +"description": "Creates key value entries in a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries", +"httpMethod": "POST", +"id": "apigee.organizations.apis.keyvaluemaps.entries.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/keyvaluemaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entries", +"request": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a key value entry from a key value map scoped to an organization, environment, or API proxy. **Notes:** * After you delete the key value entry, the policy consuming the entry will continue to function with its cached values for a few minutes. This is expected behavior. * Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.apis.keyvaluemaps.entries.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Scope as indicated by the URI in which to delete the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get the key value entry value for a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", +"httpMethod": "GET", +"id": "apigee.organizations.apis.keyvaluemaps.entries.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Scope as indicated by the URI in which to fetch the key value map entry/value. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists key value entries for key values maps scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries", +"httpMethod": "GET", +"id": "apigee.organizations.apis.keyvaluemaps.entries.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of key value entries to return. If unspecified, at most 100 entries will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token. If provides, must be a valid key value entry returned from a previous call that can be used to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Scope as indicated by the URI in which to list key value maps. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/keyvaluemaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entries", +"response": { +"$ref": "GoogleCloudApigeeV1ListKeyValueEntriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Update key value entry scoped to an organization, environment, or API proxy for an existing key.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", +"httpMethod": "PUT", +"id": "apigee.organizations.apis.keyvaluemaps.entries.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"revisions": { +"methods": { +"delete": { +"description": "Deletes an API proxy revision and all policies, resources, endpoints, and revisions associated with it. The API proxy revision must be undeployed before you can delete it.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/revisions/{revisionsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.apis.revisions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API proxy revision in the following format: `organizations/{org}/apis/{api}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ApiProxyRevision" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an API proxy revision. To download the API proxy configuration bundle for the specified revision as a zip file, set the `format` query parameter to `bundle`. If you are using curl, specify `-o filename.zip` to save the output to a file; otherwise, it displays to `stdout`. Then, develop the API proxy configuration locally and upload the updated API proxy configuration revision, as described in [updateApiProxyRevision](updateApiProxyRevision).", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/revisions/{revisionsId}", +"httpMethod": "GET", +"id": "apigee.organizations.apis.revisions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"format": { +"description": "Format used when downloading the API proxy configuration revision. Set to `bundle` to download the API proxy configuration revision as a zip file.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. API proxy revision in the following format: `organizations/{org}/apis/{api}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateApiProxyRevision": { +"description": "Updates an existing API proxy revision by uploading the API proxy configuration bundle as a zip file from your local machine. You can update only API proxy revisions that have never been deployed. After deployment, an API proxy revision becomes immutable, even if it is undeployed. Set the `Content-Type` header to either `multipart/form-data` or `application/octet-stream`.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/revisions/{revisionsId}", +"httpMethod": "POST", +"id": "apigee.organizations.apis.revisions.updateApiProxyRevision", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API proxy revision to update in the following format: `organizations/{org}/apis/{api}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +}, +"validate": { +"description": "Ignored. All uploads are validated regardless of the value of this field. Maintained for compatibility with Apigee Edge API.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleApiHttpBody" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiProxyRevision" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"deployments": { +"methods": { +"list": { +"description": "Lists all deployments of an API proxy revision.", +"flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/revisions/{revisionsId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.apis.revisions.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the API proxy revision for which to return deployment information in the following format: `organizations/{org}/apis/{api}/revisions/{rev}`.", +"location": "path", +"pattern": "^organizations/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"appgroups": { +"methods": { +"create": { +"description": "Creates an AppGroup. Once created, user can register apps under the AppGroup to obtain secret key and password. At creation time, the AppGroup's state is set as `active`.", +"flatPath": "v1/organizations/{organizationsId}/appgroups", +"httpMethod": "POST", +"id": "apigee.organizations.appgroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the Apigee organization in which the AppGroup is created. Use the following structure in your request: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/appgroups", +"request": { +"$ref": "GoogleCloudApigeeV1AppGroup" +}, +"response": { +"$ref": "GoogleCloudApigeeV1AppGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an AppGroup. All app and API keys associations with the AppGroup are also removed. **Warning**: This API will permanently delete the AppGroup and related artifacts. **Note**: The delete operation is asynchronous. The AppGroup app is deleted immediately, but its associated resources, such as apps and API keys, may take anywhere from a few seconds to a few minutes to be deleted.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.appgroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AppGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the AppGroup details for the provided AppGroup name in the request URI.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}", +"httpMethod": "GET", +"id": "apigee.organizations.appgroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AppGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all AppGroups in an organization. A maximum of 1000 AppGroups are returned in the response if PageSize is not specified, or if the PageSize is greater than 1000.", +"flatPath": "v1/organizations/{organizationsId}/appgroups", +"httpMethod": "GET", +"id": "apigee.organizations.appgroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression to be used to get the list of AppGroups, where filtering can be done on status, channelId or channelUri of the app group. Examples: filter=status=active\", filter=channelId=, filter=channelUri=", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Count of AppGroups a single page can have in the response. If unspecified, at most 1000 AppGroups will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The starting index record for listing the AppGroups.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/appgroups", +"response": { +"$ref": "GoogleCloudApigeeV1ListAppGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates an AppGroup. This API replaces the existing AppGroup details with those specified in the request. Include or exclude any existing details that you want to retain or delete, respectively. Note that the state of the AppGroup should be updated using `action`, and not via AppGroup.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}", +"httpMethod": "PUT", +"id": "apigee.organizations.appgroups.update", +"parameterOrder": [ +"name" +], +"parameters": { +"action": { +"description": "Activate or de-activate the AppGroup by setting the action as `active` or `inactive`. The `Content-Type` header must be set to `application/octet-stream`, with empty body.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1AppGroup" +}, +"response": { +"$ref": "GoogleCloudApigeeV1AppGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"apps": { +"methods": { +"create": { +"description": "Creates an app and associates it with an AppGroup. This API associates the AppGroup app with the specified API product and auto-generates an API key for the app to use in calls to API proxies inside that API product. The `name` is the unique ID of the app that you can use in API calls.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps", +"httpMethod": "POST", +"id": "apigee.organizations.appgroups.apps.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/apps", +"request": { +"$ref": "GoogleCloudApigeeV1AppGroupApp" +}, +"response": { +"$ref": "GoogleCloudApigeeV1AppGroupApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an AppGroup app. **Note**: The delete operation is asynchronous. The AppGroup app is deleted immediately, but its associated resources, such as app keys or access tokens, may take anywhere from a few seconds to a few minutes to be deleted.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.appgroups.apps.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AppGroup app. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AppGroupApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the details for an AppGroup app.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}", +"httpMethod": "GET", +"id": "apigee.organizations.appgroups.apps.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AppGroup app. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AppGroupApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all apps created by an AppGroup in an Apigee organization. Optionally, you can request an expanded view of the AppGroup apps. Lists all AppGroupApps in an AppGroup. A maximum of 1000 AppGroup apps are returned in the response if PageSize is not specified, or if the PageSize is greater than 1000.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps", +"httpMethod": "GET", +"id": "apigee.organizations.appgroups.apps.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number entries to return. If unspecified, at most 1000 entries will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token. If provides, must be a valid AppGroup app returned from a previous call that can be used to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the AppGroup. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/apps", +"response": { +"$ref": "GoogleCloudApigeeV1ListAppGroupAppsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the details for an AppGroup app. In addition, you can add an API product to an AppGroup app and automatically generate an API key for the app to use when calling APIs in the API product. If you want to use an existing API key for the API product, add the API product to the API key using the UpdateAppGroupAppKey API. Using this API, you cannot update the app name, as it is the primary key used to identify the app and cannot be changed. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}", +"httpMethod": "PUT", +"id": "apigee.organizations.appgroups.apps.update", +"parameterOrder": [ +"name" +], +"parameters": { +"action": { +"description": "Approve or revoke the consumer key by setting this value to `approve` or `revoke`. The `Content-Type` header must be set to `application/octet-stream`, with empty body.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the AppGroup app. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1AppGroupApp" +}, +"response": { +"$ref": "GoogleCloudApigeeV1AppGroupApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"keys": { +"methods": { +"create": { +"description": "Creates a custom consumer key and secret for a AppGroup app. This is particularly useful if you want to migrate existing consumer keys and secrets to Apigee from another system. Consumer keys and secrets can contain letters, numbers, underscores, and hyphens. No other special characters are allowed. To avoid service disruptions, a consumer key and secret should not exceed 2 KBs each. **Note**: When creating the consumer key and secret, an association to API products will not be made. Therefore, you should not specify the associated API products in your request. Instead, use the ProductizeAppGroupAppKey API to make the association after the consumer key and secret are created. If a consumer key and secret already exist, you can keep them or delete them using the DeleteAppGroupAppKey API.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys", +"httpMethod": "POST", +"id": "apigee.organizations.appgroups.apps.keys.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/keys", +"request": { +"$ref": "GoogleCloudApigeeV1AppGroupAppKey" +}, +"response": { +"$ref": "GoogleCloudApigeeV1AppGroupAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an app's consumer key and removes all API products associated with the app. After the consumer key is deleted, it cannot be used to access any APIs.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.appgroups.apps.keys.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AppGroupAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details for a consumer key for a AppGroup app, including the key and secret value, associated API products, and other information.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}", +"httpMethod": "GET", +"id": "apigee.organizations.appgroups.apps.keys.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AppGroupAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateAppGroupAppKey": { +"description": "Adds an API product to an AppGroupAppKey, enabling the app that holds the key to access the API resources bundled in the API product. In addition, you can add attributes to the AppGroupAppKey. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively. You can use the same key to access all API products associated with the app.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}", +"httpMethod": "POST", +"id": "apigee.organizations.appgroups.apps.keys.updateAppGroupAppKey", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1AppGroupAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"apiproducts": { +"methods": { +"delete": { +"description": "Removes an API product from an app's consumer key. After the API product is removed, the app cannot access the API resources defined in that API product. **Note**: The consumer key is not removed, only its association with the API product.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}/apiproducts/{apiproductsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.appgroups.apps.keys.apiproducts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Parent of the AppGroup app key. Use the following structure in your request: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AppGroupAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateAppGroupAppKeyApiProduct": { +"description": "Approves or revokes the consumer key for an API product. After a consumer key is approved, the app can use it to access APIs. A consumer key that is revoked or pending cannot be used to access an API. Any access tokens associated with a revoked consumer key will remain active. However, Apigee checks the status of the consumer key and if set to `revoked` will not allow access to the API.", +"flatPath": "v1/organizations/{organizationsId}/appgroups/{appgroupsId}/apps/{appsId}/keys/{keysId}/apiproducts/{apiproductsId}", +"httpMethod": "POST", +"id": "apigee.organizations.appgroups.apps.keys.apiproducts.updateAppGroupAppKeyApiProduct", +"parameterOrder": [ +"name" +], +"parameters": { +"action": { +"description": "Approve or revoke the consumer key by setting this value to `approve` or `revoke` respectively. The `Content-Type` header, if set, must be set to `application/octet-stream`, with empty body.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the API product in the developer app key in the following format: `organizations/{org}/appgroups/{app_group_name}/apps/{app}/keys/{key}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/appgroups/[^/]+/apps/[^/]+/keys/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"apps": { +"methods": { +"get": { +"description": "Gets the app profile for the specified app ID.", +"flatPath": "v1/organizations/{organizationsId}/apps/{appsId}", +"httpMethod": "GET", +"id": "apigee.organizations.apps.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. App ID in the following format: `organizations/{org}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1App" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists IDs of apps within an organization that have the specified app status (approved or revoked) or are of the specified app type (developer or company).", +"flatPath": "v1/organizations/{organizationsId}/apps", +"httpMethod": "GET", +"id": "apigee.organizations.apps.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"apiProduct": { +"description": "API product.", +"location": "query", +"type": "string" +}, +"apptype": { +"description": "Optional. 'apptype' is no longer available. Use a 'filter' instead.", +"location": "query", +"type": "string" +}, +"expand": { +"description": "Optional. Flag that specifies whether to return an expanded list of apps for the organization. Defaults to `false`.", +"location": "query", +"type": "boolean" +}, +"filter": { +"description": "Optional. The filter expression to be used to get the list of apps, where filtering can be done on developerEmail, apiProduct, consumerKey, status, appId, appName, appType and appGroup. Examples: \"developerEmail=foo@bar.com\", \"appType=AppGroup\", or \"appType=Developer\" \"filter\" is supported from ver 1.10.0 and above.", +"location": "query", +"type": "string" +}, +"ids": { +"description": "Optional. Comma-separated list of app IDs on which to filter.", +"location": "query", +"type": "string" +}, +"includeCred": { +"description": "Optional. Flag that specifies whether to include credentials in the response.", +"location": "query", +"type": "boolean" +}, +"keyStatus": { +"description": "Optional. Key status of the app. Valid values include `approved` or `revoked`. Defaults to `approved`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Count of apps a single page can have in the response. If unspecified, at most 100 apps will be returned. The maximum value is 100; values above 100 will be coerced to 100. \"page_size\" is supported from ver 1.10.0 and above.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The starting index record for listing the developers. \"page_token\" is supported from ver 1.10.0 and above.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource path of the parent in the following format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"rows": { +"description": "Optional. Maximum number of app IDs to return. Defaults to 10000.", +"format": "int64", +"location": "query", +"type": "string" +}, +"startKey": { +"description": "Returns the list of apps starting from the specified app ID.", +"location": "query", +"type": "string" +}, +"status": { +"description": "Optional. Filter by the status of the app. Valid values are `approved` or `revoked`. Defaults to `approved`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/apps", +"response": { +"$ref": "GoogleCloudApigeeV1ListAppsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"datacollectors": { +"methods": { +"create": { +"description": "Creates a new data collector.", +"flatPath": "v1/organizations/{organizationsId}/datacollectors", +"httpMethod": "POST", +"id": "apigee.organizations.datacollectors.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataCollectorId": { +"description": "ID of the data collector. Overrides any ID in the data collector resource. Must be a string beginning with `dc_` that contains only letters, numbers, and underscores.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the organization in which to create the data collector in the following format: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/datacollectors", +"request": { +"$ref": "GoogleCloudApigeeV1DataCollector" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DataCollector" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a data collector.", +"flatPath": "v1/organizations/{organizationsId}/datacollectors/{datacollectorsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.datacollectors.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the data collector in the following format: `organizations/{org}/datacollectors/{data_collector_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/datacollectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a data collector.", +"flatPath": "v1/organizations/{organizationsId}/datacollectors/{datacollectorsId}", +"httpMethod": "GET", +"id": "apigee.organizations.datacollectors.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the data collector in the following format: `organizations/{org}/datacollectors/{data_collector_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/datacollectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DataCollector" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all data collectors.", +"flatPath": "v1/organizations/{organizationsId}/datacollectors", +"httpMethod": "GET", +"id": "apigee.organizations.datacollectors.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of data collectors to return. The page size defaults to 25.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned from a previous ListDataCollectors call, that you can use to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the organization for which to list data collectors in the following format: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/datacollectors", +"response": { +"$ref": "GoogleCloudApigeeV1ListDataCollectorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a data collector.", +"flatPath": "v1/organizations/{organizationsId}/datacollectors/{datacollectorsId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.datacollectors.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the data collector in the following format: `organizations/{org}/datacollectors/{data_collector_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/datacollectors/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1DataCollector" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DataCollector" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"deployments": { +"methods": { +"list": { +"description": "Lists all deployments of API proxies or shared flows.", +"flatPath": "v1/organizations/{organizationsId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the organization for which to return deployment information in the following format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"sharedFlows": { +"description": "Optional. Flag that specifies whether to return shared flow or API proxy deployments. Set to `true` to return shared flow deployments; set to `false` to return API proxy deployments. Defaults to `false`.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"developers": { +"methods": { +"attributes": { +"description": "Updates developer attributes. This API replaces the existing attributes with those specified in the request. Add new attributes, and include or exclude any existing attributes that you want to retain or remove, respectively. The custom attribute limit is 18. **Note**: OAuth access tokens and Key Management Service (KMS) entities (apps, developers, and API products) are cached for 180 seconds (default). Any custom attributes associated with these entities are cached for at least 180 seconds after the entity is accessed at runtime. Therefore, an `ExpiresIn` element on the OAuthV2 policy won't be able to expire an access token in less than 180 seconds.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/attributes", +"httpMethod": "POST", +"id": "apigee.organizations.developers.attributes", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Email address of the developer for which attributes are being updated. Use the following structure in your request: `organizations/{org}/developers/{developer_email}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attributes", +"request": { +"$ref": "GoogleCloudApigeeV1Attributes" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Attributes" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a developer. Once created, the developer can register an app and obtain an API key. At creation time, a developer is set as `active`. To change the developer status, use the SetDeveloperStatus API.", +"flatPath": "v1/organizations/{organizationsId}/developers", +"httpMethod": "POST", +"id": "apigee.organizations.developers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the Apigee organization in which the developer is created. Use the following structure in your request: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/developers", +"request": { +"$ref": "GoogleCloudApigeeV1Developer" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Developer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a developer. All apps and API keys associated with the developer are also removed. **Warning**: This API will permanently delete the developer and related artifacts. To avoid permanently deleting developers and their artifacts, set the developer status to `inactive` using the SetDeveloperStatus API. **Note**: The delete operation is asynchronous. The developer app is deleted immediately, but its associated resources, such as apps and API keys, may take anywhere from a few seconds to a few minutes to be deleted.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.developers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Developer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the developer details, including the developer's name, email address, apps, and other information. **Note**: The response includes only the first 100 developer apps.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}", +"httpMethod": "GET", +"id": "apigee.organizations.developers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"action": { +"description": "Status of the developer. Valid values are `active` or `inactive`.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Developer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getBalance": { +"description": "Gets the account balance for the developer.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/balance", +"httpMethod": "GET", +"id": "apigee.organizations.developers.getBalance", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Account balance for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/balance`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/balance$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperBalance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getMonetizationConfig": { +"description": "Gets the monetization configuration for the developer.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/monetizationConfig", +"httpMethod": "GET", +"id": "apigee.organizations.developers.getMonetizationConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Monetization configuration for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/monetizationConfig`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/monetizationConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperMonetizationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all developers in an organization by email address. By default, the response does not include company developers. Set the `includeCompany` query parameter to `true` to include company developers. **Note**: A maximum of 1000 developers are returned in the response. You paginate the list of developers returned using the `startKey` and `count` query parameters.", +"flatPath": "v1/organizations/{organizationsId}/developers", +"httpMethod": "GET", +"id": "apigee.organizations.developers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"app": { +"description": "Optional. List only Developers that are associated with the app. Note that start_key, count are not applicable for this filter criteria.", +"location": "query", +"type": "string" +}, +"count": { +"description": "Optional. Number of developers to return in the API call. Use with the `startKey` parameter to provide more targeted filtering. The limit is 1000.", +"format": "int64", +"location": "query", +"type": "string" +}, +"expand": { +"description": "Specifies whether to expand the results. Set to `true` to expand the results. This query parameter is not valid if you use the `count` or `startKey` query parameters.", +"location": "query", +"type": "boolean" +}, +"ids": { +"description": "Optional. List of IDs to include, separated by commas.", +"location": "query", +"type": "string" +}, +"includeCompany": { +"description": "Flag that specifies whether to include company details in the response.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"startKey": { +"description": "**Note**: Must be used in conjunction with the `count` parameter. Email address of the developer from which to start displaying the list of developers. For example, if the an unfiltered list returns: ``` westley@example.com fezzik@example.com buttercup@example.com ``` and your `startKey` is `fezzik@example.com`, the list returned will be ``` fezzik@example.com buttercup@example.com ```", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/developers", +"response": { +"$ref": "GoogleCloudApigeeV1ListOfDevelopersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setDeveloperStatus": { +"description": "Sets the status of a developer. A developer is `active` by default. If you set a developer's status to `inactive`, the API keys assigned to the developer apps are no longer valid even though the API keys are set to `approved`. Inactive developers can still sign in to the developer portal and create apps; however, any new API keys generated during app creation won't work. To set the status of a developer, set the `action` query parameter to `active` or `inactive`, and the `Content-Type` header to `application/octet-stream`. If successful, the API call returns the following HTTP status code: `204 No Content`", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}", +"httpMethod": "POST", +"id": "apigee.organizations.developers.setDeveloperStatus", +"parameterOrder": [ +"name" +], +"parameters": { +"action": { +"description": "Status of the developer. Valid values are `active` and `inactive`.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates a developer. This API replaces the existing developer details with those specified in the request. Include or exclude any existing details that you want to retain or delete, respectively. The custom attribute limit is 18. **Note**: OAuth access tokens and Key Management Service (KMS) entities (apps, developers, and API products) are cached for 180 seconds (current default). Any custom attributes associated with these entities are cached for at least 180 seconds after the entity is accessed at runtime. Therefore, an `ExpiresIn` element on the OAuthV2 policy won't be able to expire an access token in less than 180 seconds.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}", +"httpMethod": "PUT", +"id": "apigee.organizations.developers.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Developer" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Developer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateMonetizationConfig": { +"description": "Updates the monetization configuration for the developer.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/monetizationConfig", +"httpMethod": "PUT", +"id": "apigee.organizations.developers.updateMonetizationConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Monetization configuration for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/monetizationConfig`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/monetizationConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1DeveloperMonetizationConfig" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperMonetizationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"apps": { +"methods": { +"attributes": { +"description": "Updates attributes for a developer app. This API replaces the current attributes with those specified in the request.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/attributes", +"httpMethod": "POST", +"id": "apigee.organizations.developers.apps.attributes", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/attributes", +"request": { +"$ref": "GoogleCloudApigeeV1Attributes" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Attributes" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates an app associated with a developer. This API associates the developer app with the specified API product and auto-generates an API key for the app to use in calls to API proxies inside that API product. The `name` is the unique ID of the app that you can use in API calls. The `DisplayName` (set as an attribute) appears in the UI. If you don't set the `DisplayName` attribute, the `name` appears in the UI.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps", +"httpMethod": "POST", +"id": "apigee.organizations.developers.apps.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/apps", +"request": { +"$ref": "GoogleCloudApigeeV1DeveloperApp" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a developer app. **Note**: The delete operation is asynchronous. The developer app is deleted immediately, but its associated resources, such as app keys or access tokens, may take anywhere from a few seconds to a few minutes to be deleted.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.developers.apps.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateKeyPairOrUpdateDeveloperAppStatus": { +"description": "Manages access to a developer app by enabling you to: * Approve or revoke a developer app * Generate a new consumer key and secret for a developer app To approve or revoke a developer app, set the `action` query parameter to `approve` or `revoke`, respectively, and the `Content-Type` header to `application/octet-stream`. If a developer app is revoked, none of its API keys are valid for API calls even though the keys are still approved. If successful, the API call returns the following HTTP status code: `204 No Content` To generate a new consumer key and secret for a developer app, pass the new key/secret details. Rather than replace an existing key, this API generates a new key. In this case, multiple key pairs may be associated with a single developer app. Each key pair has an independent status (`approve` or `revoke`) and expiration time. Any approved, non-expired key can be used in an API call. For example, if you're using API key rotation, you can generate new keys with expiration times that overlap keys that are going to expire. You might also generate a new consumer key/secret if the security of the original key/secret is compromised. The `keyExpiresIn` property defines the expiration time for the API key in milliseconds. If you don't set this property or set it to `-1`, the API key never expires. **Notes**: * When generating a new key/secret, this API replaces the existing attributes, notes, and callback URLs with those specified in the request. Include or exclude any existing information that you want to retain or delete, respectively. * To migrate existing consumer keys and secrets to hybrid from another system, see the CreateDeveloperAppKey API.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}", +"httpMethod": "POST", +"id": "apigee.organizations.developers.apps.generateKeyPairOrUpdateDeveloperAppStatus", +"parameterOrder": [ +"name" +], +"parameters": { +"action": { +"description": "Action. Valid values are `approve` or `revoke`.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1DeveloperApp" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the details for a developer app.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}", +"httpMethod": "GET", +"id": "apigee.organizations.developers.apps.get", +"parameterOrder": [ +"name" +], +"parameters": { +"entity": { +"description": "**Note**: Must be used in conjunction with the `query` parameter. Set to `apiresources` to return the number of API resources that have been approved for access by a developer app in the specified Apigee organization.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +}, +"query": { +"description": "**Note**: Must be used in conjunction with the `entity` parameter. Set to `count` to return the number of API resources that have been approved for access by a developer app in the specified Apigee organization.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all apps created by a developer in an Apigee organization. Optionally, you can request an expanded view of the developer apps. A maximum of 100 developer apps are returned per API call. You can paginate the list of deveoper apps returned using the `startKey` and `count` query parameters.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps", +"httpMethod": "GET", +"id": "apigee.organizations.developers.apps.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"count": { +"description": "Number of developer apps to return in the API call. Use with the `startKey` parameter to provide more targeted filtering. The limit is 1000.", +"format": "int64", +"location": "query", +"type": "string" +}, +"expand": { +"description": "Optional. Specifies whether to expand the results. Set to `true` to expand the results. This query parameter is not valid if you use the `count` or `startKey` query parameters.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. Name of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +}, +"shallowExpand": { +"description": "Optional. Specifies whether to expand the results in shallow mode. Set to `true` to expand the results in shallow mode.", +"location": "query", +"type": "boolean" +}, +"startKey": { +"description": "**Note**: Must be used in conjunction with the `count` parameter. Name of the developer app from which to start displaying the list of developer apps. For example, if you're returning 50 developer apps at a time (using the `count` query parameter), you can view developer apps 50-99 by entering the name of the 50th developer app. The developer app name is case sensitive.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/apps", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeveloperAppsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the details for a developer app. In addition, you can add an API product to a developer app and automatically generate an API key for the app to use when calling APIs in the API product. If you want to use an existing API key for the API product, add the API product to the API key using the UpdateDeveloperAppKey API. Using this API, you cannot update the following: * App name as it is the primary key used to identify the app and cannot be changed. * Scopes associated with the app. Instead, use the ReplaceDeveloperAppKey API. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}", +"httpMethod": "PUT", +"id": "apigee.organizations.developers.apps.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1DeveloperApp" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attributes": { +"methods": { +"delete": { +"description": "Deletes a developer app attribute.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/attributes/{attributesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.developers.apps.attributes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the developer app attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/attributes/{attribute}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns a developer app attribute.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/attributes/{attributesId}", +"httpMethod": "GET", +"id": "apigee.organizations.developers.apps.attributes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the developer app attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/attributes/{attribute}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of all developer app attributes.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/attributes", +"httpMethod": "GET", +"id": "apigee.organizations.developers.apps.attributes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attributes", +"response": { +"$ref": "GoogleCloudApigeeV1Attributes" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateDeveloperAppAttribute": { +"description": "Updates a developer app attribute. **Note**: OAuth access tokens and Key Management Service (KMS) entities (apps, developers, and API products) are cached for 180 seconds (current default). Any custom attributes associated with these entities are cached for at least 180 seconds after the entity is accessed at runtime. Therefore, an `ExpiresIn` element on the OAuthV2 policy won't be able to expire an access token in less than 180 seconds.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/attributes/{attributesId}", +"httpMethod": "POST", +"id": "apigee.organizations.developers.apps.attributes.updateDeveloperAppAttribute", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the developer app attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/attributes/{attribute}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"keys": { +"methods": { +"create": { +"description": "Creates a custom consumer key and secret for a developer app. This is particularly useful if you want to migrate existing consumer keys and secrets to Apigee from another system. Consumer keys and secrets can contain letters, numbers, underscores, and hyphens. No other special characters are allowed. To avoid service disruptions, a consumer key and secret should not exceed 2 KBs each. **Note**: When creating the consumer key and secret, an association to API products will not be made. Therefore, you should not specify the associated API products in your request. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created. If a consumer key and secret already exist, you can keep them or delete them using the DeleteDeveloperAppKey API. **Note**: All keys start out with status=approved, even if status=revoked is passed when the key is created. To revoke a key, use the UpdateDeveloperAppKey API.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys", +"httpMethod": "POST", +"id": "apigee.organizations.developers.apps.keys.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent of the developer app key. Use the following structure in your request: 'organizations/{org}/developers/{developerEmail}/apps/{appName}'", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/keys", +"request": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an app's consumer key and removes all API products associated with the app. After the consumer key is deleted, it cannot be used to access any APIs. **Note**: After you delete a consumer key, you may want to: 1. Create a new consumer key and secret for the developer app using the CreateDeveloperAppKey API, and subsequently add an API product to the key using the UpdateDeveloperAppKey API. 2. Delete the developer app, if it is no longer required.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys/{keysId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.developers.apps.keys.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details for a consumer key for a developer app, including the key and secret value, associated API products, and other information.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys/{keysId}", +"httpMethod": "GET", +"id": "apigee.organizations.developers.apps.keys.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"replaceDeveloperAppKey": { +"description": "Updates the scope of an app. This API replaces the existing scopes with those specified in the request. Include or exclude any existing scopes that you want to retain or delete, respectively. The specified scopes must already be defined for the API products associated with the app. This API sets the `scopes` element under the `apiProducts` element in the attributes of the app.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys/{keysId}", +"httpMethod": "PUT", +"id": "apigee.organizations.developers.apps.keys.replaceDeveloperAppKey", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateDeveloperAppKey": { +"description": "Adds an API product to a developer app key, enabling the app that holds the key to access the API resources bundled in the API product. In addition, you can add attributes to a developer app key. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively. You can use the same key to access all API products associated with the app.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys/{keysId}", +"httpMethod": "POST", +"id": "apigee.organizations.developers.apps.keys.updateDeveloperAppKey", +"parameterOrder": [ +"name" +], +"parameters": { +"action": { +"description": "Approve or revoke the consumer key by setting this value to `approve` or `revoke`, respectively. The `Content-Type` header must be set to `application/octet-stream`.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"apiproducts": { +"methods": { +"delete": { +"description": "Removes an API product from an app's consumer key. After the API product is removed, the app cannot access the API resources defined in that API product. **Note**: The consumer key is not removed, only its association with the API product.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys/{keysId}/apiproducts/{apiproductsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.developers.apps.keys.apiproducts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the API product in the developer app key in the following format: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+/keys/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateDeveloperAppKeyApiProduct": { +"description": "Approves or revokes the consumer key for an API product. After a consumer key is approved, the app can use it to access APIs. A consumer key that is revoked or pending cannot be used to access an API. Any access tokens associated with a revoked consumer key will remain active. However, Apigee checks the status of the consumer key and if set to `revoked` will not allow access to the API.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys/{keysId}/apiproducts/{apiproductsId}", +"httpMethod": "POST", +"id": "apigee.organizations.developers.apps.keys.apiproducts.updateDeveloperAppKeyApiProduct", +"parameterOrder": [ +"name" +], +"parameters": { +"action": { +"description": "Approve or revoke the consumer key by setting this value to `approve` or `revoke`, respectively.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Name of the API product in the developer app key in the following format: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}/apiproducts/{apiproduct}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+/keys/[^/]+/apiproducts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"create": { +"methods": { +"create": { +"description": "Creates a custom consumer key and secret for a developer app. This is particularly useful if you want to migrate existing consumer keys and secrets to Apigee from another system. Consumer keys and secrets can contain letters, numbers, underscores, and hyphens. No other special characters are allowed. To avoid service disruptions, a consumer key and secret should not exceed 2 KBs each. **Note**: When creating the consumer key and secret, an association to API products will not be made. Therefore, you should not specify the associated API products in your request. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created. If a consumer key and secret already exist, you can keep them or delete them using the DeleteDeveloperAppKey API. **Note**: All keys start out with status=approved, even if status=revoked is passed when the key is created. To revoke a key, use the UpdateDeveloperAppKey API.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}/keys/create", +"httpMethod": "POST", +"id": "apigee.organizations.developers.apps.keys.create.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent of the developer app key. Use the following structure in your request: 'organizations/{org}/developers/{developerEmail}/apps/{appName}'", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/keys/create", +"request": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperAppKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"attributes": { +"methods": { +"delete": { +"description": "Deletes a developer attribute.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/attributes/{attributesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.developers.attributes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the developer attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/attributes/{attribute}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the value of the specified developer attribute.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/attributes/{attributesId}", +"httpMethod": "GET", +"id": "apigee.organizations.developers.attributes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the developer attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/attributes/{attribute}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of all developer attributes.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/attributes", +"httpMethod": "GET", +"id": "apigee.organizations.developers.attributes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Email address of the developer for which attributes are being listed. Use the following structure in your request: `organizations/{org}/developers/{developer_email}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attributes", +"response": { +"$ref": "GoogleCloudApigeeV1Attributes" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateDeveloperAttribute": { +"description": "Updates a developer attribute. **Note**: OAuth access tokens and Key Management Service (KMS) entities (apps, developers, and API products) are cached for 180 seconds (default). Any custom attributes associated with these entities are cached for at least 180 seconds after the entity is accessed at runtime. Therefore, an `ExpiresIn` element on the OAuthV2 policy won't be able to expire an access token in less than 180 seconds.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/attributes/{attributesId}", +"httpMethod": "POST", +"id": "apigee.organizations.developers.attributes.updateDeveloperAttribute", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the developer attribute. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/attributes/{attribute}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"balance": { +"methods": { +"adjust": { +"description": "Adjust the prepaid balance for the developer. This API will be used in scenarios where the developer has been under-charged or over-charged.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/balance:adjust", +"httpMethod": "POST", +"id": "apigee.organizations.developers.balance.adjust", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Account balance for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/balance`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/balance$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:adjust", +"request": { +"$ref": "GoogleCloudApigeeV1AdjustDeveloperBalanceRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperBalance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"credit": { +"description": "Credits the account balance for the developer.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/balance:credit", +"httpMethod": "POST", +"id": "apigee.organizations.developers.balance.credit", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Account balance for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/balance`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/balance$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:credit", +"request": { +"$ref": "GoogleCloudApigeeV1CreditDeveloperBalanceRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperBalance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"subscriptions": { +"methods": { +"create": { +"description": "Creates a subscription to an API product. ", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/subscriptions", +"httpMethod": "POST", +"id": "apigee.organizations.developers.subscriptions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Email address of the developer that is purchasing a subscription to the API product. Use the following structure in your request: `organizations/{org}/developers/{developer_email}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/subscriptions", +"request": { +"$ref": "GoogleCloudApigeeV1DeveloperSubscription" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperSubscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"expire": { +"description": "Expires an API product subscription immediately.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/subscriptions/{subscriptionsId}:expire", +"httpMethod": "POST", +"id": "apigee.organizations.developers.subscriptions.expire", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API product subscription. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/subscriptions/{subscription}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:expire", +"request": { +"$ref": "GoogleCloudApigeeV1ExpireDeveloperSubscriptionRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperSubscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details for an API product subscription.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/subscriptions/{subscriptionsId}", +"httpMethod": "GET", +"id": "apigee.organizations.developers.subscriptions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API product subscription. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/subscriptions/{subscription}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeveloperSubscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all API product subscriptions for a developer.", +"flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/subscriptions", +"httpMethod": "GET", +"id": "apigee.organizations.developers.subscriptions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"count": { +"description": "Number of API product subscriptions to return in the API call. Use with `startKey` to provide more targeted filtering. Defaults to 100. The maximum limit is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}`", +"location": "path", +"pattern": "^organizations/[^/]+/developers/[^/]+$", +"required": true, +"type": "string" +}, +"startKey": { +"description": "Name of the API product subscription from which to start displaying the list of subscriptions. If omitted, the list starts from the first item. For example, to view the API product subscriptions from 51-150, set the value of `startKey` to the name of the 51st subscription and set the value of `count` to 100.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/subscriptions", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeveloperSubscriptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"endpointAttachments": { +"methods": { +"create": { +"description": "Creates an endpoint attachment. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/endpointAttachments", +"httpMethod": "POST", +"id": "apigee.organizations.endpointAttachments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"endpointAttachmentId": { +"description": "ID to use for the endpoint attachment. ID must start with a lowercase letter followed by up to 31 lowercase letters, numbers, or hyphens, and cannot end with a hyphen. The minimum length is 2.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Organization the endpoint attachment will be created in.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/endpointAttachments", +"request": { +"$ref": "GoogleCloudApigeeV1EndpointAttachment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an endpoint attachment.", +"flatPath": "v1/organizations/{organizationsId}/endpointAttachments/{endpointAttachmentsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.endpointAttachments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the endpoint attachment. Use the following structure in your request: `organizations/{org}/endpointAttachments/{endpoint_attachment}`", +"location": "path", +"pattern": "^organizations/[^/]+/endpointAttachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the endpoint attachment.", +"flatPath": "v1/organizations/{organizationsId}/endpointAttachments/{endpointAttachmentsId}", +"httpMethod": "GET", +"id": "apigee.organizations.endpointAttachments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the endpoint attachment. Use the following structure in your request: `organizations/{org}/endpointAttachments/{endpoint_attachment}`", +"location": "path", +"pattern": "^organizations/[^/]+/endpointAttachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1EndpointAttachment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the endpoint attachments in an organization.", +"flatPath": "v1/organizations/{organizationsId}/endpointAttachments", +"httpMethod": "GET", +"id": "apigee.organizations.endpointAttachments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of endpoint attachments to return. If unspecified, at most 25 attachments will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token, returned from a previous `ListEndpointAttachments` call, that you can use to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the organization for which to list endpoint attachments. Use the following structure in your request: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/endpointAttachments", +"response": { +"$ref": "GoogleCloudApigeeV1ListEndpointAttachmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"envgroups": { +"methods": { +"create": { +"description": "Creates a new environment group.", +"flatPath": "v1/organizations/{organizationsId}/envgroups", +"httpMethod": "POST", +"id": "apigee.organizations.envgroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"name": { +"description": "Optional. ID of the environment group. Overrides any ID in the environment_group resource.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the organization in which to create the environment group in the following format: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/envgroups", +"request": { +"$ref": "GoogleCloudApigeeV1EnvironmentGroup" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an environment group.", +"flatPath": "v1/organizations/{organizationsId}/envgroups/{envgroupsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.envgroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment group in the following format: `organizations/{org}/envgroups/{envgroup}`.", +"location": "path", +"pattern": "^organizations/[^/]+/envgroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an environment group.", +"flatPath": "v1/organizations/{organizationsId}/envgroups/{envgroupsId}", +"httpMethod": "GET", +"id": "apigee.organizations.envgroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment group in the following format: `organizations/{org}/envgroups/{envgroup}`.", +"location": "path", +"pattern": "^organizations/[^/]+/envgroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1EnvironmentGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDeployedIngressConfig": { +"description": "Gets the deployed ingress configuration for an environment group.", +"flatPath": "v1/organizations/{organizationsId}/envgroups/{envgroupsId}/deployedIngressConfig", +"httpMethod": "GET", +"id": "apigee.organizations.envgroups.getDeployedIngressConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the deployed configuration for the environment group in the following format: 'organizations/{org}/envgroups/{envgroup}/deployedIngressConfig'.", +"location": "path", +"pattern": "^organizations/[^/]+/envgroups/[^/]+/deployedIngressConfig$", +"required": true, +"type": "string" +}, +"view": { +"description": "When set to FULL, additional details about the specific deployments receiving traffic will be included in the IngressConfig response's RoutingRules.", +"enum": [ +"INGRESS_CONFIG_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default/unset value. The API will default to the BASIC view.", +"Include all ingress config data necessary for the runtime to configure ingress, but no more. Routing rules will include only basepath and destination environment. This the default value.", +"Include all ingress config data, including internal debug info for each routing rule such as the proxy claiming a particular basepath and when the routing rule first appeared in the env group." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1EnvironmentGroupConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all environment groups.", +"flatPath": "v1/organizations/{organizationsId}/envgroups", +"httpMethod": "GET", +"id": "apigee.organizations.envgroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of environment groups to return. The page size defaults to 25.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned from a previous ListEnvironmentGroups call, that you can use to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the organization for which to list environment groups in the following format: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/envgroups", +"response": { +"$ref": "GoogleCloudApigeeV1ListEnvironmentGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an environment group.", +"flatPath": "v1/organizations/{organizationsId}/envgroups/{envgroupsId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.envgroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment group to update in the format: `organizations/{org}/envgroups/{envgroup}.", +"location": "path", +"pattern": "^organizations/[^/]+/envgroups/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. List of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1EnvironmentGroup" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attachments": { +"methods": { +"create": { +"description": "Creates a new attachment of an environment to an environment group.", +"flatPath": "v1/organizations/{organizationsId}/envgroups/{envgroupsId}/attachments", +"httpMethod": "POST", +"id": "apigee.organizations.envgroups.attachments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. EnvironmentGroup under which to create the attachment in the following format: `organizations/{org}/envgroups/{envgroup}`.", +"location": "path", +"pattern": "^organizations/[^/]+/envgroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attachments", +"request": { +"$ref": "GoogleCloudApigeeV1EnvironmentGroupAttachment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an environment group attachment.", +"flatPath": "v1/organizations/{organizationsId}/envgroups/{envgroupsId}/attachments/{attachmentsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.envgroups.attachments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment group attachment to delete in the following format: `organizations/{org}/envgroups/{envgroup}/attachments/{attachment}`.", +"location": "path", +"pattern": "^organizations/[^/]+/envgroups/[^/]+/attachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an environment group attachment.", +"flatPath": "v1/organizations/{organizationsId}/envgroups/{envgroupsId}/attachments/{attachmentsId}", +"httpMethod": "GET", +"id": "apigee.organizations.envgroups.attachments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment group attachment in the following format: `organizations/{org}/envgroups/{envgroup}/attachments/{attachment}`", +"location": "path", +"pattern": "^organizations/[^/]+/envgroups/[^/]+/attachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1EnvironmentGroupAttachment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all attachments of an environment group.", +"flatPath": "v1/organizations/{organizationsId}/envgroups/{envgroupsId}/attachments", +"httpMethod": "GET", +"id": "apigee.organizations.envgroups.attachments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of environment group attachments to return. The page size defaults to 25.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous ListEnvironmentGroupAttachments call, that you can use to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the environment group in the following format: `organizations/{org}/envgroups/{envgroup}`.", +"location": "path", +"pattern": "^organizations/[^/]+/envgroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attachments", +"response": { +"$ref": "GoogleCloudApigeeV1ListEnvironmentGroupAttachmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"environments": { +"methods": { +"create": { +"description": "Creates an environment in an organization.", +"flatPath": "v1/organizations/{organizationsId}/environments", +"httpMethod": "POST", +"id": "apigee.organizations.environments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"name": { +"description": "Optional. Name of the environment.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the organization in which the environment will be created. Use the following structure in your request: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/environments", +"request": { +"$ref": "GoogleCloudApigeeV1Environment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an environment from an organization. **Warning: You must delete all key value maps and key value entries before you delete an environment.** Otherwise, if you re-create the environment the key value map entry operations will encounter encryption/decryption discrepancies.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets environment details.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getAddonsConfig": { +"description": "Gets the add-ons config of an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/addonsConfig", +"httpMethod": "GET", +"id": "apigee.organizations.environments.getAddonsConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the add-ons config. Must be in the format of `/organizations/{org}/environments/{env}/addonsConfig`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/addonsConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AddonsConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getApiSecurityRuntimeConfig": { +"description": "Gets the API Security runtime configuration for an environment. This named ApiSecurityRuntimeConfig to prevent conflicts with ApiSecurityConfig from addon config.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apiSecurityRuntimeConfig", +"httpMethod": "GET", +"id": "apigee.organizations.environments.getApiSecurityRuntimeConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment API Security Runtime configuration resource. Use the following structure in your request: `organizations/{org}/environments/{env}/apiSecurityRuntimeConfig`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apiSecurityRuntimeConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ApiSecurityRuntimeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDebugmask": { +"description": "Gets the debug mask singleton resource for an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/debugmask", +"httpMethod": "GET", +"id": "apigee.organizations.environments.getDebugmask", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the debug mask. Use the following structure in your request: `organizations/{org}/environments/{env}/debugmask`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/debugmask$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DebugMask" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDeployedConfig": { +"description": "Gets the deployed configuration for an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/deployedConfig", +"httpMethod": "GET", +"id": "apigee.organizations.environments.getDeployedConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment deployed configuration resource. Use the following structure in your request: `organizations/{org}/environments/{env}/deployedConfig`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/deployedConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1EnvironmentConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the IAM policy on an environment. For more information, see [Manage users, roles, and permissions using the API](https://cloud.google.com/apigee/docs/api-platform/system-administration/manage-users-roles). You must have the `apigee.environments.getIamPolicy` permission to call this API.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}:getIamPolicy", +"httpMethod": "GET", +"id": "apigee.organizations.environments.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSecurityActionsConfig": { +"description": "GetSecurityActionConfig returns the current SecurityActions configuration.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActionsConfig", +"httpMethod": "GET", +"id": "apigee.organizations.environments.getSecurityActionsConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityActionsConfig to retrieve. This will always be: `organizations/{org}/environments/{env}/security_actions_config`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityActionsConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecurityActionsConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getTraceConfig": { +"description": "Get distributed trace configuration in an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/traceConfig", +"httpMethod": "GET", +"id": "apigee.organizations.environments.getTraceConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the trace configuration. Use the following structure in your request: \"organizations/*/environments/*/traceConfig\".", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/traceConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1TraceConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"modifyEnvironment": { +"description": "Updates properties for an Apigee environment with patch semantics using a field mask. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.environments.modifyEnvironment", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{environment}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated. Fields that can be updated: node_config.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Environment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM policy on an environment, if the policy already exists it will be replaced. For more information, see [Manage users, roles, and permissions using the API](https://cloud.google.com/apigee/docs/api-platform/system-administration/manage-users-roles). You must have the `apigee.environments.setIamPolicy` permission to call this API.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}:setIamPolicy", +"httpMethod": "POST", +"id": "apigee.organizations.environments.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"subscribe": { +"description": "Creates a subscription for the environment's Pub/Sub topic. The server will assign a random name for this subscription. The \"name\" and \"push_config\" must *not* be specified.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}:subscribe", +"httpMethod": "POST", +"id": "apigee.organizations.environments.subscribe", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:subscribe", +"response": { +"$ref": "GoogleCloudApigeeV1Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Tests the permissions of a user on an environment, and returns a subset of permissions that the user has on the environment. If the environment does not exist, an empty permission set is returned (a NOT_FOUND error is not returned).", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}:testIamPermissions", +"httpMethod": "POST", +"id": "apigee.organizations.environments.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"unsubscribe": { +"description": "Deletes a subscription for the environment's Pub/Sub topic.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}:unsubscribe", +"httpMethod": "POST", +"id": "apigee.organizations.environments.unsubscribe", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:unsubscribe", +"request": { +"$ref": "GoogleCloudApigeeV1Subscription" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates an existing environment. When updating properties, you must pass all existing properties to the API, even if they are not being changed. If you omit properties from the payload, the properties are removed. To get the current list of properties for the environment, use the [Get Environment API](get). **Note**: Both `PUT` and `POST` methods are supported for updating an existing environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}", +"httpMethod": "PUT", +"id": "apigee.organizations.environments.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Environment" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateDebugmask": { +"description": "Updates the debug mask singleton resource for an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/debugmask", +"httpMethod": "PATCH", +"id": "apigee.organizations.environments.updateDebugmask", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the debug mask.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/debugmask$", +"required": true, +"type": "string" +}, +"replaceRepeatedFields": { +"description": "Boolean flag that specifies whether to replace existing values in the debug mask when doing an update. Set to true to replace existing values. The default behavior is to append the values (false).", +"location": "query", +"type": "boolean" +}, +"updateMask": { +"description": "Field debug mask to support partial updates.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1DebugMask" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DebugMask" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateEnvironment": { +"description": "Updates an existing environment. When updating properties, you must pass all existing properties to the API, even if they are not being changed. If you omit properties from the payload, the properties are removed. To get the current list of properties for the environment, use the [Get Environment API](get). **Note**: Both `PUT` and `POST` methods are supported for updating an existing environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}", +"httpMethod": "POST", +"id": "apigee.organizations.environments.updateEnvironment", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{env}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Environment" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityActionsConfig": { +"description": "UpdateSecurityActionConfig updates the current SecurityActions configuration. This method is used to enable/disable the feature at the environment level.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActionsConfig", +"httpMethod": "PATCH", +"id": "apigee.organizations.environments.updateSecurityActionsConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "This is a singleton resource, the name will always be set by SecurityActions and any user input will be ignored. The name is always: `organizations/{org}/environments/{env}/security_actions_config`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityActionsConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityActionsConfig" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityActionsConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateTraceConfig": { +"description": "Updates the trace configurations in an environment. Note that the repeated fields have replace semantics when included in the field mask and that they will be overwritten by the value of the fields in the request body.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/traceConfig", +"httpMethod": "PATCH", +"id": "apigee.organizations.environments.updateTraceConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the trace configuration. Use the following structure in your request: \"organizations/*/environments/*/traceConfig\".", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/traceConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1TraceConfig" +}, +"response": { +"$ref": "GoogleCloudApigeeV1TraceConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"addonsConfig": { +"methods": { +"setAddonEnablement": { +"description": "Updates an add-on enablement status of an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/addonsConfig:setAddonEnablement", +"httpMethod": "POST", +"id": "apigee.organizations.environments.addonsConfig.setAddonEnablement", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the add-ons config. Must be in the format of `/organizations/{org}/environments/{env}/addonsConfig`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/addonsConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setAddonEnablement", +"request": { +"$ref": "GoogleCloudApigeeV1SetAddonEnablementRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"analytics": { +"resources": { +"admin": { +"methods": { +"getSchemav2": { +"description": "Gets a list of metrics and dimensions that can be used to create analytics queries and reports. Each schema element contains the name of the field, its associated type, and a flag indicating whether it is a standard or custom field.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/analytics/admin/schemav2", +"httpMethod": "GET", +"id": "apigee.organizations.environments.analytics.admin.getSchemav2", +"parameterOrder": [ +"name" +], +"parameters": { +"disableCache": { +"description": "Flag that specifies whether the schema is be read from the database or cache. Set to `true` to read the schema from the database. Defaults to cache.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Path to the schema. Use the following structure in your request: `organizations/{org}/environments/{env}/analytics/admin/schemav2`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/analytics/admin/schemav2$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. Name of the dataset for which you want to retrieve the schema. For example: `fact` or `agg_cus1`", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Schema" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"exports": { +"methods": { +"create": { +"description": "Submit a data export job to be processed in the background. If the request is successful, the API returns a 201 status, a URI that can be used to retrieve the status of the export job, and the `state` value of \"enqueued\".", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/analytics/exports", +"httpMethod": "POST", +"id": "apigee.organizations.environments.analytics.exports.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Names of the parent organization and environment. Must be of the form `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/analytics/exports", +"request": { +"$ref": "GoogleCloudApigeeV1ExportRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Export" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details and status of an analytics export job. If the export job is still in progress, its `state` is set to \"running\". After the export job has completed successfully, its `state` is set to \"completed\". If the export job fails, its `state` is set to `failed`.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/analytics/exports/{exportsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.analytics.exports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the export to get.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/analytics/exports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Export" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the details and status of all analytics export jobs belonging to the parent organization and environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/analytics/exports", +"httpMethod": "GET", +"id": "apigee.organizations.environments.analytics.exports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Names of the parent organization and environment. Must be of the form `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/analytics/exports", +"response": { +"$ref": "GoogleCloudApigeeV1ListExportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"apis": { +"resources": { +"deployments": { +"methods": { +"list": { +"description": "Lists all deployments of an API proxy in an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.environments.apis.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name representing an API proxy in an environment in the following format: `organizations/{org}/environments/{env}/apis/{api}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"revisions": { +"methods": { +"deploy": { +"description": "Deploys a revision of an API proxy. If another revision of the same API proxy revision is currently deployed, set the `override` parameter to `true` to have this revision replace the currently deployed revision. You cannot invoke an API proxy until it has been deployed to an environment. After you deploy an API proxy revision, you cannot edit it. To edit the API proxy, you must create and deploy a new revision. For a request path `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/deployments`, two permissions are required: * `apigee.deployments.create` on the resource `organizations/{org}/environments/{env}` * `apigee.proxyrevisions.deploy` on the resource `organizations/{org}/apis/{api}/revisions/{rev}` ", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/deployments", +"httpMethod": "POST", +"id": "apigee.organizations.environments.apis.revisions.deploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API proxy revision deployment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +}, +"override": { +"description": "Flag that specifies whether the new deployment replaces other deployed revisions of the API proxy in the environment. Set `override` to `true` to replace other deployed revisions. By default, `override` is `false` and the deployment is rejected if other revisions of the API proxy are deployed in the environment.", +"location": "query", +"type": "boolean" +}, +"sequencedRollout": { +"description": "Flag that specifies whether to enable sequenced rollout. If set to `true`, the routing rules for this deployment and the environment changes to add the deployment will be rolled out in a safe order. This reduces the risk of downtime that could be caused by changing the environment group's routing before the new destination for the affected traffic is ready to receive it. This should only be necessary if the new deployment will be capturing traffic from another environment under a shared environment group or if traffic will be rerouted to a different environment due to a base path removal. The generateDeployChangeReport API may be used to examine routing changes before issuing the deployment request, and its response will indicate if a sequenced rollout is recommended for the deployment.", +"location": "query", +"type": "boolean" +}, +"serviceAccount": { +"description": "Google Cloud IAM service account. The service account represents the identity of the deployed proxy, and determines what permissions it has. The format must be `{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1Deployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDeployments": { +"description": "Gets the deployment of an API proxy revision and actual state reported by runtime pods.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.environments.apis.revisions.getDeployments", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name representing an API proxy revision in an environment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1Deployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undeploy": { +"description": "Undeploys an API proxy revision from an environment. For a request path `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/deployments`, two permissions are required: * `apigee.deployments.delete` on the resource `organizations/{org}/environments/{env}` * `apigee.proxyrevisions.undeploy` on the resource `organizations/{org}/apis/{api}/revisions/{rev}`", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/deployments", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.apis.revisions.undeploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the API proxy revision deployment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +}, +"sequencedRollout": { +"description": "Flag that specifies whether to enable sequenced rollout. If set to `true`, the environment group routing rules corresponding to this deployment will be removed before removing the deployment from the runtime. This is likely to be a rare use case; it is only needed when the intended effect of undeploying this proxy is to cause the traffic it currently handles to be rerouted to some other existing proxy in the environment group. The GenerateUndeployChangeReport API may be used to examine routing changes before issuing the undeployment request, and its response will indicate if a sequenced rollout is recommended for the undeployment.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}/deployments", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"debugsessions": { +"methods": { +"create": { +"description": "Creates a debug session for a deployed API Proxy revision.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/debugsessions", +"httpMethod": "POST", +"id": "apigee.organizations.environments.apis.revisions.debugsessions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the API Proxy revision deployment for which to create the DebugSession. Must be of the form `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +}, +"timeout": { +"description": "Optional. The time in seconds after which this DebugSession should end. A timeout specified in DebugSession will overwrite this value.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/debugsessions", +"request": { +"$ref": "GoogleCloudApigeeV1DebugSession" +}, +"response": { +"$ref": "GoogleCloudApigeeV1DebugSession" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"deleteData": { +"description": "Deletes the data from a debug session. This does not cancel the debug session or prevent further data from being collected if the session is still active in runtime pods.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/debugsessions/{debugsessionsId}/data", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.apis.revisions.debugsessions.deleteData", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the debug session to delete. Must be of the form: `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}/debugsessions/{debugsession}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+/debugsessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/data", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a debug session.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/debugsessions/{debugsessionsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.apis.revisions.debugsessions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the debug session to retrieve. Must be of the form: `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}/debugsessions/{session}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+/debugsessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DebugSession" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists debug sessions that are currently active in the given API Proxy revision.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/debugsessions", +"httpMethod": "GET", +"id": "apigee.organizations.environments.apis.revisions.debugsessions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of debug sessions to return. The page size defaults to 25.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned from a previous ListDebugSessions call, that you can use to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the API Proxy revision deployment for which to list debug sessions. Must be of the form: `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/debugsessions", +"response": { +"$ref": "GoogleCloudApigeeV1ListDebugSessionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"data": { +"methods": { +"get": { +"description": "Gets the debug data from a transaction.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/debugsessions/{debugsessionsId}/data/{dataId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.apis.revisions.debugsessions.data.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the debug session transaction. Must be of the form: `organizations/{organization}/environments/{environment}/apis/{api}/revisions/{revision}/debugsessions/{session}/data/{transaction}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+/debugsessions/[^/]+/data/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DebugSessionTransaction" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"deployments": { +"methods": { +"generateDeployChangeReport": { +"description": "Generates a report for a dry run analysis of a DeployApiProxy request without committing the deployment. In addition to the standard validations performed when adding deployments, additional analysis will be done to detect possible traffic routing changes that would result from this deployment being created. Any potential routing conflicts or unsafe changes will be reported in the response. This routing analysis is not performed for a non-dry-run DeployApiProxy request. For a request path `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/deployments:generateDeployChangeReport`, two permissions are required: * `apigee.deployments.create` on the resource `organizations/{org}/environments/{env}` * `apigee.proxyrevisions.deploy` on the resource `organizations/{org}/apis/{api}/revisions/{rev}`", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/deployments:generateDeployChangeReport", +"httpMethod": "POST", +"id": "apigee.organizations.environments.apis.revisions.deployments.generateDeployChangeReport", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the API proxy revision deployment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +}, +"override": { +"description": "Flag that specifies whether to force the deployment of the new revision over the currently deployed revision by overriding conflict checks.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}/deployments:generateDeployChangeReport", +"response": { +"$ref": "GoogleCloudApigeeV1DeploymentChangeReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateUndeployChangeReport": { +"description": "Generates a report for a dry run analysis of an UndeployApiProxy request without committing the undeploy. In addition to the standard validations performed when removing deployments, additional analysis will be done to detect possible traffic routing changes that would result from this deployment being removed. Any potential routing conflicts or unsafe changes will be reported in the response. This routing analysis is not performed for a non-dry-run UndeployApiProxy request. For a request path `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/deployments:generateUndeployChangeReport`, two permissions are required: * `apigee.deployments.delete` on the resource `organizations/{org}/environments/{env}` * `apigee.proxyrevisions.undeploy` on the resource `organizations/{org}/apis/{api}/revisions/{rev}`", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/apis/{apisId}/revisions/{revisionsId}/deployments:generateUndeployChangeReport", +"httpMethod": "POST", +"id": "apigee.organizations.environments.apis.revisions.deployments.generateUndeployChangeReport", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the API proxy revision deployment in the following format: `organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/apis/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/deployments:generateUndeployChangeReport", +"response": { +"$ref": "GoogleCloudApigeeV1DeploymentChangeReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"archiveDeployments": { +"methods": { +"create": { +"description": "Creates a new ArchiveDeployment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/archiveDeployments", +"httpMethod": "POST", +"id": "apigee.organizations.environments.archiveDeployments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The Environment this Archive Deployment will be created in.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/archiveDeployments", +"request": { +"$ref": "GoogleCloudApigeeV1ArchiveDeployment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an archive deployment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/archiveDeployments/{archiveDeploymentsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.archiveDeployments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Archive Deployment in the following format: `organizations/{org}/environments/{env}/archiveDeployments/{id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/archiveDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateDownloadUrl": { +"description": "Generates a signed URL for downloading the original zip file used to create an Archive Deployment. The URL is only valid for a limited period and should be used within minutes after generation. Each call returns a new upload URL.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/archiveDeployments/{archiveDeploymentsId}:generateDownloadUrl", +"httpMethod": "POST", +"id": "apigee.organizations.environments.archiveDeployments.generateDownloadUrl", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Archive Deployment you want to download.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/archiveDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:generateDownloadUrl", +"request": { +"$ref": "GoogleCloudApigeeV1GenerateDownloadUrlRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1GenerateDownloadUrlResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateUploadUrl": { +"description": "Generates a signed URL for uploading an Archive zip file to Google Cloud Storage. Once the upload is complete, the signed URL should be passed to CreateArchiveDeployment. When uploading to the generated signed URL, please follow these restrictions: * Source file type should be a zip file. * Source file size should not exceed 1GB limit. * No credentials should be attached - the signed URLs provide access to the target bucket using internal service identity; if credentials were attached, the identity from the credentials would be used, but that identity does not have permissions to upload files to the URL. When making a HTTP PUT request, these two headers need to be specified: * `content-type: application/zip` * `x-goog-content-length-range: 0,1073741824` And this header SHOULD NOT be specified: * `Authorization: Bearer YOUR_TOKEN`", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/archiveDeployments:generateUploadUrl", +"httpMethod": "POST", +"id": "apigee.organizations.environments.archiveDeployments.generateUploadUrl", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The organization and environment to upload to.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/archiveDeployments:generateUploadUrl", +"request": { +"$ref": "GoogleCloudApigeeV1GenerateUploadUrlRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1GenerateUploadUrlResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified ArchiveDeployment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/archiveDeployments/{archiveDeploymentsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.archiveDeployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Archive Deployment in the following format: `organizations/{org}/environments/{env}/archiveDeployments/{id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/archiveDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ArchiveDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the ArchiveDeployments in the specified Environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/archiveDeployments", +"httpMethod": "GET", +"id": "apigee.organizations.environments.archiveDeployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An optional query used to return a subset of Archive Deployments using the semantics defined in https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of Archive Deployments to return. If unspecified, at most 25 deployments will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token, returned from a previous ListArchiveDeployments call, that you can use to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the Environment for which to list Archive Deployments in the format: `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/archiveDeployments", +"response": { +"$ref": "GoogleCloudApigeeV1ListArchiveDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing ArchiveDeployment. Labels can modified but most of the other fields are not modifiable.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/archiveDeployments/{archiveDeploymentsId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.environments.archiveDeployments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the Archive Deployment in the following format: `organizations/{org}/environments/{env}/archiveDeployments/{id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/archiveDeployments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1ArchiveDeployment" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ArchiveDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"caches": { +"methods": { +"delete": { +"description": "Deletes a cache.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/caches/{cachesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.caches.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Cache resource name of the form: `organizations/{organization_id}/environments/{environment_id}/caches/{cache_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/caches/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"deployments": { +"methods": { +"get": { +"description": "Gets a particular deployment of Api proxy or a shared flow in an environment", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/deployments/{deploymentsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.deployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the api proxy or the shared flow deployment. Use the following structure in your request: `organizations/{org}/environments/{env}/deployments/{deployment}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Deployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the IAM policy on a deployment. For more information, see [Manage users, roles, and permissions using the API](https://cloud.google.com/apigee/docs/api-platform/system-administration/manage-users-roles). You must have the `apigee.deployments.getIamPolicy` permission to call this API.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/deployments/{deploymentsId}:getIamPolicy", +"httpMethod": "GET", +"id": "apigee.organizations.environments.deployments.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all deployments of API proxies or shared flows in an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.environments.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the environment for which to return deployment information in the following format: `organizations/{org}/environments/{env}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"sharedFlows": { +"description": "Optional. Flag that specifies whether to return shared flow or API proxy deployments. Set to `true` to return shared flow deployments; set to `false` to return API proxy deployments. Defaults to `false`.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM policy on a deployment, if the policy already exists it will be replaced. For more information, see [Manage users, roles, and permissions using the API](https://cloud.google.com/apigee/docs/api-platform/system-administration/manage-users-roles). You must have the `apigee.deployments.setIamPolicy` permission to call this API.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/deployments/{deploymentsId}:setIamPolicy", +"httpMethod": "POST", +"id": "apigee.organizations.environments.deployments.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Tests the permissions of a user on a deployment, and returns a subset of permissions that the user has on the deployment. If the deployment does not exist, an empty permission set is returned (a NOT_FOUND error is not returned).", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/deployments/{deploymentsId}:testIamPermissions", +"httpMethod": "POST", +"id": "apigee.organizations.environments.deployments.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"flowhooks": { +"methods": { +"attachSharedFlowToFlowHook": { +"description": "Attaches a shared flow to a flow hook.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/flowhooks/{flowhooksId}", +"httpMethod": "PUT", +"id": "apigee.organizations.environments.flowhooks.attachSharedFlowToFlowHook", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the flow hook to which the shared flow should be attached in the following format: `organizations/{org}/environments/{env}/flowhooks/{flowhook}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/flowhooks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1FlowHook" +}, +"response": { +"$ref": "GoogleCloudApigeeV1FlowHook" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"detachSharedFlowFromFlowHook": { +"description": "Detaches a shared flow from a flow hook.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/flowhooks/{flowhooksId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.flowhooks.detachSharedFlowFromFlowHook", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the flow hook to detach in the following format: `organizations/{org}/environments/{env}/flowhooks/{flowhook}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/flowhooks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1FlowHook" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the name of the shared flow attached to the specified flow hook. If there's no shared flow attached to the flow hook, the API does not return an error; it simply does not return a name in the response.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/flowhooks/{flowhooksId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.flowhooks.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the flow hook in the following format: `organizations/{org}/environments/{env}/flowhooks/{flowhook}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/flowhooks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1FlowHook" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"keystores": { +"methods": { +"create": { +"description": "Creates a keystore or truststore. - Keystore: Contains certificates and their associated keys. - Truststore: Contains trusted certificates used to validate a server's certificate. These certificates are typically self-signed certificates or certificates that are not signed by a trusted CA.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keystores", +"httpMethod": "POST", +"id": "apigee.organizations.environments.keystores.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"name": { +"description": "Optional. Name of the keystore. Overrides the value in Keystore.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the environment in which to create the keystore. Use the following format in your request: `organizations/{org}/environments/{env}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/keystores", +"request": { +"$ref": "GoogleCloudApigeeV1Keystore" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Keystore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a keystore or truststore.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keystores/{keystoresId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.keystores.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the keystore. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keystores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Keystore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a keystore or truststore.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keystores/{keystoresId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.keystores.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the keystore. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keystores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Keystore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"aliases": { +"methods": { +"create": { +"description": "Creates an alias from a key/certificate pair. The structure of the request is controlled by the `format` query parameter: - `keycertfile` - Separate PEM-encoded key and certificate files are uploaded. Set `Content-Type: multipart/form-data` and include the `keyFile`, `certFile`, and `password` (if keys are encrypted) fields in the request body. If uploading to a truststore, omit `keyFile`. - `pkcs12` - A PKCS12 file is uploaded. Set `Content-Type: multipart/form-data`, provide the file in the `file` field, and include the `password` field if the file is encrypted in the request body. - `selfsignedcert` - A new private key and certificate are generated. Set `Content-Type: application/json` and include CertificateGenerationSpec in the request body.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keystores/{keystoresId}/aliases", +"httpMethod": "POST", +"id": "apigee.organizations.environments.keystores.aliases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"_password": { +"description": "DEPRECATED: For improved security, specify the password in the request body instead of using the query parameter. To specify the password in the request body, set `Content-type: multipart/form-data` part with name `password`. Password for the private key file, if required.", +"location": "query", +"type": "string" +}, +"alias": { +"description": "Alias for the key/certificate pair. Values must match the regular expression `[\\w\\s-.]{1,255}`. This must be provided for all formats except `selfsignedcert`; self-signed certs may specify the alias in either this parameter or the JSON body.", +"location": "query", +"type": "string" +}, +"format": { +"description": "Required. Format of the data. Valid values include: `selfsignedcert`, `keycertfile`, or `pkcs12`", +"location": "query", +"type": "string" +}, +"ignoreExpiryValidation": { +"description": "Flag that specifies whether to ignore expiry validation. If set to `true`, no expiry validation will be performed.", +"location": "query", +"type": "boolean" +}, +"ignoreNewlineValidation": { +"description": "Flag that specifies whether to ignore newline validation. If set to `true`, no error is thrown when the file contains a certificate chain with no newline between each certificate. Defaults to `false`.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. Name of the keystore. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keystores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/aliases", +"request": { +"$ref": "GoogleApiHttpBody" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Alias" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"csr": { +"description": "Generates a PKCS #10 Certificate Signing Request for the private key in an alias.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keystores/{keystoresId}/aliases/{aliasesId}/csr", +"httpMethod": "GET", +"id": "apigee.organizations.environments.keystores.aliases.csr", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keystores/[^/]+/aliases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/csr", +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an alias.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keystores/{keystoresId}/aliases/{aliasesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.keystores.aliases.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keystores/[^/]+/aliases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Alias" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an alias.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keystores/{keystoresId}/aliases/{aliasesId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.keystores.aliases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keystores/[^/]+/aliases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Alias" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getCertificate": { +"description": "Gets the certificate from an alias in PEM-encoded form.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keystores/{keystoresId}/aliases/{aliasesId}/certificate", +"httpMethod": "GET", +"id": "apigee.organizations.environments.keystores.aliases.getCertificate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keystores/[^/]+/aliases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/certificate", +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the certificate in an alias.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keystores/{keystoresId}/aliases/{aliasesId}", +"httpMethod": "PUT", +"id": "apigee.organizations.environments.keystores.aliases.update", +"parameterOrder": [ +"name" +], +"parameters": { +"ignoreExpiryValidation": { +"description": "Required. Flag that specifies whether to ignore expiry validation. If set to `true`, no expiry validation will be performed.", +"location": "query", +"type": "boolean" +}, +"ignoreNewlineValidation": { +"description": "Flag that specifies whether to ignore newline validation. If set to `true`, no error is thrown when the file contains a certificate chain with no newline between each certificate. Defaults to `false`.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the alias. Use the following format in your request: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keystores/[^/]+/aliases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleApiHttpBody" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Alias" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"keyvaluemaps": { +"methods": { +"create": { +"description": "Creates a key value map in an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps", +"httpMethod": "POST", +"id": "apigee.organizations.environments.keyvaluemaps.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the environment in which to create the key value map. Use the following structure in your request: `organizations/{org}/environments/{env}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/keyvaluemaps", +"request": { +"$ref": "GoogleCloudApigeeV1KeyValueMap" +}, +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a key value map from an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.keyvaluemaps.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the key value map. Use the following structure in your request: `organizations/{org}/environments/{env}/keyvaluemaps/{keyvaluemap}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keyvaluemaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"entries": { +"methods": { +"create": { +"description": "Creates key value entries in a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries", +"httpMethod": "POST", +"id": "apigee.organizations.environments.keyvaluemaps.entries.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keyvaluemaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entries", +"request": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a key value entry from a key value map scoped to an organization, environment, or API proxy. **Notes:** * After you delete the key value entry, the policy consuming the entry will continue to function with its cached values for a few minutes. This is expected behavior. * Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.keyvaluemaps.entries.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Scope as indicated by the URI in which to delete the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get the key value entry value for a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.keyvaluemaps.entries.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Scope as indicated by the URI in which to fetch the key value map entry/value. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists key value entries for key values maps scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries", +"httpMethod": "GET", +"id": "apigee.organizations.environments.keyvaluemaps.entries.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of key value entries to return. If unspecified, at most 100 entries will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token. If provides, must be a valid key value entry returned from a previous call that can be used to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Scope as indicated by the URI in which to list key value maps. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keyvaluemaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entries", +"response": { +"$ref": "GoogleCloudApigeeV1ListKeyValueEntriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Update key value entry scoped to an organization, environment, or API proxy for an existing key.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", +"httpMethod": "PUT", +"id": "apigee.organizations.environments.keyvaluemaps.entries.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"optimizedStats": { +"methods": { +"get": { +"description": "Similar to GetStats except that the response is less verbose.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/optimizedStats/{optimizedStatsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.optimizedStats.get", +"parameterOrder": [ +"name" +], +"parameters": { +"accuracy": { +"description": "No longer used by Apigee. Supported for backwards compatibility.", +"location": "query", +"type": "string" +}, +"aggTable": { +"description": "Table name used to query custom aggregate tables. If this parameter is skipped, then Apigee will try to retrieve the data from fact tables which will be expensive.", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Filter that enables you to drill-down on specific dimension values.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Maximum number of result items to return. The default and maximum value that can be returned is 14400.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name for which the interactive query will be executed. Use the following format in your request: `organizations/{org}/environments/{env}/optimizedStats/{dimensions}` Dimensions let you view metrics in meaningful groupings, such as `apiproxy`, `target_host`. The value of `dimensions` should be a comma-separated list as shown below: `organizations/{org}/environments/{env}/optimizedStats/apiproxy,request_verb`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/optimizedStats/.*$", +"required": true, +"type": "string" +}, +"offset": { +"description": "Offset value. Use `offset` with `limit` to enable pagination of results. For example, to display results 11-20, set limit to `10` and offset to `10`.", +"location": "query", +"type": "string" +}, +"realtime": { +"description": "No longer used by Apigee. Supported for backwards compatibility.", +"location": "query", +"type": "boolean" +}, +"select": { +"description": "Required. Comma-separated list of metrics. For example: `sum(message_count),sum(error_count)`", +"location": "query", +"type": "string" +}, +"sonar": { +"description": "Routes the query to API Monitoring for the last hour.", +"location": "query", +"type": "boolean" +}, +"sort": { +"description": "Flag that specifies whether the sort order should be ascending or descending. Valid values include `DESC` and `ASC`.", +"location": "query", +"type": "string" +}, +"sortby": { +"description": "Comma-separated list of columns to sort the final result.", +"location": "query", +"type": "string" +}, +"timeRange": { +"description": "Required. Time interval for the interactive query. Time range is specified in GMT as `start~end`. For example: `04/15/2017 00:00~05/15/2017 23:59`", +"location": "query", +"type": "string" +}, +"timeUnit": { +"description": "Granularity of metrics returned. Valid values include: `second`, `minute`, `hour`, `day`, `week`, or `month`.", +"location": "query", +"type": "string" +}, +"topk": { +"description": "Top number of results to return. For example, to return the top 5 results, set `topk=5`.", +"location": "query", +"type": "string" +}, +"tsAscending": { +"description": "Flag that specifies whether to list timestamps in ascending (`true`) or descending (`false`) order. Apigee recommends setting this value to `true` if you are using `sortby` with `sort=DESC`.", +"location": "query", +"type": "boolean" +}, +"tzo": { +"description": "Timezone offset value.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1OptimizedStats" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"queries": { +"methods": { +"create": { +"description": "Submit a query to be processed in the background. If the submission of the query succeeds, the API returns a 201 status and an ID that refer to the query. In addition to the HTTP status 201, the `state` of \"enqueued\" means that the request succeeded.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/queries", +"httpMethod": "POST", +"id": "apigee.organizations.environments.queries.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/queries", +"request": { +"$ref": "GoogleCloudApigeeV1Query" +}, +"response": { +"$ref": "GoogleCloudApigeeV1AsyncQuery" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get query status If the query is still in progress, the `state` is set to \"running\" After the query has completed successfully, `state` is set to \"completed\"", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/queries/{queriesId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.queries.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the asynchronous query to get. Must be of the form `organizations/{org}/environments/{env}/queries/{queryId}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/queries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AsyncQuery" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getResult": { +"description": "After the query is completed, use this API to retrieve the results. If the request succeeds, and there is a non-zero result set, the result is downloaded to the client as a zipped JSON file. The name of the downloaded file will be: OfflineQueryResult-.zip Example: `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip`", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/queries/{queriesId}/result", +"httpMethod": "GET", +"id": "apigee.organizations.environments.queries.getResult", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the asynchronous query result to get. Must be of the form `organizations/{org}/environments/{env}/queries/{queryId}/result`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/queries/[^/]+/result$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getResulturl": { +"description": "After the query is completed, use this API to retrieve the results. If the request succeeds, and there is a non-zero result set, the result is sent to the client as a list of urls to JSON files.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/queries/{queriesId}/resulturl", +"httpMethod": "GET", +"id": "apigee.organizations.environments.queries.getResulturl", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the asynchronous query result to get. Must be of the form `organizations/{org}/environments/{env}/queries/{queryId}/resulturl`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/queries/[^/]+/resulturl$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Return a list of Asynchronous Queries", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/queries", +"httpMethod": "GET", +"id": "apigee.organizations.environments.queries.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataset": { +"description": "Filter response list by dataset. Example: `api`, `mint`", +"location": "query", +"type": "string" +}, +"from": { +"description": "Filter response list by returning asynchronous queries that created after this date time. Time must be in ISO date-time format like '2011-12-03T10:15:30Z'.", +"location": "query", +"type": "string" +}, +"inclQueriesWithoutReport": { +"description": "Flag to include asynchronous queries that don't have a report denifition.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"status": { +"description": "Filter response list by asynchronous query status.", +"location": "query", +"type": "string" +}, +"submittedBy": { +"description": "Filter response list by user who submitted queries.", +"location": "query", +"type": "string" +}, +"to": { +"description": "Filter response list by returning asynchronous queries that created before this date time. Time must be in ISO date-time format like '2011-12-03T10:16:30Z'.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/queries", +"response": { +"$ref": "GoogleCloudApigeeV1ListAsyncQueriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"references": { +"methods": { +"create": { +"description": "Creates a Reference in the specified environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/references", +"httpMethod": "POST", +"id": "apigee.organizations.environments.references.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent environment name under which the Reference will be created. Must be of the form `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/references", +"request": { +"$ref": "GoogleCloudApigeeV1Reference" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Reference" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Reference from an environment. Returns the deleted Reference resource.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/references/{referencesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.references.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Reference to delete. Must be of the form `organizations/{org}/environments/{env}/references/{ref}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/references/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Reference" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Reference resource.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/references/{referencesId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.references.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Reference to get. Must be of the form `organizations/{org}/environments/{env}/references/{ref}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/references/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Reference" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates an existing Reference. Note that this operation has PUT semantics; it will replace the entirety of the existing Reference with the resource in the request body.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/references/{referencesId}", +"httpMethod": "PUT", +"id": "apigee.organizations.environments.references.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Reference to update. Must be of the form `organizations/{org}/environments/{env}/references/{ref}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/references/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Reference" +}, +"response": { +"$ref": "GoogleCloudApigeeV1Reference" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"resourcefiles": { +"methods": { +"create": { +"description": "Creates a resource file. Specify the `Content-Type` as `application/octet-stream` or `multipart/form-data`. For more information about resource files, see [Resource files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files).", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/resourcefiles", +"httpMethod": "POST", +"id": "apigee.organizations.environments.resourcefiles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"name": { +"description": "Required. Name of the resource file. Must match the regular expression: [a-zA-Z0-9:/\\\\!@#$%^&{}\\[\\]()+\\-=,.~'` ]{1,255}", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the environment in which to create the resource file in the following format: `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. Resource file type. {{ resource_file_type }}", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/resourcefiles", +"request": { +"$ref": "GoogleApiHttpBody" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ResourceFile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a resource file. For more information about resource files, see [Resource files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files).", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/resourcefiles/{type}/{name}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.resourcefiles.delete", +"parameterOrder": [ +"parent", +"type", +"name" +], +"parameters": { +"name": { +"description": "Required. ID of the resource file to delete. Must match the regular expression: [a-zA-Z0-9:/\\\\!@#$%^&{}\\[\\]()+\\-=,.~'` ]{1,255}", +"location": "path", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. Name of the environment in the following format: `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. Resource file type. {{ resource_file_type }}", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/resourcefiles/{type}/{name}", +"response": { +"$ref": "GoogleCloudApigeeV1ResourceFile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the contents of a resource file. For more information about resource files, see [Resource files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files).", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/resourcefiles/{type}/{name}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.resourcefiles.get", +"parameterOrder": [ +"parent", +"type", +"name" +], +"parameters": { +"name": { +"description": "Required. ID of the resource file. Must match the regular expression: [a-zA-Z0-9:/\\\\!@#$%^&{}\\[\\]()+\\-=,.~'` ]{1,255}", +"location": "path", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. Name of the environment in the following format: `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. Resource file type. {{ resource_file_type }}", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/resourcefiles/{type}/{name}", +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all resource files, optionally filtering by type. For more information about resource files, see [Resource files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files).", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/resourcefiles", +"httpMethod": "GET", +"id": "apigee.organizations.environments.resourcefiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the environment in which to list resource files in the following format: `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Optional. Type of resource files to list. {{ resource_file_type }}", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/resourcefiles", +"response": { +"$ref": "GoogleCloudApigeeV1ListEnvironmentResourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listEnvironmentResources": { +"description": "Lists all resource files, optionally filtering by type. For more information about resource files, see [Resource files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files).", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/resourcefiles/{type}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.resourcefiles.listEnvironmentResources", +"parameterOrder": [ +"parent", +"type" +], +"parameters": { +"parent": { +"description": "Required. Name of the environment in which to list resource files in the following format: `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Optional. Type of resource files to list. {{ resource_file_type }}", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/resourcefiles/{type}", +"response": { +"$ref": "GoogleCloudApigeeV1ListEnvironmentResourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates a resource file. Specify the `Content-Type` as `application/octet-stream` or `multipart/form-data`. For more information about resource files, see [Resource files](https://cloud.google.com/apigee/docs/api-platform/develop/resource-files).", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/resourcefiles/{type}/{name}", +"httpMethod": "PUT", +"id": "apigee.organizations.environments.resourcefiles.update", +"parameterOrder": [ +"parent", +"type", +"name" +], +"parameters": { +"name": { +"description": "Required. ID of the resource file to update. Must match the regular expression: [a-zA-Z0-9:/\\\\!@#$%^&{}\\[\\]()+\\-=,.~'` ]{1,255}", +"location": "path", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. Name of the environment in the following format: `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. Resource file type. {{ resource_file_type }}", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/resourcefiles/{type}/{name}", +"request": { +"$ref": "GoogleApiHttpBody" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ResourceFile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityActions": { +"methods": { +"create": { +"description": "CreateSecurityAction creates a SecurityAction.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions", +"httpMethod": "POST", +"id": "apigee.organizations.environments.securityActions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The organization and environment that this SecurityAction applies to. Format: organizations/{org}/environments/{env}", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"securityActionId": { +"description": "Required. The ID to use for the SecurityAction, which will become the final component of the action's resource name. This value should be 0-61 characters, and valid format is (^[a-z]([a-z0-9-]{\u200b0,61}[a-z0-9])?$).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/securityActions", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityAction" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityAction" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"disable": { +"description": "Disable a SecurityAction. The `state` of the SecurityAction after disabling is `DISABLED`. `DisableSecurityAction` can be called on SecurityActions in the state `ENABLED`; SecurityActions in a different state (including `DISABLED`) return an error.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions/{securityActionsId}:disable", +"httpMethod": "POST", +"id": "apigee.organizations.environments.securityActions.disable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityAction to disable. Format: organizations/{org}/environments/{env}/securityActions/{security_action}", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityActions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:disable", +"request": { +"$ref": "GoogleCloudApigeeV1DisableSecurityActionRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityAction" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enable": { +"description": "Enable a SecurityAction. The `state` of the SecurityAction after enabling is `ENABLED`. `EnableSecurityAction` can be called on SecurityActions in the state `DISABLED`; SecurityActions in a different state (including `ENABLED) return an error.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions/{securityActionsId}:enable", +"httpMethod": "POST", +"id": "apigee.organizations.environments.securityActions.enable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityAction to enable. Format: organizations/{org}/environments/{env}/securityActions/{security_action}", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityActions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:enable", +"request": { +"$ref": "GoogleCloudApigeeV1EnableSecurityActionRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityAction" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a SecurityAction by name.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions/{securityActionsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.securityActions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully qualified name of the SecurityAction to retrieve. Format: organizations/{org}/environments/{env}/securityActions/{security_action}", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityActions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecurityAction" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of SecurityActions. This returns both enabled and disabled actions.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityActions", +"httpMethod": "GET", +"id": "apigee.organizations.environments.securityActions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression to filter List results. https://google.aip.dev/160. Allows for filtering over: state and api_proxies. E.g.: state = ACTIVE AND apiProxies:foo. Filtering by action is not supported https://github.com/aip-dev/google.aip.dev/issues/624", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of SecurityActions to return. If unspecified, at most 50 SecurityActions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListSecurityActions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSecurityActions` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of SecurityActions. Format: organizations/{org}/environments/{env}", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/securityActions", +"response": { +"$ref": "GoogleCloudApigeeV1ListSecurityActionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityIncidents": { +"methods": { +"batchUpdate": { +"description": "BatchUpdateSecurityIncident updates multiple existing security incidents.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityIncidents:batchUpdate", +"httpMethod": "POST", +"id": "apigee.organizations.environments.securityIncidents.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. The parent resource shared by all security incidents being updated. If this is set, the parent field in the UpdateSecurityIncidentRequest messages must either be empty or match this field.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/securityIncidents:batchUpdate", +"request": { +"$ref": "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "GetSecurityIncident gets the specified security incident. Returns NOT_FOUND if security incident is not present for the specified organization and environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityIncidents/{securityIncidentsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.securityIncidents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Security incident in the following format: `organizations/{org}/environments/{environment}/securityIncidents/{incident}'. Example: organizations/testOrg/environments/testEnv/securityIncidents/1234-4567-890-111", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityIncidents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecurityIncident" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "ListSecurityIncidents lists all the security incident associated with the environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityIncidents", +"httpMethod": "GET", +"id": "apigee.organizations.environments.securityIncidents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression to be used to get the list of security incidents, where filtering can be done on API Proxies. Example: filter = \"api_proxy = /\", \"first_detected_time >\", \"last_detected_time <\"", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of incidents to return. The service may return fewer than this value. If unspecified, at most 50 incidents will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListSecurityIncident` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. For a specific organization, list of all the security incidents. Format: `organizations/{org}/environments/{environment}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/securityIncidents", +"response": { +"$ref": "GoogleCloudApigeeV1ListSecurityIncidentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "UpdateSecurityIncidents updates an existing security incident.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityIncidents/{securityIncidentsId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.environments.securityIncidents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Name of the security incident resource. Format: organizations/{org}/environments/{environment}/securityIncidents/{incident} Example: organizations/apigee-org/environments/dev/securityIncidents/1234-5678-9101-1111", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityIncidents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to update. Allowed fields are: LINT.IfChange(allowed_update_fields_comment) - observability LINT.ThenChange()", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityIncident" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityIncident" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityReports": { +"methods": { +"create": { +"description": "Submit a report request to be processed in the background. If the submission succeeds, the API returns a 200 status and an ID that refer to the report request. In addition to the HTTP status 200, the `state` of \"enqueued\" means that the request succeeded.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports", +"httpMethod": "POST", +"id": "apigee.organizations.environments.securityReports.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/securityReports", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityReportQuery" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get security report status If the query is still in progress, the `state` is set to \"running\" After the query has completed successfully, `state` is set to \"completed\"", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports/{securityReportsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.securityReports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the security report to get. Must be of the form `organizations/{org}/environments/{env}/securityReports/{reportId}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityReports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecurityReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getResult": { +"description": "After the query is completed, use this API to retrieve the results as file. If the request succeeds, and there is a non-zero result set, the result is downloaded to the client as a zipped JSON file. The name of the downloaded file will be: OfflineQueryResult-.zip Example: `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip`", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports/{securityReportsId}/result", +"httpMethod": "GET", +"id": "apigee.organizations.environments.securityReports.getResult", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the security report result to get. Must be of the form `organizations/{org}/environments/{env}/securityReports/{reportId}/result`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityReports/[^/]+/result$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getResultView": { +"description": "After the query is completed, use this API to view the query result when result size is small.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports/{securityReportsId}/resultView", +"httpMethod": "GET", +"id": "apigee.organizations.environments.securityReports.getResultView", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the security report result view to get. Must be of the form `organizations/{org}/environments/{env}/securityReports/{reportId}/resultView`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/securityReports/[^/]+/resultView$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecurityReportResultView" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Return a list of Security Reports", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports", +"httpMethod": "GET", +"id": "apigee.organizations.environments.securityReports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataset": { +"description": "Filter response list by dataset. Example: `api`, `mint`", +"location": "query", +"type": "string" +}, +"from": { +"description": "Filter response list by returning security reports that created after this date time. Time must be in ISO date-time format like '2011-12-03T10:15:30Z'.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of security report to return in the list response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token returned from the previous list response to fetch the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"status": { +"description": "Filter response list by security reports status.", +"location": "query", +"type": "string" +}, +"submittedBy": { +"description": "Filter response list by user who submitted queries.", +"location": "query", +"type": "string" +}, +"to": { +"description": "Filter response list by returning security reports that created before this date time. Time must be in ISO date-time format like '2011-12-03T10:16:30Z'.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/securityReports", +"response": { +"$ref": "GoogleCloudApigeeV1ListSecurityReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityStats": { +"methods": { +"queryTabularStats": { +"description": "Retrieve security statistics as tabular rows.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityStats:queryTabularStats", +"httpMethod": "POST", +"id": "apigee.organizations.environments.securityStats.queryTabularStats", +"parameterOrder": [ +"orgenv" +], +"parameters": { +"orgenv": { +"description": "Required. Should be of the form organizations//environments/.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+orgenv}/securityStats:queryTabularStats", +"request": { +"$ref": "GoogleCloudApigeeV1QueryTabularStatsRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1QueryTabularStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryTimeSeriesStats": { +"description": "Retrieve security statistics as a collection of time series.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityStats:queryTimeSeriesStats", +"httpMethod": "POST", +"id": "apigee.organizations.environments.securityStats.queryTimeSeriesStats", +"parameterOrder": [ +"orgenv" +], +"parameters": { +"orgenv": { +"description": "Required. Should be of the form organizations//environments/.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+orgenv}/securityStats:queryTimeSeriesStats", +"request": { +"$ref": "GoogleCloudApigeeV1QueryTimeSeriesStatsRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1QueryTimeSeriesStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"sharedflows": { +"resources": { +"deployments": { +"methods": { +"list": { +"description": "Lists all deployments of a shared flow in an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/sharedflows/{sharedflowsId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.environments.sharedflows.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name representing a shared flow in an environment in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/sharedflows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"revisions": { +"methods": { +"deploy": { +"description": "Deploys a revision of a shared flow. If another revision of the same shared flow is currently deployed, set the `override` parameter to `true` to have this revision replace the currently deployed revision. You cannot use a shared flow until it has been deployed to an environment. For a request path `organizations/{org}/environments/{env}/sharedflows/{sf}/revisions/{rev}/deployments`, two permissions are required: * `apigee.deployments.create` on the resource `organizations/{org}/environments/{env}` * `apigee.sharedflowrevisions.deploy` on the resource `organizations/{org}/sharedflows/{sf}/revisions/{rev}`", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/sharedflows/{sharedflowsId}/revisions/{revisionsId}/deployments", +"httpMethod": "POST", +"id": "apigee.organizations.environments.sharedflows.revisions.deploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the shared flow revision to deploy in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/sharedflows/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +}, +"override": { +"description": "Flag that specifies whether the new deployment replaces other deployed revisions of the shared flow in the environment. Set `override` to `true` to replace other deployed revisions. By default, `override` is `false` and the deployment is rejected if other revisions of the shared flow are deployed in the environment.", +"location": "query", +"type": "boolean" +}, +"serviceAccount": { +"description": "Google Cloud IAM service account. The service account represents the identity of the deployed proxy, and determines what permissions it has. The format must be `{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1Deployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDeployments": { +"description": "Gets the deployment of a shared flow revision and actual state reported by runtime pods.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/sharedflows/{sharedflowsId}/revisions/{revisionsId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.environments.sharedflows.revisions.getDeployments", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name representing a shared flow in an environment in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/sharedflows/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1Deployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undeploy": { +"description": "Undeploys a shared flow revision from an environment. For a request path `organizations/{org}/environments/{env}/sharedflows/{sf}/revisions/{rev}/deployments`, two permissions are required: * `apigee.deployments.delete` on the resource `organizations/{org}/environments/{env}` * `apigee.sharedflowrevisions.undeploy` on the resource `organizations/{org}/sharedflows/{sf}/revisions/{rev}`", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/sharedflows/{sharedflowsId}/revisions/{revisionsId}/deployments", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.sharedflows.revisions.undeploy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the shared flow revision to undeploy in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}/revisions/{rev}`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/sharedflows/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/deployments", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"stats": { +"methods": { +"get": { +"description": "Retrieve metrics grouped by dimensions. The types of metrics you can retrieve include traffic, message counts, API call latency, response size, and cache hits and counts. Dimensions let you view metrics in meaningful groups. You can optionally pass dimensions as path parameters to the `stats` API. If dimensions are not specified, the metrics are computed on the entire set of data for the given time range.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/stats/{statsId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.stats.get", +"parameterOrder": [ +"name" +], +"parameters": { +"accuracy": { +"description": "No longer used by Apigee. Supported for backwards compatibility.", +"location": "query", +"type": "string" +}, +"aggTable": { +"description": "Table name used to query custom aggregate tables. If this parameter is skipped, then Apigee will try to retrieve the data from fact tables which will be expensive.", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Filter that enables you to drill down on specific dimension values.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Maximum number of result items to return. The default and maximum value that can be returned is 14400.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name for which the interactive query will be executed. Use the following format in your request: `organizations/{org}/environments/{env}/stats/{dimensions}` Dimensions let you view metrics in meaningful groupings, such as `apiproxy` or `target_host`. The value of dimensions should be a comma-separated list, as shown below: `organizations/{org}/environments/{env}/stats/apiproxy,request_verb`", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/stats/.*$", +"required": true, +"type": "string" +}, +"offset": { +"description": "Offset value. Use `offset` with `limit` to enable pagination of results. For example, to display results 11-20, set limit to `10` and offset to `10`.", +"location": "query", +"type": "string" +}, +"realtime": { +"description": "No longer used by Apigee. Supported for backwards compatibility.", +"location": "query", +"type": "boolean" +}, +"select": { +"description": "Comma-separated list of metrics. For example: `sum(message_count),sum(error_count)`", +"location": "query", +"type": "string" +}, +"sonar": { +"description": "Routes the query to API Monitoring for the last hour.", +"location": "query", +"type": "boolean" +}, +"sort": { +"description": "Flag that specifies whether the sort order should be ascending or descending. Valid values include: `DESC` and `ASC`.", +"location": "query", +"type": "string" +}, +"sortby": { +"description": "Comma-separated list of columns to sort the final result.", +"location": "query", +"type": "string" +}, +"timeRange": { +"description": "Time interval for the interactive query. Time range is specified in GMT as `start~end`. For example: `04/15/2017 00:00~05/15/2017 23:59`", +"location": "query", +"type": "string" +}, +"timeUnit": { +"description": "Granularity of metrics returned. Valid values include: `second`, `minute`, `hour`, `day`, `week`, or` month`.", +"location": "query", +"type": "string" +}, +"topk": { +"description": "Top number of results to return. For example, to return the top 5 results, set `topk=5`.", +"location": "query", +"type": "string" +}, +"tsAscending": { +"description": "Flag that specifies whether to list timestamps in ascending (`true`) or descending (`false`) order. Apigee recommends that you set this value to `true` if you are using `sortby` with `sort=DESC`.", +"location": "query", +"type": "boolean" +}, +"tzo": { +"description": "Timezone offset value.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Stats" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"targetservers": { +"methods": { +"create": { +"description": "Creates a TargetServer in the specified environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/targetservers", +"httpMethod": "POST", +"id": "apigee.organizations.environments.targetservers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"name": { +"description": "Optional. The ID to give the TargetServer. This will overwrite the value in TargetServer.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent environment name under which the TargetServer will be created. Must be of the form `organizations/{org}/environments/{env}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/targetservers", +"request": { +"$ref": "GoogleCloudApigeeV1TargetServer" +}, +"response": { +"$ref": "GoogleCloudApigeeV1TargetServer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a TargetServer from an environment. Returns the deleted TargetServer resource.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/targetservers/{targetserversId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.targetservers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the TargetServer to delete. Must be of the form `organizations/{org}/environments/{env}/targetservers/{target_server_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/targetservers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1TargetServer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a TargetServer resource.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/targetservers/{targetserversId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.targetservers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the TargetServer to get. Must be of the form `organizations/{org}/environments/{env}/targetservers/{target_server_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/targetservers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1TargetServer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates an existing TargetServer. Note that this operation has PUT semantics; it will replace the entirety of the existing TargetServer with the resource in the request body.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/targetservers/{targetserversId}", +"httpMethod": "PUT", +"id": "apigee.organizations.environments.targetservers.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the TargetServer to replace. Must be of the form `organizations/{org}/environments/{env}/targetservers/{target_server_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/targetservers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1TargetServer" +}, +"response": { +"$ref": "GoogleCloudApigeeV1TargetServer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"traceConfig": { +"resources": { +"overrides": { +"methods": { +"create": { +"description": "Creates a trace configuration override. The response contains a system-generated UUID, that can be used to view, update, or delete the configuration override. Use the List API to view the existing trace configuration overrides.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/traceConfig/overrides", +"httpMethod": "POST", +"id": "apigee.organizations.environments.traceConfig.overrides.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource of the trace configuration override. Use the following structure in your request. \"organizations/*/environments/*/traceConfig\".", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/traceConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/overrides", +"request": { +"$ref": "GoogleCloudApigeeV1TraceConfigOverride" +}, +"response": { +"$ref": "GoogleCloudApigeeV1TraceConfigOverride" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a distributed trace configuration override.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/traceConfig/overrides/{overridesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.environments.traceConfig.overrides.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the trace configuration override. Use the following structure in your request: \"organizations/*/environments/*/traceConfig/overrides/*\".", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/traceConfig/overrides/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a trace configuration override.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/traceConfig/overrides/{overridesId}", +"httpMethod": "GET", +"id": "apigee.organizations.environments.traceConfig.overrides.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the trace configuration override. Use the following structure in your request: \"organizations/*/environments/*/traceConfig/overrides/*\".", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/traceConfig/overrides/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1TraceConfigOverride" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all of the distributed trace configuration overrides in an environment.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/traceConfig/overrides", +"httpMethod": "GET", +"id": "apigee.organizations.environments.traceConfig.overrides.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of trace configuration overrides to return. If not specified, the maximum number returned is 25. The maximum number cannot exceed 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, returned from a previous `ListTraceConfigOverrides` call. Token value that can be used to retrieve the subsequent page. When paginating, all other parameters provided to `ListTraceConfigOverrides` must match those specified in the call to obtain the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource of the trace configuration override. Use the following structure in your request: \"organizations/*/environments/*/traceConfig\".", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/traceConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/overrides", +"response": { +"$ref": "GoogleCloudApigeeV1ListTraceConfigOverridesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a distributed trace configuration override. Note that the repeated fields have replace semantics when included in the field mask and that they will be overwritten by the value of the fields in the request body.", +"flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/traceConfig/overrides/{overridesId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.environments.traceConfig.overrides.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the trace configuration override. Use the following structure in your request: \"organizations/*/environments/*/traceConfig/overrides/*\".", +"location": "path", +"pattern": "^organizations/[^/]+/environments/[^/]+/traceConfig/overrides/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1TraceConfigOverride" +}, +"response": { +"$ref": "GoogleCloudApigeeV1TraceConfigOverride" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"hostQueries": { +"methods": { +"create": { +"description": "Submit a query at host level to be processed in the background. If the submission of the query succeeds, the API returns a 201 status and an ID that refer to the query. In addition to the HTTP status 201, the `state` of \"enqueued\" means that the request succeeded.", +"flatPath": "v1/organizations/{organizationsId}/hostQueries", +"httpMethod": "POST", +"id": "apigee.organizations.hostQueries.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name. Must be of the form `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/hostQueries", +"request": { +"$ref": "GoogleCloudApigeeV1Query" +}, +"response": { +"$ref": "GoogleCloudApigeeV1AsyncQuery" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get status of a query submitted at host level. If the query is still in progress, the `state` is set to \"running\" After the query has completed successfully, `state` is set to \"completed\"", +"flatPath": "v1/organizations/{organizationsId}/hostQueries/{hostQueriesId}", +"httpMethod": "GET", +"id": "apigee.organizations.hostQueries.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the asynchronous query to get. Must be of the form `organizations/{org}/queries/{queryId}`.", +"location": "path", +"pattern": "^organizations/[^/]+/hostQueries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AsyncQuery" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getResult": { +"description": "After the query is completed, use this API to retrieve the results. If the request succeeds, and there is a non-zero result set, the result is downloaded to the client as a zipped JSON file. The name of the downloaded file will be: OfflineQueryResult-.zip Example: `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip`", +"flatPath": "v1/organizations/{organizationsId}/hostQueries/{hostQueriesId}/result", +"httpMethod": "GET", +"id": "apigee.organizations.hostQueries.getResult", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the asynchronous query result to get. Must be of the form `organizations/{org}/queries/{queryId}/result`.", +"location": "path", +"pattern": "^organizations/[^/]+/hostQueries/[^/]+/result$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getResultView": { +"description": "", +"flatPath": "v1/organizations/{organizationsId}/hostQueries/{hostQueriesId}/resultView", +"httpMethod": "GET", +"id": "apigee.organizations.hostQueries.getResultView", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the asynchronous query result view to get. Must be of the form `organizations/{org}/queries/{queryId}/resultView`.", +"location": "path", +"pattern": "^organizations/[^/]+/hostQueries/[^/]+/resultView$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1AsyncQueryResultView" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Return a list of Asynchronous Queries at host level.", +"flatPath": "v1/organizations/{organizationsId}/hostQueries", +"httpMethod": "GET", +"id": "apigee.organizations.hostQueries.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataset": { +"description": "Filter response list by dataset. Example: `api`, `mint`", +"location": "query", +"type": "string" +}, +"envgroupHostname": { +"description": "Required. Filter response list by hostname.", +"location": "query", +"type": "string" +}, +"from": { +"description": "Filter response list by returning asynchronous queries that created after this date time. Time must be in ISO date-time format like '2011-12-03T10:15:30Z'.", +"location": "query", +"type": "string" +}, +"inclQueriesWithoutReport": { +"description": "Flag to include asynchronous queries that don't have a report denifition.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Must be of the form `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"status": { +"description": "Filter response list by asynchronous query status.", +"location": "query", +"type": "string" +}, +"submittedBy": { +"description": "Filter response list by user who submitted queries.", +"location": "query", +"type": "string" +}, +"to": { +"description": "Filter response list by returning asynchronous queries that created before this date time. Time must be in ISO date-time format like '2011-12-03T10:16:30Z'.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/hostQueries", +"response": { +"$ref": "GoogleCloudApigeeV1ListAsyncQueriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"hostSecurityReports": { +"methods": { +"create": { +"description": "Submit a query at host level to be processed in the background. If the submission of the query succeeds, the API returns a 201 status and an ID that refer to the query. In addition to the HTTP status 201, the `state` of \"enqueued\" means that the request succeeded.", +"flatPath": "v1/organizations/{organizationsId}/hostSecurityReports", +"httpMethod": "POST", +"id": "apigee.organizations.hostSecurityReports.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name. Must be of the form `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/hostSecurityReports", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityReportQuery" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get status of a query submitted at host level. If the query is still in progress, the `state` is set to \"running\" After the query has completed successfully, `state` is set to \"completed\"", +"flatPath": "v1/organizations/{organizationsId}/hostSecurityReports/{hostSecurityReportsId}", +"httpMethod": "GET", +"id": "apigee.organizations.hostSecurityReports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the security report to get. Must be of the form `organizations/{org}/securityReports/{reportId}`.", +"location": "path", +"pattern": "^organizations/[^/]+/hostSecurityReports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecurityReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getResult": { +"description": "After the query is completed, use this API to retrieve the results. If the request succeeds, and there is a non-zero result set, the result is downloaded to the client as a zipped JSON file. The name of the downloaded file will be: OfflineQueryResult-.zip Example: `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip`", +"flatPath": "v1/organizations/{organizationsId}/hostSecurityReports/{hostSecurityReportsId}/result", +"httpMethod": "GET", +"id": "apigee.organizations.hostSecurityReports.getResult", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the security report result to get. Must be of the form `organizations/{org}/securityReports/{reportId}/result`.", +"location": "path", +"pattern": "^organizations/[^/]+/hostSecurityReports/[^/]+/result$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getResultView": { +"description": "After the query is completed, use this API to view the query result when result size is small.", +"flatPath": "v1/organizations/{organizationsId}/hostSecurityReports/{hostSecurityReportsId}/resultView", +"httpMethod": "GET", +"id": "apigee.organizations.hostSecurityReports.getResultView", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the security report result view to get. Must be of the form `organizations/{org}/securityReports/{reportId}/resultView`.", +"location": "path", +"pattern": "^organizations/[^/]+/hostSecurityReports/[^/]+/resultView$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecurityReportResultView" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Return a list of Security Reports at host level.", +"flatPath": "v1/organizations/{organizationsId}/hostSecurityReports", +"httpMethod": "GET", +"id": "apigee.organizations.hostSecurityReports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataset": { +"description": "Filter response list by dataset. Example: `api`, `mint`", +"location": "query", +"type": "string" +}, +"envgroupHostname": { +"description": "Required. Filter response list by hostname.", +"location": "query", +"type": "string" +}, +"from": { +"description": "Filter response list by returning security reports that created after this date time. Time must be in ISO date-time format like '2011-12-03T10:15:30Z'.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of security report to return in the list response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token returned from the previous list response to fetch the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Must be of the form `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"status": { +"description": "Filter response list by security report status.", +"location": "query", +"type": "string" +}, +"submittedBy": { +"description": "Filter response list by user who submitted queries.", +"location": "query", +"type": "string" +}, +"to": { +"description": "Filter response list by returning security reports that created before this date time. Time must be in ISO date-time format like '2011-12-03T10:16:30Z'.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/hostSecurityReports", +"response": { +"$ref": "GoogleCloudApigeeV1ListSecurityReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"hostStats": { +"methods": { +"get": { +"description": "Retrieve metrics grouped by dimensions in host level. The types of metrics you can retrieve include traffic, message counts, API call latency, response size, and cache hits and counts. Dimensions let you view metrics in meaningful groups. You can optionally pass dimensions as path parameters to the `stats` API. If dimensions are not specified, the metrics are computed on the entire set of data for the given time range.", +"flatPath": "v1/organizations/{organizationsId}/hostStats/{hostStatsId}", +"httpMethod": "GET", +"id": "apigee.organizations.hostStats.get", +"parameterOrder": [ +"name" +], +"parameters": { +"accuracy": { +"description": "No longer used by Apigee. Supported for backwards compatibility.", +"location": "query", +"type": "string" +}, +"envgroupHostname": { +"description": "Required. Hostname for which the interactive query will be executed.", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Flag that enables drill-down on specific dimension values.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Maximum number of result items to return. The default and maximum value that can be returned is 14400.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name for which the interactive query will be executed. Use the following format in your request: `organizations/{org}/hostStats/{dimensions}` Dimensions let you view metrics in meaningful groupings, such as `apiproxy`, `target_host`. The value of dimensions should be a comma-separated list as shown below `organizations/{org}/hostStats/apiproxy,request_verb`", +"location": "path", +"pattern": "^organizations/[^/]+/hostStats/.*$", +"required": true, +"type": "string" +}, +"offset": { +"description": "Offset value. Use `offset` with `limit` to enable pagination of results. For example, to display results 11-20, set limit to `10` and offset to `10`.", +"location": "query", +"type": "string" +}, +"realtime": { +"description": "No longer used by Apigee. Supported for backwards compatibility.", +"location": "query", +"type": "boolean" +}, +"select": { +"description": "Comma-separated list of metrics. For example: `sum(message_count),sum(error_count)`", +"location": "query", +"type": "string" +}, +"sort": { +"description": "Flag that specifies if the sort order should be ascending or descending. Valid values are `DESC` and `ASC`.", +"location": "query", +"type": "string" +}, +"sortby": { +"description": "Comma-separated list of columns to sort the final result.", +"location": "query", +"type": "string" +}, +"timeRange": { +"description": "Time interval for the interactive query. Time range is specified in GMT as `start~end`. For example: `04/15/2017 00:00~05/15/2017 23:59`", +"location": "query", +"type": "string" +}, +"timeUnit": { +"description": "Granularity of metrics returned. Valid values include: `second`, `minute`, `hour`, `day`, `week`, or `month`.", +"location": "query", +"type": "string" +}, +"topk": { +"description": "Top number of results to return. For example, to return the top 5 results, set `topk=5`.", +"location": "query", +"type": "string" +}, +"tsAscending": { +"description": "Flag that specifies whether to list timestamps in ascending (`true`) or descending (`false`) order. Apigee recommends that you set this value to `true` if you are using `sortby` with `sort=DESC`.", +"location": "query", +"type": "boolean" +}, +"tzo": { +"description": "Timezone offset value.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Stats" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"instances": { +"methods": { +"create": { +"description": "Creates an Apigee runtime instance. The instance is accessible from the authorized network configured on the organization. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances", +"httpMethod": "POST", +"id": "apigee.organizations.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the organization. Use the following structure in your request: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"request": { +"$ref": "GoogleCloudApigeeV1Instance" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an Apigee runtime instance. The instance stops serving requests and the runtime data is deleted. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`.", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details for an Apigee runtime instance. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "apigee.organizations.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`.", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Apigee runtime instances for the organization. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances", +"httpMethod": "GET", +"id": "apigee.organizations.instances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of instances to return. Defaults to 25.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned from a previous ListInstances call, that you can use to retrieve the next page of content.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the organization. Use the following structure in your request: `organizations/{org}`.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"response": { +"$ref": "GoogleCloudApigeeV1ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an Apigee runtime instance. You can update the fields described in NodeConfig. No other fields will be updated. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`.", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1Instance" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reportStatus": { +"description": "Reports the latest status for a runtime instance.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}:reportStatus", +"httpMethod": "POST", +"id": "apigee.organizations.instances.reportStatus", +"parameterOrder": [ +"instance" +], +"parameters": { +"instance": { +"description": "The name of the instance reporting this status. For SaaS the request will be rejected if no instance exists under this name. Format is organizations/{org}/instances/{instance}", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+instance}:reportStatus", +"request": { +"$ref": "GoogleCloudApigeeV1ReportInstanceStatusRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ReportInstanceStatusResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attachments": { +"methods": { +"create": { +"description": "Creates a new attachment of an environment to an instance. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/attachments", +"httpMethod": "POST", +"id": "apigee.organizations.instances.attachments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`.", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attachments", +"request": { +"$ref": "GoogleCloudApigeeV1InstanceAttachment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an attachment. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/attachments/{attachmentsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.instances.attachments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the attachment. Use the following structure in your request: `organizations/{org}/instances/{instance}/attachments/{attachment}`.", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+/attachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an attachment. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/attachments/{attachmentsId}", +"httpMethod": "GET", +"id": "apigee.organizations.instances.attachments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the attachment. Use the following structure in your request: `organizations/{org}/instances/{instance}/attachments/{attachment}`", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+/attachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1InstanceAttachment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all attachments to an instance. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/attachments", +"httpMethod": "GET", +"id": "apigee.organizations.instances.attachments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of instance attachments to return. Defaults to 25.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous ListInstanceAttachments call, that you can use to retrieve the next page of content.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the organization. Use the following structure in your request: `organizations/{org}/instances/{instance}`", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attachments", +"response": { +"$ref": "GoogleCloudApigeeV1ListInstanceAttachmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"canaryevaluations": { +"methods": { +"create": { +"description": "Creates a new canary evaluation for an organization.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/canaryevaluations", +"httpMethod": "POST", +"id": "apigee.organizations.instances.canaryevaluations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the organization. Use the following structure in your request: `organizations/{org}/instances/{instance}`.", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/canaryevaluations", +"request": { +"$ref": "GoogleCloudApigeeV1CanaryEvaluation" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a CanaryEvaluation for an organization.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/canaryevaluations/{canaryevaluationsId}", +"httpMethod": "GET", +"id": "apigee.organizations.instances.canaryevaluations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the CanaryEvaluation. Use the following structure in your request: `organizations/{org}/instances/*/canaryevaluations/{evaluation}`", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+/canaryevaluations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1CanaryEvaluation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"natAddresses": { +"methods": { +"activate": { +"description": "Activates the NAT address. The Apigee instance can now use this for Internet egress traffic. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/natAddresses/{natAddressesId}:activate", +"httpMethod": "POST", +"id": "apigee.organizations.instances.natAddresses.activate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the nat address. Use the following structure in your request: `organizations/{org}/instances/{instances}/natAddresses/{nataddress}``", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+/natAddresses/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:activate", +"request": { +"$ref": "GoogleCloudApigeeV1ActivateNatAddressRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a NAT address. The address is created in the RESERVED state and a static external IP address will be provisioned. At this time, the instance will not use this IP address for Internet egress traffic. The address can be activated for use once any required firewall IP whitelisting has been completed. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/natAddresses", +"httpMethod": "POST", +"id": "apigee.organizations.instances.natAddresses.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/natAddresses", +"request": { +"$ref": "GoogleCloudApigeeV1NatAddress" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the NAT address. Connections that are actively using the address are drained before it is removed. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/natAddresses/{natAddressesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.instances.natAddresses.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the nat address. Use the following structure in your request: `organizations/{org}/instances/{instances}/natAddresses/{nataddress}``", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+/natAddresses/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a NAT address. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/natAddresses/{natAddressesId}", +"httpMethod": "GET", +"id": "apigee.organizations.instances.natAddresses.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the nat address. Use the following structure in your request: `organizations/{org}/instances/{instances}/natAddresses/{nataddress}`", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+/natAddresses/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1NatAddress" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the NAT addresses for an Apigee instance. **Note:** Not supported for Apigee hybrid.", +"flatPath": "v1/organizations/{organizationsId}/instances/{instancesId}/natAddresses", +"httpMethod": "GET", +"id": "apigee.organizations.instances.natAddresses.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of natAddresses to return. Defaults to 25.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned from a previous ListNatAddresses call, that you can use to retrieve the next page of content.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the instance. Use the following structure in your request: `organizations/{org}/instances/{instance}`", +"location": "path", +"pattern": "^organizations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/natAddresses", +"response": { +"$ref": "GoogleCloudApigeeV1ListNatAddressesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"keyvaluemaps": { +"methods": { +"create": { +"description": "Creates a key value map in an organization.", +"flatPath": "v1/organizations/{organizationsId}/keyvaluemaps", +"httpMethod": "POST", +"id": "apigee.organizations.keyvaluemaps.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the organization in which to create the key value map file. Use the following structure in your request: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/keyvaluemaps", +"request": { +"$ref": "GoogleCloudApigeeV1KeyValueMap" +}, +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a key value map from an organization.", +"flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.keyvaluemaps.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the key value map. Use the following structure in your request: `organizations/{org}/keyvaluemaps/{keyvaluemap}`", +"location": "path", +"pattern": "^organizations/[^/]+/keyvaluemaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"entries": { +"methods": { +"create": { +"description": "Creates key value entries in a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries", +"httpMethod": "POST", +"id": "apigee.organizations.keyvaluemaps.entries.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", +"location": "path", +"pattern": "^organizations/[^/]+/keyvaluemaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entries", +"request": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a key value entry from a key value map scoped to an organization, environment, or API proxy. **Notes:** * After you delete the key value entry, the policy consuming the entry will continue to function with its cached values for a few minutes. This is expected behavior. * Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.keyvaluemaps.entries.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Scope as indicated by the URI in which to delete the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", +"location": "path", +"pattern": "^organizations/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get the key value entry value for a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", +"httpMethod": "GET", +"id": "apigee.organizations.keyvaluemaps.entries.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Scope as indicated by the URI in which to fetch the key value map entry/value. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", +"location": "path", +"pattern": "^organizations/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists key value entries for key values maps scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries", +"httpMethod": "GET", +"id": "apigee.organizations.keyvaluemaps.entries.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of key value entries to return. If unspecified, at most 100 entries will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token. If provides, must be a valid key value entry returned from a previous call that can be used to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Scope as indicated by the URI in which to list key value maps. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", +"location": "path", +"pattern": "^organizations/[^/]+/keyvaluemaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entries", +"response": { +"$ref": "GoogleCloudApigeeV1ListKeyValueEntriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Update key value entry scoped to an organization, environment, or API proxy for an existing key.", +"flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", +"httpMethod": "PUT", +"id": "apigee.organizations.keyvaluemaps.entries.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", +"location": "path", +"pattern": "^organizations/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"response": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/organizations/{organizationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "apigee.organizations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/organizations/{organizationsId}/operations", +"httpMethod": "GET", +"id": "apigee.organizations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"optimizedHostStats": { +"methods": { +"get": { +"description": "Similar to GetHostStats except that the response is less verbose.", +"flatPath": "v1/organizations/{organizationsId}/optimizedHostStats/{optimizedHostStatsId}", +"httpMethod": "GET", +"id": "apigee.organizations.optimizedHostStats.get", +"parameterOrder": [ +"name" +], +"parameters": { +"accuracy": { +"description": "No longer used by Apigee. Supported for backwards compatibility.", +"location": "query", +"type": "string" +}, +"envgroupHostname": { +"description": "Required. Hostname for which the interactive query will be executed.", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Filter that enables you to drill-down on specific dimension values.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Maximum number of result items to return. The default and maximum value that can be returned is 14400.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name for which the interactive query will be executed. Use the following format in your request: `organizations/{organization_id}/optimizedHostStats/{dimensions}` Dimensions let you view metrics in meaningful groupings, such as `apiproxy`, `target_host`. The value of dimensions should be a comma-separated list as shown below: `organizations/{org}/optimizedHostStats/apiproxy,request_verb`", +"location": "path", +"pattern": "^organizations/[^/]+/optimizedHostStats/.*$", +"required": true, +"type": "string" +}, +"offset": { +"description": "Offset value. Use `offset` with `limit` to enable pagination of results. For example, to display results 11-20, set limit to `10` and offset to `10`.", +"location": "query", +"type": "string" +}, +"realtime": { +"description": "No longer used by Apigee. Supported for backwards compatibility.", +"location": "query", +"type": "boolean" +}, +"select": { +"description": "Required. Comma-separated list of metrics. For example: `sum(message_count),sum(error_count)`", +"location": "query", +"type": "string" +}, +"sort": { +"description": "Flag that specifies whether the sort order should be ascending or descending. Valid values include `DESC` and `ASC`.", +"location": "query", +"type": "string" +}, +"sortby": { +"description": "Comma-separated list of columns used to sort the final result.", +"location": "query", +"type": "string" +}, +"timeRange": { +"description": "Required. Time interval for the interactive query. Time range is specified in GMT as `start~end`. For example: `04/15/2017 00:00~05/15/2017 23:59`.", +"location": "query", +"type": "string" +}, +"timeUnit": { +"description": "Granularity of metrics returned. Valid values include: `second`, `minute`, `hour`, `day`, `week`, or `month`.", +"location": "query", +"type": "string" +}, +"topk": { +"description": "Top number of results to return. For example, to return the top 5 results, set `topk=5`.", +"location": "query", +"type": "string" +}, +"tsAscending": { +"description": "Flag that specifies whether to list timestamps in ascending (`true`) or descending (`false`) order. Apigee recommends that you set this value to `true` if you are using `sortby` with `sort=DESC`.", +"location": "query", +"type": "boolean" +}, +"tzo": { +"description": "Timezone offset value.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1OptimizedStats" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"reports": { +"methods": { +"create": { +"description": "Creates a Custom Report for an Organization. A Custom Report provides Apigee Customers to create custom dashboards in addition to the standard dashboards which are provided. The Custom Report in its simplest form contains specifications about metrics, dimensions and filters. It is important to note that the custom report by itself does not provide an executable entity. The Edge UI converts the custom report definition into an analytics query and displays the result in a chart.", +"flatPath": "v1/organizations/{organizationsId}/reports", +"httpMethod": "POST", +"id": "apigee.organizations.reports.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent organization name under which the Custom Report will be created. Must be of the form: `organizations/{organization_id}/reports`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/reports", +"request": { +"$ref": "GoogleCloudApigeeV1CustomReport" +}, +"response": { +"$ref": "GoogleCloudApigeeV1CustomReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing custom report definition", +"flatPath": "v1/organizations/{organizationsId}/reports/{reportsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.reports.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Custom Report name of the form: `organizations/{organization_id}/reports/{report_name}`", +"location": "path", +"pattern": "^organizations/[^/]+/reports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeleteCustomReportResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve a custom report definition.", +"flatPath": "v1/organizations/{organizationsId}/reports/{reportsId}", +"httpMethod": "GET", +"id": "apigee.organizations.reports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Custom Report name of the form: `organizations/{organization_id}/reports/{report_name}`", +"location": "path", +"pattern": "^organizations/[^/]+/reports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1CustomReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Return a list of Custom Reports", +"flatPath": "v1/organizations/{organizationsId}/reports", +"httpMethod": "GET", +"id": "apigee.organizations.reports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"expand": { +"description": "Set to 'true' to get expanded details about each custom report.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. The parent organization name under which the API product will be listed `organizations/{organization_id}/reports`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/reports", +"response": { +"$ref": "GoogleCloudApigeeV1ListCustomReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Update an existing custom report definition", +"flatPath": "v1/organizations/{organizationsId}/reports/{reportsId}", +"httpMethod": "PUT", +"id": "apigee.organizations.reports.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Custom Report name of the form: `organizations/{organization_id}/reports/{report_name}`", +"location": "path", +"pattern": "^organizations/[^/]+/reports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1CustomReport" +}, +"response": { +"$ref": "GoogleCloudApigeeV1CustomReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityAssessmentResults": { +"methods": { +"batchCompute": { +"description": "Compute RAV2 security scores for a set of resources.", +"flatPath": "v1/organizations/{organizationsId}/securityAssessmentResults:batchCompute", +"httpMethod": "POST", +"id": "apigee.organizations.securityAssessmentResults.batchCompute", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the organization for which the score needs to be computed in the following format: `organizations/{org}/securityAssessmentResults`", +"location": "path", +"pattern": "^organizations/[^/]+/securityAssessmentResults$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:batchCompute", +"request": { +"$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityProfiles": { +"methods": { +"create": { +"description": "CreateSecurityProfile create a new custom security profile.", +"flatPath": "v1/organizations/{organizationsId}/securityProfiles", +"httpMethod": "POST", +"id": "apigee.organizations.securityProfiles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of organization. Format: organizations/{org}", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"securityProfileId": { +"description": "Required. The ID to use for the SecurityProfile, which will become the final component of the action's resource name. This value should be 1-63 characters and validated by \"(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$)\".", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/securityProfiles", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityProfile" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "DeleteSecurityProfile delete a profile with all its revisions.", +"flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.securityProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of profile. Format: organizations/{org}/securityProfiles/{profile}", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "GetSecurityProfile gets the specified security profile. Returns NOT_FOUND if security profile is not present for the specified organization.", +"flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}", +"httpMethod": "GET", +"id": "apigee.organizations.securityProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Security profile in the following format: `organizations/{org}/securityProfiles/{profile}'. Profile may optionally contain revision ID. If revision ID is not provided, the response will contain latest revision by default. Example: organizations/testOrg/securityProfiles/testProfile@5", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecurityProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "ListSecurityProfiles lists all the security profiles associated with the org including attached and unattached profiles.", +"flatPath": "v1/organizations/{organizationsId}/securityProfiles", +"httpMethod": "GET", +"id": "apigee.organizations.securityProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of profiles to return. The service may return fewer than this value. If unspecified, at most 50 profiles will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListSecurityProfiles` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. For a specific organization, list of all the security profiles. Format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/securityProfiles", +"response": { +"$ref": "GoogleCloudApigeeV1ListSecurityProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listRevisions": { +"description": "ListSecurityProfileRevisions lists all the revisions of the security profile.", +"flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}:listRevisions", +"httpMethod": "GET", +"id": "apigee.organizations.securityProfiles.listRevisions", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. For a specific profile, list all the revisions. Format: `organizations/{org}/securityProfiles/{profile}`", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of profile revisions to return. The service may return fewer than this value. If unspecified, at most 50 revisions will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListSecurityProfileRevisions` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:listRevisions", +"response": { +"$ref": "GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "UpdateSecurityProfile update the metadata of security profile.", +"flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.securityProfiles.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Name of the security profile resource. Format: organizations/{org}/securityProfiles/{profile}", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityProfile" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"environments": { +"methods": { +"computeEnvironmentScores": { +"description": "ComputeEnvironmentScores calculates scores for requested time range for the specified security profile and environment.", +"flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}/environments/{environmentsId}:computeEnvironmentScores", +"httpMethod": "POST", +"id": "apigee.organizations.securityProfiles.environments.computeEnvironmentScores", +"parameterOrder": [ +"profileEnvironment" +], +"parameters": { +"profileEnvironment": { +"description": "Required. Name of organization and environment and profile id for which score needs to be computed. Format: organizations/{org}/securityProfiles/{profile}/environments/{env}", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfiles/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+profileEnvironment}:computeEnvironmentScores", +"request": { +"$ref": "GoogleCloudApigeeV1ComputeEnvironmentScoresRequest" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ComputeEnvironmentScoresResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "CreateSecurityProfileEnvironmentAssociation creates profile environment association i.e. attaches environment to security profile.", +"flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}/environments", +"httpMethod": "POST", +"id": "apigee.organizations.securityProfiles.environments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of organization and security profile ID. Format: organizations/{org}/securityProfiles/{profile}", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/environments", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "DeleteSecurityProfileEnvironmentAssociation removes profile environment association i.e. detaches environment from security profile.", +"flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}/environments/{environmentsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.securityProfiles.environments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the environment attachment to delete. Format: organizations/{org}/securityProfiles/{profile}/environments/{env}", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfiles/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"securityProfilesV2": { +"methods": { +"create": { +"description": "Create a security profile v2.", +"flatPath": "v1/organizations/{organizationsId}/securityProfilesV2", +"httpMethod": "POST", +"id": "apigee.organizations.securityProfilesV2.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name. Format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"securityProfileV2Id": { +"description": "Required. The security profile id.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/securityProfilesV2", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityProfileV2" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityProfileV2" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a security profile v2.", +"flatPath": "v1/organizations/{organizationsId}/securityProfilesV2/{securityProfilesV2Id}", +"httpMethod": "DELETE", +"id": "apigee.organizations.securityProfilesV2.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the security profile v2 to delete. Format: `organizations/{org}/securityProfilesV2/{profile}`", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfilesV2/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a security profile v2.", +"flatPath": "v1/organizations/{organizationsId}/securityProfilesV2/{securityProfilesV2Id}", +"httpMethod": "GET", +"id": "apigee.organizations.securityProfilesV2.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the security profile v2 to get. Format: `organizations/{org}/securityProfilesV2/{profile}`", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfilesV2/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SecurityProfileV2" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List security profiles v2.", +"flatPath": "v1/organizations/{organizationsId}/securityProfilesV2", +"httpMethod": "GET", +"id": "apigee.organizations.securityProfilesV2.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of profiles to return", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListSecurityProfilesV2` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. For a specific organization, list of all the security profiles. Format: `organizations/{org}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/securityProfilesV2", +"response": { +"$ref": "GoogleCloudApigeeV1ListSecurityProfilesV2Response" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a security profile V2.", +"flatPath": "v1/organizations/{organizationsId}/securityProfilesV2/{securityProfilesV2Id}", +"httpMethod": "PATCH", +"id": "apigee.organizations.securityProfilesV2.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the security profile v2 resource. Format: organizations/{org}/securityProfilesV2/{profile}", +"location": "path", +"pattern": "^organizations/[^/]+/securityProfilesV2/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The list of fields to update. Valid fields to update are `description` and `profileAssessmentConfigs`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1SecurityProfileV2" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SecurityProfileV2" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"sharedflows": { +"methods": { +"create": { +"description": "Uploads a ZIP-formatted shared flow configuration bundle to an organization. If the shared flow already exists, this creates a new revision of it. If the shared flow does not exist, this creates it. Once imported, the shared flow revision must be deployed before it can be accessed at runtime. The size limit of a shared flow bundle is 15 MB.", +"flatPath": "v1/organizations/{organizationsId}/sharedflows", +"httpMethod": "POST", +"id": "apigee.organizations.sharedflows.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"action": { +"description": "Required. Must be set to either `import` or `validate`.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name to give the shared flow", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent organization under which to create the shared flow. Must be of the form: `organizations/{organization_id}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/sharedflows", +"request": { +"$ref": "GoogleApiHttpBody" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SharedFlowRevision" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a shared flow and all it's revisions. The shared flow must be undeployed before you can delete it.", +"flatPath": "v1/organizations/{organizationsId}/sharedflows/{sharedflowsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.sharedflows.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. shared flow name of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/sharedflows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SharedFlow" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a shared flow by name, including a list of its revisions.", +"flatPath": "v1/organizations/{organizationsId}/sharedflows/{sharedflowsId}", +"httpMethod": "GET", +"id": "apigee.organizations.sharedflows.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the shared flow to get. Must be of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/sharedflows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SharedFlow" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all shared flows in the organization.", +"flatPath": "v1/organizations/{organizationsId}/sharedflows", +"httpMethod": "GET", +"id": "apigee.organizations.sharedflows.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"includeMetaData": { +"description": "Indicates whether to include shared flow metadata in the response.", +"location": "query", +"type": "boolean" +}, +"includeRevisions": { +"description": "Indicates whether to include a list of revisions in the response.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. The name of the parent organization under which to get shared flows. Must be of the form: `organizations/{organization_id}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/sharedflows", +"response": { +"$ref": "GoogleCloudApigeeV1ListSharedFlowsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"deployments": { +"methods": { +"list": { +"description": "Lists all deployments of a shared flow.", +"flatPath": "v1/organizations/{organizationsId}/sharedflows/{sharedflowsId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.sharedflows.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the shared flow for which to return deployment information in the following format: `organizations/{org}/sharedflows/{sharedflow}`", +"location": "path", +"pattern": "^organizations/[^/]+/sharedflows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"revisions": { +"methods": { +"delete": { +"description": "Deletes a shared flow and all associated policies, resources, and revisions. You must undeploy the shared flow before deleting it.", +"flatPath": "v1/organizations/{organizationsId}/sharedflows/{sharedflowsId}/revisions/{revisionsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.sharedflows.revisions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the shared flow revision to delete. Must be of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}/revisions/{revision_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/sharedflows/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1SharedFlowRevision" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a revision of a shared flow. To download the shared flow configuration bundle for the specified revision as a zip file, set the `format` query parameter to `bundle`. If you are using curl, specify `-o filename.zip` to save the output to a file; otherwise, it displays to `stdout`. Then, develop the shared flow configuration locally and upload the updated sharedFlow configuration revision, as described in [updateSharedFlowRevision](updateSharedFlowRevision).", +"flatPath": "v1/organizations/{organizationsId}/sharedflows/{sharedflowsId}/revisions/{revisionsId}", +"httpMethod": "GET", +"id": "apigee.organizations.sharedflows.revisions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"format": { +"description": "Specify `bundle` to export the contents of the shared flow bundle. Otherwise, the bundle metadata is returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the shared flow revision to get. Must be of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}/revisions/{revision_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/sharedflows/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSharedFlowRevision": { +"description": "Updates a shared flow revision. This operation is only allowed on revisions which have never been deployed. After deployment a revision becomes immutable, even if it becomes undeployed. The payload is a ZIP-formatted shared flow. Content type must be either multipart/form-data or application/octet-stream.", +"flatPath": "v1/organizations/{organizationsId}/sharedflows/{sharedflowsId}/revisions/{revisionsId}", +"httpMethod": "POST", +"id": "apigee.organizations.sharedflows.revisions.updateSharedFlowRevision", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the shared flow revision to update. Must be of the form: `organizations/{organization_id}/sharedflows/{shared_flow_id}/revisions/{revision_id}`", +"location": "path", +"pattern": "^organizations/[^/]+/sharedflows/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +}, +"validate": { +"description": "Ignored. All uploads are validated regardless of the value of this field. It is kept for compatibility with existing APIs. Must be `true` or `false` if provided.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleApiHttpBody" +}, +"response": { +"$ref": "GoogleCloudApigeeV1SharedFlowRevision" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"deployments": { +"methods": { +"list": { +"description": "Lists all deployments of a shared flow revision.", +"flatPath": "v1/organizations/{organizationsId}/sharedflows/{sharedflowsId}/revisions/{revisionsId}/deployments", +"httpMethod": "GET", +"id": "apigee.organizations.sharedflows.revisions.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the API proxy revision for which to return deployment information in the following format: `organizations/{org}/sharedflows/{sharedflow}/revisions/{rev}`.", +"location": "path", +"pattern": "^organizations/[^/]+/sharedflows/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/deployments", +"response": { +"$ref": "GoogleCloudApigeeV1ListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"sites": { +"resources": { +"apicategories": { +"methods": { +"create": { +"description": "Creates a new API category.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories", +"httpMethod": "POST", +"id": "apigee.organizations.sites.apicategories.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/apicategories", +"request": { +"$ref": "GoogleCloudApigeeV1ApiCategory" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiCategoryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an API category.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories/{apicategoriesId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.sites.apicategories.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the category. Use the following structure in your request: `organizations/{org}/sites/{site}/apicategories/{apicategory}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+/apicategories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeleteResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an API category.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories/{apicategoriesId}", +"httpMethod": "GET", +"id": "apigee.organizations.sites.apicategories.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the category. Use the following structure in your request: `organizations/{org}/sites/{site}/apicategories/{apicategory}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+/apicategories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ApiCategoryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns the API categories associated with a portal.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories", +"httpMethod": "GET", +"id": "apigee.organizations.sites.apicategories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/apicategories", +"response": { +"$ref": "GoogleCloudApigeeV1ListApiCategoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an API category.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apicategories/{apicategoriesId}", +"httpMethod": "PATCH", +"id": "apigee.organizations.sites.apicategories.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the category. Use the following structure in your request: `organizations/{org}/sites/{site}/apicategories/{apicategory}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+/apicategories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1ApiCategory" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiCategoryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"apidocs": { +"methods": { +"create": { +"description": "Creates a new catalog item.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs", +"httpMethod": "POST", +"id": "apigee.organizations.sites.apidocs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/apidocs", +"request": { +"$ref": "GoogleCloudApigeeV1ApiDoc" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiDocResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a catalog item.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}", +"httpMethod": "DELETE", +"id": "apigee.organizations.sites.apidocs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the catalog item. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1DeleteResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a catalog item.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}", +"httpMethod": "GET", +"id": "apigee.organizations.sites.apidocs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the catalog item. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ApiDocResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDocumentation": { +"description": "Gets the documentation for the specified catalog item.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}/documentation", +"httpMethod": "GET", +"id": "apigee.organizations.sites.apidocs.getDocumentation", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the catalog item documentation. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}/documentation`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+/documentation$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudApigeeV1ApiDocDocumentationResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns the catalog items associated with a portal.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs", +"httpMethod": "GET", +"id": "apigee.organizations.sites.apidocs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. The service may return fewer than this value. If unspecified, at most 25 books will be returned. The maximum value is 100; values above 100 will be coerced to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListApiDocs` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the portal. Use the following structure in your request: `organizations/{org}/sites/{site}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/apidocs", +"response": { +"$ref": "GoogleCloudApigeeV1ListApiDocsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates a catalog item.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}", +"httpMethod": "PUT", +"id": "apigee.organizations.sites.apidocs.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the catalog item. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1ApiDoc" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiDocResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateDocumentation": { +"description": "Updates the documentation for the specified catalog item. Note that the documentation file contents will not be populated in the return message.", +"flatPath": "v1/organizations/{organizationsId}/sites/{sitesId}/apidocs/{apidocsId}/documentation", +"httpMethod": "PATCH", +"id": "apigee.organizations.sites.apidocs.updateDocumentation", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the catalog item documentation. Use the following structure in your request: `organizations/{org}/sites/{site}/apidocs/{apidoc}/documentation`", +"location": "path", +"pattern": "^organizations/[^/]+/sites/[^/]+/apidocs/[^/]+/documentation$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudApigeeV1ApiDocDocumentation" +}, +"response": { +"$ref": "GoogleCloudApigeeV1ApiDocDocumentationResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"projects": { +"methods": { +"provisionOrganization": { +"description": "Provisions a new Apigee organization with a functioning runtime. This is the standard way to create trial organizations for a free Apigee trial.", +"flatPath": "v1/projects/{projectsId}:provisionOrganization", +"httpMethod": "POST", +"id": "apigee.projects.provisionOrganization", +"parameterOrder": [ +"project" +], +"parameters": { +"project": { +"description": "Required. Name of the GCP project with which to associate the Apigee organization.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+project}:provisionOrganization", +"request": { +"$ref": "GoogleCloudApigeeV1ProvisionOrganizationRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20241213", +"rootUrl": "https://apigee.googleapis.com/", +"schemas": { +"EdgeConfigstoreBundleBadBundle": { +"description": "Describes why a bundle is invalid. Intended for use in error details.", +"id": "EdgeConfigstoreBundleBadBundle", +"properties": { +"violations": { +"description": "Describes all precondition violations.", +"items": { +"$ref": "EdgeConfigstoreBundleBadBundleViolation" +}, +"type": "array" +} +}, +"type": "object" +}, +"EdgeConfigstoreBundleBadBundleViolation": { +"description": "A message type used to describe a single bundle validation error.", +"id": "EdgeConfigstoreBundleBadBundleViolation", +"properties": { +"description": { +"description": "A description of why the bundle is invalid and how to fix it.", +"type": "string" +}, +"filename": { +"description": "The filename (including relative path from the bundle root) in which the error occurred.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleApiHttpBody": { +"description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", +"id": "GoogleApiHttpBody", +"properties": { +"contentType": { +"description": "The HTTP Content-Type header value specifying the content type of the body.", +"type": "string" +}, +"data": { +"description": "The HTTP request/response body as raw binary.", +"format": "byte", +"type": "string" +}, +"extensions": { +"description": "Application specific response metadata. Must be set in the first response for streaming APIs.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1APIProductAssociation": { +"description": "APIProductAssociation has the API product and its administrative state association.", +"id": "GoogleCloudApigeeV1APIProductAssociation", +"properties": { +"apiproduct": { +"description": "API product to be associated with the credential.", +"type": "string" +}, +"status": { +"description": "The API product credential associated status. Valid values are `approved` or `revoked`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Access": { +"id": "GoogleCloudApigeeV1Access", +"properties": { +"Get": { +"$ref": "GoogleCloudApigeeV1AccessGet" +}, +"Remove": { +"$ref": "GoogleCloudApigeeV1AccessRemove" +}, +"Set": { +"$ref": "GoogleCloudApigeeV1AccessSet" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AccessGet": { +"description": "Get action. For example, \"Get\" : { \"name\" : \"target.name\", \"value\" : \"default\" }", +"id": "GoogleCloudApigeeV1AccessGet", +"properties": { +"name": { +"type": "string" +}, +"value": { +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AccessLoggingConfig": { +"description": "Access logging configuration enables customers to ship the access logs from the tenant projects to their own project's cloud logging. The feature is at the instance level ad disabled by default. It can be enabled during CreateInstance or UpdateInstance.", +"id": "GoogleCloudApigeeV1AccessLoggingConfig", +"properties": { +"enabled": { +"description": "Optional. Boolean flag that specifies whether the customer access log feature is enabled.", +"type": "boolean" +}, +"filter": { +"description": "Optional. Ship the access log entries that match the status_code defined in the filter. The status_code is the only expected/supported filter field. (Ex: status_code) The filter will parse it to the Common Expression Language semantics for expression evaluation to build the filter condition. (Ex: \"filter\": status_code >= 200 && status_code < 300 )", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AccessRemove": { +"description": "Remove action. For example, \"Remove\" : { \"name\" : \"target.name\", \"success\" : true }", +"id": "GoogleCloudApigeeV1AccessRemove", +"properties": { +"name": { +"type": "string" +}, +"success": { +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AccessSet": { +"description": "Set action. For example, \"Set\" : { \"name\" : \"target.name\", \"success\" : true, \"value\" : \"default\" }", +"id": "GoogleCloudApigeeV1AccessSet", +"properties": { +"name": { +"type": "string" +}, +"success": { +"type": "boolean" +}, +"value": { +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ActivateNatAddressRequest": { +"description": "Request for ActivateNatAddressRequest. Activate the nat address request.", +"id": "GoogleCloudApigeeV1ActivateNatAddressRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1AddonsConfig": { +"description": "Add-on configurations for the Apigee organization.", +"id": "GoogleCloudApigeeV1AddonsConfig", +"properties": { +"advancedApiOpsConfig": { +"$ref": "GoogleCloudApigeeV1AdvancedApiOpsConfig", +"description": "Configuration for the Advanced API Ops add-on." +}, +"analyticsConfig": { +"$ref": "GoogleCloudApigeeV1AnalyticsConfig", +"description": "Configuration for the Analytics add-on. Only used in organizations.environments.addonsConfig." +}, +"apiSecurityConfig": { +"$ref": "GoogleCloudApigeeV1ApiSecurityConfig", +"description": "Configuration for the API Security add-on." +}, +"connectorsPlatformConfig": { +"$ref": "GoogleCloudApigeeV1ConnectorsPlatformConfig", +"description": "Configuration for the Connectors Platform add-on." +}, +"integrationConfig": { +"$ref": "GoogleCloudApigeeV1IntegrationConfig", +"description": "Configuration for the Integration add-on." +}, +"monetizationConfig": { +"$ref": "GoogleCloudApigeeV1MonetizationConfig", +"description": "Configuration for the Monetization add-on." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AdjustDeveloperBalanceRequest": { +"description": "Request for AdjustDeveloperBalance.", +"id": "GoogleCloudApigeeV1AdjustDeveloperBalanceRequest", +"properties": { +"adjustment": { +"$ref": "GoogleTypeMoney", +"description": "* A positive value of `adjustment` means that that the API provider wants to adjust the balance for an under-charged developer i.e. the balance of the developer will decrease. * A negative value of `adjustment` means that that the API provider wants to adjust the balance for an over-charged developer i.e. the balance of the developer will increase." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AdvancedApiOpsConfig": { +"description": "Configuration for the Advanced API Ops add-on.", +"id": "GoogleCloudApigeeV1AdvancedApiOpsConfig", +"properties": { +"enabled": { +"description": "Flag that specifies whether the Advanced API Ops add-on is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Alias": { +"description": "Reference to a certificate or key/certificate pair.", +"id": "GoogleCloudApigeeV1Alias", +"properties": { +"alias": { +"description": "Resource ID for this alias. Values must match the regular expression `[^/]{1,255}`.", +"type": "string" +}, +"certsInfo": { +"$ref": "GoogleCloudApigeeV1Certificate", +"description": "Chain of certificates under this alias." +}, +"type": { +"description": "Type of alias.", +"enum": [ +"ALIAS_TYPE_UNSPECIFIED", +"CERT", +"KEY_CERT" +], +"enumDescriptions": [ +"Alias type is not specified.", +"Certificate.", +"Key/certificate pair." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AliasRevisionConfig": { +"id": "GoogleCloudApigeeV1AliasRevisionConfig", +"properties": { +"location": { +"description": "Location of the alias file. For example, a Google Cloud Storage URI.", +"type": "string" +}, +"name": { +"description": "Name of the alias revision included in the keystore in the following format: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}/revisions/{rev}`", +"type": "string" +}, +"type": { +"enum": [ +"ALIAS_TYPE_UNSPECIFIED", +"CERT", +"KEY_CERT" +], +"enumDescriptions": [ +"Alias type is not specified.", +"Certificate.", +"Key/certificate pair." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AnalyticsConfig": { +"description": "Configuration for the Analytics add-on.", +"id": "GoogleCloudApigeeV1AnalyticsConfig", +"properties": { +"enabled": { +"description": "Whether the Analytics add-on is enabled.", +"type": "boolean" +}, +"expireTimeMillis": { +"description": "Output only. Time at which the Analytics add-on expires in milliseconds since epoch. If unspecified, the add-on will never expire.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the Analytics add-on.", +"enum": [ +"ADDON_STATE_UNSPECIFIED", +"ENABLING", +"ENABLED", +"DISABLING", +"DISABLED" +], +"enumDescriptions": [ +"Default value.", +"Add-on is in progress of enabling.", +"Add-on is fully enabled and ready to use.", +"Add-on is in progress of disabling.", +"Add-on is fully disabled." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The latest update time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiCategory": { +"description": "`ApiCategory` represents an API category. [Catalog items](/apigee/docs/reference/apis/apigee/rest/v1/organizations.sites.apidocs) can be tagged with API categories; users viewing the API catalog in the portal will have the option to browse the catalog by category.", +"id": "GoogleCloudApigeeV1ApiCategory", +"properties": { +"id": { +"description": "ID of the category (a UUID).", +"type": "string" +}, +"name": { +"description": "Name of the category.", +"type": "string" +}, +"siteId": { +"description": "Name of the portal.", +"type": "string" +}, +"updateTime": { +"description": "Time the category was last modified in milliseconds since epoch.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiCategoryResponse": { +"description": "The API category resource wrapped with response status, error_code, etc.", +"id": "GoogleCloudApigeeV1ApiCategoryResponse", +"properties": { +"data": { +"$ref": "GoogleCloudApigeeV1ApiCategory", +"description": "The API category resource." +}, +"errorCode": { +"description": "Unique error code for the request, if any.", +"type": "string" +}, +"message": { +"description": "Description of the operation.", +"type": "string" +}, +"requestId": { +"description": "Unique ID of the request.", +"type": "string" +}, +"status": { +"description": "Status of the operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiDoc": { +"description": "`ApiDoc` represents an API catalog item. Catalog items are used in two ways in a portal: - Users can browse and interact with a visual representation of the API documentation - The `api_product_name` field provides a link to a backing [API product] (/apigee/docs/reference/apis/apigee/rest/v1/organizations.apiproducts). Through this link, portal users can create and manage developer apps linked to one or more API products.", +"id": "GoogleCloudApigeeV1ApiDoc", +"properties": { +"anonAllowed": { +"description": "Optional. Boolean flag that manages user access to the catalog item. When true, the catalog item has public visibility and can be viewed anonymously; otherwise, only registered users may view it. Note: when the parent portal is enrolled in the [audience management feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), and this flag is set to false, visibility is set to an indeterminate state and must be explicitly specified in the management UI (see [Manage the visibility of an API in your portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)). Additionally, when enrolled in the audience management feature, updates to this flag will be ignored as visibility permissions must be updated in the management UI.", +"type": "boolean" +}, +"apiProductName": { +"description": "Required. Immutable. The `name` field of the associated [API product](/apigee/docs/reference/apis/apigee/rest/v1/organizations.apiproducts). A portal may have only one catalog item associated with a given API product.", +"type": "string" +}, +"categoryIds": { +"description": "Optional. The IDs of the API categories to which this catalog item belongs.", +"items": { +"type": "string" +}, +"type": "array" +}, +"description": { +"description": "Optional. Description of the catalog item. Max length is 10,000 characters.", +"type": "string" +}, +"edgeAPIProductName": { +"description": "Optional. Immutable. DEPRECATED: use the `apiProductName` field instead", +"type": "string" +}, +"graphqlEndpointUrl": { +"deprecated": true, +"description": "Optional. DEPRECATED: manage documentation through the `getDocumentation` and `updateDocumentation` methods", +"type": "string" +}, +"graphqlSchema": { +"deprecated": true, +"description": "Optional. DEPRECATED: manage documentation through the `getDocumentation` and `updateDocumentation` methods", +"type": "string" +}, +"graphqlSchemaDisplayName": { +"deprecated": true, +"description": "Optional. DEPRECATED: manage documentation through the `getDocumentation` and `updateDocumentation` methods", +"type": "string" +}, +"id": { +"description": "Output only. The ID of the catalog item.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"imageUrl": { +"description": "Optional. Location of the image used for the catalog item in the catalog. This can be either an image with an external URL or a file path for [image files stored in the portal](/apigee/docs/api-platform/publish/portal/portal-files\"), for example, `/files/book-tree.jpg`. When specifying the URL of an external image, the image won't be uploaded to your assets; additionally, loading the image in the integrated portal will be subject to its availability, which may be blocked or restricted by [content security policies](/apigee/docs/api-platform/publish/portal/csp). Max length of file path is 2,083 characters.", +"type": "string" +}, +"modified": { +"description": "Output only. Time the catalog item was last modified in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"published": { +"description": "Optional. Denotes whether the catalog item is published to the portal or is in a draft state. When the parent portal is enrolled in the [audience management feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), the visibility can be set to public on creation by setting the anonAllowed flag to true or further managed in the management UI (see [Manage the visibility of an API in your portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)) before it can be visible to any users. If not enrolled in the audience management feature, the visibility is managed by the `anonAllowed` flag.", +"type": "boolean" +}, +"requireCallbackUrl": { +"description": "Optional. Whether a callback URL is required when this catalog item's API product is enabled in a developer app. When true, a portal user will be required to input a URL when managing the app (this is typically used for the app's OAuth flow).", +"type": "boolean" +}, +"siteId": { +"description": "Output only. The ID of the parent portal.", +"readOnly": true, +"type": "string" +}, +"specId": { +"deprecated": true, +"description": "Optional. DEPRECATED: DO NOT USE", +"type": "string" +}, +"title": { +"description": "Required. The user-facing name of the catalog item. `title` must be a non-empty string with a max length of 255 characters.", +"type": "string" +}, +"visibility": { +"description": "Optional. DEPRECATED: use the `published` field instead", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiDocDocumentation": { +"description": "The documentation for a catalog item.", +"id": "GoogleCloudApigeeV1ApiDocDocumentation", +"properties": { +"graphqlDocumentation": { +"$ref": "GoogleCloudApigeeV1GraphqlDocumentation", +"description": "Optional. GraphQL documentation." +}, +"oasDocumentation": { +"$ref": "GoogleCloudApigeeV1OASDocumentation", +"description": "Optional. OpenAPI Specification documentation." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiDocDocumentationResponse": { +"description": "The catalog item documentation wrapped with response status, error_code, etc.", +"id": "GoogleCloudApigeeV1ApiDocDocumentationResponse", +"properties": { +"data": { +"$ref": "GoogleCloudApigeeV1ApiDocDocumentation", +"description": "Output only. The documentation resource.", +"readOnly": true +}, +"errorCode": { +"description": "Output only. Unique error code for the request, if any.", +"readOnly": true, +"type": "string" +}, +"message": { +"description": "Output only. Description of the operation.", +"readOnly": true, +"type": "string" +}, +"requestId": { +"description": "Output only. Unique ID of the request.", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. Status of the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiDocResponse": { +"description": "The catalog item resource wrapped with response status, error_code, etc.", +"id": "GoogleCloudApigeeV1ApiDocResponse", +"properties": { +"data": { +"$ref": "GoogleCloudApigeeV1ApiDoc", +"description": "The catalog item resource." +}, +"errorCode": { +"description": "Unique error code for the request, if any.", +"type": "string" +}, +"message": { +"description": "Description of the operation.", +"type": "string" +}, +"requestId": { +"description": "Unique ID of the request.", +"type": "string" +}, +"status": { +"description": "Status of the operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiProduct": { +"id": "GoogleCloudApigeeV1ApiProduct", +"properties": { +"apiResources": { +"description": "Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the `proxy.pathsuffix` variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the `apiResources` element is defined to be `/forecastrss` and the base path defined for the API proxy is `/weather`, then only requests to `/weather/forecastrss` are permitted by the API product. You can select a specific path, or you can select all subpaths with the following wildcard: - `/**`: Indicates that all sub-URIs are included. - `/*` : Indicates that only URIs one level down are included. By default, / supports the same resources as /** as well as the base path defined by the API proxy. For example, if the base path of the API proxy is `/v1/weatherapikey`, then the API product supports requests to `/v1/weatherapikey` and to any sub-URIs, such as `/v1/weatherapikey/forecastrss`, `/v1/weatherapikey/region/CA`, and so on. For more information, see Managing API products.", +"items": { +"type": "string" +}, +"type": "array" +}, +"approvalType": { +"description": "Flag that specifies how API keys are approved to access the APIs defined by the API product. If set to `manual`, the consumer key is generated and returned in \"pending\" state. In this case, the API keys won't work until they have been explicitly approved. If set to `auto`, the consumer key is generated and returned in \"approved\" state and can be used immediately. **Note:** Typically, `auto` is used to provide access to free or trial API products that provide limited quota or capabilities.", +"type": "string" +}, +"attributes": { +"description": "Array of attributes that may be used to extend the default API product profile with customer-specific metadata. You can specify a maximum of 18 attributes. Use this property to specify the access level of the API product as either `public`, `private`, or `internal`. Only products marked `public` are available to developers in the Apigee developer portal. For example, you can set a product to `internal` while it is in development and then change access to `public` when it is ready to release on the portal. API products marked as `private` do not appear on the portal, but can be accessed by external developers.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"createdAt": { +"description": "Response only. Creation time of this environment as milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"description": { +"description": "Description of the API product. Include key information about the API product that is not captured by other fields.", +"type": "string" +}, +"displayName": { +"description": "Name displayed in the UI or developer portal to developers registering for API access.", +"type": "string" +}, +"environments": { +"description": "Comma-separated list of environment names to which the API product is bound. Requests to environments that are not listed are rejected. By specifying one or more environments, you can bind the resources listed in the API product to a specific environment, preventing developers from accessing those resources through API proxies deployed in another environment. This setting is used, for example, to prevent resources associated with API proxies in `prod` from being accessed by API proxies deployed in `test`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"graphqlOperationGroup": { +"$ref": "GoogleCloudApigeeV1GraphQLOperationGroup", +"description": "Configuration used to group Apigee proxies or remote services with graphQL operation name, graphQL operation type and quotas. This grouping allows us to precisely set quota for a particular combination of graphQL name and operation type for a particular proxy request. If graphQL name is not set, this would imply quota will be applied on all graphQL requests matching the operation type." +}, +"grpcOperationGroup": { +"$ref": "GoogleCloudApigeeV1GrpcOperationGroup", +"description": "Optional. Configuration used to group Apigee proxies with gRPC services and method names. This grouping allows us to set quota for a particular proxy with the gRPC service name and method. If a method name is not set, this implies quota and authorization are applied to all gRPC methods implemented by that proxy for that particular gRPC service." +}, +"lastModifiedAt": { +"description": "Response only. Modified time of this environment as milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Internal name of the API product. Characters you can use in the name are restricted to: `A-Z0-9._\\-$ %`. **Note:** The internal name cannot be edited when updating the API product.", +"type": "string" +}, +"operationGroup": { +"$ref": "GoogleCloudApigeeV1OperationGroup", +"description": "Configuration used to group Apigee proxies or remote services with resources, method types, and quotas. The resource refers to the resource URI (excluding the base path). With this grouping, the API product creator is able to fine-tune and give precise control over which REST methods have access to specific resources and how many calls can be made (using the `quota` setting). **Note:** The `api_resources` setting cannot be specified for both the API product and operation group; otherwise the call will fail." +}, +"proxies": { +"description": "Comma-separated list of API proxy names to which this API product is bound. By specifying API proxies, you can associate resources in the API product with specific API proxies, preventing developers from accessing those resources through other API proxies. Apigee rejects requests to API proxies that are not listed. **Note:** The API proxy names must already exist in the specified environment as they will be validated upon creation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"quota": { +"description": "Number of request messages permitted per app by this API product for the specified `quotaInterval` and `quotaTimeUnit`. For example, a `quota` of 50, for a `quotaInterval` of 12 and a `quotaTimeUnit` of hours means 50 requests are allowed every 12 hours.", +"type": "string" +}, +"quotaCounterScope": { +"description": "Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.", +"enum": [ +"QUOTA_COUNTER_SCOPE_UNSPECIFIED", +"PROXY", +"OPERATION" +], +"enumDescriptions": [ +"When quota is not explicitly defined for each operation(REST/GraphQL), the limits set at product level will be used as a local counter for quota evaluation by all the operations, independent of proxy association.", +"When quota is not explicitly defined for each operation(REST/GraphQL), set at product level will be used as a global counter for quota evaluation by all the operations associated with a particular proxy.", +"When quota is not explicitly defined for each operation(REST/GraphQL), the limits set at product level will be used as a local counter for quota evaluation by all the operations, independent of proxy association. This behavior mimics the same as QUOTA_COUNTER_SCOPE_UNSPECIFIED." +], +"type": "string" +}, +"quotaInterval": { +"description": "Time interval over which the number of request messages is calculated.", +"type": "string" +}, +"quotaTimeUnit": { +"description": "Time unit defined for the `quotaInterval`. Valid values include `minute`, `hour`, `day`, or `month`.", +"type": "string" +}, +"scopes": { +"description": "Comma-separated list of OAuth scopes that are validated at runtime. Apigee validates that the scopes in any access token presented match the scopes defined in the OAuth policy associated with the API product.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiProductRef": { +"id": "GoogleCloudApigeeV1ApiProductRef", +"properties": { +"apiproduct": { +"description": "Name of the API product.", +"type": "string" +}, +"status": { +"description": "Status of the API product. Valid values are `approved` or `revoked`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiProxy": { +"description": "Metadata describing the API proxy", +"id": "GoogleCloudApigeeV1ApiProxy", +"properties": { +"apiProxyType": { +"description": "Output only. The type of the API proxy.", +"enum": [ +"API_PROXY_TYPE_UNSPECIFIED", +"PROGRAMMABLE", +"CONFIGURABLE" +], +"enumDescriptions": [ +"API proxy type not specified.", +"Programmable API Proxies enable you to develop APIs with highly flexible behavior using bundled policy configuration and one or more programming languages to describe complex sequential and/or conditional flows of logic.", +"Configurable API Proxies enable you to develop efficient APIs using simple configuration while complex execution control flow logic is handled by Apigee. This type only works with the ARCHIVE deployment type and cannot be combined with the PROXY deployment type." +], +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User labels applied to this API Proxy.", +"type": "object" +}, +"latestRevisionId": { +"description": "Output only. The id of the most recently created revision for this api proxy.", +"readOnly": true, +"type": "string" +}, +"metaData": { +"$ref": "GoogleCloudApigeeV1EntityMetadata", +"description": "Output only. Metadata describing the API proxy.", +"readOnly": true +}, +"name": { +"description": "Output only. Name of the API proxy.", +"readOnly": true, +"type": "string" +}, +"readOnly": { +"description": "Output only. Whether this proxy is read-only. A read-only proxy cannot have new revisions created through calls to CreateApiProxyRevision. A proxy is read-only if it was generated by an archive.", +"readOnly": true, +"type": "boolean" +}, +"revision": { +"description": "Output only. List of revisions defined for the API proxy.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiProxyRevision": { +"description": "API proxy revision.", +"id": "GoogleCloudApigeeV1ApiProxyRevision", +"properties": { +"archive": { +"description": "Output only. The archive that generated this proxy revision. This field is only present on proxy revisions that were generated by an archive. Proxies generated by archives cannot be updated, deleted, or deployed to other environments. Format: `organizations/*/environments/*/archiveDeployments/*`", +"readOnly": true, +"type": "string" +}, +"basepaths": { +"description": "Base URL of the API proxy.", +"items": { +"type": "string" +}, +"type": "array" +}, +"configurationVersion": { +"$ref": "GoogleCloudApigeeV1ConfigVersion", +"description": "Version of the API proxy configuration schema to which the API proxy conforms. Currently, the only supported value is 4.0 (`majorVersion.minorVersion`). This setting may be used in the future to track the evolution of the API proxy format." +}, +"contextInfo": { +"description": "Revision number, app name, and organization for the API proxy.", +"type": "string" +}, +"createdAt": { +"description": "Time that the API proxy revision was created in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"description": { +"description": "Description of the API proxy revision.", +"type": "string" +}, +"displayName": { +"description": "Human-readable name of the API proxy.", +"type": "string" +}, +"entityMetaDataAsProperties": { +"additionalProperties": { +"type": "string" +}, +"description": "Metadata describing the API proxy revision as a key-value map.", +"type": "object" +}, +"hasExtensiblePolicy": { +"description": "Output only. This field will be marked as true if revision contains any policies marked as extensible.", +"readOnly": true, +"type": "boolean" +}, +"integrationEndpoints": { +"description": "List of IntegrationEndpoints in the '/integration-endpoints' directory of the API proxy. This is a 'manifest' setting designed to provide visibility into the contents of the API proxy.", +"items": { +"type": "string" +}, +"type": "array" +}, +"lastModifiedAt": { +"description": "Time that the API proxy revision was last modified in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Name of the API proxy.", +"type": "string" +}, +"policies": { +"description": "List of policy names included in the API proxy revision..", +"items": { +"type": "string" +}, +"type": "array" +}, +"proxies": { +"description": "List of proxy names included in the API proxy revision.", +"items": { +"type": "string" +}, +"type": "array" +}, +"proxyEndpoints": { +"description": "List of ProxyEndpoints in the `/proxies` directory of the API proxy. Typically, this element is included only when the API proxy was created using the Edge UI. This is a 'manifest' setting designed to provide visibility into the contents of the API proxy.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resourceFiles": { +"$ref": "GoogleCloudApigeeV1ResourceFiles", +"description": "List of resource files included in the API proxy revision." +}, +"resources": { +"description": "List of the resources included in the API proxy revision formatted as \"{type}://{name}\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"revision": { +"description": "API proxy revision.", +"type": "string" +}, +"sharedFlows": { +"description": "List of the shared flows included in the API proxy revision.", +"items": { +"type": "string" +}, +"type": "array" +}, +"spec": { +"description": "OpenAPI Specification that is associated with the API proxy. The value is set to a URL or to a path in the specification store.", +"type": "string" +}, +"targetEndpoints": { +"description": "List of TargetEndpoints in the `/targets` directory of the API proxy. Typically, this element is included only when the API proxy was created using the Edge UI. This is a 'manifest' setting designed to provide visibility into the contents of the API proxy.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetServers": { +"description": "List of TargetServers referenced in any TargetEndpoint in the API proxy. Typically, you will see this element only when the API proxy was created using the Edge UI. This is a 'manifest' setting designed to provide visibility into the contents of the API proxy.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targets": { +"description": "List of the targets included in the API proxy revision.", +"items": { +"type": "string" +}, +"type": "array" +}, +"teams": { +"description": "List of the teams included in the API proxy revision.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "Type. Set to `Application`. Maintained for compatibility with the Apigee Edge API.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiSecurityConfig": { +"description": "Configurations of the API Security add-on.", +"id": "GoogleCloudApigeeV1ApiSecurityConfig", +"properties": { +"enabled": { +"description": "Flag that specifies whether the API security add-on is enabled.", +"type": "boolean" +}, +"expiresAt": { +"description": "Output only. Time at which the API Security add-on expires in in milliseconds since epoch. If unspecified, the add-on will never expire.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ApiSecurityRuntimeConfig": { +"description": "Response for GetApiSecurityRuntimeConfig[EnvironmentService.GetApiSecurityRuntimeConfig].", +"id": "GoogleCloudApigeeV1ApiSecurityRuntimeConfig", +"properties": { +"location": { +"description": "A list of up to 5 Cloud Storage Blobs that contain SecurityActions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Name of the environment API Security Runtime configuration resource. Format: `organizations/{org}/environments/{env}/apiSecurityRuntimeConfig`", +"type": "string" +}, +"revisionId": { +"description": "Revision ID of the API Security Runtime configuration. The higher the value, the more recently the configuration was deployed.", +"format": "int64", +"type": "string" +}, +"uid": { +"description": "Unique ID for the API Security Runtime configuration. The ID will only change if the environment is deleted and recreated.", +"type": "string" +}, +"updateTime": { +"description": "Time that the API Security Runtime configuration was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1App": { +"id": "GoogleCloudApigeeV1App", +"properties": { +"apiProducts": { +"description": "List of API products associated with the app.", +"items": { +"$ref": "GoogleCloudApigeeV1ApiProductRef" +}, +"type": "array" +}, +"appGroup": { +"description": "Name of the AppGroup", +"type": "string" +}, +"appId": { +"description": "ID of the app.", +"type": "string" +}, +"attributes": { +"description": "List of attributes.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"callbackUrl": { +"description": "Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to apps.", +"type": "string" +}, +"companyName": { +"description": "Name of the company that owns the app.", +"type": "string" +}, +"createdAt": { +"description": "Output only. Unix time when the app was created.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"credentials": { +"description": "Output only. Set of credentials for the app. Credentials are API key/secret pairs associated with API products.", +"items": { +"$ref": "GoogleCloudApigeeV1Credential" +}, +"readOnly": true, +"type": "array" +}, +"developerEmail": { +"description": "Email of the developer.", +"type": "string" +}, +"developerId": { +"description": "ID of the developer.", +"type": "string" +}, +"keyExpiresIn": { +"description": "Duration, in milliseconds, of the consumer key that will be generated for the app. The default value, -1, indicates an infinite validity period. Once set, the expiration can't be updated. json key: keyExpiresIn", +"format": "int64", +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. Last modified time as milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Name of the app.", +"type": "string" +}, +"scopes": { +"description": "Scopes to apply to the app. The specified scope names must already exist on the API product that you associate with the app.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Status of the credential.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AppGroup": { +"description": "AppGroup contains the request/response fields representing the logical grouping of apps. Note that appgroup_id, create_time and update_time cannot be changed by the user, and gets updated by the system. The name and the organization once provided cannot be edited subsequently.", +"id": "GoogleCloudApigeeV1AppGroup", +"properties": { +"appGroupId": { +"description": "Output only. Internal identifier that cannot be edited", +"readOnly": true, +"type": "string" +}, +"attributes": { +"description": "A list of attributes", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"channelId": { +"description": "channel identifier identifies the owner maintaing this grouping.", +"type": "string" +}, +"channelUri": { +"description": "A reference to the associated storefront/marketplace.", +"type": "string" +}, +"createdAt": { +"description": "Output only. Created time as milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "app group name displayed in the UI", +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. Modified time as milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. Name of the AppGroup. Characters you can use in the name are restricted to: A-Z0-9._\\-$ %.", +"type": "string" +}, +"organization": { +"description": "Immutable. the org the app group is created", +"type": "string" +}, +"status": { +"description": "Valid values are `active` or `inactive`. Note that the status of the AppGroup should be updated via UpdateAppGroupRequest by setting the action as `active` or `inactive`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AppGroupApp": { +"description": "Response for [GetAppGroupApp].[AppGroupApps.GetAppGroupApp], [CreateAppGroupAppRequest].[AppGroupApp.CreateAppGroupAppRequest] and [DeleteAppGroupApp].[AppGroupApp.DeleteAppGroupApp]", +"id": "GoogleCloudApigeeV1AppGroupApp", +"properties": { +"apiProducts": { +"description": "List of API products associated with the AppGroup app.", +"items": { +"type": "string" +}, +"type": "array" +}, +"appGroup": { +"description": "Immutable. Name of the parent AppGroup whose resource name format is of syntax (organizations/*/appgroups/*).", +"type": "string" +}, +"appId": { +"description": "Immutable. ID of the AppGroup app.", +"type": "string" +}, +"attributes": { +"description": "List of attributes for the AppGroup app.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"callbackUrl": { +"description": "Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to AppGroup apps.", +"type": "string" +}, +"createdAt": { +"description": "Output only. Time the AppGroup app was created in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"credentials": { +"description": "Output only. Set of credentials for the AppGroup app consisting of the consumer key/secret pairs associated with the API products.", +"items": { +"$ref": "GoogleCloudApigeeV1Credential" +}, +"readOnly": true, +"type": "array" +}, +"keyExpiresIn": { +"description": "Immutable. Expiration time, in seconds, for the consumer key that is generated for the AppGroup app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set.", +"format": "int64", +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. Time the AppGroup app was modified in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. Name of the AppGroup app whose resource name format is of syntax (organizations/*/appgroups/*/apps/*).", +"type": "string" +}, +"scopes": { +"description": "Scopes to apply to the AppGroup app. The specified scopes must already exist for the API product that you associate with the AppGroup app.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Status of the App. Valid values include `approved` or `revoked`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AppGroupAppKey": { +"description": "AppGroupAppKey contains all the information associated with the credentials.", +"id": "GoogleCloudApigeeV1AppGroupAppKey", +"properties": { +"apiProducts": { +"description": "Output only. List of API products and its status for which the credential can be used. **Note**: Use UpdateAppGroupAppKeyApiProductRequest API to make the association after the consumer key and secret are created.", +"items": { +"$ref": "GoogleCloudApigeeV1APIProductAssociation" +}, +"readOnly": true, +"type": "array" +}, +"attributes": { +"description": "List of attributes associated with the credential.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"consumerKey": { +"description": "Immutable. Consumer key.", +"type": "string" +}, +"consumerSecret": { +"description": "Secret key.", +"type": "string" +}, +"expiresAt": { +"description": "Output only. Time the AppGroup app expires in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"expiresInSeconds": { +"description": "Immutable. Expiration time, in seconds, for the consumer key. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set.", +"format": "int64", +"type": "string" +}, +"issuedAt": { +"description": "Output only. Time the AppGroup app was created in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"scopes": { +"description": "Scopes to apply to the app. The specified scope names must already be defined for the API product that you associate with the app.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Status of the credential. Valid values include `approved` or `revoked`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ArchiveDeployment": { +"description": "Archive Deployment information.", +"id": "GoogleCloudApigeeV1ArchiveDeployment", +"properties": { +"createdAt": { +"description": "Output only. The time at which the Archive Deployment was created in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"gcsUri": { +"description": "Input only. The Google Cloud Storage signed URL returned from GenerateUploadUrl and used to upload the Archive zip file.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-supplied key-value pairs used to organize ArchiveDeployments. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.", +"type": "object" +}, +"name": { +"description": "Name of the Archive Deployment in the following format: `organizations/{org}/environments/{env}/archiveDeployments/{id}`.", +"type": "string" +}, +"operation": { +"description": "Output only. A reference to the LRO that created this Archive Deployment in the following format: `organizations/{org}/operations/{id}`", +"readOnly": true, +"type": "string" +}, +"updatedAt": { +"description": "Output only. The time at which the Archive Deployment was updated in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AsyncQuery": { +"id": "GoogleCloudApigeeV1AsyncQuery", +"properties": { +"created": { +"description": "Creation time of the query.", +"type": "string" +}, +"envgroupHostname": { +"description": "Hostname is available only when query is executed at host level.", +"type": "string" +}, +"error": { +"description": "Error is set when query fails.", +"type": "string" +}, +"executionTime": { +"description": "ExecutionTime is available only after the query is completed.", +"type": "string" +}, +"name": { +"description": "Asynchronous Query Name.", +"type": "string" +}, +"queryParams": { +"$ref": "GoogleCloudApigeeV1QueryMetadata", +"description": "Contains information like metrics, dimenstions etc of the AsyncQuery." +}, +"reportDefinitionId": { +"description": "Asynchronous Report ID.", +"type": "string" +}, +"result": { +"$ref": "GoogleCloudApigeeV1AsyncQueryResult", +"description": "Result is available only after the query is completed." +}, +"resultFileSize": { +"description": "ResultFileSize is available only after the query is completed.", +"type": "string" +}, +"resultRows": { +"description": "ResultRows is available only after the query is completed.", +"format": "int64", +"type": "string" +}, +"self": { +"description": "Self link of the query. Example: `/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd` or following format if query is running at host level: `/organizations/myorg/hostQueries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd`", +"type": "string" +}, +"state": { +"description": "Query state could be \"enqueued\", \"running\", \"completed\", \"failed\".", +"type": "string" +}, +"updated": { +"description": "Last updated timestamp for the query.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AsyncQueryResult": { +"id": "GoogleCloudApigeeV1AsyncQueryResult", +"properties": { +"expires": { +"description": "Query result will be unaccessable after this time.", +"type": "string" +}, +"self": { +"description": "Self link of the query results. Example: `/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` or following format if query is running at host level: `/organizations/myorg/hostQueries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1AsyncQueryResultView": { +"id": "GoogleCloudApigeeV1AsyncQueryResultView", +"properties": { +"code": { +"description": "Error code when there is a failure.", +"format": "int32", +"type": "integer" +}, +"error": { +"description": "Error message when there is a failure.", +"type": "string" +}, +"metadata": { +"$ref": "GoogleCloudApigeeV1QueryMetadata", +"description": "Metadata contains information like metrics, dimenstions etc of the AsyncQuery." +}, +"rows": { +"description": "Rows of query result. Each row is a JSON object. Example: {sum(message_count): 1, developer_app: \"(not set)\",\u2026}", +"items": { +"type": "any" +}, +"type": "array" +}, +"state": { +"description": "State of retrieving ResultView.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Attribute": { +"description": "Key-value pair to store extra metadata.", +"id": "GoogleCloudApigeeV1Attribute", +"properties": { +"name": { +"description": "API key of the attribute.", +"type": "string" +}, +"value": { +"description": "Value of the attribute.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Attributes": { +"id": "GoogleCloudApigeeV1Attributes", +"properties": { +"attribute": { +"description": "List of attributes.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequest": { +"description": "Request for BatchComputeSecurityAssessmentResults.", +"id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequest", +"properties": { +"include": { +"$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArray", +"description": "Include only these resources." +}, +"includeAllResources": { +"$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestIncludeAll", +"description": "Include all resources under the scope." +}, +"pageSize": { +"description": "Optional. The maximum number of results to return. The service may return fewer than this value. If unspecified, at most 50 results will be returned.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `BatchComputeSecurityAssessmentResults` call. Provide this to retrieve the subsequent page.", +"type": "string" +}, +"profile": { +"description": "Required. Name of the profile that is used for computation.", +"type": "string" +}, +"scope": { +"description": "Required. Scope of the resources for the computation. For Apigee, the environment is the scope of the resources.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestIncludeAll": { +"description": "Message for include_all option.", +"id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestIncludeAll", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArray": { +"description": "An array of resource messages.", +"id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArray", +"properties": { +"resources": { +"description": "Required. The array of resources. For Apigee, the proxies are resources.", +"items": { +"$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArrayResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArrayResource": { +"description": "Resource for which we are computing security assessment.", +"id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArrayResource", +"properties": { +"name": { +"description": "Required. Name of this resource.", +"type": "string" +}, +"type": { +"description": "Required. Type of this resource.", +"enum": [ +"RESOURCE_TYPE_UNSPECIFIED", +"API_PROXY" +], +"enumDescriptions": [ +"ResourceType not specified.", +"Resource is an Apigee Proxy." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse": { +"description": "Response for BatchComputeSecurityAssessmentResults.", +"id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse", +"properties": { +"assessmentTime": { +"description": "The time of the assessment api call.", +"format": "google-datetime", +"type": "string" +}, +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is blank, there are no subsequent pages.", +"type": "string" +}, +"securityAssessmentResults": { +"description": "Default sort order is by resource name in alphabetic order.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityAssessmentResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest": { +"description": "Request for BatchUpdateSecurityIncident.", +"id": "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest", +"properties": { +"requests": { +"description": "Optional. Required. The request message specifying the resources to update. A maximum of 1000 can be modified in a batch.", +"items": { +"$ref": "GoogleCloudApigeeV1UpdateSecurityIncidentRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse": { +"description": "Response for BatchUpdateSecurityIncident.", +"id": "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse", +"properties": { +"securityIncidents": { +"description": "Output only. Updated security incidents", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityIncident" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1CanaryEvaluation": { +"description": "CanaryEvaluation represents the canary analysis between two versions of the runtime that is serving requests.", +"id": "GoogleCloudApigeeV1CanaryEvaluation", +"properties": { +"control": { +"description": "Required. The stable version that is serving requests.", +"type": "string" +}, +"createTime": { +"description": "Output only. Create time of the canary evaluation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Required. End time for the evaluation's analysis.", +"format": "google-datetime", +"type": "string" +}, +"metricLabels": { +"$ref": "GoogleCloudApigeeV1CanaryEvaluationMetricLabels", +"description": "Required. Labels used to filter the metrics used for a canary evaluation." +}, +"name": { +"description": "Output only. Name of the canary evalution.", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Required. Start time for the canary evaluation's analysis.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Output only. The current state of the canary evaluation.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"SUCCEEDED" +], +"enumDescriptions": [ +"No state has been specified.", +"The canary evaluation is still in progress.", +"The canary evaluation has finished." +], +"readOnly": true, +"type": "string" +}, +"treatment": { +"description": "Required. The newer version that is serving requests.", +"type": "string" +}, +"verdict": { +"description": "Output only. The resulting verdict of the canary evaluations: NONE, PASS, or FAIL.", +"enum": [ +"VERDICT_UNSPECIFIED", +"NONE", +"FAIL", +"PASS" +], +"enumDescriptions": [ +"Verdict is not available yet.", +"No verdict reached.", +"Evaluation is not good.", +"Evaluation is good." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1CanaryEvaluationMetricLabels": { +"description": "Labels that can be used to filter Apigee metrics.", +"id": "GoogleCloudApigeeV1CanaryEvaluationMetricLabels", +"properties": { +"env": { +"description": "The environment ID associated with the metrics.", +"type": "string" +}, +"instance_id": { +"description": "Required. The instance ID associated with the metrics. In Apigee Hybrid, the value is configured during installation.", +"type": "string" +}, +"location": { +"description": "Required. The location associated with the metrics.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1CertInfo": { +"description": "X.509 certificate as defined in RFC 5280.", +"id": "GoogleCloudApigeeV1CertInfo", +"properties": { +"basicConstraints": { +"description": "X.509 basic constraints extension.", +"type": "string" +}, +"expiryDate": { +"description": "X.509 `notAfter` validity period in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"isValid": { +"description": "Flag that specifies whether the certificate is valid. Flag is set to `Yes` if the certificate is valid, `No` if expired, or `Not yet` if not yet valid.", +"type": "string" +}, +"issuer": { +"description": "X.509 issuer.", +"type": "string" +}, +"publicKey": { +"description": "Public key component of the X.509 subject public key info.", +"type": "string" +}, +"serialNumber": { +"description": "X.509 serial number.", +"type": "string" +}, +"sigAlgName": { +"description": "X.509 signatureAlgorithm.", +"type": "string" +}, +"subject": { +"description": "X.509 subject.", +"type": "string" +}, +"subjectAlternativeNames": { +"description": "X.509 subject alternative names (SANs) extension.", +"items": { +"type": "string" +}, +"type": "array" +}, +"validFrom": { +"description": "X.509 `notBefore` validity period in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "X.509 version.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Certificate": { +"id": "GoogleCloudApigeeV1Certificate", +"properties": { +"certInfo": { +"description": "Chain of certificates under this name.", +"items": { +"$ref": "GoogleCloudApigeeV1CertInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1CommonNameConfig": { +"id": "GoogleCloudApigeeV1CommonNameConfig", +"properties": { +"matchWildCards": { +"type": "boolean" +}, +"name": { +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ComputeEnvironmentScoresRequest": { +"description": "Request for ComputeEnvironmentScores.", +"id": "GoogleCloudApigeeV1ComputeEnvironmentScoresRequest", +"properties": { +"filters": { +"description": "Optional. Filters are used to filter scored components. Return all the components if no filter is mentioned. Example: [{ \"scorePath\": \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/source\" }, { \"scorePath\": \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/target\", }] This will return components with path: \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/source\" OR \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/target\"", +"items": { +"$ref": "GoogleCloudApigeeV1ComputeEnvironmentScoresRequestFilter" +}, +"type": "array" +}, +"pageSize": { +"description": "Optional. The maximum number of subcomponents to be returned in a single page. The service may return fewer than this value. If unspecified, at most 100 subcomponents will be returned in a single page.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"timeRange": { +"$ref": "GoogleTypeInterval", +"description": "Required. Time range for score calculation. At most 14 days of scores will be returned, and both the start and end dates must be within the last 90 days." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ComputeEnvironmentScoresRequestFilter": { +"description": "Filter scores by component path. Used custom filter instead of AIP-160 as the use cases are highly constrained and predictable.", +"id": "GoogleCloudApigeeV1ComputeEnvironmentScoresRequestFilter", +"properties": { +"scorePath": { +"description": "Optional. Return scores for this component. Example: \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/source\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ComputeEnvironmentScoresResponse": { +"description": "Response for ComputeEnvironmentScores.", +"id": "GoogleCloudApigeeV1ComputeEnvironmentScoresResponse", +"properties": { +"nextPageToken": { +"description": "A page token, received from a previous `ComputeScore` call. Provide this to retrieve the subsequent page.", +"type": "string" +}, +"scores": { +"description": "List of scores. One score per day.", +"items": { +"$ref": "GoogleCloudApigeeV1Score" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ConfigVersion": { +"description": "Version of the API proxy configuration schema. Currently, only 4.0 is supported.", +"id": "GoogleCloudApigeeV1ConfigVersion", +"properties": { +"majorVersion": { +"description": "Major version of the API proxy configuration schema.", +"format": "int32", +"type": "integer" +}, +"minorVersion": { +"description": "Minor version of the API proxy configuration schema.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ConnectorsPlatformConfig": { +"description": "Configuration for the Connectors Platform add-on.", +"id": "GoogleCloudApigeeV1ConnectorsPlatformConfig", +"properties": { +"enabled": { +"description": "Flag that specifies whether the Connectors Platform add-on is enabled.", +"type": "boolean" +}, +"expiresAt": { +"description": "Output only. Time at which the Connectors Platform add-on expires in milliseconds since epoch. If unspecified, the add-on will never expire.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ControlPlaneAccess": { +"description": "ControlPlaneAccess is the request body and response body of UpdateControlPlaneAccess. and the response body of GetControlPlaneAccess. The input identities contains an array of service accounts to grant access to the respective control plane resource, with each service account specified using the following format: `serviceAccount:`***service-account-name***. The ***service-account-name*** is formatted like an email address. For example: `my-control-plane-service_account@my_project_id.iam.gserviceaccount.com` You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.", +"id": "GoogleCloudApigeeV1ControlPlaneAccess", +"properties": { +"analyticsPublisherIdentities": { +"description": "Optional. Array of service accounts authorized to publish analytics data to the control plane (for the Message Processor component).", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Identifier. The resource name of the ControlPlaneAccess. Format: \"organizations/{org}/controlPlaneAccess\"", +"type": "string" +}, +"synchronizerIdentities": { +"description": "Optional. Array of service accounts to grant access to control plane resources (for the Synchronizer component). The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/latest/sa-about#create-the-service-accounts).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Credential": { +"id": "GoogleCloudApigeeV1Credential", +"properties": { +"apiProducts": { +"description": "List of API products this credential can be used for.", +"items": { +"$ref": "GoogleCloudApigeeV1ApiProductRef" +}, +"type": "array" +}, +"attributes": { +"description": "List of attributes associated with this credential.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"consumerKey": { +"description": "Consumer key.", +"type": "string" +}, +"consumerSecret": { +"description": "Secret key.", +"type": "string" +}, +"expiresAt": { +"description": "Time the credential will expire in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"issuedAt": { +"description": "Time the credential was issued in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"scopes": { +"description": "List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Status of the credential. Valid values include `approved` or `revoked`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1CreditDeveloperBalanceRequest": { +"description": "Request for CreditDeveloperBalance.", +"id": "GoogleCloudApigeeV1CreditDeveloperBalanceRequest", +"properties": { +"transactionAmount": { +"$ref": "GoogleTypeMoney", +"description": "The amount of money to be credited. The wallet corresponding to the currency specified within `transaction_amount` will be updated. For example, if you specified `currency_code` within `transaction_amount` as \"USD\", then the amount would be added to the wallet which has the \"USD\" currency or if no such wallet exists, a new wallet will be created with the \"USD\" currency." +}, +"transactionId": { +"description": "Each transaction_id uniquely identifies a credit balance request. If multiple requests are received with the same transaction_id, only one of them will be considered.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1CustomReport": { +"id": "GoogleCloudApigeeV1CustomReport", +"properties": { +"chartType": { +"description": "This field contains the chart type for the report", +"type": "string" +}, +"comments": { +"description": "Legacy field: not used. This field contains a list of comments associated with custom report", +"items": { +"type": "string" +}, +"type": "array" +}, +"createdAt": { +"description": "Output only. Unix time when the app was created json key: createdAt", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"dimensions": { +"description": "This contains the list of dimensions for the report", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "This is the display name for the report", +"type": "string" +}, +"environment": { +"description": "Output only. Environment name", +"readOnly": true, +"type": "string" +}, +"filter": { +"description": "This field contains the filter expression", +"type": "string" +}, +"fromTime": { +"description": "Legacy field: not used. Contains the from time for the report", +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. Modified time of this entity as milliseconds since epoch. json key: lastModifiedAt", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"lastViewedAt": { +"description": "Output only. Last viewed time of this entity as milliseconds since epoch", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"limit": { +"description": "Legacy field: not used This field contains the limit for the result retrieved", +"type": "string" +}, +"metrics": { +"description": "Required. This contains the list of metrics", +"items": { +"$ref": "GoogleCloudApigeeV1CustomReportMetric" +}, +"type": "array" +}, +"name": { +"description": "Required. Unique identifier for the report T his is a legacy field used to encode custom report unique id", +"type": "string" +}, +"offset": { +"description": "Legacy field: not used. This field contains the offset for the data", +"type": "string" +}, +"organization": { +"description": "Output only. Organization name", +"readOnly": true, +"type": "string" +}, +"properties": { +"description": "This field contains report properties such as ui metadata etc.", +"items": { +"$ref": "GoogleCloudApigeeV1ReportProperty" +}, +"type": "array" +}, +"sortByCols": { +"description": "Legacy field: not used much. Contains the list of sort by columns", +"items": { +"type": "string" +}, +"type": "array" +}, +"sortOrder": { +"description": "Legacy field: not used much. Contains the sort order for the sort columns", +"type": "string" +}, +"tags": { +"description": "Legacy field: not used. This field contains a list of tags associated with custom report", +"items": { +"type": "string" +}, +"type": "array" +}, +"timeUnit": { +"description": "This field contains the time unit of aggregation for the report", +"type": "string" +}, +"toTime": { +"description": "Legacy field: not used. Contains the end time for the report", +"type": "string" +}, +"topk": { +"description": "Legacy field: not used. This field contains the top k parameter value for restricting the result", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1CustomReportMetric": { +"description": "This encapsulates a metric property of the form sum(message_count) where name is message_count and function is sum", +"id": "GoogleCloudApigeeV1CustomReportMetric", +"properties": { +"function": { +"description": "aggregate function", +"type": "string" +}, +"name": { +"description": "name of the metric", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DataCollector": { +"description": "Data collector configuration.", +"id": "GoogleCloudApigeeV1DataCollector", +"properties": { +"createdAt": { +"description": "Output only. The time at which the data collector was created in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A description of the data collector.", +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. The time at which the Data Collector was last updated in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "ID of the data collector. Must begin with `dc_`.", +"type": "string" +}, +"type": { +"description": "Immutable. The type of data this data collector will collect.", +"enum": [ +"TYPE_UNSPECIFIED", +"INTEGER", +"FLOAT", +"STRING", +"BOOLEAN", +"DATETIME" +], +"enumDescriptions": [ +"For future compatibility.", +"For integer values.", +"For float values.", +"For string values.", +"For boolean values.", +"For datetime values." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DataCollectorConfig": { +"description": "Data collector and its configuration.", +"id": "GoogleCloudApigeeV1DataCollectorConfig", +"properties": { +"name": { +"description": "Name of the data collector in the following format: `organizations/{org}/datacollectors/{datacollector}`", +"type": "string" +}, +"type": { +"description": "Data type accepted by the data collector.", +"enum": [ +"TYPE_UNSPECIFIED", +"INTEGER", +"FLOAT", +"STRING", +"BOOLEAN", +"DATETIME" +], +"enumDescriptions": [ +"For future compatibility.", +"For integer values.", +"For float values.", +"For string values.", +"For boolean values.", +"For datetime values." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Datastore": { +"description": "The data store defines the connection to export data repository (Cloud Storage, BigQuery), including the credentials used to access the data repository.", +"id": "GoogleCloudApigeeV1Datastore", +"properties": { +"createTime": { +"description": "Output only. Datastore create time, in milliseconds since the epoch of 1970-01-01T00:00:00Z", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"datastoreConfig": { +"$ref": "GoogleCloudApigeeV1DatastoreConfig", +"description": "Datastore Configurations." +}, +"displayName": { +"description": "Required. Display name in UI", +"type": "string" +}, +"lastUpdateTime": { +"description": "Output only. Datastore last update time, in milliseconds since the epoch of 1970-01-01T00:00:00Z", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"org": { +"description": "Output only. Organization that the datastore belongs to", +"readOnly": true, +"type": "string" +}, +"self": { +"description": "Output only. Resource link of Datastore. Example: `/organizations/{org}/analytics/datastores/{uuid}`", +"readOnly": true, +"type": "string" +}, +"targetType": { +"description": "Destination storage type. Supported types `gcs` or `bigquery`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DatastoreConfig": { +"description": "Configuration detail for datastore", +"id": "GoogleCloudApigeeV1DatastoreConfig", +"properties": { +"bucketName": { +"description": "Name of the Cloud Storage bucket. Required for `gcs` target_type.", +"type": "string" +}, +"datasetName": { +"description": "BigQuery dataset name Required for `bigquery` target_type.", +"type": "string" +}, +"path": { +"description": "Path of Cloud Storage bucket Required for `gcs` target_type.", +"type": "string" +}, +"projectId": { +"description": "Required. Google Cloud project in which the datastore exists", +"type": "string" +}, +"tablePrefix": { +"description": "Prefix of BigQuery table Required for `bigquery` target_type.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DateRange": { +"description": "Date range of the data to export.", +"id": "GoogleCloudApigeeV1DateRange", +"properties": { +"end": { +"description": "Required. End date (exclusive) of the data to export in the format `yyyy-mm-dd`. The date range ends at 00:00:00 UTC on the end date- which will not be in the output.", +"type": "string" +}, +"start": { +"description": "Required. Start date of the data to export in the format `yyyy-mm-dd`. The date range begins at 00:00:00 UTC on the start date.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DebugMask": { +"id": "GoogleCloudApigeeV1DebugMask", +"properties": { +"faultJSONPaths": { +"description": "List of JSON paths that specify the JSON elements to be filtered from JSON payloads in error flows.", +"items": { +"type": "string" +}, +"type": "array" +}, +"faultXPaths": { +"description": "List of XPaths that specify the XML elements to be filtered from XML payloads in error flows.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Name of the debug mask.", +"type": "string" +}, +"namespaces": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of namespaces to URIs.", +"type": "object" +}, +"requestJSONPaths": { +"description": "List of JSON paths that specify the JSON elements to be filtered from JSON request message payloads.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requestXPaths": { +"description": "List of XPaths that specify the XML elements to be filtered from XML request message payloads.", +"items": { +"type": "string" +}, +"type": "array" +}, +"responseJSONPaths": { +"description": "List of JSON paths that specify the JSON elements to be filtered from JSON response message payloads.", +"items": { +"type": "string" +}, +"type": "array" +}, +"responseXPaths": { +"description": "List of XPaths that specify the XML elements to be filtered from XML response message payloads.", +"items": { +"type": "string" +}, +"type": "array" +}, +"variables": { +"description": "List of variables that should be masked from the debug output.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DebugSession": { +"id": "GoogleCloudApigeeV1DebugSession", +"properties": { +"count": { +"description": "Optional. The number of request to be traced. Min = 1, Max = 15, Default = 10.", +"format": "int32", +"type": "integer" +}, +"createTime": { +"description": "Output only. The first transaction creation timestamp, recorded by UAP.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"filter": { +"description": "Optional. A conditional statement which is evaluated against the request message to determine if it should be traced. Syntax matches that of on API Proxy bundle flow Condition.", +"type": "string" +}, +"name": { +"description": "A unique ID for this DebugSession.", +"type": "string" +}, +"timeout": { +"description": "Optional. The time in seconds after which this DebugSession should end. This value will override the value in query param, if both are provided.", +"format": "int64", +"type": "string" +}, +"tracesize": { +"description": "Optional. The maximum number of bytes captured from the response payload. Min = 0, Max = 5120, Default = 5120.", +"format": "int32", +"type": "integer" +}, +"validity": { +"description": "Optional. The length of time, in seconds, that this debug session is valid, starting from when it's received in the control plane. Min = 1, Max = 15, Default = 10.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DebugSessionTransaction": { +"description": "A transaction contains all of the debug information of the entire message flow of an API call processed by the runtime plane. The information is collected and recorded at critical points of the message flow in the runtime apiproxy.", +"id": "GoogleCloudApigeeV1DebugSessionTransaction", +"properties": { +"completed": { +"description": "Flag indicating whether a transaction is completed or not", +"type": "boolean" +}, +"point": { +"description": "List of debug data collected by runtime plane at various defined points in the flow.", +"items": { +"$ref": "GoogleCloudApigeeV1Point" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeleteCustomReportResponse": { +"id": "GoogleCloudApigeeV1DeleteCustomReportResponse", +"properties": { +"message": { +"description": "The response contains only a message field.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeleteResponse": { +"description": "Response for certain delete operations.", +"id": "GoogleCloudApigeeV1DeleteResponse", +"properties": { +"errorCode": { +"description": "Unique error code for the request, if any.", +"type": "string" +}, +"gcpResource": { +"description": "Google Cloud name of deleted resource.", +"type": "string" +}, +"message": { +"description": "Description of the operation.", +"type": "string" +}, +"requestId": { +"description": "Unique ID of the request.", +"type": "string" +}, +"status": { +"description": "Status of the operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Deployment": { +"id": "GoogleCloudApigeeV1Deployment", +"properties": { +"apiProxy": { +"description": "API proxy.", +"type": "string" +}, +"deployStartTime": { +"description": "Time the API proxy was marked `deployed` in the control plane in millisconds since epoch.", +"format": "int64", +"type": "string" +}, +"environment": { +"description": "Environment.", +"type": "string" +}, +"errors": { +"description": "Errors reported for this deployment. Populated only when state == ERROR. **Note**: This field is displayed only when viewing deployment status.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"instances": { +"description": "Status reported by each runtime instance. **Note**: This field is displayed only when viewing deployment status.", +"items": { +"$ref": "GoogleCloudApigeeV1InstanceDeploymentStatus" +}, +"type": "array" +}, +"pods": { +"description": "Status reported by runtime pods. **Note**: **This field is deprecated**. Runtime versions 1.3 and above report instance level status rather than pod status.", +"items": { +"$ref": "GoogleCloudApigeeV1PodStatus" +}, +"type": "array" +}, +"proxyDeploymentType": { +"description": "Output only. The type of the deployment (standard or extensible) Deployed proxy revision will be marked as extensible in following 2 cases. 1. The deployed proxy revision uses extensible policies. 2. If a environment supports flowhooks and flow hook is configured.", +"enum": [ +"PROXY_DEPLOYMENT_TYPE_UNSPECIFIED", +"STANDARD", +"EXTENSIBLE" +], +"enumDescriptions": [ +"Default value till public preview. After public preview this value should not be returned.", +"Deployment will be of type Standard if only Standard proxies are used", +"Proxy will be of type Extensible if deployments uses one or more Extensible proxies" +], +"readOnly": true, +"type": "string" +}, +"revision": { +"description": "API proxy revision.", +"type": "string" +}, +"routeConflicts": { +"description": "Conflicts in the desired state routing configuration. The presence of conflicts does not cause the state to be `ERROR`, but it will mean that some of the deployment's base paths are not routed to its environment. If the conflicts change, the state will transition to `PROGRESSING` until the latest configuration is rolled out to all instances. **Note**: This field is displayed only when viewing deployment status.", +"items": { +"$ref": "GoogleCloudApigeeV1DeploymentChangeReportRoutingConflict" +}, +"type": "array" +}, +"serviceAccount": { +"description": "The full resource name of Cloud IAM Service Account that this deployment is using, eg, `projects/-/serviceAccounts/{email}`.", +"type": "string" +}, +"state": { +"description": "Current state of the deployment. **Note**: This field is displayed only when viewing deployment status.", +"enum": [ +"RUNTIME_STATE_UNSPECIFIED", +"READY", +"PROGRESSING", +"ERROR" +], +"enumDescriptions": [ +"This value should never be returned.", +"Runtime has loaded the deployment.", +"Deployment is not fully ready in the runtime.", +"Encountered an error with the deployment that requires intervention." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeploymentChangeReport": { +"description": "Response for GenerateDeployChangeReport and GenerateUndeployChangeReport. This report contains any validation failures that would cause the deployment to be rejected, as well changes and conflicts in routing that may occur due to the new deployment. The existence of a routing warning does not necessarily imply that the deployment request is bad, if the desired state of the deployment request is to effect a routing change. The primary purposes of the routing messages are: 1) To inform users of routing changes that may have an effect on traffic currently being routed to other existing deployments. 2) To warn users if some base path in the proxy will not receive traffic due to an existing deployment having already claimed that base path. The presence of routing conflicts/changes will not cause non-dry-run DeployApiProxy/UndeployApiProxy requests to be rejected.", +"id": "GoogleCloudApigeeV1DeploymentChangeReport", +"properties": { +"routingChanges": { +"description": "All routing changes that may result from a deployment request.", +"items": { +"$ref": "GoogleCloudApigeeV1DeploymentChangeReportRoutingChange" +}, +"type": "array" +}, +"routingConflicts": { +"description": "All base path conflicts detected for a deployment request.", +"items": { +"$ref": "GoogleCloudApigeeV1DeploymentChangeReportRoutingConflict" +}, +"type": "array" +}, +"validationErrors": { +"$ref": "GoogleRpcPreconditionFailure", +"description": "Validation errors that would cause the deployment change request to be rejected." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeploymentChangeReportRoutingChange": { +"description": "Describes a potential routing change that may occur as a result of some deployment operation.", +"id": "GoogleCloudApigeeV1DeploymentChangeReportRoutingChange", +"properties": { +"description": { +"description": "Human-readable description of this routing change.", +"type": "string" +}, +"environmentGroup": { +"description": "Name of the environment group affected by this routing change.", +"type": "string" +}, +"fromDeployment": { +"$ref": "GoogleCloudApigeeV1DeploymentChangeReportRoutingDeployment", +"description": "Base path/deployment that may stop receiving some traffic." +}, +"shouldSequenceRollout": { +"description": "Set to `true` if using sequenced rollout would make this routing change safer. **Note**: This does not necessarily imply that automated sequenced rollout mode is supported for the operation.", +"type": "boolean" +}, +"toDeployment": { +"$ref": "GoogleCloudApigeeV1DeploymentChangeReportRoutingDeployment", +"description": "Base path/deployment that may start receiving that traffic. May be null if no deployment is able to receive the traffic." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeploymentChangeReportRoutingConflict": { +"description": "Describes a routing conflict that may cause a deployment not to receive traffic at some base path.", +"id": "GoogleCloudApigeeV1DeploymentChangeReportRoutingConflict", +"properties": { +"conflictingDeployment": { +"$ref": "GoogleCloudApigeeV1DeploymentChangeReportRoutingDeployment", +"description": "Existing base path/deployment causing the conflict." +}, +"description": { +"description": "Human-readable description of this conflict.", +"type": "string" +}, +"environmentGroup": { +"description": "Name of the environment group in which this conflict exists.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeploymentChangeReportRoutingDeployment": { +"description": "Tuple representing a base path and the deployment containing it.", +"id": "GoogleCloudApigeeV1DeploymentChangeReportRoutingDeployment", +"properties": { +"apiProxy": { +"description": "Name of the deployed API proxy revision containing the base path.", +"type": "string" +}, +"basepath": { +"description": "Base path receiving traffic.", +"type": "string" +}, +"environment": { +"description": "Name of the environment in which the proxy is deployed.", +"type": "string" +}, +"revision": { +"description": "Name of the deployed API proxy revision containing the base path.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeploymentConfig": { +"description": "NEXT ID: 11", +"id": "GoogleCloudApigeeV1DeploymentConfig", +"properties": { +"attributes": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional key-value metadata for the deployment.", +"type": "object" +}, +"basePath": { +"description": "Base path where the application will be hosted. Defaults to \"/\".", +"type": "string" +}, +"deploymentGroups": { +"description": "The list of deployment groups in which this proxy should be deployed. Not currently populated for shared flows.", +"items": { +"type": "string" +}, +"type": "array" +}, +"endpoints": { +"additionalProperties": { +"type": "string" +}, +"description": "A mapping from basepaths to proxy endpoint names in this proxy. Not populated for shared flows.", +"type": "object" +}, +"location": { +"description": "Location of the API proxy bundle as a URI.", +"type": "string" +}, +"name": { +"description": "Name of the API or shared flow revision to be deployed in the following format: `organizations/{org}/apis/{api}/revisions/{rev}` or `organizations/{org}/sharedflows/{sharedflow}/revisions/{rev}`", +"type": "string" +}, +"proxyUid": { +"description": "Unique ID of the API proxy revision.", +"type": "string" +}, +"serviceAccount": { +"description": "The service account identity associated with this deployment. If non-empty, will be in the following format: `projects/-/serviceAccounts/{account_email}`", +"type": "string" +}, +"uid": { +"description": "Unique ID. The ID will only change if the deployment is deleted and recreated.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeploymentGroupConfig": { +"description": "DeploymentGroupConfig represents a deployment group that should be present in a particular environment.", +"id": "GoogleCloudApigeeV1DeploymentGroupConfig", +"properties": { +"deploymentGroupType": { +"description": "Type of the deployment group, which will be either Standard or Extensible.", +"enum": [ +"DEPLOYMENT_GROUP_TYPE_UNSPECIFIED", +"STANDARD", +"EXTENSIBLE" +], +"enumDescriptions": [ +"Unspecified type", +"Standard type", +"Extensible Type" +], +"type": "string" +}, +"name": { +"description": "Name of the deployment group in the following format: `organizations/{org}/environments/{env}/deploymentGroups/{group}`.", +"type": "string" +}, +"revisionId": { +"description": "Revision number which can be used by the runtime to detect if the deployment group has changed between two versions.", +"format": "int64", +"type": "string" +}, +"uid": { +"description": "Unique ID. The ID will only change if the deployment group is deleted and recreated.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Developer": { +"id": "GoogleCloudApigeeV1Developer", +"properties": { +"accessType": { +"description": "Access type.", +"type": "string" +}, +"appFamily": { +"description": "Developer app family.", +"type": "string" +}, +"apps": { +"description": "List of apps associated with the developer.", +"items": { +"type": "string" +}, +"type": "array" +}, +"attributes": { +"description": "Optional. Developer attributes (name/value pairs). The custom attribute limit is 18.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"companies": { +"description": "List of companies associated with the developer.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createdAt": { +"description": "Output only. Time at which the developer was created in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"developerId": { +"description": "ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.", +"type": "string" +}, +"email": { +"description": "Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.", +"type": "string" +}, +"firstName": { +"description": "Required. First name of the developer.", +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. Time at which the developer was last modified in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"lastName": { +"description": "Required. Last name of the developer.", +"type": "string" +}, +"organizationName": { +"description": "Output only. Name of the Apigee organization in which the developer resides.", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. Status of the developer. Valid values are `active` and `inactive`.", +"readOnly": true, +"type": "string" +}, +"userName": { +"description": "Required. User name of the developer. Not used by Apigee hybrid.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeveloperApp": { +"id": "GoogleCloudApigeeV1DeveloperApp", +"properties": { +"apiProducts": { +"description": "List of API products associated with the developer app.", +"items": { +"type": "string" +}, +"type": "array" +}, +"appFamily": { +"description": "Developer app family.", +"type": "string" +}, +"appId": { +"description": "ID of the developer app.", +"type": "string" +}, +"attributes": { +"description": "List of attributes for the developer app.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"callbackUrl": { +"description": "Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps.", +"type": "string" +}, +"createdAt": { +"description": "Output only. Time the developer app was created in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"credentials": { +"description": "Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products.", +"items": { +"$ref": "GoogleCloudApigeeV1Credential" +}, +"readOnly": true, +"type": "array" +}, +"developerId": { +"description": "ID of the developer.", +"type": "string" +}, +"keyExpiresIn": { +"description": "Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set.", +"format": "int64", +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. Time the developer app was modified in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Name of the developer app.", +"type": "string" +}, +"scopes": { +"description": "Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Status of the credential. Valid values include `approved` or `revoked`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeveloperAppKey": { +"id": "GoogleCloudApigeeV1DeveloperAppKey", +"properties": { +"apiProducts": { +"description": "List of API products for which the credential can be used. **Note**: Do not specify the list of API products when creating a consumer key and secret for a developer app. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created.", +"items": { +"type": "any" +}, +"type": "array" +}, +"attributes": { +"description": "List of attributes associated with the credential.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"consumerKey": { +"description": "Consumer key.", +"type": "string" +}, +"consumerSecret": { +"description": "Secret key.", +"type": "string" +}, +"expiresAt": { +"description": "Time the developer app expires in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"expiresInSeconds": { +"description": "Input only. Expiration time, in seconds, for the consumer key. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set.", +"format": "int64", +"type": "string" +}, +"issuedAt": { +"description": "Time the developer app was created in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"scopes": { +"description": "Scopes to apply to the app. The specified scope names must already be defined for the API product that you associate with the app.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Status of the credential. Valid values include `approved` or `revoked`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeveloperBalance": { +"description": "Account balance for the developer.", +"id": "GoogleCloudApigeeV1DeveloperBalance", +"properties": { +"wallets": { +"description": "Output only. List of all wallets. Each individual wallet stores the account balance for a particular currency.", +"items": { +"$ref": "GoogleCloudApigeeV1DeveloperBalanceWallet" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeveloperBalanceWallet": { +"description": "Wallet used to manage an account balance for a particular currency.", +"id": "GoogleCloudApigeeV1DeveloperBalanceWallet", +"properties": { +"balance": { +"$ref": "GoogleTypeMoney", +"description": "Current remaining balance of the developer for a particular currency." +}, +"lastCreditTime": { +"description": "Output only. Time at which the developer last added credit to the account in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeveloperMonetizationConfig": { +"description": "Monetization configuration for the developer.", +"id": "GoogleCloudApigeeV1DeveloperMonetizationConfig", +"properties": { +"billingType": { +"description": "Billing type.", +"enum": [ +"BILLING_TYPE_UNSPECIFIED", +"PREPAID", +"POSTPAID" +], +"enumDescriptions": [ +"The default/unset value.", +"Developer pays in advance for the use of APIs and the charged amount is deducted from their account balance.", +"Developer does not maintain an account balance. The API provider bills the developer for API usage." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DeveloperSubscription": { +"description": "Structure of a DeveloperSubscription.", +"id": "GoogleCloudApigeeV1DeveloperSubscription", +"properties": { +"apiproduct": { +"description": "Name of the API product for which the developer is purchasing a subscription.", +"type": "string" +}, +"createdAt": { +"description": "Output only. Time when the API product subscription was created in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Time when the API product subscription ends in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. Time when the API product subscription was last modified in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Name of the API product subscription.", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Time when the API product subscription starts in milliseconds since epoch.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DimensionMetric": { +"description": "Encapsulates a metric grouped by dimension.", +"id": "GoogleCloudApigeeV1DimensionMetric", +"properties": { +"individualNames": { +"description": "Individual dimension names. E.g. [\"dim1_name\", \"dim2_name\"].", +"items": { +"type": "string" +}, +"type": "array" +}, +"metrics": { +"description": "List of metrics.", +"items": { +"$ref": "GoogleCloudApigeeV1Metric" +}, +"type": "array" +}, +"name": { +"deprecated": true, +"description": "Comma joined dimension names. E.g. \"dim1_name,dim2_name\". Deprecated. If name already has comma before join, we may get wrong splits. Please use individual_names.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1DisableSecurityActionRequest": { +"description": "Message to disable an enabled SecurityAction.", +"id": "GoogleCloudApigeeV1DisableSecurityActionRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1DocumentationFile": { +"description": "Documentation file contents for a catalog item.", +"id": "GoogleCloudApigeeV1DocumentationFile", +"properties": { +"contents": { +"description": "Required. The file contents. The max size is 4 MB.", +"format": "byte", +"type": "string" +}, +"displayName": { +"description": "Required. A display name for the file, shown in the management UI. Max length is 255 characters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EnableSecurityActionRequest": { +"description": "Message to enable a disabled SecurityAction.", +"id": "GoogleCloudApigeeV1EnableSecurityActionRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1EndpointAttachment": { +"description": "Apigee endpoint attachment. For more information, see [Southbound networking patterns] (https://cloud.google.com/apigee/docs/api-platform/architecture/southbound-networking-patterns-endpoints).", +"id": "GoogleCloudApigeeV1EndpointAttachment", +"properties": { +"connectionState": { +"description": "Output only. State of the endpoint attachment connection to the service attachment.", +"enum": [ +"CONNECTION_STATE_UNSPECIFIED", +"UNAVAILABLE", +"PENDING", +"ACCEPTED", +"REJECTED", +"CLOSED", +"FROZEN", +"NEEDS_ATTENTION" +], +"enumDescriptions": [ +"The connection state has not been set.", +"The connection state is unavailable at this time, possibly because the endpoint attachment is currently being provisioned.", +"The connection is pending acceptance by the PSC producer.", +"The connection has been accepted by the PSC producer.", +"The connection has been rejected by the PSC producer.", +"The connection has been closed by the PSC producer and will not serve traffic going forward.", +"The connection has been frozen by the PSC producer and will not serve traffic.", +"The connection has been accepted by the PSC producer, but it is not ready to serve the traffic due to producer side issues." +], +"readOnly": true, +"type": "string" +}, +"host": { +"description": "Output only. Host that can be used in either the HTTP target endpoint directly or as the host in target server.", +"readOnly": true, +"type": "string" +}, +"location": { +"description": "Required. Location of the endpoint attachment.", +"type": "string" +}, +"name": { +"description": "Name of the endpoint attachment. Use the following structure in your request: `organizations/{org}/endpointAttachments/{endpoint_attachment}`", +"type": "string" +}, +"serviceAttachment": { +"description": "Format: projects/*/regions/*/serviceAttachments/*", +"type": "string" +}, +"state": { +"description": "Output only. State of the endpoint attachment. Values other than `ACTIVE` mean the resource is not ready to use.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"Resource is in an unspecified state.", +"Resource is being created.", +"Resource is provisioned and ready to use.", +"The resource is being deleted.", +"The resource is being updated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EndpointChainingRule": { +"description": "EndpointChainingRule specifies the proxies contained in a particular deployment group, so that other deployment groups can find them in chaining calls.", +"id": "GoogleCloudApigeeV1EndpointChainingRule", +"properties": { +"deploymentGroup": { +"description": "The deployment group to target for cross-shard chaining calls to these proxies.", +"type": "string" +}, +"proxyIds": { +"description": "List of proxy ids which may be found in the given deployment group.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EntityMetadata": { +"description": "Metadata common to many entities in this API.", +"id": "GoogleCloudApigeeV1EntityMetadata", +"properties": { +"createdAt": { +"description": "Time at which the API proxy was created, in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"lastModifiedAt": { +"description": "Time at which the API proxy was most recently modified, in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"subType": { +"description": "The type of entity described", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Environment": { +"id": "GoogleCloudApigeeV1Environment", +"properties": { +"apiProxyType": { +"description": "Optional. API Proxy type supported by the environment. The type can be set when creating the Environment and cannot be changed.", +"enum": [ +"API_PROXY_TYPE_UNSPECIFIED", +"PROGRAMMABLE", +"CONFIGURABLE" +], +"enumDescriptions": [ +"API proxy type not specified.", +"Programmable API Proxies enable you to develop APIs with highly flexible behavior using bundled policy configuration and one or more programming languages to describe complex sequential and/or conditional flows of logic.", +"Configurable API Proxies enable you to develop efficient APIs using simple configuration while complex execution control flow logic is handled by Apigee. This type only works with the ARCHIVE deployment type and cannot be combined with the PROXY deployment type." +], +"type": "string" +}, +"clientIpResolutionConfig": { +"$ref": "GoogleCloudApigeeV1EnvironmentClientIPResolutionConfig", +"description": "Optional. The algorithm to resolve IP. This will affect Analytics, API Security, and other features that use the client ip. To remove a client ip resolution config, update the field to an empty value. Example: '{ \"clientIpResolutionConfig\" = {} }' For more information, see: https://cloud.google.com/apigee/docs/api-platform/system-administration/client-ip-resolution." +}, +"createdAt": { +"description": "Output only. Creation time of this environment as milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"deploymentType": { +"description": "Optional. Deployment type supported by the environment. The deployment type can be set when creating the environment and cannot be changed. When you enable archive deployment, you will be **prevented from performing** a [subset of actions](/apigee/docs/api-platform/local-development/overview#prevented-actions) within the environment, including: * Managing the deployment of API proxy or shared flow revisions * Creating, updating, or deleting resource files * Creating, updating, or deleting target servers", +"enum": [ +"DEPLOYMENT_TYPE_UNSPECIFIED", +"PROXY", +"ARCHIVE" +], +"enumDescriptions": [ +"Deployment type not specified.", +"Proxy deployment enables you to develop and deploy API proxies using Apigee on Google Cloud. This cannot currently be combined with the CONFIGURABLE API proxy type.", +"Archive deployment enables you to develop API proxies locally then deploy an archive of your API proxy configuration to an environment in Apigee on Google Cloud. You will be prevented from performing a [subset of actions](/apigee/docs/api-platform/local-development/overview#prevented-actions) within the environment." +], +"type": "string" +}, +"description": { +"description": "Optional. Description of the environment.", +"type": "string" +}, +"displayName": { +"description": "Optional. Display name for this environment.", +"type": "string" +}, +"forwardProxyUri": { +"description": "Optional. URI of the forward proxy to be applied to the runtime instances in this environment. Must be in the format of {scheme}://{hostname}:{port}. Note that the scheme must be one of \"http\" or \"https\", and the port must be supplied. To remove a forward proxy setting, update the field to an empty value. Note: At this time, PUT operations to add forwardProxyUri to an existing environment fail if the environment has nodeConfig set up. To successfully add the forwardProxyUri setting in this case, include the NodeConfig details with the request.", +"type": "string" +}, +"hasAttachedFlowHooks": { +"type": "boolean" +}, +"lastModifiedAt": { +"description": "Output only. Last modification time of this environment as milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. Name of the environment. Values must match the regular expression `^[.\\\\p{Alnum}-_]{1,255}$`", +"type": "string" +}, +"nodeConfig": { +"$ref": "GoogleCloudApigeeV1NodeConfig", +"description": "Optional. NodeConfig of the environment." +}, +"properties": { +"$ref": "GoogleCloudApigeeV1Properties", +"description": "Optional. Key-value pairs that may be used for customizing the environment." +}, +"state": { +"description": "Output only. State of the environment. Values other than ACTIVE means the resource is not ready to use.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"Resource is in an unspecified state.", +"Resource is being created.", +"Resource is provisioned and ready to use.", +"The resource is being deleted.", +"The resource is being updated." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Optional. EnvironmentType selected for the environment.", +"enum": [ +"ENVIRONMENT_TYPE_UNSPECIFIED", +"BASE", +"INTERMEDIATE", +"COMPREHENSIVE" +], +"enumDescriptions": [ +"Environment type not specified.", +"This is the default type. Base environment has limited capacity and capabilities and are usually used when you are getting started with Apigee or while experimenting. Refer to Apigee's public documentation for more details.", +"Intermediate environment supports API management features and higher capacity than Base environment. Refer to Apigee's public documentation for more details.", +"Comprehensive environment supports advanced capabilites and even higher capacity than Intermediate environment. Refer to Apigee's public documentation for more details." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EnvironmentClientIPResolutionConfig": { +"description": "Configuration for resolving the client ip.", +"id": "GoogleCloudApigeeV1EnvironmentClientIPResolutionConfig", +"properties": { +"headerIndexAlgorithm": { +"$ref": "GoogleCloudApigeeV1EnvironmentClientIPResolutionConfigHeaderIndexAlgorithm", +"description": "Resolves the client ip based on a custom header." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EnvironmentClientIPResolutionConfigHeaderIndexAlgorithm": { +"description": "Resolves the client ip based on a custom header.", +"id": "GoogleCloudApigeeV1EnvironmentClientIPResolutionConfigHeaderIndexAlgorithm", +"properties": { +"ipHeaderIndex": { +"description": "Required. The index of the ip in the header. Positive indices 0, 1, 2, 3 chooses indices from the left (first ips) Negative indices -1, -2, -3 chooses indices from the right (last ips)", +"format": "int32", +"type": "integer" +}, +"ipHeaderName": { +"description": "Required. The name of the header to extract the client ip from. We are currently only supporting the X-Forwarded-For header.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EnvironmentConfig": { +"id": "GoogleCloudApigeeV1EnvironmentConfig", +"properties": { +"addonsConfig": { +"$ref": "GoogleCloudApigeeV1RuntimeAddonsConfig", +"description": "The latest runtime configurations for add-ons." +}, +"arcConfigLocation": { +"description": "The location for the config blob of API Runtime Control, aka Envoy Adapter, for op-based authentication as a URI, e.g. a Cloud Storage URI. This is only used by Envoy-based gateways.", +"type": "string" +}, +"clientIpResolutionConfig": { +"$ref": "GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfig", +"description": "The algorithm to resolve IP." +}, +"createTime": { +"description": "Time that the environment configuration was created.", +"format": "google-datetime", +"type": "string" +}, +"dataCollectors": { +"description": "List of data collectors used by the deployments in the environment.", +"items": { +"$ref": "GoogleCloudApigeeV1DataCollectorConfig" +}, +"type": "array" +}, +"debugMask": { +"$ref": "GoogleCloudApigeeV1DebugMask", +"description": "Debug mask that applies to all deployments in the environment." +}, +"deploymentGroups": { +"description": "List of deployment groups in the environment.", +"items": { +"$ref": "GoogleCloudApigeeV1DeploymentGroupConfig" +}, +"type": "array" +}, +"deployments": { +"description": "List of deployments in the environment.", +"items": { +"$ref": "GoogleCloudApigeeV1DeploymentConfig" +}, +"type": "array" +}, +"envScopedRevisionId": { +"description": "Revision ID for environment-scoped resources (e.g. target servers, keystores) in this config. This ID will increment any time a resource not scoped to a deployment group changes.", +"format": "int64", +"type": "string" +}, +"featureFlags": { +"additionalProperties": { +"type": "string" +}, +"description": "Feature flags inherited from the organization and environment.", +"type": "object" +}, +"flowhooks": { +"description": "List of flow hooks in the environment.", +"items": { +"$ref": "GoogleCloudApigeeV1FlowHookConfig" +}, +"type": "array" +}, +"forwardProxyUri": { +"description": "The forward proxy's url to be used by the runtime. When set, runtime will send requests to the target via the given forward proxy. This is only used by programmable gateways.", +"type": "string" +}, +"gatewayConfigLocation": { +"description": "The location for the gateway config blob as a URI, e.g. a Cloud Storage URI. This is only used by Envoy-based gateways.", +"type": "string" +}, +"keystores": { +"description": "List of keystores in the environment.", +"items": { +"$ref": "GoogleCloudApigeeV1KeystoreConfig" +}, +"type": "array" +}, +"name": { +"description": "Name of the environment configuration in the following format: `organizations/{org}/environments/{env}/configs/{config}`", +"type": "string" +}, +"provider": { +"description": "Used by the Control plane to add context information to help detect the source of the document during diagnostics and debugging.", +"type": "string" +}, +"pubsubTopic": { +"description": "Name of the PubSub topic for the environment.", +"type": "string" +}, +"resourceReferences": { +"description": "List of resource references in the environment.", +"items": { +"$ref": "GoogleCloudApigeeV1ReferenceConfig" +}, +"type": "array" +}, +"resources": { +"description": "List of resource versions in the environment.", +"items": { +"$ref": "GoogleCloudApigeeV1ResourceConfig" +}, +"type": "array" +}, +"revisionId": { +"description": "Revision ID of the environment configuration. The higher the value, the more recently the configuration was deployed.", +"format": "int64", +"type": "string" +}, +"sequenceNumber": { +"description": "DEPRECATED: Use revision_id.", +"format": "int64", +"type": "string" +}, +"targets": { +"description": "List of target servers in the environment. Disabled target servers are not displayed.", +"items": { +"$ref": "GoogleCloudApigeeV1TargetServerConfig" +}, +"type": "array" +}, +"traceConfig": { +"$ref": "GoogleCloudApigeeV1RuntimeTraceConfig", +"description": "Trace configurations. Contains config for the environment and config overrides for specific API proxies." +}, +"uid": { +"description": "Unique ID for the environment configuration. The ID will only change if the environment is deleted and recreated.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfig": { +"description": "Configuration for resolving the client ip.", +"id": "GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfig", +"properties": { +"headerIndexAlgorithm": { +"$ref": "GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfigHeaderIndexAlgorithm", +"description": "Resolves the client ip based on a custom header." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfigHeaderIndexAlgorithm": { +"description": "Resolves the client ip based on a custom header.", +"id": "GoogleCloudApigeeV1EnvironmentConfigClientIPResolutionConfigHeaderIndexAlgorithm", +"properties": { +"ipHeaderIndex": { +"description": "The index of the ip in the header. (By default, value is 0 if missing)", +"format": "int32", +"type": "integer" +}, +"ipHeaderName": { +"description": "The name of the header to extract the client ip from.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EnvironmentGroup": { +"description": "EnvironmentGroup configuration. An environment group is used to group one or more Apigee environments under a single host name.", +"id": "GoogleCloudApigeeV1EnvironmentGroup", +"properties": { +"createdAt": { +"description": "Output only. The time at which the environment group was created as milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"hostnames": { +"description": "Required. Host names for this environment group.", +"items": { +"type": "string" +}, +"type": "array" +}, +"lastModifiedAt": { +"description": "Output only. The time at which the environment group was last updated as milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "ID of the environment group.", +"type": "string" +}, +"state": { +"description": "Output only. State of the environment group. Values other than ACTIVE means the resource is not ready to use.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"Resource is in an unspecified state.", +"Resource is being created.", +"Resource is provisioned and ready to use.", +"The resource is being deleted.", +"The resource is being updated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EnvironmentGroupAttachment": { +"description": "EnvironmentGroupAttachment is a resource which defines an attachment of an environment to an environment group.", +"id": "GoogleCloudApigeeV1EnvironmentGroupAttachment", +"properties": { +"createdAt": { +"description": "Output only. The time at which the environment group attachment was created as milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"environment": { +"description": "Required. ID of the attached environment.", +"type": "string" +}, +"environmentGroupId": { +"description": "Output only. ID of the environment group.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "ID of the environment group attachment.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1EnvironmentGroupConfig": { +"description": "EnvironmentGroupConfig is a revisioned snapshot of an EnvironmentGroup and its associated routing rules.", +"id": "GoogleCloudApigeeV1EnvironmentGroupConfig", +"properties": { +"endpointChainingRules": { +"description": "A list of proxies in each deployment group for proxy chaining calls.", +"items": { +"$ref": "GoogleCloudApigeeV1EndpointChainingRule" +}, +"type": "array" +}, +"hostnames": { +"description": "Host names for the environment group.", +"items": { +"type": "string" +}, +"type": "array" +}, +"location": { +"description": "When this message appears in the top-level IngressConfig, this field will be populated in lieu of the inlined routing_rules and hostnames fields. Some URL for downloading the full EnvironmentGroupConfig for this group.", +"type": "string" +}, +"name": { +"description": "Name of the environment group in the following format: `organizations/{org}/envgroups/{envgroup}`.", +"type": "string" +}, +"revisionId": { +"description": "Revision id that defines the ordering of the EnvironmentGroupConfig resource. The higher the revision, the more recently the configuration was deployed.", +"format": "int64", +"type": "string" +}, +"routingRules": { +"description": "Ordered list of routing rules defining how traffic to this environment group's hostnames should be routed to different environments.", +"items": { +"$ref": "GoogleCloudApigeeV1RoutingRule" +}, +"type": "array" +}, +"uid": { +"description": "A unique id for the environment group config that will only change if the environment group is deleted and recreated.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ExpireDeveloperSubscriptionRequest": { +"description": "Request for ExpireDeveloperSubscription.", +"id": "GoogleCloudApigeeV1ExpireDeveloperSubscriptionRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1Export": { +"description": "Details of an export job.", +"id": "GoogleCloudApigeeV1Export", +"properties": { +"created": { +"description": "Output only. Time the export job was created.", +"readOnly": true, +"type": "string" +}, +"datastoreName": { +"description": "Name of the datastore that is the destination of the export job [datastore]", +"type": "string" +}, +"description": { +"description": "Description of the export job.", +"type": "string" +}, +"error": { +"description": "Output only. Error is set when export fails", +"readOnly": true, +"type": "string" +}, +"executionTime": { +"description": "Output only. Execution time for this export job. If the job is still in progress, it will be set to the amount of time that has elapsed since`created`, in seconds. Else, it will set to (`updated` - `created`), in seconds.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Display name of the export job.", +"type": "string" +}, +"self": { +"description": "Output only. Self link of the export job. A URI that can be used to retrieve the status of an export job. Example: `/organizations/myorg/environments/myenv/analytics/exports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd`", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Status of the export job. Valid values include `enqueued`, `running`, `completed`, and `failed`.", +"readOnly": true, +"type": "string" +}, +"updated": { +"description": "Output only. Time the export job was last updated.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ExportRequest": { +"description": "Request body for [CreateExportRequest]", +"id": "GoogleCloudApigeeV1ExportRequest", +"properties": { +"csvDelimiter": { +"description": "Optional. Delimiter used in the CSV file, if `outputFormat` is set to `csv`. Defaults to the `,` (comma) character. Supported delimiter characters include comma (`,`), pipe (`|`), and tab (`\\t`).", +"type": "string" +}, +"datastoreName": { +"description": "Required. Name of the preconfigured datastore.", +"type": "string" +}, +"dateRange": { +"$ref": "GoogleCloudApigeeV1DateRange", +"description": "Required. Date range of the data to export." +}, +"description": { +"description": "Optional. Description of the export job.", +"type": "string" +}, +"name": { +"description": "Required. Display name of the export job.", +"type": "string" +}, +"outputFormat": { +"description": "Optional. Output format of the export. Valid values include: `csv` or `json`. Defaults to `json`. Note: Configure the delimiter for CSV output using the `csvDelimiter` property.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1FlowHook": { +"id": "GoogleCloudApigeeV1FlowHook", +"properties": { +"continueOnError": { +"description": "Optional. Flag that specifies whether execution should continue if the flow hook throws an exception. Set to `true` to continue execution. Set to `false` to stop execution if the flow hook throws an exception. Defaults to `true`.", +"type": "boolean" +}, +"description": { +"description": "Description of the flow hook.", +"type": "string" +}, +"flowHookPoint": { +"description": "Output only. Where in the API call flow the flow hook is invoked. Must be one of `PreProxyFlowHook`, `PostProxyFlowHook`, `PreTargetFlowHook`, or `PostTargetFlowHook`.", +"readOnly": true, +"type": "string" +}, +"sharedFlow": { +"description": "Shared flow attached to this flow hook, or empty if there is none attached.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1FlowHookConfig": { +"id": "GoogleCloudApigeeV1FlowHookConfig", +"properties": { +"continueOnError": { +"description": "Flag that specifies whether the flow should abort after an error in the flow hook. Defaults to `true` (continue on error).", +"type": "boolean" +}, +"name": { +"description": "Name of the flow hook in the following format: `organizations/{org}/environments/{env}/flowhooks/{point}`. Valid `point` values include: `PreProxyFlowHook`, `PostProxyFlowHook`, `PreTargetFlowHook`, and `PostTargetFlowHook`", +"type": "string" +}, +"sharedFlowName": { +"description": "Name of the shared flow to invoke in the following format: `organizations/{org}/sharedflows/{sharedflow}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GenerateDownloadUrlRequest": { +"description": "Request for GenerateDownloadUrl method.", +"id": "GoogleCloudApigeeV1GenerateDownloadUrlRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1GenerateDownloadUrlResponse": { +"description": "Response for GenerateDownloadUrl method.", +"id": "GoogleCloudApigeeV1GenerateDownloadUrlResponse", +"properties": { +"downloadUri": { +"description": "The Google Cloud Storage signed URL that can be used to download the Archive zip file.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GenerateUploadUrlRequest": { +"description": "Request for GenerateUploadUrl method.", +"id": "GoogleCloudApigeeV1GenerateUploadUrlRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1GenerateUploadUrlResponse": { +"description": "Response for GenerateUploadUrl method.", +"id": "GoogleCloudApigeeV1GenerateUploadUrlResponse", +"properties": { +"uploadUri": { +"description": "The Google Cloud Storage signed URL that can be used to upload a new Archive zip file.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GetAsyncQueryResultUrlResponse": { +"description": "The response for GetAsyncQueryResultUrl", +"id": "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponse", +"properties": { +"urls": { +"description": "The list of Signed URLs generated by the CreateAsyncQuery request", +"items": { +"$ref": "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo": { +"description": "A Signed URL and the relevant metadata associated with it.", +"id": "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo", +"properties": { +"md5": { +"description": "The MD5 Hash of the JSON data", +"type": "string" +}, +"sizeBytes": { +"description": "The size of the returned file in bytes", +"format": "int64", +"type": "string" +}, +"uri": { +"description": "The signed URL of the JSON data. Will be of the form `https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm= GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount .com%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18 1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16 9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849 6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058 0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a 66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823 a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703 2ea7abedc098d2eb14a7`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GetSyncAuthorizationRequest": { +"description": "Request for GetSyncAuthorization.", +"id": "GoogleCloudApigeeV1GetSyncAuthorizationRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1GraphQLOperation": { +"description": "Represents the pairing of GraphQL operation types and the GraphQL operation name.", +"id": "GoogleCloudApigeeV1GraphQLOperation", +"properties": { +"operation": { +"description": "GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.", +"type": "string" +}, +"operationTypes": { +"description": "Required. GraphQL operation types. Valid values include `query` or `mutation`. **Note**: Apigee does not currently support `subscription` types.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GraphQLOperationConfig": { +"description": "Binds the resources in a proxy or remote service with the GraphQL operation and its associated quota enforcement.", +"id": "GoogleCloudApigeeV1GraphQLOperationConfig", +"properties": { +"apiSource": { +"description": "Required. Name of the API proxy endpoint or remote service with which the GraphQL operation and quota are associated.", +"type": "string" +}, +"attributes": { +"description": "Custom attributes associated with the operation.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"operations": { +"description": "Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name. **Note**: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.", +"items": { +"$ref": "GoogleCloudApigeeV1GraphQLOperation" +}, +"type": "array" +}, +"quota": { +"$ref": "GoogleCloudApigeeV1Quota", +"description": "Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GraphQLOperationGroup": { +"description": "List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy.", +"id": "GoogleCloudApigeeV1GraphQLOperationGroup", +"properties": { +"operationConfigType": { +"description": "Flag that specifies whether the configuration is for Apigee API proxy or a remote service. Valid values include `proxy` or `remoteservice`. Defaults to `proxy`. Set to `proxy` when Apigee API proxies are associated with the API product. Set to `remoteservice` when non-Apigee proxies like Istio-Envoy are associated with the API product.", +"type": "string" +}, +"operationConfigs": { +"description": "Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product.", +"items": { +"$ref": "GoogleCloudApigeeV1GraphQLOperationConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GraphqlDocumentation": { +"description": "GraphQL documentation for a catalog item.", +"id": "GoogleCloudApigeeV1GraphqlDocumentation", +"properties": { +"endpointUri": { +"description": "Required. The GraphQL endpoint URI to be queried by API consumers. Max length is 2,083 characters.", +"type": "string" +}, +"schema": { +"$ref": "GoogleCloudApigeeV1DocumentationFile", +"description": "Required. The documentation file contents for the GraphQL schema." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GrpcOperationConfig": { +"description": "Binds the resources in a proxy or remote service with the gRPC operation and its associated quota enforcement.", +"id": "GoogleCloudApigeeV1GrpcOperationConfig", +"properties": { +"apiSource": { +"description": "Required. Name of the API proxy with which the gRPC operation and quota are associated.", +"type": "string" +}, +"attributes": { +"description": "Custom attributes associated with the operation.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"methods": { +"description": "List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy. Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply [\"ListPets\", \"GetPet\"].", +"items": { +"type": "string" +}, +"type": "array" +}, +"quota": { +"$ref": "GoogleCloudApigeeV1Quota", +"description": "Quota parameters to be enforced for the methods and API source combination. If none are specified, quota enforcement will not be done." +}, +"service": { +"description": "Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1GrpcOperationGroup": { +"description": "List of gRPC operation configuration details associated with Apigee API proxies.", +"id": "GoogleCloudApigeeV1GrpcOperationGroup", +"properties": { +"operationConfigs": { +"description": "Required. List of operation configurations for either Apigee API proxies that are associated with this API product.", +"items": { +"$ref": "GoogleCloudApigeeV1GrpcOperationConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1IngressConfig": { +"id": "GoogleCloudApigeeV1IngressConfig", +"properties": { +"environmentGroups": { +"description": "List of environment groups in the organization.", +"items": { +"$ref": "GoogleCloudApigeeV1EnvironmentGroupConfig" +}, +"type": "array" +}, +"name": { +"description": "Name of the resource in the following format: `organizations/{org}/deployedIngressConfig`.", +"type": "string" +}, +"revisionCreateTime": { +"description": "Time at which the IngressConfig revision was created.", +"format": "google-datetime", +"type": "string" +}, +"revisionId": { +"description": "Revision id that defines the ordering on IngressConfig resources. The higher the revision, the more recently the configuration was deployed.", +"format": "int64", +"type": "string" +}, +"uid": { +"description": "A unique id for the ingress config that will only change if the organization is deleted and recreated.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Instance": { +"description": "Apigee runtime instance.", +"id": "GoogleCloudApigeeV1Instance", +"properties": { +"accessLoggingConfig": { +"$ref": "GoogleCloudApigeeV1AccessLoggingConfig", +"description": "Optional. Access logging configuration enables the access logging feature at the instance. Apigee customers can enable access logging to ship the access logs to their own project's cloud logging." +}, +"consumerAcceptList": { +"description": "Optional. Customer accept list represents the list of projects (id/number) on customer side that can privately connect to the service attachment. It is an optional field which the customers can provide during the instance creation. By default, the customer project associated with the Apigee organization will be included to the list.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createdAt": { +"description": "Output only. Time the instance was created in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the instance.", +"type": "string" +}, +"diskEncryptionKeyName": { +"description": "Customer Managed Encryption Key (CMEK) used for disk and volume encryption. If not specified, a Google-Managed encryption key will be used. Use the following format: `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`", +"type": "string" +}, +"displayName": { +"description": "Optional. Display name for the instance.", +"type": "string" +}, +"host": { +"description": "Output only. Internal hostname or IP address of the Apigee endpoint used by clients to connect to the service.", +"readOnly": true, +"type": "string" +}, +"ipRange": { +"description": "Optional. Comma-separated list of CIDR blocks of length 22 and/or 28 used to create the Apigee instance. Providing CIDR ranges is optional. You can provide just /22 or /28 or both (or neither). Ranges you provide should be freely available as part of a larger named range you have allocated to the Service Networking peering. If this parameter is not provided, Apigee automatically requests an available /22 and /28 CIDR block from Service Networking. Use the /22 CIDR block for configuring your firewall needs to allow traffic from Apigee. Input formats: `a.b.c.d/22` or `e.f.g.h/28` or `a.b.c.d/22,e.f.g.h/28`", +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. Time the instance was last modified in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"location": { +"description": "Required. Compute Engine location where the instance resides.", +"type": "string" +}, +"name": { +"description": "Required. Resource ID of the instance. Values must match the regular expression `^a-z{0,30}[a-z\\d]$`.", +"type": "string" +}, +"peeringCidrRange": { +"deprecated": true, +"description": "Optional. Size of the CIDR block range that will be reserved by the instance. PAID organizations support `SLASH_16` to `SLASH_20` and defaults to `SLASH_16`. Evaluation organizations support only `SLASH_23`.", +"enum": [ +"CIDR_RANGE_UNSPECIFIED", +"SLASH_16", +"SLASH_17", +"SLASH_18", +"SLASH_19", +"SLASH_20", +"SLASH_22", +"SLASH_23" +], +"enumDescriptions": [ +"Range not specified.", +"`/16` CIDR range.", +"`/17` CIDR range.", +"`/18` CIDR range.", +"`/19` CIDR range.", +"`/20` CIDR range.", +"`/22` CIDR range. Supported for evaluation only.", +"`/23` CIDR range. Supported for evaluation only." +], +"type": "string" +}, +"port": { +"description": "Output only. Port number of the exposed Apigee endpoint.", +"readOnly": true, +"type": "string" +}, +"runtimeVersion": { +"description": "Output only. Version of the runtime system running in the instance. The runtime system is the set of components that serve the API Proxy traffic in your Environments.", +"readOnly": true, +"type": "string" +}, +"serviceAttachment": { +"description": "Output only. Resource name of the service attachment created for the instance in the format: `projects/*/regions/*/serviceAttachments/*` Apigee customers can privately forward traffic to this service attachment using the PSC endpoints.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the instance. Values other than `ACTIVE` means the resource is not ready to use.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"Resource is in an unspecified state.", +"Resource is being created.", +"Resource is provisioned and ready to use.", +"The resource is being deleted.", +"The resource is being updated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1InstanceAttachment": { +"description": "InstanceAttachment represents the installation of an environment onto an instance.", +"id": "GoogleCloudApigeeV1InstanceAttachment", +"properties": { +"createdAt": { +"description": "Output only. Time the attachment was created in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"environment": { +"description": "ID of the attached environment.", +"type": "string" +}, +"name": { +"description": "Output only. ID of the attachment.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1InstanceDeploymentStatus": { +"description": "The status of a deployment as reported by a single instance.", +"id": "GoogleCloudApigeeV1InstanceDeploymentStatus", +"properties": { +"deployedRevisions": { +"description": "Revisions currently deployed in MPs.", +"items": { +"$ref": "GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRevision" +}, +"type": "array" +}, +"deployedRoutes": { +"description": "Current routes deployed in the ingress routing table. A route which is missing will appear in `missing_routes`.", +"items": { +"$ref": "GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRoute" +}, +"type": "array" +}, +"instance": { +"description": "ID of the instance reporting the status.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRevision": { +"description": "Revisions deployed in the MPs.", +"id": "GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRevision", +"properties": { +"percentage": { +"description": "Percentage of MP replicas reporting this revision.", +"format": "int32", +"type": "integer" +}, +"revision": { +"description": "API proxy revision reported as deployed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRoute": { +"description": "Route deployed in the ingress routing table.", +"id": "GoogleCloudApigeeV1InstanceDeploymentStatusDeployedRoute", +"properties": { +"basepath": { +"description": "Base path in the routing table.", +"type": "string" +}, +"envgroup": { +"description": "Environment group where this route is installed.", +"type": "string" +}, +"environment": { +"description": "Destination environment. This will be empty if the route is not yet reported.", +"type": "string" +}, +"percentage": { +"description": "Percentage of ingress replicas reporting this route.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1IntegrationConfig": { +"description": "Configuration for the Integration add-on.", +"id": "GoogleCloudApigeeV1IntegrationConfig", +"properties": { +"enabled": { +"description": "Flag that specifies whether the Integration add-on is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1KeyAliasReference": { +"id": "GoogleCloudApigeeV1KeyAliasReference", +"properties": { +"aliasId": { +"description": "Alias ID. Must exist in the keystore referred to by the reference.", +"type": "string" +}, +"reference": { +"description": "Reference name in the following format: `organizations/{org}/environments/{env}/references/{reference}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1KeyValueEntry": { +"description": "Key value map pair where the value represents the data associated with the corresponding key. **Note**: Supported for Apigee hybrid 1.8.x and higher.", +"id": "GoogleCloudApigeeV1KeyValueEntry", +"properties": { +"name": { +"description": "Resource URI that can be used to identify the scope of the key value map entries.", +"type": "string" +}, +"value": { +"description": "Required. Data or payload that is being retrieved and associated with the unique key.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1KeyValueMap": { +"description": "Collection of key/value string pairs.", +"id": "GoogleCloudApigeeV1KeyValueMap", +"properties": { +"encrypted": { +"description": "Required. Flag that specifies whether entry values will be encrypted. This field is retained for backward compatibility and the value of encrypted will always be `true`. Apigee X and hybrid do not support unencrypted key value maps.", +"type": "boolean" +}, +"name": { +"description": "Required. ID of the key value map.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Keystore": { +"description": "Datastore for Certificates and Aliases.", +"id": "GoogleCloudApigeeV1Keystore", +"properties": { +"aliases": { +"description": "Output only. Aliases in this keystore.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Required. Resource ID for this keystore. Values must match the regular expression `[\\w[:space:].-]{1,255}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1KeystoreConfig": { +"id": "GoogleCloudApigeeV1KeystoreConfig", +"properties": { +"aliases": { +"description": "Aliases in the keystore.", +"items": { +"$ref": "GoogleCloudApigeeV1AliasRevisionConfig" +}, +"type": "array" +}, +"name": { +"description": "Resource name in the following format: `organizations/{org}/environments/{env}/keystores/{keystore}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListApiCategoriesResponse": { +"description": "The response for `ListApiCategoriesRequest`. Next ID: 6", +"id": "GoogleCloudApigeeV1ListApiCategoriesResponse", +"properties": { +"data": { +"description": "The API category resources.", +"items": { +"$ref": "GoogleCloudApigeeV1ApiCategory" +}, +"type": "array" +}, +"errorCode": { +"description": "Unique error code for the request, if any.", +"type": "string" +}, +"message": { +"description": "Description of the operation.", +"type": "string" +}, +"requestId": { +"description": "Unique ID of the request.", +"type": "string" +}, +"status": { +"description": "Status of the operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListApiDocsResponse": { +"id": "GoogleCloudApigeeV1ListApiDocsResponse", +"properties": { +"data": { +"description": "The catalog item resources.", +"items": { +"$ref": "GoogleCloudApigeeV1ApiDoc" +}, +"type": "array" +}, +"errorCode": { +"description": "Unique error code for the request, if any.", +"type": "string" +}, +"message": { +"description": "Description of the operation.", +"type": "string" +}, +"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" +}, +"requestId": { +"description": "Unique ID of the request.", +"type": "string" +}, +"status": { +"description": "Status of the operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListApiProductsResponse": { +"id": "GoogleCloudApigeeV1ListApiProductsResponse", +"properties": { +"apiProduct": { +"description": "Lists all API product names defined for an organization.", +"items": { +"$ref": "GoogleCloudApigeeV1ApiProduct" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListApiProxiesResponse": { +"id": "GoogleCloudApigeeV1ListApiProxiesResponse", +"properties": { +"proxies": { +"items": { +"$ref": "GoogleCloudApigeeV1ApiProxy" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListAppGroupAppsResponse": { +"description": "Response for ListAppGroupApps", +"id": "GoogleCloudApigeeV1ListAppGroupAppsResponse", +"properties": { +"appGroupApps": { +"description": "List of AppGroup apps and their credentials.", +"items": { +"$ref": "GoogleCloudApigeeV1AppGroupApp" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token that can be sent as `next_page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListAppGroupsResponse": { +"description": "ListAppGroupsResponse contains the 0 or more AppGroups, along with the optional page token and the total count of apps.", +"id": "GoogleCloudApigeeV1ListAppGroupsResponse", +"properties": { +"appGroups": { +"description": "List of AppGroups.", +"items": { +"$ref": "GoogleCloudApigeeV1AppGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token that can be sent as `next_page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"totalSize": { +"description": "Total count of AppGroups.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListAppsResponse": { +"id": "GoogleCloudApigeeV1ListAppsResponse", +"properties": { +"app": { +"items": { +"$ref": "GoogleCloudApigeeV1App" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token that can be sent as `next_page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"totalSize": { +"description": "Total count of Apps.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListArchiveDeploymentsResponse": { +"description": "Response for ListArchiveDeployments method.", +"id": "GoogleCloudApigeeV1ListArchiveDeploymentsResponse", +"properties": { +"archiveDeployments": { +"description": "Archive Deployments in the specified environment.", +"items": { +"$ref": "GoogleCloudApigeeV1ArchiveDeployment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token that you can include in a ListArchiveDeployments request to retrieve the next page. If omitted, no subsequent pages exist.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListAsyncQueriesResponse": { +"description": "The response for ListAsyncQueries.", +"id": "GoogleCloudApigeeV1ListAsyncQueriesResponse", +"properties": { +"queries": { +"description": "The asynchronous queries belong to requested resource name.", +"items": { +"$ref": "GoogleCloudApigeeV1AsyncQuery" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListCustomReportsResponse": { +"description": "This message encapsulates a list of custom report definitions", +"id": "GoogleCloudApigeeV1ListCustomReportsResponse", +"properties": { +"qualifier": { +"items": { +"$ref": "GoogleCloudApigeeV1CustomReport" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListDataCollectorsResponse": { +"description": "Response for ListDataCollectors.", +"id": "GoogleCloudApigeeV1ListDataCollectorsResponse", +"properties": { +"dataCollectors": { +"description": "Data collectors in the specified organization.", +"items": { +"$ref": "GoogleCloudApigeeV1DataCollector" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token that you can include in a ListDataCollectors request to retrieve the next page. If omitted, no subsequent pages exist.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListDatastoresResponse": { +"description": "The response for ListDatastores", +"id": "GoogleCloudApigeeV1ListDatastoresResponse", +"properties": { +"datastores": { +"description": "A list of datastores", +"items": { +"$ref": "GoogleCloudApigeeV1Datastore" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListDebugSessionsResponse": { +"id": "GoogleCloudApigeeV1ListDebugSessionsResponse", +"properties": { +"nextPageToken": { +"description": "Page token that you can include in a ListDebugSessionsRequest to retrieve the next page. If omitted, no subsequent pages exist.", +"type": "string" +}, +"sessions": { +"description": "Session info that includes debug session ID and the first transaction creation timestamp.", +"items": { +"$ref": "GoogleCloudApigeeV1Session" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListDeploymentsResponse": { +"id": "GoogleCloudApigeeV1ListDeploymentsResponse", +"properties": { +"deployments": { +"description": "List of deployments.", +"items": { +"$ref": "GoogleCloudApigeeV1Deployment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListDeveloperAppsResponse": { +"id": "GoogleCloudApigeeV1ListDeveloperAppsResponse", +"properties": { +"app": { +"description": "List of developer apps and their credentials.", +"items": { +"$ref": "GoogleCloudApigeeV1DeveloperApp" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListDeveloperSubscriptionsResponse": { +"description": "Response for ListDeveloperSubscriptions.", +"id": "GoogleCloudApigeeV1ListDeveloperSubscriptionsResponse", +"properties": { +"developerSubscriptions": { +"description": "List of all subscriptions.", +"items": { +"$ref": "GoogleCloudApigeeV1DeveloperSubscription" +}, +"type": "array" +}, +"nextStartKey": { +"description": "Value that can be sent as `startKey` to retrieve the next page of content. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListEndpointAttachmentsResponse": { +"description": "Response for ListEndpointAttachments method.", +"id": "GoogleCloudApigeeV1ListEndpointAttachmentsResponse", +"properties": { +"endpointAttachments": { +"description": "Endpoint attachments in the specified organization.", +"items": { +"$ref": "GoogleCloudApigeeV1EndpointAttachment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token that you can include in an `ListEndpointAttachments` request to retrieve the next page. If omitted, no subsequent pages exist.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListEnvironmentGroupAttachmentsResponse": { +"description": "Response for ListEnvironmentGroupAttachments.", +"id": "GoogleCloudApigeeV1ListEnvironmentGroupAttachmentsResponse", +"properties": { +"environmentGroupAttachments": { +"description": "EnvironmentGroupAttachments for the specified environment group.", +"items": { +"$ref": "GoogleCloudApigeeV1EnvironmentGroupAttachment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token that you can include in a ListEnvironmentGroupAttachments request to retrieve the next page. If omitted, no subsequent pages exist.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListEnvironmentGroupsResponse": { +"description": "Response for ListEnvironmentGroups.", +"id": "GoogleCloudApigeeV1ListEnvironmentGroupsResponse", +"properties": { +"environmentGroups": { +"description": "EnvironmentGroups in the specified organization.", +"items": { +"$ref": "GoogleCloudApigeeV1EnvironmentGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token that you can include in a ListEnvironmentGroups request to retrieve the next page. If omitted, no subsequent pages exist.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListEnvironmentResourcesResponse": { +"description": "Response for ListEnvironmentResources", +"id": "GoogleCloudApigeeV1ListEnvironmentResourcesResponse", +"properties": { +"resourceFile": { +"description": "List of resources files.", +"items": { +"$ref": "GoogleCloudApigeeV1ResourceFile" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListExportsResponse": { +"description": "The response for ListExports", +"id": "GoogleCloudApigeeV1ListExportsResponse", +"properties": { +"exports": { +"description": "Details of the export jobs.", +"items": { +"$ref": "GoogleCloudApigeeV1Export" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListHybridIssuersResponse": { +"id": "GoogleCloudApigeeV1ListHybridIssuersResponse", +"properties": { +"issuers": { +"description": "Lists of hybrid services and its trusted issuer email ids.", +"items": { +"$ref": "GoogleCloudApigeeV1ServiceIssuersMapping" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListInstanceAttachmentsResponse": { +"description": "Response for ListInstanceAttachments.", +"id": "GoogleCloudApigeeV1ListInstanceAttachmentsResponse", +"properties": { +"attachments": { +"description": "Attachments for the instance.", +"items": { +"$ref": "GoogleCloudApigeeV1InstanceAttachment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token that you can include in a ListInstanceAttachments request to retrieve the next page of content. If omitted, no subsequent pages exist.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListInstancesResponse": { +"description": "Response for ListInstances.", +"id": "GoogleCloudApigeeV1ListInstancesResponse", +"properties": { +"instances": { +"description": "Instances in the specified organization.", +"items": { +"$ref": "GoogleCloudApigeeV1Instance" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token that you can include in a ListInstance request to retrieve the next page of content. If omitted, no subsequent pages exist.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListKeyValueEntriesResponse": { +"description": "The request structure for listing key value map keys and its corresponding values.", +"id": "GoogleCloudApigeeV1ListKeyValueEntriesResponse", +"properties": { +"keyValueEntries": { +"description": "One or more key value map keys and values.", +"items": { +"$ref": "GoogleCloudApigeeV1KeyValueEntry" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token that can be sent as `next_page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListNatAddressesResponse": { +"description": "Response for ListNatAddresses.", +"id": "GoogleCloudApigeeV1ListNatAddressesResponse", +"properties": { +"natAddresses": { +"description": "List of NAT Addresses for the instance.", +"items": { +"$ref": "GoogleCloudApigeeV1NatAddress" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Page token that you can include in a ListNatAddresses request to retrieve the next page of content. If omitted, no subsequent pages exist.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListOfDevelopersResponse": { +"id": "GoogleCloudApigeeV1ListOfDevelopersResponse", +"properties": { +"developer": { +"description": "List of developers.", +"items": { +"$ref": "GoogleCloudApigeeV1Developer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListOrganizationsResponse": { +"id": "GoogleCloudApigeeV1ListOrganizationsResponse", +"properties": { +"organizations": { +"description": "List of Apigee organizations and associated Google Cloud projects.", +"items": { +"$ref": "GoogleCloudApigeeV1OrganizationProjectMapping" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListRatePlansResponse": { +"description": "Response for ListRatePlans.", +"id": "GoogleCloudApigeeV1ListRatePlansResponse", +"properties": { +"nextStartKey": { +"description": "Value that can be sent as `startKey` to retrieve the next page of content. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"ratePlans": { +"description": "List of rate plans in an organization.", +"items": { +"$ref": "GoogleCloudApigeeV1RatePlan" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListSecurityActionsResponse": { +"description": "Contains a list of SecurityActions in response to a ListSecurityActionRequest.", +"id": "GoogleCloudApigeeV1ListSecurityActionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"securityActions": { +"description": "The SecurityActions for the specified environment.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityAction" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListSecurityIncidentsResponse": { +"description": "Response for ListSecurityIncidents.", +"id": "GoogleCloudApigeeV1ListSecurityIncidentsResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"securityIncidents": { +"description": "List of security incidents in the organization", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityIncident" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse": { +"description": "Response for ListSecurityProfileRevisions.", +"id": "GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"securityProfiles": { +"description": "List of security profile revisions. The revisions may be attached or unattached to any environment.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityProfile" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListSecurityProfilesResponse": { +"description": "Response for ListSecurityProfiles.", +"id": "GoogleCloudApigeeV1ListSecurityProfilesResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"securityProfiles": { +"description": "List of security profiles in the organization. The profiles may be attached or unattached to any environment. This will return latest revision of each profile.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityProfile" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListSecurityProfilesV2Response": { +"description": "Response for ListSecurityProfilesV2.", +"id": "GoogleCloudApigeeV1ListSecurityProfilesV2Response", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"securityProfilesV2": { +"description": "List of security profiles in the organization.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityProfileV2" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListSecurityReportsResponse": { +"description": "The response for SecurityReports.", +"id": "GoogleCloudApigeeV1ListSecurityReportsResponse", +"properties": { +"nextPageToken": { +"description": "If the number of security reports exceeded the page size requested, the token can be used to fetch the next page in a subsequent call. If the response is the last page and there are no more reports to return this field is left empty.", +"type": "string" +}, +"securityReports": { +"description": "The security reports belong to requested resource name.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityReport" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListSharedFlowsResponse": { +"id": "GoogleCloudApigeeV1ListSharedFlowsResponse", +"properties": { +"sharedFlows": { +"items": { +"$ref": "GoogleCloudApigeeV1SharedFlow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ListTraceConfigOverridesResponse": { +"description": "Response for ListTraceConfigOverrides.", +"id": "GoogleCloudApigeeV1ListTraceConfigOverridesResponse", +"properties": { +"nextPageToken": { +"description": "Token value that can be passed as `page_token` to retrieve the next page of content.", +"type": "string" +}, +"traceConfigOverrides": { +"description": "List all trace configuration overrides in an environment.", +"items": { +"$ref": "GoogleCloudApigeeV1TraceConfigOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Metadata": { +"description": "Encapsulates additional information about query execution.", +"id": "GoogleCloudApigeeV1Metadata", +"properties": { +"errors": { +"description": "List of error messages as strings.", +"items": { +"type": "string" +}, +"type": "array" +}, +"notices": { +"description": "List of additional information such as data source, if result was truncated. For example: ``` \"notices\": [ \"Source:Postgres\", \"PG Host:uappg0rw.e2e.apigeeks.net\", \"query served by:4b64601e-40de-4eb1-bfb9-eeee7ac929ed\", \"Table used: edge.api.uapgroup2.agg_api\" ]```", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Metric": { +"description": "Encapsulates the metric data point. For example: ```{ \"name\": \"sum(message_count)\", \"values\" : [ { \"timestamp\": 1549004400000, \"value\": \"39.0\" }, { \"timestamp\" : 1548997200000, \"value\" : \"0.0\" } ] }``` or ```{ \"name\": \"sum(message_count)\", \"values\" : [\"39.0\"] }```", +"id": "GoogleCloudApigeeV1Metric", +"properties": { +"name": { +"description": "Metric name.", +"type": "string" +}, +"values": { +"description": "List of metric values. Possible value formats include: `\"values\":[\"39.0\"]` or `\"values\":[ { \"value\": \"39.0\", \"timestamp\": 1232434354} ]`", +"items": { +"type": "any" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1MetricAggregation": { +"description": "The optionally aggregated metric to query with its ordering.", +"id": "GoogleCloudApigeeV1MetricAggregation", +"properties": { +"aggregation": { +"description": "Aggregation function associated with the metric.", +"enum": [ +"AGGREGATION_FUNCTION_UNSPECIFIED", +"AVG", +"SUM", +"MIN", +"MAX", +"COUNT_DISTINCT" +], +"enumDescriptions": [ +"Unspecified Aggregation function.", +"Average.", +"Summation.", +"Min.", +"Max.", +"Count distinct" +], +"type": "string" +}, +"name": { +"description": "Name of the metric", +"type": "string" +}, +"order": { +"description": "Ordering for this aggregation in the result. For time series this is ignored since the ordering of points depends only on the timestamp, not the values.", +"enum": [ +"ORDER_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"Unspecified order. Default is Descending.", +"Ascending sort order.", +"Descending sort order." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1MonetizationConfig": { +"description": "Configuration for the Monetization add-on.", +"id": "GoogleCloudApigeeV1MonetizationConfig", +"properties": { +"enabled": { +"description": "Flag that specifies whether the Monetization add-on is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1NatAddress": { +"description": "Apigee NAT(network address translation) address. A NAT address is a static external IP address used for Internet egress traffic.", +"id": "GoogleCloudApigeeV1NatAddress", +"properties": { +"ipAddress": { +"description": "Output only. The static IPV4 address.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. Resource ID of the NAT address.", +"type": "string" +}, +"state": { +"description": "Output only. State of the nat address.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"RESERVED", +"ACTIVE", +"DELETING" +], +"enumDescriptions": [ +"The resource is in an unspecified state.", +"The NAT address is being created.", +"The NAT address is reserved but not yet used for Internet egress.", +"The NAT address is active and used for Internet egress.", +"The NAT address is being deleted." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1NodeConfig": { +"description": "NodeConfig for setting the min/max number of nodes associated with the environment.", +"id": "GoogleCloudApigeeV1NodeConfig", +"properties": { +"currentAggregateNodeCount": { +"description": "Output only. The current total number of gateway nodes that each environment currently has across all instances.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"maxNodeCount": { +"description": "Optional. The maximum total number of gateway nodes that the is reserved for all instances that has the specified environment. If not specified, the default is determined by the recommended maximum number of nodes for that gateway.", +"format": "int64", +"type": "string" +}, +"minNodeCount": { +"description": "Optional. The minimum total number of gateway nodes that the is reserved for all instances that has the specified environment. If not specified, the default is determined by the recommended minimum number of nodes for that gateway.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1OASDocumentation": { +"description": "OpenAPI Specification documentation for a catalog item.", +"id": "GoogleCloudApigeeV1OASDocumentation", +"properties": { +"format": { +"description": "Output only. The format of the input specification file contents.", +"enum": [ +"FORMAT_UNSPECIFIED", +"YAML", +"JSON" +], +"enumDescriptions": [ +"The format is not available.", +"YAML format.", +"JSON format." +], +"readOnly": true, +"type": "string" +}, +"spec": { +"$ref": "GoogleCloudApigeeV1DocumentationFile", +"description": "Required. The documentation file contents for the OpenAPI Specification. JSON and YAML file formats are supported." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Operation": { +"description": "Represents the pairing of REST resource path and the actions (verbs) allowed on the resource path.", +"id": "GoogleCloudApigeeV1Operation", +"properties": { +"methods": { +"description": "methods refers to the REST verbs as in https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html. When none specified, all verb types are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resource": { +"description": "Required. REST resource path associated with the API proxy or remote service.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1OperationConfig": { +"description": "Binds the resources in an API proxy or remote service with the allowed REST methods and associated quota enforcement.", +"id": "GoogleCloudApigeeV1OperationConfig", +"properties": { +"apiSource": { +"description": "Required. Name of the API proxy or remote service with which the resources, methods, and quota are associated.", +"type": "string" +}, +"attributes": { +"description": "Custom attributes associated with the operation.", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +}, +"operations": { +"description": "List of resource/method pairs for the API proxy or remote service to which quota will applied. **Note**: Currently, you can specify only a single resource/method pair. The call will fail if more than one resource/method pair is provided.", +"items": { +"$ref": "GoogleCloudApigeeV1Operation" +}, +"type": "array" +}, +"quota": { +"$ref": "GoogleCloudApigeeV1Quota", +"description": "Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1OperationGroup": { +"description": "List of operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy.", +"id": "GoogleCloudApigeeV1OperationGroup", +"properties": { +"operationConfigType": { +"description": "Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include `proxy` or `remoteservice`. Defaults to `proxy`. Set to `proxy` when Apigee API proxies are associated with the API product. Set to `remoteservice` when non-Apigee proxies like Istio-Envoy are associated with the API product.", +"type": "string" +}, +"operationConfigs": { +"description": "Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product.", +"items": { +"$ref": "GoogleCloudApigeeV1OperationConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1OperationMetadata": { +"description": "Metadata describing an Operation.", +"id": "GoogleCloudApigeeV1OperationMetadata", +"properties": { +"operationType": { +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"INSERT", +"DELETE", +"UPDATE" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"progress": { +"$ref": "GoogleCloudApigeeV1OperationMetadataProgress", +"description": "Progress of the operation." +}, +"state": { +"enum": [ +"STATE_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"FINISHED" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"targetResourceName": { +"description": "Name of the resource for which the operation is operating on.", +"type": "string" +}, +"warnings": { +"description": "Warnings encountered while executing the operation.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1OperationMetadataProgress": { +"description": "Information about operation progress.", +"id": "GoogleCloudApigeeV1OperationMetadataProgress", +"properties": { +"description": { +"description": "Description of the operation's progress.", +"type": "string" +}, +"details": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The additional details of the progress.", +"type": "object" +}, +"percentDone": { +"description": "The percentage of the operation progress.", +"format": "int32", +"type": "integer" +}, +"state": { +"description": "State of the operation.", +"enum": [ +"STATE_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"FINISHED" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1OptimizedStats": { +"id": "GoogleCloudApigeeV1OptimizedStats", +"properties": { +"Response": { +"$ref": "GoogleCloudApigeeV1OptimizedStatsResponse", +"description": "Wraps the `stats` response for JavaScript Optimized Scenario with a response key. For example: ```{ \"Response\": { \"TimeUnit\": [], \"metaData\": { \"errors\": [], \"notices\": [ \"Source:Postgres\", \"Table used: edge.api.aaxgroup001.agg_api\", \"PG Host:ruappg08-ro.production.apigeeks.net\", \"query served by:80c4ebca-6a10-4a2e-8faf-c60c1ee306ca\" ] }, \"resultTruncated\": false, \"stats\": { \"data\": [ { \"identifier\": { \"names\": [ \"apiproxy\" ], \"values\": [ \"sirjee\" ] }, \"metric\": [ { \"env\": \"prod\", \"name\": \"sum(message_count)\", \"values\": [ 36.0 ] }, { \"env\": \"prod\", \"name\": \"sum(is_error)\", \"values\": [ 36.0 ] } ] } ] } } }```" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1OptimizedStatsNode": { +"description": "Encapsulates a data node as represented below: ``` { \"identifier\": { \"names\": [ \"apiproxy\" ], \"values\": [ \"sirjee\" ] }, \"metric\": [ { \"env\": \"prod\", \"name\": \"sum(message_count)\", \"values\": [ 36.0 ] } ] }``` or ``` { \"env\": \"prod\", \"name\": \"sum(message_count)\", \"values\": [ 36.0 ] }``` Depending on whether a dimension is present in the query or not the data node type can be a simple metric value or dimension identifier with list of metrics.", +"id": "GoogleCloudApigeeV1OptimizedStatsNode", +"properties": { +"data": { +"items": { +"type": "any" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1OptimizedStatsResponse": { +"description": "Encapsulates a response format for JavaScript Optimized Scenario.", +"id": "GoogleCloudApigeeV1OptimizedStatsResponse", +"properties": { +"TimeUnit": { +"description": "List of time unit values. Time unit refers to an epoch timestamp value.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"metaData": { +"$ref": "GoogleCloudApigeeV1Metadata", +"description": "Metadata information about the query executed." +}, +"resultTruncated": { +"description": "Boolean flag that indicates whether the results were truncated based on the limit parameter.", +"type": "boolean" +}, +"stats": { +"$ref": "GoogleCloudApigeeV1OptimizedStatsNode", +"description": "`stats` results." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Organization": { +"id": "GoogleCloudApigeeV1Organization", +"properties": { +"addonsConfig": { +"$ref": "GoogleCloudApigeeV1AddonsConfig", +"description": "Addon configurations of the Apigee organization." +}, +"analyticsRegion": { +"deprecated": true, +"description": "Required. DEPRECATED: This field will eventually be deprecated and replaced with a differently-named field. Primary Google Cloud region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).", +"type": "string" +}, +"apiConsumerDataEncryptionKeyName": { +"description": "Cloud KMS key name used for encrypting API consumer data. If not specified or [BillingType](#BillingType) is `EVALUATION`, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`", +"type": "string" +}, +"apiConsumerDataLocation": { +"description": "This field is needed only for customers using non-default data residency regions. Apigee stores some control plane data only in single region. This field determines which single region Apigee should use. For example: \"us-west1\" when control plane is in US or \"europe-west2\" when control plane is in EU.", +"type": "string" +}, +"apigeeProjectId": { +"description": "Output only. Apigee Project ID associated with the organization. Use this project to allowlist Apigee in the Service Attachment when using private service connect with Apigee.", +"readOnly": true, +"type": "string" +}, +"attributes": { +"description": "Not used by Apigee.", +"items": { +"type": "string" +}, +"type": "array" +}, +"authorizedNetwork": { +"description": "Compute Engine network used for Service Networking to be peered with Apigee runtime instances. See [Getting started with the Service Networking API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started). Valid only when [RuntimeType](#RuntimeType) is set to `CLOUD`. The value must be set before the creation of a runtime instance and can be updated only when there are no runtime instances. For example: `default`. When changing authorizedNetwork, you must reconfigure VPC peering. After VPC peering with previous network is deleted, [run the following command](https://cloud.google.com/sdk/gcloud/reference/services/vpc-peerings/delete): `gcloud services vpc-peerings delete --network=NETWORK`, where `NETWORK` is the name of the previous network. This will delete the previous Service Networking. Otherwise, you will get the following error: `The resource 'projects/...-tp' is already linked to another shared VPC host 'projects/...-tp`. Apigee also supports shared VPC (that is, the host network project is not the same as the one that is peering with Apigee). See [Shared VPC overview](https://cloud.google.com/vpc/docs/shared-vpc). To use a shared VPC network, use the following format: `projects/{host-project-id}/{region}/networks/{network-name}`. For example: `projects/my-sharedvpc-host/global/networks/mynetwork` **Note:** Not supported for Apigee hybrid.", +"type": "string" +}, +"billingType": { +"description": "Billing type of the Apigee organization. See [Apigee pricing](https://cloud.google.com/apigee/pricing).", +"enum": [ +"BILLING_TYPE_UNSPECIFIED", +"SUBSCRIPTION", +"EVALUATION", +"PAYG" +], +"enumDescriptions": [ +"Billing type not specified.", +"A pre-paid subscription to Apigee.", +"Free and limited access to Apigee for evaluation purposes only.", +"Access to Apigee using a Pay-As-You-Go plan." +], +"type": "string" +}, +"caCertificate": { +"description": "Output only. Base64-encoded public certificate for the root CA of the Apigee organization. Valid only when [RuntimeType](#RuntimeType) is `CLOUD`.", +"format": "byte", +"readOnly": true, +"type": "string" +}, +"controlPlaneEncryptionKeyName": { +"description": "Cloud KMS key name used for encrypting control plane data that is stored in a multi region. Only used for the data residency region \"US\" or \"EU\". If not specified or [BillingType](#BillingType) is `EVALUATION`, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`", +"type": "string" +}, +"createdAt": { +"description": "Output only. Time that the Apigee organization was created in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"customerName": { +"description": "Not used by Apigee.", +"type": "string" +}, +"description": { +"description": "Description of the Apigee organization.", +"type": "string" +}, +"disableVpcPeering": { +"description": "Optional. Flag that specifies whether the VPC Peering through Private Google Access should be disabled between the consumer network and Apigee. Valid only when RuntimeType is set to CLOUD. Required if an authorizedNetwork on the consumer project is not provided, in which case the flag should be set to true. The value must be set before the creation of any Apigee runtime instance and can be updated only when there are no runtime instances. **Note:** Apigee will be deprecating the vpc peering model that requires you to provide 'authorizedNetwork', by making the non-peering model as the default way of provisioning Apigee organization in future. So, this will be a temporary flag to enable the transition. Not supported for Apigee hybrid.", +"type": "boolean" +}, +"displayName": { +"description": "Display name for the Apigee organization. Unused, but reserved for future use.", +"type": "string" +}, +"environments": { +"description": "Output only. List of environments in the Apigee organization.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"expiresAt": { +"description": "Output only. Time that the Apigee organization is scheduled for deletion.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"lastModifiedAt": { +"description": "Output only. Time that the Apigee organization was last modified in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Name of the Apigee organization.", +"readOnly": true, +"type": "string" +}, +"portalDisabled": { +"description": "Configuration for the Portals settings.", +"type": "boolean" +}, +"projectId": { +"description": "Output only. Project ID associated with the Apigee organization.", +"readOnly": true, +"type": "string" +}, +"properties": { +"$ref": "GoogleCloudApigeeV1Properties", +"description": "Properties defined in the Apigee organization profile." +}, +"runtimeDatabaseEncryptionKeyName": { +"description": "Cloud KMS key name used for encrypting the data that is stored and replicated across runtime instances. Update is not allowed after the organization is created. If not specified or [RuntimeType](#RuntimeType) is `TRIAL`, a Google-Managed encryption key will be used. For example: \"projects/foo/locations/us/keyRings/bar/cryptoKeys/baz\". **Note:** Not supported for Apigee hybrid.", +"type": "string" +}, +"runtimeType": { +"description": "Required. Runtime type of the Apigee organization based on the Apigee subscription purchased.", +"enum": [ +"RUNTIME_TYPE_UNSPECIFIED", +"CLOUD", +"HYBRID" +], +"enumDescriptions": [ +"Runtime type not specified.", +"Google-managed Apigee runtime.", +"User-managed Apigee hybrid runtime." +], +"type": "string" +}, +"state": { +"description": "Output only. State of the organization. Values other than ACTIVE means the resource is not ready to use.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"Resource is in an unspecified state.", +"Resource is being created.", +"Resource is provisioned and ready to use.", +"The resource is being deleted.", +"The resource is being updated." +], +"readOnly": true, +"type": "string" +}, +"subscriptionPlan": { +"description": "Output only. Subscription plan that the customer has purchased. Output only.", +"enum": [ +"SUBSCRIPTION_PLAN_UNSPECIFIED", +"SUBSCRIPTION_2021", +"SUBSCRIPTION_2024" +], +"enumDescriptions": [ +"Subscription plan not specified.", +"Traditional subscription plan.", +"New subscription plan that provides standard proxy and scaled proxy implementation." +], +"readOnly": true, +"type": "string" +}, +"subscriptionType": { +"deprecated": true, +"description": "Output only. DEPRECATED: This will eventually be replaced by BillingType. Subscription type of the Apigee organization. Valid values include trial (free, limited, and for evaluation purposes only) or paid (full subscription has been purchased). See [Apigee pricing](https://cloud.google.com/apigee/pricing/).", +"enum": [ +"SUBSCRIPTION_TYPE_UNSPECIFIED", +"PAID", +"TRIAL" +], +"enumDescriptions": [ +"Subscription type not specified.", +"Full subscription to Apigee has been purchased.", +"Subscription to Apigee is free, limited, and used for evaluation purposes only." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Not used by Apigee.", +"enum": [ +"TYPE_UNSPECIFIED", +"TYPE_TRIAL", +"TYPE_PAID", +"TYPE_INTERNAL" +], +"enumDescriptions": [ +"Subscription type not specified.", +"Subscription to Apigee is free, limited, and used for evaluation purposes only.", +"Full subscription to Apigee has been purchased. See [Apigee pricing](https://cloud.google.com/apigee/pricing/).", +"For internal users only." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1OrganizationProjectMapping": { +"id": "GoogleCloudApigeeV1OrganizationProjectMapping", +"properties": { +"location": { +"description": "Output only. The Google Cloud region where control plane data is located. For more information, see https://cloud.google.com/about/locations/.", +"readOnly": true, +"type": "string" +}, +"organization": { +"description": "Name of the Apigee organization.", +"type": "string" +}, +"projectId": { +"description": "Google Cloud project associated with the Apigee organization", +"type": "string" +}, +"projectIds": { +"deprecated": true, +"description": "DEPRECATED: Use `project_id`. An Apigee Organization is mapped to a single project.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1PodStatus": { +"id": "GoogleCloudApigeeV1PodStatus", +"properties": { +"appVersion": { +"description": "Version of the application running in the pod.", +"type": "string" +}, +"deploymentStatus": { +"description": "Status of the deployment. Valid values include: - `deployed`: Successful. - `error` : Failed. - `pending` : Pod has not yet reported on the deployment.", +"type": "string" +}, +"deploymentStatusTime": { +"description": "Time the deployment status was reported in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"deploymentTime": { +"description": "Time the proxy was deployed in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"podName": { +"description": "Name of the pod which is reporting the status.", +"type": "string" +}, +"podStatus": { +"description": "Overall status of the pod (not this specific deployment). Valid values include: - `active`: Up to date. - `stale` : Recently out of date. Pods that have not reported status in a long time are excluded from the output.", +"type": "string" +}, +"podStatusTime": { +"description": "Time the pod status was reported in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"statusCode": { +"description": "Code associated with the deployment status.", +"type": "string" +}, +"statusCodeDetails": { +"description": "Human-readable message associated with the status code.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Point": { +"description": "Point is a group of information collected by runtime plane at critical points of the message flow of the processed API request. This is a list of supported point IDs, categorized to three major buckets. For each category, debug points that we are currently supporting are listed below: - Flow status debug points: StateChange FlowInfo Condition Execution DebugMask Error - Flow control debug points: FlowCallout Paused Resumed FlowReturn BreakFlow Error - Runtime debug points: ScriptExecutor FlowCalloutStepDefinition CustomTarget StepDefinition Oauth2ServicePoint RaiseFault NodeJS The detail information of the given debug point is stored in a list of results.", +"id": "GoogleCloudApigeeV1Point", +"properties": { +"id": { +"description": "Name of a step in the transaction.", +"type": "string" +}, +"results": { +"description": "List of results extracted from a given debug point.", +"items": { +"$ref": "GoogleCloudApigeeV1Result" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ProfileConfig": { +"description": "ProfileConfig defines a set of categories and policies which will be used to compute security score.", +"id": "GoogleCloudApigeeV1ProfileConfig", +"properties": { +"categories": { +"description": "List of categories of profile config.", +"items": { +"$ref": "GoogleCloudApigeeV1ProfileConfigCategory" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ProfileConfigAbuse": { +"description": "Checks for abuse, which includes any requests sent to the API for purposes other than what it is intended for, such as high volumes of requests, data scraping, and abuse related to authorization.", +"id": "GoogleCloudApigeeV1ProfileConfigAbuse", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1ProfileConfigAuthorization": { +"description": "By default, following policies will be included: - JWS - JWT - OAuth - BasicAuth - APIKey", +"id": "GoogleCloudApigeeV1ProfileConfigAuthorization", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1ProfileConfigCORS": { +"description": "Checks to see if you have CORS policy in place.", +"id": "GoogleCloudApigeeV1ProfileConfigCORS", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1ProfileConfigCategory": { +"description": "Advanced API Security provides security profile that scores the following categories.", +"id": "GoogleCloudApigeeV1ProfileConfigCategory", +"properties": { +"abuse": { +"$ref": "GoogleCloudApigeeV1ProfileConfigAbuse", +"description": "Checks for abuse, which includes any requests sent to the API for purposes other than what it is intended for, such as high volumes of requests, data scraping, and abuse related to authorization." +}, +"authorization": { +"$ref": "GoogleCloudApigeeV1ProfileConfigAuthorization", +"description": "Checks to see if you have an authorization policy in place." +}, +"cors": { +"$ref": "GoogleCloudApigeeV1ProfileConfigCORS", +"description": "Checks to see if you have CORS policy in place." +}, +"mediation": { +"$ref": "GoogleCloudApigeeV1ProfileConfigMediation", +"description": "Checks to see if you have a mediation policy in place." +}, +"mtls": { +"$ref": "GoogleCloudApigeeV1ProfileConfigMTLS", +"description": "Checks to see if you have configured mTLS for the target server." +}, +"threat": { +"$ref": "GoogleCloudApigeeV1ProfileConfigThreat", +"description": "Checks to see if you have a threat protection policy in place." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ProfileConfigMTLS": { +"description": "Checks to see if you have configured mTLS for the target server.", +"id": "GoogleCloudApigeeV1ProfileConfigMTLS", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1ProfileConfigMediation": { +"description": "By default, following policies will be included: - OASValidation - SOAPMessageValidation", +"id": "GoogleCloudApigeeV1ProfileConfigMediation", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1ProfileConfigThreat": { +"description": "By default, following policies will be included: - XMLThreatProtection - JSONThreatProtection", +"id": "GoogleCloudApigeeV1ProfileConfigThreat", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1Properties": { +"description": "Message for compatibility with legacy Edge specification for Java Properties object in JSON.", +"id": "GoogleCloudApigeeV1Properties", +"properties": { +"property": { +"description": "List of all properties in the object", +"items": { +"$ref": "GoogleCloudApigeeV1Property" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Property": { +"description": "A single property entry in the Properties message.", +"id": "GoogleCloudApigeeV1Property", +"properties": { +"name": { +"description": "The property key", +"type": "string" +}, +"value": { +"description": "The property value", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ProvisionOrganizationRequest": { +"description": "Request for ProvisionOrganization.", +"id": "GoogleCloudApigeeV1ProvisionOrganizationRequest", +"properties": { +"analyticsRegion": { +"description": "Primary Cloud Platform region for analytics data storage. For valid values, see [Create an organization](https://cloud.google.com/apigee/docs/hybrid/latest/precog-provision). Defaults to `us-west1`.", +"type": "string" +}, +"authorizedNetwork": { +"description": "Compute Engine network used for Service Networking to be peered with Apigee runtime instances. See [Getting started with the Service Networking API](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started). Apigee also supports shared VPC (that is, the host network project is not the same as the one that is peering with Apigee). See [Shared VPC overview](https://cloud.google.com/vpc/docs/shared-vpc). To use a shared VPC network, use the following format: `projects/{host-project-id}/{region}/networks/{network-name}`. For example: `projects/my-sharedvpc-host/global/networks/mynetwork`", +"type": "string" +}, +"disableVpcPeering": { +"description": "Optional. Flag that specifies whether the VPC Peering through Private Google Access should be disabled between the consumer network and Apigee. Required if an authorizedNetwork on the consumer project is not provided, in which case the flag should be set to true. The value must be set before the creation of any Apigee runtime instance and can be updated only when there are no runtime instances. **Note:** Apigee will be deprecating the vpc peering model that requires you to provide 'authorizedNetwork', by making the non-peering model as the default way of provisioning Apigee organization in future. So, this will be a temporary flag to enable the transition. Not supported for Apigee hybrid.", +"type": "boolean" +}, +"runtimeLocation": { +"description": "Cloud Platform location for the runtime instance. Defaults to zone `us-west1-a`. If a region is provided, `EVAL` organizations will use the region for automatically selecting a zone for the runtime instance.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Query": { +"id": "GoogleCloudApigeeV1Query", +"properties": { +"csvDelimiter": { +"description": "Delimiter used in the CSV file, if `outputFormat` is set to `csv`. Defaults to the `,` (comma) character. Supported delimiter characters include comma (`,`), pipe (`|`), and tab (`\\t`).", +"type": "string" +}, +"dimensions": { +"description": "A list of dimensions. https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions", +"items": { +"type": "string" +}, +"type": "array" +}, +"envgroupHostname": { +"description": "Hostname needs to be specified if query intends to run at host level. This field is only allowed when query is submitted by CreateHostAsyncQuery where analytics data will be grouped by organization and hostname.", +"type": "string" +}, +"filter": { +"description": "Boolean expression that can be used to filter data. Filter expressions can be combined using AND/OR terms and should be fully parenthesized to avoid ambiguity. See Analytics metrics, dimensions, and filters reference https://docs.apigee.com/api-platform/analytics/analytics-reference for more information on the fields available to filter on. For more information on the tokens that you use to build filter expressions, see Filter expression syntax. https://docs.apigee.com/api-platform/analytics/asynch-reports-api#filter-expression-syntax", +"type": "string" +}, +"groupByTimeUnit": { +"description": "Time unit used to group the result set. Valid values include: second, minute, hour, day, week, or month. If a query includes groupByTimeUnit, then the result is an aggregation based on the specified time unit and the resultant timestamp does not include milliseconds precision. If a query omits groupByTimeUnit, then the resultant timestamp includes milliseconds precision.", +"type": "string" +}, +"limit": { +"description": "Maximum number of rows that can be returned in the result.", +"format": "int32", +"type": "integer" +}, +"metrics": { +"description": "A list of Metrics.", +"items": { +"$ref": "GoogleCloudApigeeV1QueryMetric" +}, +"type": "array" +}, +"name": { +"description": "Asynchronous Query Name.", +"type": "string" +}, +"outputFormat": { +"description": "Valid values include: `csv` or `json`. Defaults to `json`. Note: Configure the delimiter for CSV output using the csvDelimiter property.", +"type": "string" +}, +"reportDefinitionId": { +"description": "Asynchronous Report ID.", +"type": "string" +}, +"timeRange": { +"description": "Required. Time range for the query. Can use the following predefined strings to specify the time range: `last60minutes` `last24hours` `last7days` Or, specify the timeRange as a structure describing start and end timestamps in the ISO format: yyyy-mm-ddThh:mm:ssZ. Example: \"timeRange\": { \"start\": \"2018-07-29T00:13:00Z\", \"end\": \"2018-08-01T00:18:00Z\" }", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1QueryMetadata": { +"id": "GoogleCloudApigeeV1QueryMetadata", +"properties": { +"dimensions": { +"description": "Dimensions of the AsyncQuery.", +"items": { +"type": "string" +}, +"type": "array" +}, +"endTimestamp": { +"description": "End timestamp of the query range.", +"type": "string" +}, +"metrics": { +"description": "Metrics of the AsyncQuery. Example: [\"name:message_count,func:sum,alias:sum_message_count\"]", +"items": { +"type": "string" +}, +"type": "array" +}, +"outputFormat": { +"description": "Output format.", +"type": "string" +}, +"startTimestamp": { +"description": "Start timestamp of the query range.", +"type": "string" +}, +"timeUnit": { +"description": "Query GroupBy time unit.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1QueryMetric": { +"description": "More info about Metric: https://docs.apigee.com/api-platform/analytics/analytics-reference#metrics", +"id": "GoogleCloudApigeeV1QueryMetric", +"properties": { +"alias": { +"description": "Alias for the metric. Alias will be used to replace metric name in query results.", +"type": "string" +}, +"function": { +"description": "Aggregation function: avg, min, max, or sum.", +"type": "string" +}, +"name": { +"description": "Required. Metric name.", +"type": "string" +}, +"operator": { +"description": "One of `+`, `-`, `/`, `%`, `*`.", +"type": "string" +}, +"value": { +"description": "Operand value should be provided when operator is set.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1QueryTabularStatsRequest": { +"description": "Request payload representing the query to be run for fetching security statistics as rows.", +"id": "GoogleCloudApigeeV1QueryTabularStatsRequest", +"properties": { +"dimensions": { +"description": "Required. List of dimension names to group the aggregations by.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Filter further on specific dimension values. Follows the same grammar as custom report's filter expressions. Example, apiproxy eq 'foobar'. https://cloud.google.com/apigee/docs/api-platform/analytics/analytics-reference#filters", +"type": "string" +}, +"metrics": { +"description": "Required. List of metrics and their aggregations.", +"items": { +"$ref": "GoogleCloudApigeeV1MetricAggregation" +}, +"type": "array" +}, +"pageSize": { +"description": "Page size represents the number of rows.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Identifies a sequence of rows.", +"type": "string" +}, +"timeRange": { +"$ref": "GoogleTypeInterval", +"description": "Time range for the stats." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1QueryTabularStatsResponse": { +"description": "Encapsulates two kinds of stats that are results of the dimensions and aggregations requested. - Tabular rows. - Time series data. Example of tabular rows, Represents security stats results as a row of flat values.", +"id": "GoogleCloudApigeeV1QueryTabularStatsResponse", +"properties": { +"columns": { +"description": "Column names corresponding to the same order as the inner values in the stats field.", +"items": { +"type": "string" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Next page token.", +"type": "string" +}, +"values": { +"description": "Resultant rows from the executed query.", +"items": { +"items": { +"type": "any" +}, +"type": "array" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1QueryTimeSeriesStatsRequest": { +"description": "QueryTimeSeriesStatsRequest represents a query that returns a collection of time series sequences grouped by their values.", +"id": "GoogleCloudApigeeV1QueryTimeSeriesStatsRequest", +"properties": { +"dimensions": { +"description": "List of dimension names to group the aggregations by. If no dimensions are passed, a single trend line representing the requested metric aggregations grouped by environment is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Filter further on specific dimension values. Follows the same grammar as custom report's filter expressions. Example, apiproxy eq 'foobar'. https://cloud.google.com/apigee/docs/api-platform/analytics/analytics-reference#filters", +"type": "string" +}, +"metrics": { +"description": "Required. List of metrics and their aggregations.", +"items": { +"$ref": "GoogleCloudApigeeV1MetricAggregation" +}, +"type": "array" +}, +"pageSize": { +"description": "Page size represents the number of time series sequences, one per unique set of dimensions and their values.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Page token stands for a specific collection of time series sequences.", +"type": "string" +}, +"timeRange": { +"$ref": "GoogleTypeInterval", +"description": "Required. Time range for the stats." +}, +"timestampOrder": { +"description": "Order the sequences in increasing or decreasing order of timestamps. Default is descending order of timestamps (latest first).", +"enum": [ +"ORDER_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"Unspecified order. Default is Descending.", +"Ascending sort order.", +"Descending sort order." +], +"type": "string" +}, +"windowSize": { +"description": "Time buckets to group the stats by.", +"enum": [ +"WINDOW_SIZE_UNSPECIFIED", +"MINUTE", +"HOUR", +"DAY", +"MONTH" +], +"enumDescriptions": [ +"Unspecified window size. Default is 1 hour.", +"1 Minute window", +"1 Hour window", +"1 Day window", +"1 Month window" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1QueryTimeSeriesStatsResponse": { +"description": "Represents security stats result as a collection of time series sequences.", +"id": "GoogleCloudApigeeV1QueryTimeSeriesStatsResponse", +"properties": { +"columns": { +"description": "Column names corresponding to the same order as the inner values in the stats field.", +"items": { +"type": "string" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Next page token.", +"type": "string" +}, +"values": { +"description": "Results of the query returned as a JSON array.", +"items": { +"$ref": "GoogleCloudApigeeV1QueryTimeSeriesStatsResponseSequence" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1QueryTimeSeriesStatsResponseSequence": { +"description": "A sequence of time series.", +"id": "GoogleCloudApigeeV1QueryTimeSeriesStatsResponseSequence", +"properties": { +"dimensions": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of dimensions and their values that uniquely identifies a time series sequence.", +"type": "object" +}, +"points": { +"description": "List of points. First value of each inner list is a timestamp.", +"items": { +"items": { +"type": "any" +}, +"type": "array" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Quota": { +"description": "Quota contains the essential parameters needed that can be applied on the resources, methods, API source combination associated with this API product. While Quota is optional, setting it prevents requests from exceeding the provisioned parameters.", +"id": "GoogleCloudApigeeV1Quota", +"properties": { +"interval": { +"description": "Required. Time interval over which the number of request messages is calculated.", +"type": "string" +}, +"limit": { +"description": "Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.", +"type": "string" +}, +"timeUnit": { +"description": "Time unit defined for the `interval`. Valid values include `minute`, `hour`, `day`, or `month`. If `limit` and `interval` are valid, the default value is `hour`; otherwise, the default is null.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RatePlan": { +"description": "Rate plan details.", +"id": "GoogleCloudApigeeV1RatePlan", +"properties": { +"apiproduct": { +"description": "Name of the API product that the rate plan is associated with.", +"type": "string" +}, +"billingPeriod": { +"description": "Frequency at which the customer will be billed.", +"enum": [ +"BILLING_PERIOD_UNSPECIFIED", +"WEEKLY", +"MONTHLY" +], +"enumDescriptions": [ +"Billing period not specified.", +"Weekly billing period. **Note**: Not supported by Apigee at this time.", +"Monthly billing period." +], +"type": "string" +}, +"consumptionPricingRates": { +"description": "API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { \"start\": 1, \"end\": 100, \"fee\": 75 }, { \"start\": 101, \"end\": 200, \"fee\": 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200.", +"items": { +"$ref": "GoogleCloudApigeeV1RateRange" +}, +"type": "array" +}, +"consumptionPricingType": { +"description": "Pricing model used for consumption-based charges.", +"enum": [ +"CONSUMPTION_PRICING_TYPE_UNSPECIFIED", +"FIXED_PER_UNIT", +"BANDED", +"TIERED", +"STAIRSTEP" +], +"enumDescriptions": [ +"Pricing model not specified. This is the default.", +"Fixed rate charged for each API call.", +"Variable rate charged for each API call based on price tiers. Example: * 1-100 calls cost $2 per call * 101-200 calls cost $1.50 per call * 201-300 calls cost $1 per call * Total price for 50 calls: 50 x $2 = $100 * Total price for 150 calls: 100 x $2 + 50 x $1.5 = $275 * Total price for 250 calls: 100 x $2 + 100 x $1.5 + 50 x $1 = $400. **Note**: Not supported by Apigee at this time.", +"**Note**: Not supported by Apigee at this time.", +"**Note**: Not supported by Apigee at this time." +], +"type": "string" +}, +"createdAt": { +"description": "Output only. Time that the rate plan was created in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"currencyCode": { +"description": "Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard.", +"type": "string" +}, +"description": { +"description": "Description of the rate plan.", +"type": "string" +}, +"displayName": { +"description": "Display name of the rate plan.", +"type": "string" +}, +"endTime": { +"description": "Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire.", +"format": "int64", +"type": "string" +}, +"fixedFeeFrequency": { +"description": "Frequency at which the fixed fee is charged.", +"format": "int32", +"type": "integer" +}, +"fixedRecurringFee": { +"$ref": "GoogleTypeMoney", +"description": "Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period." +}, +"lastModifiedAt": { +"description": "Output only. Time the rate plan was last modified in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Name of the rate plan.", +"readOnly": true, +"type": "string" +}, +"paymentFundingModel": { +"deprecated": true, +"description": "DEPRECATED: This field is no longer supported and will eventually be removed when Apigee Hybrid 1.5/1.6 is no longer supported. Instead, use the `billingType` field inside `DeveloperMonetizationConfig` resource. Flag that specifies the billing account type, prepaid or postpaid.", +"enum": [ +"PAYMENT_FUNDING_MODEL_UNSPECIFIED", +"PREPAID", +"POSTPAID" +], +"enumDescriptions": [ +"Billing account type not specified.", +"Prepaid billing account type. Developer pays in advance for the use of your API products. Funds are deducted from their prepaid account balance. **Note**: Not supported by Apigee at this time.", +"Postpaid billing account type. Developer is billed through an invoice after using your API products." +], +"type": "string" +}, +"revenueShareRates": { +"description": "Details of the revenue sharing model.", +"items": { +"$ref": "GoogleCloudApigeeV1RevenueShareRange" +}, +"type": "array" +}, +"revenueShareType": { +"description": "Method used to calculate the revenue that is shared with developers.", +"enum": [ +"REVENUE_SHARE_TYPE_UNSPECIFIED", +"FIXED", +"VOLUME_BANDED" +], +"enumDescriptions": [ +"Revenue share type is not specified.", +"Fixed percentage of the total revenue will be shared. The percentage to be shared can be configured by the API provider.", +"Amount of revenue shared depends on the number of API calls. The API call volume ranges and the revenue share percentage for each volume can be configured by the API provider. **Note**: Not supported by Apigee at this time." +], +"type": "string" +}, +"setupFee": { +"$ref": "GoogleTypeMoney", +"description": "Initial, one-time fee paid when purchasing the API product." +}, +"startTime": { +"description": "Time when the rate plan becomes active in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"state": { +"description": "Current state of the rate plan (draft or published).", +"enum": [ +"STATE_UNSPECIFIED", +"DRAFT", +"PUBLISHED" +], +"enumDescriptions": [ +"State of the rate plan is not specified.", +"Rate plan is in draft mode and only visible to API providers.", +"Rate plan is published and will become visible to developers for the configured duration (between `startTime` and `endTime`)." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RateRange": { +"description": "API call volume range and the fees charged when the total number of API calls is within the range.", +"id": "GoogleCloudApigeeV1RateRange", +"properties": { +"end": { +"description": "Ending value of the range. Set to 0 or `null` for the last range of values.", +"format": "int64", +"type": "string" +}, +"fee": { +"$ref": "GoogleTypeMoney", +"description": "Fee to charge when total number of API calls falls within this range." +}, +"start": { +"description": "Starting value of the range. Set to 0 or `null` for the initial range of values.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Reference": { +"description": "A Reference configuration. References must refer to a keystore that also exists in the parent environment.", +"id": "GoogleCloudApigeeV1Reference", +"properties": { +"description": { +"description": "Optional. A human-readable description of this reference.", +"type": "string" +}, +"name": { +"description": "Required. The resource id of this reference. Values must match the regular expression [\\w\\s\\-.]+.", +"type": "string" +}, +"refers": { +"description": "Required. The id of the resource to which this reference refers. Must be the id of a resource that exists in the parent environment and is of the given resource_type.", +"type": "string" +}, +"resourceType": { +"description": "The type of resource referred to by this reference. Valid values are 'KeyStore' or 'TrustStore'.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ReferenceConfig": { +"id": "GoogleCloudApigeeV1ReferenceConfig", +"properties": { +"name": { +"description": "Name of the reference in the following format: `organizations/{org}/environments/{env}/references/{reference}`", +"type": "string" +}, +"resourceName": { +"description": "Name of the referenced resource in the following format: `organizations/{org}/environments/{env}/keystores/{keystore}` Only references to keystore resources are supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ReportInstanceStatusRequest": { +"description": "Request for ReportInstanceStatus.", +"id": "GoogleCloudApigeeV1ReportInstanceStatusRequest", +"properties": { +"instanceUid": { +"description": "A unique ID for the instance which is guaranteed to be unique in case the user installs multiple hybrid runtimes with the same instance ID.", +"type": "string" +}, +"reportTime": { +"description": "The time the report was generated in the runtime. Used to prevent an old status from overwriting a newer one. An instance should space out it's status reports so that clock skew does not play a factor.", +"format": "google-datetime", +"type": "string" +}, +"resources": { +"description": "Status for config resources", +"items": { +"$ref": "GoogleCloudApigeeV1ResourceStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ReportInstanceStatusResponse": { +"description": "Placeholder for future enhancements to status reporting protocol", +"id": "GoogleCloudApigeeV1ReportInstanceStatusResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1ReportProperty": { +"id": "GoogleCloudApigeeV1ReportProperty", +"properties": { +"property": { +"description": "name of the property", +"type": "string" +}, +"value": { +"description": "property values", +"items": { +"$ref": "GoogleCloudApigeeV1Attribute" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ResourceConfig": { +"id": "GoogleCloudApigeeV1ResourceConfig", +"properties": { +"location": { +"description": "Location of the resource as a URI.", +"type": "string" +}, +"name": { +"description": "Resource name in the following format: `organizations/{org}/environments/{env}/resourcefiles/{type}/{file}/revisions/{rev}` Only environment-scoped resource files are supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ResourceFile": { +"description": "Metadata about a resource file.", +"id": "GoogleCloudApigeeV1ResourceFile", +"properties": { +"name": { +"description": "ID of the resource file.", +"type": "string" +}, +"type": { +"description": "Resource file type. {{ resource_file_type }}", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ResourceFiles": { +"description": "List of resource files.", +"id": "GoogleCloudApigeeV1ResourceFiles", +"properties": { +"resourceFile": { +"description": "List of resource files.", +"items": { +"$ref": "GoogleCloudApigeeV1ResourceFile" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ResourceStatus": { +"description": "The status of a resource loaded in the runtime.", +"id": "GoogleCloudApigeeV1ResourceStatus", +"properties": { +"resource": { +"description": "The resource name. Currently only two resources are supported: EnvironmentGroup - organizations/{org}/envgroups/{envgroup} EnvironmentConfig - organizations/{org}/environments/{environment}/deployedConfig", +"type": "string" +}, +"revisions": { +"description": "Revisions of the resource currently deployed in the instance.", +"items": { +"$ref": "GoogleCloudApigeeV1RevisionStatus" +}, +"type": "array" +}, +"totalReplicas": { +"description": "The total number of replicas that should have this resource.", +"format": "int32", +"type": "integer" +}, +"uid": { +"description": "The uid of the resource. In the unexpected case that the instance has multiple uids for the same name, they should be reported under separate ResourceStatuses.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Result": { +"description": "Result is short for \"action result\", could be different types identified by \"action_result\" field. Supported types: 1. DebugInfo : generic debug info collected by runtime recorded as a list of properties. For example, the contents could be virtual host info, state change result, or execution metadata. Required fields : properties, timestamp 2. RequestMessage: information of a http request. Contains headers, request URI and http methods type.Required fields : headers, uri, verb 3. ResponseMessage: information of a http response. Contains headers, reason phrase and http status code. Required fields : headers, reasonPhrase, statusCode 4. ErrorMessage: information of a http error message. Contains detail error message, reason phrase and status code. Required fields : content, headers, reasonPhrase, statusCode 5. VariableAccess: a list of variable access actions, can be Get, Set and Remove. Required fields : accessList", +"id": "GoogleCloudApigeeV1Result", +"properties": { +"ActionResult": { +"description": "Type of the action result. Can be one of the five: DebugInfo, RequestMessage, ResponseMessage, ErrorMessage, VariableAccess", +"type": "string" +}, +"accessList": { +"description": "A list of variable access actions agaist the api proxy. Supported values: Get, Set, Remove.", +"items": { +"$ref": "GoogleCloudApigeeV1Access" +}, +"type": "array" +}, +"content": { +"description": "Error message content. for example, \"content\" : \"{\\\"fault\\\":{\\\"faultstring\\\":\\\"API timed out\\\",\\\"detail\\\":{\\\"errorcode\\\":\\\"flow.APITimedOut\\\"}}}\"", +"type": "string" +}, +"headers": { +"description": "A list of HTTP headers. for example, '\"headers\" : [ { \"name\" : \"Content-Length\", \"value\" : \"83\" }, { \"name\" : \"Content-Type\", \"value\" : \"application/json\" } ]'", +"items": { +"$ref": "GoogleCloudApigeeV1Property" +}, +"type": "array" +}, +"properties": { +"$ref": "GoogleCloudApigeeV1Properties", +"description": "Name value pairs used for DebugInfo ActionResult." +}, +"reasonPhrase": { +"description": "HTTP response phrase", +"type": "string" +}, +"statusCode": { +"description": "HTTP response code", +"type": "string" +}, +"timestamp": { +"description": "Timestamp of when the result is recorded. Its format is dd-mm-yy hh:mm:ss:xxx. For example, `\"timestamp\" : \"12-08-19 00:31:59:960\"`", +"type": "string" +}, +"uRI": { +"description": "The relative path of the api proxy. for example, `\"uRI\" : \"/iloveapis\"`", +"type": "string" +}, +"verb": { +"description": "HTTP method verb", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RevenueShareRange": { +"description": "API call volume range and the percentage of revenue to share with the developer when the total number of API calls is within the range.", +"id": "GoogleCloudApigeeV1RevenueShareRange", +"properties": { +"end": { +"description": "Ending value of the range. Set to 0 or `null` for the last range of values.", +"format": "int64", +"type": "string" +}, +"sharePercentage": { +"description": "Percentage of the revenue to be shared with the developer. For example, to share 21 percent of the total revenue with the developer, set this value to 21. Specify a decimal number with a maximum of two digits following the decimal point.", +"format": "double", +"type": "number" +}, +"start": { +"description": "Starting value of the range. Set to 0 or `null` for the initial range of values.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RevisionStatus": { +"description": "The status of a specific resource revision.", +"id": "GoogleCloudApigeeV1RevisionStatus", +"properties": { +"errors": { +"description": "Errors reported when attempting to load this revision.", +"items": { +"$ref": "GoogleCloudApigeeV1UpdateError" +}, +"type": "array" +}, +"jsonSpec": { +"description": "The json content of the resource revision. Large specs should be sent individually via the spec field to avoid hitting request size limits.", +"type": "string" +}, +"replicas": { +"description": "The number of replicas that have successfully loaded this revision.", +"format": "int32", +"type": "integer" +}, +"revisionId": { +"description": "The revision of the resource.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RoutingRule": { +"id": "GoogleCloudApigeeV1RoutingRule", +"properties": { +"basepath": { +"description": "URI path prefix used to route to the specified environment. May contain one or more wildcards. For example, path segments consisting of a single `*` character will match any string.", +"type": "string" +}, +"deploymentGroup": { +"description": "Name of a deployment group in an environment bound to the environment group in the following format: `organizations/{org}/environment/{env}/deploymentGroups/{group}` Only one of environment or deployment_group will be set.", +"type": "string" +}, +"envGroupRevision": { +"description": "The env group config revision_id when this rule was added or last updated. This value is set when the rule is created and will only update if the the environment_id changes. It is used to determine if the runtime is up to date with respect to this rule. This field is omitted from the IngressConfig unless the GetDeployedIngressConfig API is called with view=FULL.", +"format": "int64", +"type": "string" +}, +"environment": { +"description": "Name of an environment bound to the environment group in the following format: `organizations/{org}/environments/{env}`. Only one of environment or deployment_group will be set.", +"type": "string" +}, +"otherTargets": { +"description": "Conflicting targets, which will be resource names specifying either deployment groups or environments.", +"items": { +"type": "string" +}, +"type": "array" +}, +"receiver": { +"description": "The resource name of the proxy revision that is receiving this basepath in the following format: `organizations/{org}/apis/{api}/revisions/{rev}`. This field is omitted from the IngressConfig unless the GetDeployedIngressConfig API is called with view=FULL.", +"type": "string" +}, +"updateTime": { +"description": "The unix timestamp when this rule was updated. This is updated whenever env_group_revision is updated. This field is omitted from the IngressConfig unless the GetDeployedIngressConfig API is called with view=FULL.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RuntimeAddonsConfig": { +"description": "RuntimeAddonsConfig defines the runtime configurations for add-ons in an environment.", +"id": "GoogleCloudApigeeV1RuntimeAddonsConfig", +"properties": { +"analyticsConfig": { +"$ref": "GoogleCloudApigeeV1RuntimeAnalyticsConfig", +"description": "Runtime configuration for Analytics add-on." +}, +"apiSecurityConfig": { +"$ref": "GoogleCloudApigeeV1RuntimeApiSecurityConfig", +"description": "Runtime configuration for API Security add-on." +}, +"name": { +"description": "Name of the addons config in the format: `organizations/{org}/environments/{env}/addonsConfig`", +"type": "string" +}, +"revisionId": { +"description": "Revision number used by the runtime to detect config changes.", +"type": "string" +}, +"uid": { +"description": "UID is to detect if config is recreated after deletion. The add-on config will only be deleted when the environment itself gets deleted, thus it will always be the same as the UID of EnvironmentConfig.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RuntimeAnalyticsConfig": { +"description": "Runtime configuration for the Analytics add-on.", +"id": "GoogleCloudApigeeV1RuntimeAnalyticsConfig", +"properties": { +"billingPipelineEnabled": { +"description": "If Runtime should send billing data to AX or not.", +"type": "boolean" +}, +"enabled": { +"description": "If the Analytics is enabled or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RuntimeApiSecurityConfig": { +"description": "Runtime configuration for the API Security add-on.", +"id": "GoogleCloudApigeeV1RuntimeApiSecurityConfig", +"properties": { +"enabled": { +"description": "If the API Security is enabled or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RuntimeConfig": { +"description": "Runtime configuration for the organization. Response for GetRuntimeConfig.", +"id": "GoogleCloudApigeeV1RuntimeConfig", +"properties": { +"analyticsBucket": { +"description": "Cloud Storage bucket used for uploading Analytics records.", +"type": "string" +}, +"name": { +"description": "Name of the resource in the following format: `organizations/{org}/runtimeConfig`.", +"type": "string" +}, +"tenantProjectId": { +"description": "Output only. Tenant project ID associated with the Apigee organization. The tenant project is used to host Google-managed resources that are dedicated to this Apigee organization. Clients have limited access to resources within the tenant project used to support Apigee runtime instances. Access to the tenant project is managed using SetSyncAuthorization. It can be empty if the tenant project hasn't been created yet.", +"readOnly": true, +"type": "string" +}, +"traceBucket": { +"description": "Cloud Storage bucket used for uploading Trace records.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RuntimeTraceConfig": { +"description": "NEXT ID: 8 RuntimeTraceConfig defines the configurations for distributed trace in an environment.", +"id": "GoogleCloudApigeeV1RuntimeTraceConfig", +"properties": { +"endpoint": { +"description": "Endpoint of the exporter.", +"type": "string" +}, +"exporter": { +"description": "Exporter that is used to view the distributed trace captured using OpenCensus. An exporter sends traces to any backend that is capable of consuming them. Recorded spans can be exported by registered exporters.", +"enum": [ +"EXPORTER_UNSPECIFIED", +"JAEGER", +"CLOUD_TRACE" +], +"enumDescriptions": [ +"Exporter unspecified", +"Jaeger exporter", +"Cloudtrace exporter" +], +"type": "string" +}, +"name": { +"description": "Name of the trace config in the following format: `organizations/{org}/environment/{env}/traceConfig`", +"type": "string" +}, +"overrides": { +"description": "List of trace configuration overrides for spicific API proxies.", +"items": { +"$ref": "GoogleCloudApigeeV1RuntimeTraceConfigOverride" +}, +"type": "array" +}, +"revisionCreateTime": { +"description": "The timestamp that the revision was created or updated.", +"format": "google-datetime", +"type": "string" +}, +"revisionId": { +"description": "Revision number which can be used by the runtime to detect if the trace config has changed between two versions.", +"type": "string" +}, +"samplingConfig": { +"$ref": "GoogleCloudApigeeV1RuntimeTraceSamplingConfig", +"description": "Trace configuration for all API proxies in an environment." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RuntimeTraceConfigOverride": { +"description": "NEXT ID: 7 Trace configuration override for a specific API proxy in an environment.", +"id": "GoogleCloudApigeeV1RuntimeTraceConfigOverride", +"properties": { +"apiProxy": { +"description": "Name of the API proxy that will have its trace configuration overridden following format: `organizations/{org}/apis/{api}`", +"type": "string" +}, +"name": { +"description": "Name of the trace config override in the following format: `organizations/{org}/environment/{env}/traceConfig/overrides/{override}`", +"type": "string" +}, +"revisionCreateTime": { +"description": "The timestamp that the revision was created or updated.", +"format": "google-datetime", +"type": "string" +}, +"revisionId": { +"description": "Revision number which can be used by the runtime to detect if the trace config override has changed between two versions.", +"type": "string" +}, +"samplingConfig": { +"$ref": "GoogleCloudApigeeV1RuntimeTraceSamplingConfig", +"description": "Trace configuration override for a specific API proxy in an environment." +}, +"uid": { +"description": "Unique ID for the configuration override. The ID will only change if the override is deleted and recreated. Corresponds to name's \"override\" field.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1RuntimeTraceSamplingConfig": { +"description": "NEXT ID: 3 RuntimeTraceSamplingConfig represents the detail settings of distributed tracing. Only the fields that are defined in the distributed trace configuration can be overridden using the distribute trace configuration override APIs.", +"id": "GoogleCloudApigeeV1RuntimeTraceSamplingConfig", +"properties": { +"sampler": { +"description": "Sampler of distributed tracing. OFF is the default value.", +"enum": [ +"SAMPLER_UNSPECIFIED", +"OFF", +"PROBABILITY" +], +"enumDescriptions": [ +"Sampler unspecified.", +"OFF means distributed trace is disabled, or the sampling probability is 0.", +"PROBABILITY means traces are captured on a probability that defined by sampling_rate. The sampling rate is limited to 0 to 0.5 when this is set." +], +"type": "string" +}, +"samplingRate": { +"description": "Field sampling rate. This value is only applicable when using the PROBABILITY sampler. The supported values are > 0 and <= 0.5.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Schema": { +"description": "Response for Schema call", +"id": "GoogleCloudApigeeV1Schema", +"properties": { +"dimensions": { +"description": "List of schema fields grouped as dimensions.", +"items": { +"$ref": "GoogleCloudApigeeV1SchemaSchemaElement" +}, +"type": "array" +}, +"meta": { +"description": "Additional metadata associated with schema. This is a legacy field and usually consists of an empty array of strings.", +"items": { +"type": "string" +}, +"type": "array" +}, +"metrics": { +"description": "List of schema fields grouped as dimensions that can be used with an aggregate function such as `sum`, `avg`, `min`, and `max`.", +"items": { +"$ref": "GoogleCloudApigeeV1SchemaSchemaElement" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SchemaSchemaElement": { +"description": "Message type for the schema element", +"id": "GoogleCloudApigeeV1SchemaSchemaElement", +"properties": { +"name": { +"description": "Name of the field.", +"type": "string" +}, +"properties": { +"$ref": "GoogleCloudApigeeV1SchemaSchemaProperty", +"description": "Properties for the schema field. For example: { \"createTime\": \"2016-02-26T10:23:09.592Z\", \"custom\": \"false\", \"type\": \"string\" }" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SchemaSchemaProperty": { +"description": "Properties for the schema field.", +"id": "GoogleCloudApigeeV1SchemaSchemaProperty", +"properties": { +"createTime": { +"description": "Time the field was created in RFC3339 string form. For example: `2016-02-26T10:23:09.592Z`.", +"type": "string" +}, +"custom": { +"description": "Flag that specifies whether the field is standard in the dataset or a custom field created by the customer. `true` indicates that it is a custom field.", +"type": "string" +}, +"type": { +"description": "Data type of the field.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Score": { +"description": "Represents Security Score.", +"id": "GoogleCloudApigeeV1Score", +"properties": { +"component": { +"$ref": "GoogleCloudApigeeV1ScoreComponent", +"description": "Component containing score, recommendations and actions." +}, +"subcomponents": { +"description": "List of all the drilldown score components.", +"items": { +"$ref": "GoogleCloudApigeeV1ScoreComponent" +}, +"type": "array" +}, +"timeRange": { +"$ref": "GoogleTypeInterval", +"description": "Start and end time for the score." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ScoreComponent": { +"description": "Component is an individual security element that is scored.", +"id": "GoogleCloudApigeeV1ScoreComponent", +"properties": { +"calculateTime": { +"description": "Time when score was calculated.", +"format": "google-datetime", +"type": "string" +}, +"dataCaptureTime": { +"description": "Time in the requested time period when data was last captured to compute the score.", +"format": "google-datetime", +"type": "string" +}, +"drilldownPaths": { +"description": "List of paths for next components.", +"items": { +"type": "string" +}, +"type": "array" +}, +"recommendations": { +"description": "List of recommendations to improve API security.", +"items": { +"$ref": "GoogleCloudApigeeV1ScoreComponentRecommendation" +}, +"type": "array" +}, +"score": { +"description": "Score for the component.", +"format": "int32", +"type": "integer" +}, +"scorePath": { +"description": "Path of the component. Example: /org@myorg/envgroup@myenvgroup/proxies/proxy@myproxy", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ScoreComponentRecommendation": { +"description": "Recommendation based on security concerns and score.", +"id": "GoogleCloudApigeeV1ScoreComponentRecommendation", +"properties": { +"actions": { +"description": "Actions for the recommendation to improve the security score.", +"items": { +"$ref": "GoogleCloudApigeeV1ScoreComponentRecommendationAction" +}, +"type": "array" +}, +"description": { +"description": "Description of the recommendation.", +"type": "string" +}, +"impact": { +"description": "Potential impact of this recommendation on the overall score. This denotes how important this recommendation is to improve the score.", +"format": "int32", +"type": "integer" +}, +"title": { +"description": "Title represents recommendation title.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ScoreComponentRecommendationAction": { +"description": "Action to improve security score.", +"id": "GoogleCloudApigeeV1ScoreComponentRecommendationAction", +"properties": { +"actionContext": { +"$ref": "GoogleCloudApigeeV1ScoreComponentRecommendationActionActionContext", +"description": "Action context for the action." +}, +"description": { +"description": "Description of the action.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ScoreComponentRecommendationActionActionContext": { +"description": "Action context are all the relevant details for the action.", +"id": "GoogleCloudApigeeV1ScoreComponentRecommendationActionActionContext", +"properties": { +"documentationLink": { +"description": "Documentation link for the action.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityAction": { +"description": "A SecurityAction is rule that can be enforced at an environment level. The result is one of: - A denied API call - An explicitly allowed API call - A flagged API call (HTTP headers added before the target receives it) At least one condition is required to create a SecurityAction.", +"id": "GoogleCloudApigeeV1SecurityAction", +"properties": { +"allow": { +"$ref": "GoogleCloudApigeeV1SecurityActionAllow", +"description": "Allow a request through if it matches this SecurityAction." +}, +"apiProxies": { +"description": "Optional. If unset, this would apply to all proxies in the environment. If set, this action is enforced only if at least one proxy in the repeated list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions. There can be at most 100 enabled actions with proxies set in an env. Several other restrictions apply on conditions and are detailed later.", +"items": { +"type": "string" +}, +"type": "array" +}, +"conditionConfig": { +"$ref": "GoogleCloudApigeeV1SecurityActionConditionConfig", +"description": "Required. A valid SecurityAction must contain at least one condition." +}, +"createTime": { +"description": "Output only. The create time for this SecurityAction.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deny": { +"$ref": "GoogleCloudApigeeV1SecurityActionDeny", +"description": "Deny a request through if it matches this SecurityAction." +}, +"description": { +"description": "Optional. An optional user provided description of the SecurityAction.", +"type": "string" +}, +"expireTime": { +"description": "The expiration for this SecurityAction.", +"format": "google-datetime", +"type": "string" +}, +"flag": { +"$ref": "GoogleCloudApigeeV1SecurityActionFlag", +"description": "Flag a request through if it matches this SecurityAction." +}, +"name": { +"description": "Immutable. This field is ignored during creation as per AIP-133. Please set the `security_action_id` field in the CreateSecurityActionRequest when creating a new SecurityAction. Format: organizations/{org}/environments/{env}/securityActions/{security_action}", +"type": "string" +}, +"state": { +"description": "Required. Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"The default value. This only exists for forward compatibility. A create request with this value will be rejected.", +"An ENABLED SecurityAction is actively enforced if the `expiration_time` is in the future.", +"A disabled SecurityAction is never enforced." +], +"type": "string" +}, +"ttl": { +"description": "Input only. The TTL for this SecurityAction.", +"format": "google-duration", +"type": "string" +}, +"updateTime": { +"description": "Output only. The update time for this SecurityAction. This reflects when this SecurityAction changed states.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityActionAllow": { +"description": "Message that should be set in case of an Allow Action. This does not have any fields.", +"id": "GoogleCloudApigeeV1SecurityActionAllow", +"properties": {}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityActionConditionConfig": { +"description": "The following are a list of conditions. A valid SecurityAction must contain at least one condition. Within a condition, each element is ORed. Across conditions elements are ANDed. For example if a SecurityAction has the following: ip_address_ranges: [\"ip1\", \"ip2\"] and bot_reasons: [\"Flooder\", \"Robot Abuser\"] then this is interpreted as: enforce the action if the incoming request has ((ip_address_ranges = \"ip1\" OR ip_address_ranges = \"ip2\") AND (bot_reasons=\"Flooder\" OR bot_reasons=\"Robot Abuser\")). Conditions other than ip_address_ranges and bot_reasons cannot be ANDed.", +"id": "GoogleCloudApigeeV1SecurityActionConditionConfig", +"properties": { +"accessTokens": { +"description": "Optional. A list of access_tokens. Limit 1000 per action.", +"items": { +"type": "string" +}, +"type": "array" +}, +"apiKeys": { +"description": "Optional. A list of API keys. Limit 1000 per action.", +"items": { +"type": "string" +}, +"type": "array" +}, +"apiProducts": { +"description": "Optional. A list of API Products. Limit 1000 per action.", +"items": { +"type": "string" +}, +"type": "array" +}, +"asns": { +"description": "Optional. A list of ASN numbers to act on, e.g. 23. https://en.wikipedia.org/wiki/Autonomous_system_(Internet) This uses int64 instead of uint32 because of https://linter.aip.dev/141/forbidden-types.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"botReasons": { +"description": "Optional. A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper, OAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection, Advanced API Scraper, Search Engine Crawlers, Public Clouds, Public Cloud AWS, Public Cloud Azure, and Public Cloud Google.", +"items": { +"type": "string" +}, +"type": "array" +}, +"developerApps": { +"description": "Optional. A list of developer apps. Limit 1000 per action.", +"items": { +"type": "string" +}, +"type": "array" +}, +"developers": { +"description": "Optional. A list of developers. Limit 1000 per action.", +"items": { +"type": "string" +}, +"type": "array" +}, +"httpMethods": { +"description": "Optional. Act only on particular HTTP methods. E.g. A read-only API can block POST/PUT/DELETE methods. Accepted values are: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE and PATCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ipAddressRanges": { +"description": "Optional. A list of IP addresses. This could be either IPv4 or IPv6. Limited to 100 per action.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCodes": { +"description": "Optional. A list of countries/region codes to act on, e.g. US. This follows https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.", +"items": { +"type": "string" +}, +"type": "array" +}, +"userAgents": { +"description": "Optional. A list of user agents to deny. We look for exact matches. Limit 50 per action.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityActionDeny": { +"description": "Message that should be set in case of a Deny Action.", +"id": "GoogleCloudApigeeV1SecurityActionDeny", +"properties": { +"responseCode": { +"description": "Optional. The HTTP response code if the Action = DENY.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityActionFlag": { +"description": "The message that should be set in the case of a Flag action.", +"id": "GoogleCloudApigeeV1SecurityActionFlag", +"properties": { +"headers": { +"description": "Optional. A list of HTTP headers to be sent to the target in case of a FLAG SecurityAction. Limit 5 headers per SecurityAction. At least one is mandatory.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityActionHttpHeader" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityActionHttpHeader": { +"description": "An HTTP header.", +"id": "GoogleCloudApigeeV1SecurityActionHttpHeader", +"properties": { +"name": { +"description": "The header name to be sent to the target.", +"type": "string" +}, +"value": { +"description": "The header value to be sent to the target.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityActionsConfig": { +"description": "SecurityActionsConfig reflects the current state of the SecurityActions feature. This is a singleton resource: https://google.aip.dev/156", +"id": "GoogleCloudApigeeV1SecurityActionsConfig", +"properties": { +"enabled": { +"description": "The flag that controls whether this feature is enabled. This is `unset` by default. When this flag is `false`, even if individual rules are enabled, no SecurityActions will be enforced.", +"type": "boolean" +}, +"name": { +"description": "This is a singleton resource, the name will always be set by SecurityActions and any user input will be ignored. The name is always: `organizations/{org}/environments/{env}/security_actions_config`", +"type": "string" +}, +"updateTime": { +"description": "Output only. The update time for configuration.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityAssessmentResult": { +"description": "The security assessment result for one resource.", +"id": "GoogleCloudApigeeV1SecurityAssessmentResult", +"properties": { +"createTime": { +"description": "The time of the assessment of this resource. This could lag behind `assessment_time` due to caching within the backend.", +"format": "google-datetime", +"type": "string" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error status if scoring fails." +}, +"resource": { +"$ref": "GoogleCloudApigeeV1SecurityAssessmentResultResource", +"description": "The assessed resource." +}, +"scoringResult": { +"$ref": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResult", +"description": "The result of the assessment." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityAssessmentResultResource": { +"description": "Resource for which we are computing security assessment.", +"id": "GoogleCloudApigeeV1SecurityAssessmentResultResource", +"properties": { +"name": { +"description": "Required. Name of this resource.", +"type": "string" +}, +"resourceRevisionId": { +"description": "The revision id for the resource. In case of Apigee, this is proxy revision id.", +"type": "string" +}, +"type": { +"description": "Required. Type of this resource.", +"enum": [ +"RESOURCE_TYPE_UNSPECIFIED", +"API_PROXY" +], +"enumDescriptions": [ +"ResourceType not specified.", +"Resource is an Apigee Proxy." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityAssessmentResultScoringResult": { +"description": "The result of the assessment.", +"id": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResult", +"properties": { +"assessmentRecommendations": { +"additionalProperties": { +"$ref": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendation" +}, +"description": "The recommendations of the assessment. The key is the \"name\" of the assessment (not display_name), and the value are the recommendations.", +"type": "object" +}, +"dataUpdateTime": { +"description": "The time when resource data was last fetched for this resource. This time may be different than when the resource was actually updated due to lag in data collection.", +"format": "google-datetime", +"type": "string" +}, +"failedAssessmentPerWeight": { +"additionalProperties": { +"format": "int32", +"type": "integer" +}, +"description": "The number of failed assessments grouped by its weight. Keys are one of the following: \"MAJOR\", \"MODERATE\", \"MINOR\".", +"type": "object" +}, +"score": { +"description": "The security score of the assessment.", +"format": "int32", +"type": "integer" +}, +"severity": { +"description": "The severity of the assessment.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH", +"MINIMAL" +], +"enumDescriptions": [ +"Severity is not defined.", +"Severity is low.", +"Severity is medium.", +"Severity is high.", +"Severity is minimal" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendation": { +"description": "The message format of a recommendation from the assessment.", +"id": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendation", +"properties": { +"displayName": { +"description": "The display name of the assessment.", +"type": "string" +}, +"recommendations": { +"description": "The recommended steps of the assessment.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendation" +}, +"type": "array" +}, +"scoreImpact": { +"description": "Score impact indicates the impact on the overall score if the assessment were to pass.", +"format": "int32", +"type": "integer" +}, +"verdict": { +"description": "Verdict indicates the assessment result.", +"enum": [ +"VERDICT_UNSPECIFIED", +"PASS", +"FAIL" +], +"enumDescriptions": [ +"The verdict is unspecified.", +"The assessment has passed.", +"The assessment has failed." +], +"type": "string" +}, +"weight": { +"description": "The weight of the assessment which was set in the profile.", +"enum": [ +"WEIGHT_UNSPECIFIED", +"MINOR", +"MODERATE", +"MAJOR" +], +"enumDescriptions": [ +"The weight is unspecified.", +"The weight is minor.", +"The weight is moderate.", +"The weight is major." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendation": { +"description": "The format of the assessment recommendation.", +"id": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendation", +"properties": { +"description": { +"description": "The description of the recommendation.", +"type": "string" +}, +"link": { +"$ref": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendationLink", +"description": "The link for the recommendation." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendationLink": { +"description": "The format for a link in the recommendation.", +"id": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendationLink", +"properties": { +"text": { +"description": "The text of the url. (ie: \"Learn more\")", +"type": "string" +}, +"uri": { +"description": "The link itself.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityIncident": { +"description": "Represents an SecurityIncident resource.", +"id": "GoogleCloudApigeeV1SecurityIncident", +"properties": { +"detectionTypes": { +"description": "Output only. Detection types which are part of the incident. Examples: Flooder, OAuth Abuser, Static Content Scraper, Anomaly Detection.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"displayName": { +"description": "Optional. Display name of the security incident.", +"type": "string" +}, +"firstDetectedTime": { +"description": "Output only. The time when events associated with the incident were first detected.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"lastDetectedTime": { +"description": "Output only. The time when events associated with the incident were last detected.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"lastObservabilityChangeTime": { +"description": "Output only. The time when the incident observability was last changed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. Name of the security incident resource. Format: organizations/{org}/environments/{environment}/securityIncidents/{incident} Example: organizations/apigee-org/environments/dev/securityIncidents/1234-5678-9101-1111", +"type": "string" +}, +"observability": { +"description": "Optional. Indicates if the user archived this incident.", +"enum": [ +"OBSERVABILITY_UNSPECIFIED", +"ACTIVE", +"ARCHIVED" +], +"enumDescriptions": [ +"The incident observability is unspecified.", +"The incident is currently active. Can change to this status from archived.", +"The incident is currently archived and was archived by the customer." +], +"type": "string" +}, +"riskLevel": { +"description": "Output only. Risk level of the incident.", +"enum": [ +"RISK_LEVEL_UNSPECIFIED", +"LOW", +"MODERATE", +"SEVERE" +], +"enumDescriptions": [ +"Risk Level Unspecified.", +"Risk level of the incident is low.", +"Risk level of the incident is moderate.", +"Risk level of the incident is severe." +], +"readOnly": true, +"type": "string" +}, +"trafficCount": { +"description": "Total traffic detected as part of the incident.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityProfile": { +"description": "Represents a SecurityProfile resource.", +"id": "GoogleCloudApigeeV1SecurityProfile", +"properties": { +"description": { +"description": "Description of the security profile.", +"type": "string" +}, +"displayName": { +"deprecated": true, +"description": "DEPRECATED: DO NOT USE Display name of the security profile.", +"type": "string" +}, +"environments": { +"description": "List of environments attached to security profile.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityProfileEnvironment" +}, +"type": "array" +}, +"maxScore": { +"description": "Output only. Maximum security score that can be generated by this profile.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"minScore": { +"description": "Output only. Minimum security score that can be generated by this profile.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"name": { +"description": "Immutable. Name of the security profile resource. Format: organizations/{org}/securityProfiles/{profile}", +"type": "string" +}, +"profileConfig": { +"$ref": "GoogleCloudApigeeV1ProfileConfig", +"description": "Required. Customized profile configuration that computes the security score." +}, +"revisionCreateTime": { +"description": "Output only. The time when revision was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"revisionId": { +"description": "Output only. Revision ID of the security profile.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"revisionPublishTime": { +"deprecated": true, +"description": "Output only. DEPRECATED: DO NOT USE The time when revision was published. Once published, the security profile revision cannot be updated further and can be attached to environments.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"revisionUpdateTime": { +"description": "Output only. The time when revision was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"scoringConfigs": { +"description": "List of profile scoring configs in this revision.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityProfileScoringConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityProfileEnvironment": { +"description": "Environment information of attached environments. Scoring an environment is enabled only if it is attached to a security profile.", +"id": "GoogleCloudApigeeV1SecurityProfileEnvironment", +"properties": { +"attachTime": { +"description": "Output only. Time at which environment was attached to the security profile.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"environment": { +"description": "Output only. Name of the environment.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation": { +"description": "Represents a SecurityProfileEnvironmentAssociation resource.", +"id": "GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation", +"properties": { +"attachTime": { +"description": "Output only. The time when environment was attached to the security profile.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. Name of the environment that the profile is attached to.", +"type": "string" +}, +"securityProfileRevisionId": { +"deprecated": true, +"description": "DEPRECATED: DO NOT USE Revision ID of the security profile.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityProfileScoringConfig": { +"description": "Security configurations to manage scoring.", +"id": "GoogleCloudApigeeV1SecurityProfileScoringConfig", +"properties": { +"description": { +"description": "Description of the config.", +"type": "string" +}, +"scorePath": { +"description": "Path of the component config used for scoring.", +"type": "string" +}, +"title": { +"description": "Title of the config.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityProfileV2": { +"description": "Security profile for risk assessment version 2.", +"id": "GoogleCloudApigeeV1SecurityProfileV2", +"properties": { +"createTime": { +"description": "Output only. The time of the security profile creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. The description of the security profile.", +"type": "string" +}, +"googleDefined": { +"description": "Output only. Whether the security profile is google defined.", +"readOnly": true, +"type": "boolean" +}, +"name": { +"description": "Identifier. Name of the security profile v2 resource. Format: organizations/{org}/securityProfilesV2/{profile}", +"type": "string" +}, +"profileAssessmentConfigs": { +"additionalProperties": { +"$ref": "GoogleCloudApigeeV1SecurityProfileV2ProfileAssessmentConfig" +}, +"description": "Required. The configuration for each assessment in this profile. Key is the name/id of the assessment.", +"type": "object" +}, +"updateTime": { +"description": "Output only. The time of the security profile update.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityProfileV2ProfileAssessmentConfig": { +"description": "The configuration definition for a specific assessment.", +"id": "GoogleCloudApigeeV1SecurityProfileV2ProfileAssessmentConfig", +"properties": { +"weight": { +"description": "The weight of the assessment.", +"enum": [ +"WEIGHT_UNSPECIFIED", +"MINOR", +"MODERATE", +"MAJOR" +], +"enumDescriptions": [ +"The weight is unspecified.", +"The weight is minor.", +"The weight is moderate.", +"The weight is major." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityReport": { +"description": "SecurityReport saves all the information about the created security report.", +"id": "GoogleCloudApigeeV1SecurityReport", +"properties": { +"created": { +"description": "Creation time of the query.", +"type": "string" +}, +"displayName": { +"description": "Display Name specified by the user.", +"type": "string" +}, +"envgroupHostname": { +"description": "Hostname is available only when query is executed at host level.", +"type": "string" +}, +"error": { +"description": "Error is set when query fails.", +"type": "string" +}, +"executionTime": { +"description": "ExecutionTime is available only after the query is completed.", +"type": "string" +}, +"queryParams": { +"$ref": "GoogleCloudApigeeV1SecurityReportMetadata", +"description": "Contains information like metrics, dimenstions etc of the Security Report." +}, +"reportDefinitionId": { +"description": "Report Definition ID.", +"type": "string" +}, +"result": { +"$ref": "GoogleCloudApigeeV1SecurityReportResultMetadata", +"description": "Result is available only after the query is completed." +}, +"resultFileSize": { +"description": "ResultFileSize is available only after the query is completed.", +"type": "string" +}, +"resultRows": { +"description": "ResultRows is available only after the query is completed.", +"format": "int64", +"type": "string" +}, +"self": { +"description": "Self link of the query. Example: `/organizations/myorg/environments/myenv/securityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd` or following format if query is running at host level: `/organizations/myorg/hostSecurityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd`", +"type": "string" +}, +"state": { +"description": "Query state could be \"enqueued\", \"running\", \"completed\", \"expired\" and \"failed\".", +"type": "string" +}, +"updated": { +"description": "Output only. Last updated timestamp for the query.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityReportMetadata": { +"description": "Metadata for the security report.", +"id": "GoogleCloudApigeeV1SecurityReportMetadata", +"properties": { +"dimensions": { +"description": "Dimensions of the SecurityReport.", +"items": { +"type": "string" +}, +"type": "array" +}, +"endTimestamp": { +"description": "End timestamp of the query range.", +"format": "google-datetime", +"type": "string" +}, +"metrics": { +"description": "Metrics of the SecurityReport. Example: [\"name:bot_count,func:sum,alias:sum_bot_count\"]", +"items": { +"type": "string" +}, +"type": "array" +}, +"mimeType": { +"description": "MIME type / Output format.", +"type": "string" +}, +"startTimestamp": { +"description": "Start timestamp of the query range.", +"format": "google-datetime", +"type": "string" +}, +"timeUnit": { +"description": "Query GroupBy time unit. Example: \"seconds\", \"minute\", \"hour\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityReportQuery": { +"description": "Body structure when user makes a request to create a security report.", +"id": "GoogleCloudApigeeV1SecurityReportQuery", +"properties": { +"csvDelimiter": { +"description": "Delimiter used in the CSV file, if `outputFormat` is set to `csv`. Defaults to the `,` (comma) character. Supported delimiter characters include comma (`,`), pipe (`|`), and tab (`\\t`).", +"type": "string" +}, +"dimensions": { +"description": "A list of dimensions. https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Security Report display name which users can specify.", +"type": "string" +}, +"envgroupHostname": { +"description": "Hostname needs to be specified if query intends to run at host level. This field is only allowed when query is submitted by CreateHostSecurityReport where analytics data will be grouped by organization and hostname.", +"type": "string" +}, +"filter": { +"description": "Boolean expression that can be used to filter data. Filter expressions can be combined using AND/OR terms and should be fully parenthesized to avoid ambiguity. See Analytics metrics, dimensions, and filters reference https://docs.apigee.com/api-platform/analytics/analytics-reference for more information on the fields available to filter on. For more information on the tokens that you use to build filter expressions, see Filter expression syntax. https://docs.apigee.com/api-platform/analytics/asynch-reports-api#filter-expression-syntax", +"type": "string" +}, +"groupByTimeUnit": { +"description": "Time unit used to group the result set. Valid values include: second, minute, hour, day, week, or month. If a query includes groupByTimeUnit, then the result is an aggregation based on the specified time unit and the resultant timestamp does not include milliseconds precision. If a query omits groupByTimeUnit, then the resultant timestamp includes milliseconds precision.", +"type": "string" +}, +"limit": { +"description": "Maximum number of rows that can be returned in the result.", +"format": "int32", +"type": "integer" +}, +"metrics": { +"description": "A list of Metrics.", +"items": { +"$ref": "GoogleCloudApigeeV1SecurityReportQueryMetric" +}, +"type": "array" +}, +"mimeType": { +"description": "Valid values include: `csv` or `json`. Defaults to `json`. Note: Configure the delimiter for CSV output using the csvDelimiter property.", +"type": "string" +}, +"reportDefinitionId": { +"description": "Report Definition ID.", +"type": "string" +}, +"timeRange": { +"description": "Required. Time range for the query. Can use the following predefined strings to specify the time range: `last60minutes` `last24hours` `last7days` Or, specify the timeRange as a structure describing start and end timestamps in the ISO format: yyyy-mm-ddThh:mm:ssZ. Example: \"timeRange\": { \"start\": \"2018-07-29T00:13:00Z\", \"end\": \"2018-08-01T00:18:00Z\" }", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityReportQueryMetric": { +"description": "Metric of the Query", +"id": "GoogleCloudApigeeV1SecurityReportQueryMetric", +"properties": { +"aggregationFunction": { +"description": "Aggregation function: avg, min, max, or sum.", +"type": "string" +}, +"alias": { +"description": "Alias for the metric. Alias will be used to replace metric name in query results.", +"type": "string" +}, +"name": { +"description": "Required. Metric name.", +"type": "string" +}, +"operator": { +"description": "One of `+`, `-`, `/`, `%`, `*`.", +"type": "string" +}, +"value": { +"description": "Operand value should be provided when operator is set.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityReportResultMetadata": { +"description": "Contains informations about the security report results.", +"id": "GoogleCloudApigeeV1SecurityReportResultMetadata", +"properties": { +"expires": { +"description": "Output only. Expire_time is set to 7 days after report creation. Query result will be unaccessable after this time. Example: \"2021-05-04T13:38:52-07:00\"", +"readOnly": true, +"type": "string" +}, +"self": { +"description": "Self link of the query results. Example: `/organizations/myorg/environments/myenv/securityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` or following format if query is running at host level: `/organizations/myorg/hostSecurityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecurityReportResultView": { +"description": "The response for security report result view APIs.", +"id": "GoogleCloudApigeeV1SecurityReportResultView", +"properties": { +"code": { +"description": "Error code when there is a failure.", +"format": "int32", +"type": "integer" +}, +"error": { +"description": "Error message when there is a failure.", +"type": "string" +}, +"metadata": { +"$ref": "GoogleCloudApigeeV1SecurityReportMetadata", +"description": "Metadata contains information like metrics, dimenstions etc of the security report." +}, +"rows": { +"description": "Rows of security report result. Each row is a JSON object. Example: {sum(message_count): 1, developer_app: \"(not set)\",\u2026}", +"items": { +"type": "any" +}, +"type": "array" +}, +"state": { +"description": "State of retrieving ResultView.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SecuritySettings": { +"description": "SecuritySettings reflects the current state of the SecuritySettings feature.", +"id": "GoogleCloudApigeeV1SecuritySettings", +"properties": { +"mlRetrainingFeedbackEnabled": { +"description": "Optional. If true the user consents to the use of ML models for Abuse detection.", +"type": "boolean" +}, +"name": { +"description": "Identifier. Full resource name is always `organizations/{org}/securitySettings`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1ServiceIssuersMapping": { +"id": "GoogleCloudApigeeV1ServiceIssuersMapping", +"properties": { +"emailIds": { +"description": "List of trusted issuer email ids.", +"items": { +"type": "string" +}, +"type": "array" +}, +"service": { +"description": "String indicating the Apigee service name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Session": { +"description": "Session carries the debug session id and its creation time.", +"id": "GoogleCloudApigeeV1Session", +"properties": { +"id": { +"description": "The debug session ID.", +"type": "string" +}, +"timestampMs": { +"description": "The first transaction creation timestamp in millisecond, recorded by UAP.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SetAddonEnablementRequest": { +"description": "Request for SetAddonEnablement.", +"id": "GoogleCloudApigeeV1SetAddonEnablementRequest", +"properties": { +"analyticsEnabled": { +"description": "If the Analytics should be enabled in the environment.", +"type": "boolean" +}, +"apiSecurityEnabled": { +"description": "If the API Security should be enabled in the environment.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SetAddonsRequest": { +"description": "Request for SetAddons.", +"id": "GoogleCloudApigeeV1SetAddonsRequest", +"properties": { +"addonsConfig": { +"$ref": "GoogleCloudApigeeV1AddonsConfig", +"description": "Required. Add-on configurations." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SharedFlow": { +"description": "The metadata describing a shared flow", +"id": "GoogleCloudApigeeV1SharedFlow", +"properties": { +"latestRevisionId": { +"description": "The id of the most recently created revision for this shared flow.", +"type": "string" +}, +"metaData": { +"$ref": "GoogleCloudApigeeV1EntityMetadata", +"description": "Metadata describing the shared flow." +}, +"name": { +"description": "The ID of the shared flow.", +"type": "string" +}, +"revision": { +"description": "A list of revisions of this shared flow.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SharedFlowRevision": { +"description": "The metadata describing a shared flow revision.", +"id": "GoogleCloudApigeeV1SharedFlowRevision", +"properties": { +"configurationVersion": { +"$ref": "GoogleCloudApigeeV1ConfigVersion", +"description": "The version of the configuration schema to which this shared flow conforms. The only supported value currently is majorVersion 4 and minorVersion 0. This setting may be used in the future to enable evolution of the shared flow format." +}, +"contextInfo": { +"description": "A textual description of the shared flow revision.", +"type": "string" +}, +"createdAt": { +"description": "Time at which this shared flow revision was created, in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"description": { +"description": "Description of the shared flow revision.", +"type": "string" +}, +"displayName": { +"description": "The human readable name of this shared flow.", +"type": "string" +}, +"entityMetaDataAsProperties": { +"additionalProperties": { +"type": "string" +}, +"description": "A Key-Value map of metadata about this shared flow revision.", +"type": "object" +}, +"lastModifiedAt": { +"description": "Time at which this shared flow revision was most recently modified, in milliseconds since epoch.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "The resource ID of the parent shared flow.", +"type": "string" +}, +"policies": { +"description": "A list of policy names included in this shared flow revision.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resourceFiles": { +"$ref": "GoogleCloudApigeeV1ResourceFiles", +"description": "The resource files included in this shared flow revision." +}, +"resources": { +"description": "A list of the resources included in this shared flow revision formatted as \"{type}://{name}\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"revision": { +"description": "The resource ID of this revision.", +"type": "string" +}, +"sharedFlows": { +"description": "A list of the shared flow names included in this shared flow revision.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "The string \"Application\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Stats": { +"description": "Encapsulates a `stats` response.", +"id": "GoogleCloudApigeeV1Stats", +"properties": { +"environments": { +"description": "List of query results on the environment level.", +"items": { +"$ref": "GoogleCloudApigeeV1StatsEnvironmentStats" +}, +"type": "array" +}, +"hosts": { +"description": "List of query results grouped by host.", +"items": { +"$ref": "GoogleCloudApigeeV1StatsHostStats" +}, +"type": "array" +}, +"metaData": { +"$ref": "GoogleCloudApigeeV1Metadata", +"description": "Metadata information." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1StatsEnvironmentStats": { +"description": "Encapsulates the environment wrapper: ``` \"environments\": [ { \"metrics\": [ { \"name\": \"sum(message_count)\", \"values\": [ \"2.52056245E8\" ] } ], \"name\": \"prod\" } ]```", +"id": "GoogleCloudApigeeV1StatsEnvironmentStats", +"properties": { +"dimensions": { +"description": "List of metrics grouped under dimensions.", +"items": { +"$ref": "GoogleCloudApigeeV1DimensionMetric" +}, +"type": "array" +}, +"metrics": { +"description": "In the final response, only one of the following fields will be present based on the dimensions provided. If no dimensions are provided, then only top-level metrics is provided. If dimensions are included, then there will be a top-level dimensions field under environments which will contain metrics values and the dimension name. Example: ``` \"environments\": [ { \"dimensions\": [ { \"metrics\": [ { \"name\": \"sum(message_count)\", \"values\": [ \"2.14049521E8\" ] } ], \"name\": \"nit_proxy\" } ], \"name\": \"prod\" } ]``` or ```\"environments\": [ { \"metrics\": [ { \"name\": \"sum(message_count)\", \"values\": [ \"2.19026331E8\" ] } ], \"name\": \"prod\" } ]``` List of metric values.", +"items": { +"$ref": "GoogleCloudApigeeV1Metric" +}, +"type": "array" +}, +"name": { +"description": "Name of the environment.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1StatsHostStats": { +"description": "Encapsulates the hostname wrapper: ``` \"hosts\": [ { \"metrics\": [ { \"name\": \"sum(message_count)\", \"values\": [ \"2.52056245E8\" ] } ], \"name\": \"example.com\" } ]```", +"id": "GoogleCloudApigeeV1StatsHostStats", +"properties": { +"dimensions": { +"description": "List of metrics grouped under dimensions.", +"items": { +"$ref": "GoogleCloudApigeeV1DimensionMetric" +}, +"type": "array" +}, +"metrics": { +"description": "In the final response, only one of the following fields will be present based on the dimensions provided. If no dimensions are provided, then only the top-level metrics are provided. If dimensions are included, then there will be a top-level dimensions field under hostnames which will contain metrics values and the dimension name. Example: ``` \"hosts\": [ { \"dimensions\": [ { \"metrics\": [ { \"name\": \"sum(message_count)\", \"values\": [ \"2.14049521E8\" ] } ], \"name\": \"nit_proxy\" } ], \"name\": \"example.com\" } ]``` OR ```\"hosts\": [ { \"metrics\": [ { \"name\": \"sum(message_count)\", \"values\": [ \"2.19026331E8\" ] } ], \"name\": \"example.com\" } ]``` List of metric values.", +"items": { +"$ref": "GoogleCloudApigeeV1Metric" +}, +"type": "array" +}, +"name": { +"description": "Hostname used in query.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1Subscription": { +"description": "Pub/Sub subscription of an environment.", +"id": "GoogleCloudApigeeV1Subscription", +"properties": { +"name": { +"description": "Full name of the Pub/Sub subcription. Use the following structure in your request: `subscription \"projects/foo/subscription/bar\"`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1SyncAuthorization": { +"id": "GoogleCloudApigeeV1SyncAuthorization", +"properties": { +"etag": { +"description": "Entity tag (ETag) used for optimistic concurrency control as a way to help prevent simultaneous updates from overwriting each other. For example, when you call [getSyncAuthorization](organizations/getSyncAuthorization) an ETag is returned in the response. Pass that ETag when calling the [setSyncAuthorization](organizations/setSyncAuthorization) to ensure that you are updating the correct version. If you don't pass the ETag in the call to `setSyncAuthorization`, then the existing authorization is overwritten indiscriminately. **Note**: We strongly recommend that you use the ETag in the read-modify-write cycle to avoid race conditions.", +"format": "byte", +"type": "string" +}, +"identities": { +"description": "Required. Array of service accounts to grant access to control plane resources, each specified using the following format: `serviceAccount:` service-account-name. The service-account-name is formatted like an email address. For example: `my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com` You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one. The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/latest/sa-about#create-the-service-accounts).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1TargetServer": { +"description": "TargetServer configuration. TargetServers are used to decouple a proxy TargetEndpoint HTTPTargetConnections from concrete URLs for backend services.", +"id": "GoogleCloudApigeeV1TargetServer", +"properties": { +"description": { +"description": "Optional. A human-readable description of this TargetServer.", +"type": "string" +}, +"host": { +"description": "Required. The host name this target connects to. Value must be a valid hostname as described by RFC-1123.", +"type": "string" +}, +"isEnabled": { +"description": "Optional. Enabling/disabling a TargetServer is useful when TargetServers are used in load balancing configurations, and one or more TargetServers need to taken out of rotation periodically. Defaults to true.", +"type": "boolean" +}, +"name": { +"description": "Required. The resource id of this target server. Values must match the regular expression ", +"type": "string" +}, +"port": { +"description": "Required. The port number this target connects to on the given host. Value must be between 1 and 65535, inclusive.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "Immutable. The protocol used by this TargetServer.", +"enum": [ +"PROTOCOL_UNSPECIFIED", +"HTTP", +"HTTP2", +"GRPC_TARGET", +"GRPC", +"EXTERNAL_CALLOUT" +], +"enumDescriptions": [ +"UNSPECIFIED defaults to HTTP for backwards compatibility.", +"The TargetServer uses HTTP.", +"The TargetSever uses HTTP2.", +"The TargetServer uses GRPC.", +"GRPC TargetServer to be used in ExternalCallout Policy. Prefer to use EXTERNAL_CALLOUT instead. TODO(b/266125112) deprecate once EXTERNAL _CALLOUT generally available.", +"The TargetServer is to be used in the ExternalCallout Policy" +], +"type": "string" +}, +"sSLInfo": { +"$ref": "GoogleCloudApigeeV1TlsInfo", +"description": "Optional. Specifies TLS configuration info for this TargetServer. The JSON name is `sSLInfo` for legacy/backwards compatibility reasons -- Edge originally supported SSL, and the name is still used for TLS configuration." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1TargetServerConfig": { +"id": "GoogleCloudApigeeV1TargetServerConfig", +"properties": { +"enabled": { +"description": "Whether the target server is enabled. An empty/omitted value for this field should be interpreted as true.", +"type": "boolean" +}, +"host": { +"description": "Host name of the target server.", +"type": "string" +}, +"name": { +"description": "Target server revision name in the following format: `organizations/{org}/environments/{env}/targetservers/{targetserver}/revisions/{rev}`", +"type": "string" +}, +"port": { +"description": "Port number for the target server.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "The protocol used by this target server.", +"enum": [ +"PROTOCOL_UNSPECIFIED", +"HTTP", +"HTTP2", +"GRPC_TARGET", +"GRPC", +"EXTERNAL_CALLOUT" +], +"enumDescriptions": [ +"UNSPECIFIED defaults to HTTP for backwards compatibility.", +"The TargetServer uses HTTP.", +"The TargetSever uses HTTP2.", +"The TargetServer uses GRPC.", +"GRPC TargetServer to be used in ExternalCallout Policy. Prefer to use EXTERNAL_CALLOUT instead. TODO(b/266125112) deprecate once EXTERNAL _CALLOUT generally available.", +"The TargetServer is to be used in the ExternalCallout Policy" +], +"type": "string" +}, +"tlsInfo": { +"$ref": "GoogleCloudApigeeV1TlsInfoConfig", +"description": "TLS settings for the target server." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1TestDatastoreResponse": { +"description": "The response for TestDatastore", +"id": "GoogleCloudApigeeV1TestDatastoreResponse", +"properties": { +"error": { +"description": "Output only. Error message of test connection failure", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. It could be `completed` or `failed`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1TlsInfo": { +"description": "TLS configuration information for virtual hosts and TargetServers.", +"id": "GoogleCloudApigeeV1TlsInfo", +"properties": { +"ciphers": { +"description": "The SSL/TLS cipher suites to be used. For programmable proxies, it must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. For configurable proxies, it must follow the configuration specified in: https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. This setting has no effect for configurable proxies when negotiating TLS 1.3.", +"items": { +"type": "string" +}, +"type": "array" +}, +"clientAuthEnabled": { +"description": "Optional. Enables two-way TLS.", +"type": "boolean" +}, +"commonName": { +"$ref": "GoogleCloudApigeeV1TlsInfoCommonName", +"description": "The TLS Common Name of the certificate." +}, +"enabled": { +"description": "Required. Enables TLS. If false, neither one-way nor two-way TLS will be enabled.", +"type": "boolean" +}, +"enforce": { +"description": "TLS is strictly enforced.", +"type": "boolean" +}, +"ignoreValidationErrors": { +"description": "If true, Edge ignores TLS certificate errors. Valid when configuring TLS for target servers and target endpoints, and when configuring virtual hosts that use 2-way TLS. When used with a target endpoint/target server, if the backend system uses SNI and returns a cert with a subject Distinguished Name (DN) that does not match the hostname, there is no way to ignore the error and the connection fails.", +"type": "boolean" +}, +"keyAlias": { +"description": "Required if `client_auth_enabled` is true. The resource ID for the alias containing the private key and cert.", +"type": "string" +}, +"keyStore": { +"description": "Required if `client_auth_enabled` is true. The resource ID of the keystore.", +"type": "string" +}, +"protocols": { +"description": "The TLS versioins to be used.", +"items": { +"type": "string" +}, +"type": "array" +}, +"trustStore": { +"description": "The resource ID of the truststore.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1TlsInfoCommonName": { +"id": "GoogleCloudApigeeV1TlsInfoCommonName", +"properties": { +"value": { +"description": "The TLS Common Name string of the certificate.", +"type": "string" +}, +"wildcardMatch": { +"description": "Indicates whether the cert should be matched against as a wildcard cert.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1TlsInfoConfig": { +"id": "GoogleCloudApigeeV1TlsInfoConfig", +"properties": { +"ciphers": { +"description": "List of ciphers that are granted access.", +"items": { +"type": "string" +}, +"type": "array" +}, +"clientAuthEnabled": { +"description": "Flag that specifies whether client-side authentication is enabled for the target server. Enables two-way TLS.", +"type": "boolean" +}, +"commonName": { +"$ref": "GoogleCloudApigeeV1CommonNameConfig", +"description": "Common name to validate the target server against." +}, +"enabled": { +"description": "Flag that specifies whether one-way TLS is enabled. Set to `true` to enable one-way TLS.", +"type": "boolean" +}, +"enforce": { +"description": "Flag that enforces TLS settings", +"type": "boolean" +}, +"ignoreValidationErrors": { +"description": "Flag that specifies whether to ignore TLS certificate validation errors. Set to `true` to ignore errors.", +"type": "boolean" +}, +"keyAlias": { +"description": "Name of the alias used for client-side authentication in the following format: `organizations/{org}/environments/{env}/keystores/{keystore}/aliases/{alias}`", +"type": "string" +}, +"keyAliasReference": { +"$ref": "GoogleCloudApigeeV1KeyAliasReference", +"description": "Reference name and alias pair to use for client-side authentication." +}, +"protocols": { +"description": "List of TLS protocols that are granted access.", +"items": { +"type": "string" +}, +"type": "array" +}, +"trustStore": { +"description": "Name of the keystore or keystore reference containing trusted certificates for the server in the following format: `organizations/{org}/environments/{env}/keystores/{keystore}` or `organizations/{org}/environments/{env}/references/{reference}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1TraceConfig": { +"description": "TraceConfig defines the configurations in an environment of distributed trace.", +"id": "GoogleCloudApigeeV1TraceConfig", +"properties": { +"endpoint": { +"description": "Required. Endpoint of the exporter.", +"type": "string" +}, +"exporter": { +"description": "Required. Exporter that is used to view the distributed trace captured using OpenCensus. An exporter sends traces to any backend that is capable of consuming them. Recorded spans can be exported by registered exporters.", +"enum": [ +"EXPORTER_UNSPECIFIED", +"JAEGER", +"CLOUD_TRACE" +], +"enumDescriptions": [ +"Exporter unspecified", +"Jaeger exporter", +"Cloudtrace exporter" +], +"type": "string" +}, +"samplingConfig": { +"$ref": "GoogleCloudApigeeV1TraceSamplingConfig", +"description": "Distributed trace configuration for all API proxies in an environment. You can also override the configuration for a specific API proxy using the distributed trace configuration overrides API." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1TraceConfigOverride": { +"description": "A representation of a configuration override.", +"id": "GoogleCloudApigeeV1TraceConfigOverride", +"properties": { +"apiProxy": { +"description": "ID of the API proxy that will have its trace configuration overridden.", +"type": "string" +}, +"name": { +"description": "ID of the trace configuration override specified as a system-generated UUID.", +"type": "string" +}, +"samplingConfig": { +"$ref": "GoogleCloudApigeeV1TraceSamplingConfig", +"description": "Trace configuration to override." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1TraceSamplingConfig": { +"description": "TraceSamplingConfig represents the detail settings of distributed tracing. Only the fields that are defined in the distributed trace configuration can be overridden using the distribute trace configuration override APIs.", +"id": "GoogleCloudApigeeV1TraceSamplingConfig", +"properties": { +"sampler": { +"description": "Sampler of distributed tracing. OFF is the default value.", +"enum": [ +"SAMPLER_UNSPECIFIED", +"OFF", +"PROBABILITY" +], +"enumDescriptions": [ +"Sampler unspecified.", +"OFF means distributed trace is disabled, or the sampling probability is 0.", +"PROBABILITY means traces are captured on a probability that defined by sampling_rate. The sampling rate is limited to 0 to 0.5 when this is set." +], +"type": "string" +}, +"samplingRate": { +"description": "Field sampling rate. This value is only applicable when using the PROBABILITY sampler. The supported values are > 0 and <= 0.5.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest": { +"description": "Request for UpdateAppGroupAppKey", +"id": "GoogleCloudApigeeV1UpdateAppGroupAppKeyRequest", +"properties": { +"action": { +"description": "Approve or revoke the consumer key by setting this value to `approve` or `revoke` respectively. The `Content-Type` header, if set, must be set to `application/octet-stream`, with empty body.", +"type": "string" +}, +"apiProducts": { +"description": "The list of API products that will be associated with the credential. This list will be appended to the existing list of associated API Products for this App Key. Duplicates will be ignored.", +"items": { +"type": "string" +}, +"type": "array" +}, +"appGroupAppKey": { +"$ref": "GoogleCloudApigeeV1AppGroupAppKey", +"description": "The new AppGroupKey to be amended. Note that the status can be updated only via action." +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1UpdateError": { +"description": "Details on why a resource update failed in the runtime.", +"id": "GoogleCloudApigeeV1UpdateError", +"properties": { +"code": { +"description": "Status code.", +"enum": [ +"OK", +"CANCELLED", +"UNKNOWN", +"INVALID_ARGUMENT", +"DEADLINE_EXCEEDED", +"NOT_FOUND", +"ALREADY_EXISTS", +"PERMISSION_DENIED", +"UNAUTHENTICATED", +"RESOURCE_EXHAUSTED", +"FAILED_PRECONDITION", +"ABORTED", +"OUT_OF_RANGE", +"UNIMPLEMENTED", +"INTERNAL", +"UNAVAILABLE", +"DATA_LOSS" +], +"enumDescriptions": [ +"Not an error; returned on success. HTTP Mapping: 200 OK", +"The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", +"Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", +"The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", +"The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout", +"Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found", +"The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict", +"The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden", +"The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized", +"Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests", +"The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request", +"The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict", +"The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request", +"The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented", +"Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error", +"The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable", +"Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error" +], +"type": "string" +}, +"message": { +"description": "User-friendly error message.", +"type": "string" +}, +"resource": { +"description": "The sub resource specific to this error (e.g. a proxy deployed within the EnvironmentConfig). If empty the error refers to the top level resource.", +"type": "string" +}, +"type": { +"description": "A string that uniquely identifies the type of error. This provides a more reliable means to deduplicate errors across revisions and instances.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudApigeeV1UpdateSecurityIncidentRequest": { +"description": "Request for UpdateSecurityIncident.", +"id": "GoogleCloudApigeeV1UpdateSecurityIncidentRequest", +"properties": { +"securityIncident": { +"$ref": "GoogleCloudApigeeV1SecurityIncident", +"description": "Required. The security incident to update. Must contain all existing populated fields of the current incident." +}, +"updateMask": { +"description": "Required. The list of fields to update. Allowed fields are: LINT.IfChange(allowed_update_fields_comment) - observability LINT.ThenChange()", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "GoogleIamV1AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "GoogleIamV1AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "GoogleIamV1AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "GoogleIamV1Binding", +"properties": { +"condition": { +"$ref": "GoogleTypeExpr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "GoogleIamV1Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "GoogleIamV1AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "GoogleIamV1Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleIamV1SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "GoogleIamV1SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "GoogleIamV1Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "GoogleIamV1TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleIamV1TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "GoogleIamV1TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"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": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"GoogleRpcPreconditionFailure": { +"description": "Describes what preconditions have failed. For example, if an RPC failed because it required the Terms of Service to be acknowledged, it could list the terms of service violation in the PreconditionFailure message.", +"id": "GoogleRpcPreconditionFailure", +"properties": { +"violations": { +"description": "Describes all precondition violations.", +"items": { +"$ref": "GoogleRpcPreconditionFailureViolation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleRpcPreconditionFailureViolation": { +"description": "A message type used to describe a single precondition failure.", +"id": "GoogleRpcPreconditionFailureViolation", +"properties": { +"description": { +"description": "A description of how the precondition failed. Developers can use this description to understand how to fix the failure. For example: \"Terms of service not accepted\".", +"type": "string" +}, +"subject": { +"description": "The subject, relative to the type, that failed. For example, \"google.com/cloud\" relative to the \"TOS\" type would indicate which terms of service is being referenced.", +"type": "string" +}, +"type": { +"description": "The type of PreconditionFailure. We recommend using a service-specific enum type to define the supported precondition violation subjects. For example, \"TOS\" for \"Terms of Service violation\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeExpr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "GoogleTypeExpr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeInterval": { +"description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", +"id": "GoogleTypeInterval", +"properties": { +"endTime": { +"description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeMoney": { +"description": "Represents an amount of money with its currency type.", +"id": "GoogleTypeMoney", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Apigee API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/apim.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/apim.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..88ba6e3aa2ff4f3c5516364b62399ec35d35baf6 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/apim.v1alpha.json @@ -0,0 +1,1634 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://apim.googleapis.com/", +"batchPath": "batch", +"canonicalName": "API Management", +"description": "Enables users to discover shadow APIs in existing Google Cloud infrastructure.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/apigee/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "apim:v1alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://apim.mtls.googleapis.com/", +"name": "apim", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "apim.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1alpha/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "apim.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listApiObservationTags": { +"description": "ListApiObservationTags lists all extant tags on any observation in the given project.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}:listApiObservationTags", +"httpMethod": "GET", +"id": "apim.projects.locations.listApiObservationTags", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of tags to return. The service may return fewer than this value. If unspecified, at most 10 tags will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListApiObservationTags` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListApiObservationTags` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of tags. Format: projects/{project}/locations/{location}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}:listApiObservationTags", +"response": { +"$ref": "ListApiObservationTagsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"observationJobs": { +"methods": { +"create": { +"description": "CreateObservationJob creates a new ObservationJob but does not have any effecton its own. It is a configuration that can be used in an Observation Job to collect data about existing APIs.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs", +"httpMethod": "POST", +"id": "apim.projects.locations.observationJobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"observationJobId": { +"description": "Required. The ID to use for the Observation Job. This value should be 4-63 characters, and valid characters are /a-z-/.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource where this ObservationJob will be created. Format: projects/{project}/locations/{location}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/observationJobs", +"request": { +"$ref": "ObservationJob" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "DeleteObservationJob deletes an ObservationJob. This method will fail if the observation job is currently being used by any ObservationSource, even if not enabled.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs/{observationJobsId}", +"httpMethod": "DELETE", +"id": "apim.projects.locations.observationJobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource Format: projects/{project}/locations/{location}/observationJobs/{observation_job}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"disable": { +"description": "Disables the given ObservationJob.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs/{observationJobsId}:disable", +"httpMethod": "POST", +"id": "apim.projects.locations.observationJobs.disable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ObservationJob to disable. Format: projects/{project}/locations/{location}/observationJobs/{job}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:disable", +"request": { +"$ref": "DisableObservationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enable": { +"description": "Enables the given ObservationJob.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs/{observationJobsId}:enable", +"httpMethod": "POST", +"id": "apim.projects.locations.observationJobs.enable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ObservationJob to enable. Format: projects/{project}/locations/{location}/observationJobs/{job}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:enable", +"request": { +"$ref": "EnableObservationJobRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "GetObservationJob retrieves a single ObservationJob by name.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs/{observationJobsId}", +"httpMethod": "GET", +"id": "apim.projects.locations.observationJobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ObservationJob to retrieve. Format: projects/{project}/locations/{location}/observationJobs/{job}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "ObservationJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "ListObservationJobs gets all ObservationJobs for a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs", +"httpMethod": "GET", +"id": "apim.projects.locations.observationJobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of ObservationJobs to return. The service may return fewer than this value. If unspecified, at most 10 ObservationJobs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListObservationJobs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListObservationJobs` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of ObservationJobs. Format: projects/{project}/locations/{location}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/observationJobs", +"response": { +"$ref": "ListObservationJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"apiObservations": { +"methods": { +"batchEditTags": { +"description": "BatchEditTagsApiObservations adds or removes Tags for ApiObservations.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs/{observationJobsId}/apiObservations:batchEditTags", +"httpMethod": "POST", +"id": "apim.projects.locations.observationJobs.apiObservations.batchEditTags", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource shared by all ApiObservations being edited. Format: projects/{project}/locations/{location}/observationJobs/{observation_job}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/apiObservations:batchEditTags", +"request": { +"$ref": "BatchEditTagsApiObservationsRequest" +}, +"response": { +"$ref": "BatchEditTagsApiObservationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "GetApiObservation retrieves a single ApiObservation by name.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs/{observationJobsId}/apiObservations/{apiObservationsId}", +"httpMethod": "GET", +"id": "apim.projects.locations.observationJobs.apiObservations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ApiObservation to retrieve. Format: projects/{project}/locations/{location}/observationJobs/{observation_job}/apiObservations/{api_observation}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationJobs/[^/]+/apiObservations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "ApiObservation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "ListApiObservations gets all ApiObservations for a given project and location and ObservationJob.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs/{observationJobsId}/apiObservations", +"httpMethod": "GET", +"id": "apim.projects.locations.observationJobs.apiObservations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of ApiObservations to return. The service may return fewer than this value. If unspecified, at most 10 ApiObservations will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListApiObservations` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListApiObservations` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of ApiObservations. Format: projects/{project}/locations/{location}/observationJobs/{observation_job}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/apiObservations", +"response": { +"$ref": "ListApiObservationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"apiOperations": { +"methods": { +"get": { +"description": "GetApiOperation retrieves a single ApiOperation by name.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs/{observationJobsId}/apiObservations/{apiObservationsId}/apiOperations/{apiOperationsId}", +"httpMethod": "GET", +"id": "apim.projects.locations.observationJobs.apiObservations.apiOperations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ApiOperation to retrieve. Format: projects/{project}/locations/{location}/observationJobs/{observation_job}/apiObservations/{api_observation}/apiOperation/{api_operation}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationJobs/[^/]+/apiObservations/[^/]+/apiOperations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "ApiOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "ListApiOperations gets all ApiOperations for a given project and location and ObservationJob and ApiObservation.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationJobs/{observationJobsId}/apiObservations/{apiObservationsId}/apiOperations", +"httpMethod": "GET", +"id": "apim.projects.locations.observationJobs.apiObservations.apiOperations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of ApiOperations to return. The service may return fewer than this value. If unspecified, at most 10 ApiOperations will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListApiApiOperations` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListApiApiOperations` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of ApiOperations. Format: projects/{project}/locations/{location}/observationJobs/{observation_job}/apiObservations/{api_observation}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationJobs/[^/]+/apiObservations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/apiOperations", +"response": { +"$ref": "ListApiOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"observationSources": { +"methods": { +"create": { +"description": "CreateObservationSource creates a new ObservationSource but does not affect any deployed infrastructure. It is a configuration that can be used in an Observation Job to collect data about APIs running in user's dataplane.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationSources", +"httpMethod": "POST", +"id": "apim.projects.locations.observationSources.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"observationSourceId": { +"description": "Required. The ID to use for the Observation Source. This value should be 4-63 characters, and valid characters are /a-z-/.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/observationSources", +"request": { +"$ref": "ObservationSource" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "DeleteObservationSource deletes an observation source. This method will fail if the observation source is currently being used by any ObservationJob, even if not enabled.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationSources/{observationSourcesId}", +"httpMethod": "DELETE", +"id": "apim.projects.locations.observationSources.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource Format: projects/{project}/locations/{location}/observationSources/{source}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "GetObservationSource retrieves a single ObservationSource by name.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationSources/{observationSourcesId}", +"httpMethod": "GET", +"id": "apim.projects.locations.observationSources.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ObservationSource to retrieve. Format: projects/{project}/locations/{location}/observationSources/{source}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/observationSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "ObservationSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "ListObservationSources gets all ObservationSources for a given project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/observationSources", +"httpMethod": "GET", +"id": "apim.projects.locations.observationSources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of ObservationSources to return. The service may return fewer than this value. If unspecified, at most 10 ObservationSources will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListObservationSources` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListObservationSources` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of ObservationSources. Format: projects/{project}/locations/{location}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/observationSources", +"response": { +"$ref": "ListObservationSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "apim.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "apim.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "apim.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "apim.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20240717", +"rootUrl": "https://apim.googleapis.com/", +"schemas": { +"ApiObservation": { +"description": "Message describing ApiObservation object", +"id": "ApiObservation", +"properties": { +"apiOperationCount": { +"description": "The number of observed API Operations.", +"format": "int64", +"type": "string" +}, +"createTime": { +"description": "Create time stamp", +"format": "google-datetime", +"type": "string" +}, +"hostname": { +"description": "The hostname of requests processed for this Observation.", +"type": "string" +}, +"lastEventDetectedTime": { +"description": "Last event detected time stamp", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "Identifier. Name of resource", +"type": "string" +}, +"serverIps": { +"description": "The IP address (IPv4 or IPv6) of the origin server that the request was sent to. This field can include port information. Examples: `\"192.168.1.1\"`, `\"10.0.0.1:80\"`, `\"FE80::0202:B3FF:FE1E:8329\"`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sourceLocations": { +"description": "Location of the Observation Source, for example \"us-central1\" or \"europe-west1.\"", +"items": { +"type": "string" +}, +"type": "array" +}, +"style": { +"description": "Style of ApiObservation", +"enum": [ +"STYLE_UNSPECIFIED", +"REST", +"GRPC", +"GRAPHQL" +], +"enumDescriptions": [ +"Unknown style", +"Style is Rest API", +"Style is Grpc API", +"Style is GraphQL API" +], +"type": "string" +}, +"tags": { +"description": "User-defined tags to organize and sort", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Update time stamp", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ApiOperation": { +"description": "Message describing ApiOperation object", +"id": "ApiOperation", +"properties": { +"count": { +"description": "The number of occurrences of this API Operation.", +"format": "int64", +"type": "string" +}, +"firstSeenTime": { +"description": "First seen time stamp", +"format": "google-datetime", +"type": "string" +}, +"httpOperation": { +"$ref": "HttpOperation", +"description": "An HTTP Operation." +}, +"lastSeenTime": { +"description": "Last seen time stamp", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "Identifier. Name of resource", +"type": "string" +} +}, +"type": "object" +}, +"BatchEditTagsApiObservationsRequest": { +"description": "Message for requesting batch edit tags for ApiObservations", +"id": "BatchEditTagsApiObservationsRequest", +"properties": { +"requests": { +"description": "Required. The request message specifying the resources to update. A maximum of 1000 apiObservations can be modified in a batch.", +"items": { +"$ref": "EditTagsApiObservationsRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchEditTagsApiObservationsResponse": { +"description": "Message for response to edit Tags for ApiObservations", +"id": "BatchEditTagsApiObservationsResponse", +"properties": { +"apiObservations": { +"description": "ApiObservations that were changed", +"items": { +"$ref": "ApiObservation" +}, +"type": "array" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"DisableObservationJobRequest": { +"description": "Message for disabling an ObservationJob", +"id": "DisableObservationJobRequest", +"properties": {}, +"type": "object" +}, +"EditTagsApiObservationsRequest": { +"description": "Message for requesting edit tags for ApiObservation", +"id": "EditTagsApiObservationsRequest", +"properties": { +"apiObservationId": { +"description": "Required. Identifier of ApiObservation need to be edit tags Format example: \"apigee.googleapis.com|us-west1|443\"", +"type": "string" +}, +"tagActions": { +"description": "Required. Tag actions to be applied", +"items": { +"$ref": "TagAction" +}, +"type": "array" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EnableObservationJobRequest": { +"description": "Message for enabling an ObservationJob", +"id": "EnableObservationJobRequest", +"properties": {}, +"type": "object" +}, +"GclbObservationSource": { +"description": "The GCLB observation source.", +"id": "GclbObservationSource", +"properties": { +"pscNetworkConfigs": { +"description": "Required. The VPC networks where traffic will be observed. All load balancers within this network will be observed. Currently, this is limited to only one network.", +"items": { +"$ref": "GclbObservationSourcePscNetworkConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GclbObservationSourcePscNetworkConfig": { +"description": "Network information for setting up a PSC connection.", +"id": "GclbObservationSourcePscNetworkConfig", +"properties": { +"network": { +"description": "Required. The VPC network. Format: `projects/{project_id}/global/networks/{network}`", +"type": "string" +}, +"subnetwork": { +"description": "Required. The subnetwork in the source region that will be used to connect to the Cloud Load Balancers via PSC NEGs. Must belong to `network`. Format: projects/{project_id}/regions/{region}/subnetworks/{subnet}", +"type": "string" +} +}, +"type": "object" +}, +"HttpOperation": { +"description": "An HTTP-based API Operation, sometimes called a \"REST\" Operation.", +"id": "HttpOperation", +"properties": { +"method": { +"description": "HTTP Method.", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"GET", +"HEAD", +"POST", +"PUT", +"PATCH", +"DELETE", +"TRACE", +"OPTIONS", +"CONNECT" +], +"enumDescriptions": [ +"Unspecified HTTP method", +"GET HTTP method", +"HEAD HTTP method", +"POST HTTP method", +"PUT HTTP method", +"PATCH HTTP method", +"DELETE HTTP method", +"TRACE HTTP method", +"OPTIONS HTTP method", +"CONNECT HTTP method" +], +"type": "string" +}, +"path": { +"description": "Path of the HTTP request.", +"type": "string" +}, +"pathParams": { +"description": "Path params of HttpOperation", +"items": { +"$ref": "HttpOperationPathParam" +}, +"type": "array" +}, +"queryParams": { +"additionalProperties": { +"$ref": "HttpOperationQueryParam" +}, +"description": "Query params of HttpOperation", +"type": "object" +}, +"request": { +"$ref": "HttpOperationHttpRequest", +"description": "Request metadata." +}, +"response": { +"$ref": "HttpOperationHttpResponse", +"description": "Response metadata." +} +}, +"type": "object" +}, +"HttpOperationHeader": { +"description": "An aggregation of HTTP header occurrences.", +"id": "HttpOperationHeader", +"properties": { +"count": { +"description": "The number of occurrences of this Header across transactions.", +"format": "int64", +"type": "string" +}, +"dataType": { +"description": "Data type of header", +"enum": [ +"DATA_TYPE_UNSPECIFIED", +"BOOL", +"INTEGER", +"FLOAT", +"STRING", +"UUID" +], +"enumDescriptions": [ +"Unspecified data type", +"Boolean data type", +"Integer data type", +"Float data type", +"String data type", +"UUID data type" +], +"type": "string" +}, +"name": { +"description": "Header name.", +"type": "string" +} +}, +"type": "object" +}, +"HttpOperationHttpRequest": { +"description": "An aggregation of HTTP requests.", +"id": "HttpOperationHttpRequest", +"properties": { +"headers": { +"additionalProperties": { +"$ref": "HttpOperationHeader" +}, +"description": "Unordered map from header name to header metadata", +"type": "object" +} +}, +"type": "object" +}, +"HttpOperationHttpResponse": { +"description": "An aggregation of HTTP responses.", +"id": "HttpOperationHttpResponse", +"properties": { +"headers": { +"additionalProperties": { +"$ref": "HttpOperationHeader" +}, +"description": "Unordered map from header name to header metadata", +"type": "object" +}, +"responseCodes": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Map of status code to observed count", +"type": "object" +} +}, +"type": "object" +}, +"HttpOperationPathParam": { +"description": "HTTP Path parameter.", +"id": "HttpOperationPathParam", +"properties": { +"dataType": { +"description": "Data type of path param", +"enum": [ +"DATA_TYPE_UNSPECIFIED", +"BOOL", +"INTEGER", +"FLOAT", +"STRING", +"UUID" +], +"enumDescriptions": [ +"Unspecified data type", +"Boolean data type", +"Integer data type", +"Float data type", +"String data type", +"UUID data type" +], +"type": "string" +}, +"position": { +"description": "Segment location in the path, 1-indexed", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"HttpOperationQueryParam": { +"description": "An aggregation of HTTP query parameter occurrences.", +"id": "HttpOperationQueryParam", +"properties": { +"count": { +"description": "The number of occurrences of this query parameter across transactions.", +"format": "int64", +"type": "string" +}, +"dataType": { +"description": "Data type of path param", +"enum": [ +"DATA_TYPE_UNSPECIFIED", +"BOOL", +"INTEGER", +"FLOAT", +"STRING", +"UUID" +], +"enumDescriptions": [ +"Unspecified data type", +"Boolean data type", +"Integer data type", +"Float data type", +"String data type", +"UUID data type" +], +"type": "string" +}, +"name": { +"description": "Name of query param", +"type": "string" +} +}, +"type": "object" +}, +"ListApiObservationTagsResponse": { +"description": "Message for response to listing tags", +"id": "ListApiObservationTagsResponse", +"properties": { +"apiObservationTags": { +"description": "The tags from the specified project", +"items": { +"type": "string" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListApiObservationsResponse": { +"description": "Message for response to listing ApiObservations", +"id": "ListApiObservationsResponse", +"properties": { +"apiObservations": { +"description": "The ApiObservation from the specified project and location and ObservationJobs.", +"items": { +"$ref": "ApiObservation" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListApiOperationsResponse": { +"description": "Message for response to listing ApiOperations", +"id": "ListApiOperationsResponse", +"properties": { +"apiOperations": { +"description": "The ApiOperations from the specified project and location and ObservationJob and ApiObservation.", +"items": { +"$ref": "ApiOperation" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListObservationJobsResponse": { +"description": "Message for response to listing ObservationJobs", +"id": "ListObservationJobsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"observationJobs": { +"description": "The ObservationJob from the specified project and location.", +"items": { +"$ref": "ObservationJob" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListObservationSourcesResponse": { +"description": "Message for response to listing ObservationSources", +"id": "ListObservationSourcesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"observationSources": { +"description": "The ObservationSource from the specified project and location.", +"items": { +"$ref": "ObservationSource" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"ObservationJob": { +"description": "Message describing ObservationJob object", +"id": "ObservationJob", +"properties": { +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. name of resource Format: projects/{project}/locations/{location}/observationJobs/{observation_job}", +"type": "string" +}, +"sources": { +"description": "Optional. These should be of the same kind of source.", +"items": { +"type": "string" +}, +"type": "array" +}, +"state": { +"description": "Output only. The observation job state", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ENABLING", +"ENABLED", +"DISABLING", +"DISABLED", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"Unspecified state", +"Job is in the creating state", +"Job is in the enabling state", +"Job is enabled", +"Job is in the disabling state", +"Job is disabled", +"Job is being deleted", +"Job is in an error state" +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ObservationSource": { +"description": "Observation source configuration types", +"id": "ObservationSource", +"properties": { +"createTime": { +"description": "Output only. [Output only] Create time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"gclbObservationSource": { +"$ref": "GclbObservationSource", +"description": "The GCLB observation source" +}, +"name": { +"description": "Identifier. name of resource For MVP, each region can only have 1 source.", +"type": "string" +}, +"state": { +"description": "Output only. The observation source state", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"CREATED", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"Unspecified state", +"Source is in the creating state", +"Source has been created and is ready to use", +"Source is being deleted", +"Source is in an error state" +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. [Output only] Update time stamp", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TagAction": { +"description": "Message for edit tag action", +"id": "TagAction", +"properties": { +"action": { +"description": "Required. Action to be applied", +"enum": [ +"ACTION_UNSPECIFIED", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"Unspecified.", +"Addition of a Tag.", +"Removal of a Tag." +], +"type": "string" +}, +"tag": { +"description": "Required. Tag to be added or removed", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "API Management API", +"version": "v1alpha", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/appengine.v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/appengine.v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..971d52b805583d241e9b4d43247e046685627749 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/appengine.v1beta.json @@ -0,0 +1,4696 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/appengine.admin": { +"description": "View and manage your applications deployed on Google App Engine" +}, +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/cloud-platform.read-only": { +"description": "View your data across Google Cloud services and see the email address of your Google Account" +} +} +} +}, +"basePath": "", +"baseUrl": "https://appengine.googleapis.com/", +"batchPath": "batch", +"description": "Provisions and manages developers' App Engine applications.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "appengine:v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://appengine.mtls.googleapis.com/", +"name": "appengine", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"apps": { +"methods": { +"create": { +"description": "Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/standard/python/console/).", +"flatPath": "v1beta/apps", +"httpMethod": "POST", +"id": "appengine.apps.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1beta/apps", +"request": { +"$ref": "Application" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets information about an application.", +"flatPath": "v1beta/apps/{appsId}", +"httpMethod": "GET", +"id": "appengine.apps.get", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the Application resource to get. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +}, +"includeExtraData": { +"description": "Optional. Options to include extra data", +"enum": [ +"INCLUDE_EXTRA_DATA_UNSPECIFIED", +"INCLUDE_EXTRA_DATA_NONE", +"INCLUDE_GOOGLE_GENERATED_METADATA" +], +"enumDescriptions": [ +"Unspecified: No extra data will be returned", +"Do not return any extra data", +"Return GGCM associated with the resources" +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}", +"response": { +"$ref": "Application" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"listRuntimes": { +"description": "Lists all the available runtimes for the application.", +"flatPath": "v1beta/apps/{appsId}:listRuntimes", +"httpMethod": "GET", +"id": "appengine.apps.listRuntimes", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +}, +"environment": { +"description": "Optional. The environment of the Application.", +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"STANDARD", +"FLEXIBLE" +], +"enumDescriptions": [ +"Default value.", +"App Engine Standard.", +"App Engine Flexible" +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}:listRuntimes", +"response": { +"$ref": "ListRuntimesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates the specified Application resource. You can update the following fields: auth_domain - Google authentication domain for controlling user access to the application. default_cookie_expiration - Cookie expiration policy for the application. iap - Identity-Aware Proxy properties for the application.", +"flatPath": "v1beta/apps/{appsId}", +"httpMethod": "PATCH", +"id": "appengine.apps.patch", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Standard field mask for the set of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}", +"request": { +"$ref": "Application" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"repair": { +"description": "Recreates the required App Engine features for the specified App Engine application, for example a Cloud Storage bucket or App Engine service account. Use this method if you receive an error message about a missing feature, for example, Error retrieving the App Engine service account. If you have deleted your App Engine service account, this will not be able to recreate it. Instead, you should attempt to use the IAM undelete API if possible at https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/undelete?apix_params=%7B\"name\"%3A\"projects%2F-%2FserviceAccounts%2Funique_id\"%2C\"resource\"%3A%7B%7D%7D . If the deletion was recent, the numeric ID can be found in the Cloud Console Activity Log.", +"flatPath": "v1beta/apps/{appsId}:repair", +"httpMethod": "POST", +"id": "appengine.apps.repair", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the application to repair. Example: apps/myapp", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}:repair", +"request": { +"$ref": "RepairApplicationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"authorizedCertificates": { +"methods": { +"create": { +"description": "Uploads the specified SSL certificate.", +"flatPath": "v1beta/apps/{appsId}/authorizedCertificates", +"httpMethod": "POST", +"id": "appengine.apps.authorizedCertificates.create", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/authorizedCertificates", +"request": { +"$ref": "AuthorizedCertificate" +}, +"response": { +"$ref": "AuthorizedCertificate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified SSL certificate.", +"flatPath": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", +"httpMethod": "DELETE", +"id": "appengine.apps.authorizedCertificates.delete", +"parameterOrder": [ +"appsId", +"authorizedCertificatesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/authorizedCertificates/12345.", +"location": "path", +"required": true, +"type": "string" +}, +"authorizedCertificatesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified SSL certificate.", +"flatPath": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", +"httpMethod": "GET", +"id": "appengine.apps.authorizedCertificates.get", +"parameterOrder": [ +"appsId", +"authorizedCertificatesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345.", +"location": "path", +"required": true, +"type": "string" +}, +"authorizedCertificatesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "Controls the set of fields returned in the GET response.", +"enum": [ +"BASIC_CERTIFICATE", +"FULL_CERTIFICATE" +], +"enumDescriptions": [ +"Basic certificate information, including applicable domains and expiration date.", +"The information from BASIC_CERTIFICATE, plus detailed information on the domain mappings that have this certificate mapped." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", +"response": { +"$ref": "AuthorizedCertificate" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists all SSL certificates the user is authorized to administer.", +"flatPath": "v1beta/apps/{appsId}/authorizedCertificates", +"httpMethod": "GET", +"id": "appengine.apps.authorizedCertificates.list", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +}, +"view": { +"description": "Controls the set of fields returned in the LIST response.", +"enum": [ +"BASIC_CERTIFICATE", +"FULL_CERTIFICATE" +], +"enumDescriptions": [ +"Basic certificate information, including applicable domains and expiration date.", +"The information from BASIC_CERTIFICATE, plus detailed information on the domain mappings that have this certificate mapped." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/authorizedCertificates", +"response": { +"$ref": "ListAuthorizedCertificatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates the specified SSL certificate. To renew a certificate and maintain its existing domain mappings, update certificate_data with a new certificate. The new certificate must be applicable to the same domains as the original certificate. The certificate display_name may also be updated.", +"flatPath": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", +"httpMethod": "PATCH", +"id": "appengine.apps.authorizedCertificates.patch", +"parameterOrder": [ +"appsId", +"authorizedCertificatesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource to update. Example: apps/myapp/authorizedCertificates/12345.", +"location": "path", +"required": true, +"type": "string" +}, +"authorizedCertificatesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Standard field mask for the set of fields to be updated. Updates are only supported on the certificate_raw_data and display_name fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", +"request": { +"$ref": "AuthorizedCertificate" +}, +"response": { +"$ref": "AuthorizedCertificate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"authorizedDomains": { +"methods": { +"list": { +"description": "Lists all domains the user is authorized to administer.", +"flatPath": "v1beta/apps/{appsId}/authorizedDomains", +"httpMethod": "GET", +"id": "appengine.apps.authorizedDomains.list", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/authorizedDomains", +"response": { +"$ref": "ListAuthorizedDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"domainMappings": { +"methods": { +"create": { +"description": "Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains.", +"flatPath": "v1beta/apps/{appsId}/domainMappings", +"httpMethod": "POST", +"id": "appengine.apps.domainMappings.create", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +}, +"overrideStrategy": { +"description": "Whether the domain creation should override any existing mappings for this domain. By default, overrides are rejected.", +"enum": [ +"UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY", +"STRICT", +"OVERRIDE" +], +"enumDescriptions": [ +"Strategy unspecified. Defaults to STRICT.", +"Overrides not allowed. If a mapping already exists for the specified domain, the request will return an ALREADY_EXISTS (409).", +"Overrides allowed. If a mapping already exists for the specified domain, the request will overwrite it. Note that this might stop another Google product from serving. For example, if the domain is mapped to another App Engine application, that app will no longer serve from that domain." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/domainMappings", +"request": { +"$ref": "DomainMapping" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource.", +"flatPath": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", +"httpMethod": "DELETE", +"id": "appengine.apps.domainMappings.delete", +"parameterOrder": [ +"appsId", +"domainMappingsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com.", +"location": "path", +"required": true, +"type": "string" +}, +"domainMappingsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified domain mapping.", +"flatPath": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", +"httpMethod": "GET", +"id": "appengine.apps.domainMappings.get", +"parameterOrder": [ +"appsId", +"domainMappingsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/domainMappings/example.com.", +"location": "path", +"required": true, +"type": "string" +}, +"domainMappingsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", +"response": { +"$ref": "DomainMapping" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists the domain mappings on an application.", +"flatPath": "v1beta/apps/{appsId}/domainMappings", +"httpMethod": "GET", +"id": "appengine.apps.domainMappings.list", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/domainMappings", +"response": { +"$ref": "ListDomainMappingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates the specified domain mapping. To map an SSL certificate to a domain mapping, update certificate_id to point to an AuthorizedCertificate resource. A user must be authorized to administer the associated domain in order to update a DomainMapping resource.", +"flatPath": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", +"httpMethod": "PATCH", +"id": "appengine.apps.domainMappings.patch", +"parameterOrder": [ +"appsId", +"domainMappingsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource to update. Example: apps/myapp/domainMappings/example.com.", +"location": "path", +"required": true, +"type": "string" +}, +"domainMappingsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Standard field mask for the set of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", +"request": { +"$ref": "DomainMapping" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"firewall": { +"resources": { +"ingressRules": { +"methods": { +"batchUpdate": { +"description": "Replaces the entire firewall ruleset in one bulk operation. This overrides and replaces the rules of an existing firewall with the new rules.If the final rule does not match traffic with the '*' wildcard IP range, then an \"allow all\" rule is explicitly added to the end of the list.", +"flatPath": "v1beta/apps/{appsId}/firewall/ingressRules:batchUpdate", +"httpMethod": "POST", +"id": "appengine.apps.firewall.ingressRules.batchUpdate", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the Firewall collection to set. Example: apps/myapp/firewall/ingressRules.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/firewall/ingressRules:batchUpdate", +"request": { +"$ref": "BatchUpdateIngressRulesRequest" +}, +"response": { +"$ref": "BatchUpdateIngressRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a firewall rule for the application.", +"flatPath": "v1beta/apps/{appsId}/firewall/ingressRules", +"httpMethod": "POST", +"id": "appengine.apps.firewall.ingressRules.create", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent Firewall collection in which to create a new rule. Example: apps/myapp/firewall/ingressRules.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/firewall/ingressRules", +"request": { +"$ref": "FirewallRule" +}, +"response": { +"$ref": "FirewallRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified firewall rule.", +"flatPath": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", +"httpMethod": "DELETE", +"id": "appengine.apps.firewall.ingressRules.delete", +"parameterOrder": [ +"appsId", +"ingressRulesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the Firewall resource to delete. Example: apps/myapp/firewall/ingressRules/100.", +"location": "path", +"required": true, +"type": "string" +}, +"ingressRulesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified firewall rule.", +"flatPath": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", +"httpMethod": "GET", +"id": "appengine.apps.firewall.ingressRules.get", +"parameterOrder": [ +"appsId", +"ingressRulesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the Firewall resource to retrieve. Example: apps/myapp/firewall/ingressRules/100.", +"location": "path", +"required": true, +"type": "string" +}, +"ingressRulesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", +"response": { +"$ref": "FirewallRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists the firewall rules of an application.", +"flatPath": "v1beta/apps/{appsId}/firewall/ingressRules", +"httpMethod": "GET", +"id": "appengine.apps.firewall.ingressRules.list", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the Firewall collection to retrieve. Example: apps/myapp/firewall/ingressRules.", +"location": "path", +"required": true, +"type": "string" +}, +"matchingAddress": { +"description": "A valid IP Address. If set, only rules matching this address will be returned. The first returned rule will be the rule that fires on requests from this IP.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/firewall/ingressRules", +"response": { +"$ref": "ListIngressRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates the specified firewall rule.", +"flatPath": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", +"httpMethod": "PATCH", +"id": "appengine.apps.firewall.ingressRules.patch", +"parameterOrder": [ +"appsId", +"ingressRulesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the Firewall resource to update. Example: apps/myapp/firewall/ingressRules/100.", +"location": "path", +"required": true, +"type": "string" +}, +"ingressRulesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Standard field mask for the set of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", +"request": { +"$ref": "FirewallRule" +}, +"response": { +"$ref": "FirewallRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta/apps/{appsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "appengine.apps.locations.get", +"parameterOrder": [ +"appsId", +"locationsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Resource name for the location.", +"location": "path", +"required": true, +"type": "string" +}, +"locationsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/locations/{locationsId}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta/apps/{appsId}/locations", +"httpMethod": "GET", +"id": "appengine.apps.locations.list", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. The resource that owns the locations collection, if applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like \"displayName=tokyo\", and is documented in more detail in AIP-160 (https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta/apps/{appsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "appengine.apps.operations.get", +"parameterOrder": [ +"appsId", +"operationsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. The name of the operation resource.", +"location": "path", +"required": true, +"type": "string" +}, +"operationsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/operations/{operationsId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", +"flatPath": "v1beta/apps/{appsId}/operations", +"httpMethod": "GET", +"id": "appengine.apps.operations.list", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. The name of the operation's parent resource.", +"location": "path", +"required": true, +"type": "string" +}, +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"services": { +"methods": { +"delete": { +"description": "Deletes the specified service and all enclosed versions.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}", +"httpMethod": "DELETE", +"id": "appengine.apps.services.delete", +"parameterOrder": [ +"appsId", +"servicesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", +"location": "path", +"required": true, +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the current configuration of the specified service.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}", +"httpMethod": "GET", +"id": "appengine.apps.services.get", +"parameterOrder": [ +"appsId", +"servicesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", +"location": "path", +"required": true, +"type": "string" +}, +"includeExtraData": { +"description": "Optional. Options to include extra data", +"enum": [ +"INCLUDE_EXTRA_DATA_UNSPECIFIED", +"INCLUDE_EXTRA_DATA_NONE", +"INCLUDE_GOOGLE_GENERATED_METADATA" +], +"enumDescriptions": [ +"Unspecified: No extra data will be returned", +"Do not return any extra data", +"Return GGCM associated with the resources" +], +"location": "query", +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}", +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists all the services in the application.", +"flatPath": "v1beta/apps/{appsId}/services", +"httpMethod": "GET", +"id": "appengine.apps.services.list", +"parameterOrder": [ +"appsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services", +"response": { +"$ref": "ListServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates the configuration of the specified service.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}", +"httpMethod": "PATCH", +"id": "appengine.apps.services.patch", +"parameterOrder": [ +"appsId", +"servicesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default.", +"location": "path", +"required": true, +"type": "string" +}, +"migrateTraffic": { +"description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#InboundServiceType) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#AutomaticScaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services#ShardBy) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", +"location": "query", +"type": "boolean" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Standard field mask for the set of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}", +"request": { +"$ref": "Service" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"versions": { +"methods": { +"create": { +"description": "Deploys code and resource files to a new version.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions", +"httpMethod": "POST", +"id": "appengine.apps.services.versions.create", +"parameterOrder": [ +"appsId", +"servicesId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent resource to create this version under. Example: apps/myapp/services/default.", +"location": "path", +"required": true, +"type": "string" +}, +"servicesId": { +"description": "Part of `parent`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}/versions", +"request": { +"$ref": "Version" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing Version resource.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "appengine.apps.services.versions.delete", +"parameterOrder": [ +"appsId", +"servicesId", +"versionsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", +"location": "path", +"required": true, +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"versionsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", +"httpMethod": "GET", +"id": "appengine.apps.services.versions.get", +"parameterOrder": [ +"appsId", +"servicesId", +"versionsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", +"location": "path", +"required": true, +"type": "string" +}, +"includeExtraData": { +"description": "Optional. Options to include extra data", +"enum": [ +"INCLUDE_EXTRA_DATA_UNSPECIFIED", +"INCLUDE_EXTRA_DATA_NONE", +"INCLUDE_GOOGLE_GENERATED_METADATA" +], +"enumDescriptions": [ +"Unspecified: No extra data will be returned", +"Do not return any extra data", +"Return GGCM associated with the resources" +], +"location": "query", +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"versionsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "Controls the set of fields returned in the Get response.", +"enum": [ +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Basic version information including scaling and inbound services, but not detailed deployment information.", +"The information from BASIC, plus detailed information about the deployment. This format is required when creating resources, but is not returned in Get or List by default." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists the versions of a service.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions", +"httpMethod": "GET", +"id": "appengine.apps.services.versions.list", +"parameterOrder": [ +"appsId", +"servicesId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent Service resource. Example: apps/myapp/services/default.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +}, +"servicesId": { +"description": "Part of `parent`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "Controls the set of fields returned in the List response.", +"enum": [ +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Basic version information including scaling and inbound services, but not detailed deployment information.", +"The information from BASIC, plus detailed information about the deployment. This format is required when creating resources, but is not returned in Get or List by default." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}/versions", +"response": { +"$ref": "ListVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:Standard environment instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.instance_class)automatic scaling in the standard environment: automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling) automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling) automaticScaling.standard_scheduler_settings.max_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StandardSchedulerSettings) automaticScaling.standard_scheduler_settings.min_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StandardSchedulerSettings) automaticScaling.standard_scheduler_settings.target_cpu_utilization (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StandardSchedulerSettings) automaticScaling.standard_scheduler_settings.target_throughput_utilization (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StandardSchedulerSettings)basic scaling or manual scaling in the standard environment: serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status) manual_scaling.instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#manualscaling)Flexible environment serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status)automatic scaling in the flexible environment: automatic_scaling.min_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling) automatic_scaling.max_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling) automatic_scaling.cool_down_period_sec (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling) automatic_scaling.cpu_utilization.target_utilization (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling)manual scaling in the flexible environment: manual_scaling.instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#manualscaling)", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", +"httpMethod": "PATCH", +"id": "appengine.apps.services.versions.patch", +"parameterOrder": [ +"appsId", +"servicesId", +"versionsId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1.", +"location": "path", +"required": true, +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Standard field mask for the set of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"versionsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", +"request": { +"$ref": "Version" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"instances": { +"methods": { +"debug": { +"description": "Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in \"debug mode\", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug", +"httpMethod": "POST", +"id": "appengine.apps.services.versions.instances.debug", +"parameterOrder": [ +"appsId", +"servicesId", +"versionsId", +"instancesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", +"location": "path", +"required": true, +"type": "string" +}, +"instancesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"versionsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug", +"request": { +"$ref": "DebugInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Stops a running instance.The instance might be automatically recreated based on the scaling settings of the version. For more information, see \"How Instances are Managed\" (standard environment (https://cloud.google.com/appengine/docs/standard/python/how-instances-are-managed) | flexible environment (https://cloud.google.com/appengine/docs/flexible/python/how-instances-are-managed)).To ensure that instances are not re-created and avoid getting billed, you can stop all instances within the target version by changing the serving status of the version to STOPPED with the apps.services.versions.patch (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions/patch) method.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "appengine.apps.services.versions.instances.delete", +"parameterOrder": [ +"appsId", +"servicesId", +"versionsId", +"instancesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", +"location": "path", +"required": true, +"type": "string" +}, +"instancesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"versionsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets instance information.", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "appengine.apps.services.versions.instances.get", +"parameterOrder": [ +"appsId", +"servicesId", +"versionsId", +"instancesId" +], +"parameters": { +"appsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", +"location": "path", +"required": true, +"type": "string" +}, +"instancesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"versionsId": { +"description": "Part of `name`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).", +"flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", +"httpMethod": "GET", +"id": "appengine.apps.services.versions.instances.list", +"parameterOrder": [ +"appsId", +"servicesId", +"versionsId" +], +"parameters": { +"appsId": { +"description": "Part of `parent`. Name of the parent Version resource. Example: apps/myapp/services/default/versions/v1.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +}, +"servicesId": { +"description": "Part of `parent`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"versionsId": { +"description": "Part of `parent`. See documentation of `appsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", +"response": { +"$ref": "ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "appengine.projects.locations.get", +"parameterOrder": [ +"projectsId", +"locationsId" +], +"parameters": { +"locationsId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"projectsId": { +"description": "Part of `name`. Resource name for the location.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/projects/{projectsId}/locations/{locationsId}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "appengine.projects.locations.list", +"parameterOrder": [ +"projectsId" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like \"displayName=tokyo\", and is documented in more detail in AIP-160 (https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +}, +"projectsId": { +"description": "Part of `name`. The resource that owns the locations collection, if applicable.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/projects/{projectsId}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"applications": { +"resources": { +"authorizedDomains": { +"methods": { +"list": { +"description": "Lists all domains the user is authorized to administer.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains", +"httpMethod": "GET", +"id": "appengine.projects.locations.applications.authorizedDomains.list", +"parameterOrder": [ +"projectsId", +"locationsId", +"applicationsId" +], +"parameters": { +"applicationsId": { +"description": "Part of `parent`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"locationsId": { +"description": "Part of `parent`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +}, +"projectsId": { +"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains", +"response": { +"$ref": "ListAuthorizedDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"services": { +"methods": { +"delete": { +"description": "Deletes the specified service and all enclosed versions.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}", +"httpMethod": "DELETE", +"id": "appengine.projects.locations.applications.services.delete", +"parameterOrder": [ +"projectsId", +"locationsId", +"applicationsId", +"servicesId" +], +"parameters": { +"applicationsId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"locationsId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"projectsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", +"location": "path", +"required": true, +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"versions": { +"methods": { +"delete": { +"description": "Deletes an existing Version resource.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "appengine.projects.locations.applications.services.versions.delete", +"parameterOrder": [ +"projectsId", +"locationsId", +"applicationsId", +"servicesId", +"versionsId" +], +"parameters": { +"applicationsId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"locationsId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"projectsId": { +"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", +"location": "path", +"required": true, +"type": "string" +}, +"servicesId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"versionsId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}/versions/{versionsId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "appengine.projects.locations.operations.get", +"parameterOrder": [ +"projectsId", +"locationsId", +"operationsId" +], +"parameters": { +"locationsId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"operationsId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"projectsId": { +"description": "Part of `name`. The name of the operation resource.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "appengine.projects.locations.operations.list", +"parameterOrder": [ +"projectsId", +"locationsId" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"locationsId": { +"description": "Part of `name`. See documentation of `projectsId`.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +}, +"projectsId": { +"description": "Part of `name`. The name of the operation's parent resource.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/appengine.admin", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +} +} +} +} +} +}, +"revision": "20241205", +"rootUrl": "https://appengine.googleapis.com/", +"schemas": { +"ApiConfigHandler": { +"description": "Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration for API handlers.", +"id": "ApiConfigHandler", +"properties": { +"authFailAction": { +"description": "Action to take when users access resources that require authentication. Defaults to redirect.", +"enum": [ +"AUTH_FAIL_ACTION_UNSPECIFIED", +"AUTH_FAIL_ACTION_REDIRECT", +"AUTH_FAIL_ACTION_UNAUTHORIZED" +], +"enumDescriptions": [ +"Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", +"Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", +"Rejects request with a 401 HTTP status code and an error message." +], +"type": "string" +}, +"login": { +"description": "Level of login required to access this resource. Defaults to optional.", +"enum": [ +"LOGIN_UNSPECIFIED", +"LOGIN_OPTIONAL", +"LOGIN_ADMIN", +"LOGIN_REQUIRED" +], +"enumDescriptions": [ +"Not specified. LOGIN_OPTIONAL is assumed.", +"Does not require that the user is signed in.", +"If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", +"If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken." +], +"type": "string" +}, +"script": { +"description": "Path to the script from the application root directory.", +"type": "string" +}, +"securityLevel": { +"description": "Security (HTTPS) enforcement for this URL.", +"enum": [ +"SECURE_UNSPECIFIED", +"SECURE_DEFAULT", +"SECURE_NEVER", +"SECURE_OPTIONAL", +"SECURE_ALWAYS" +], +"enumDescriptions": [ +"Not specified.", +"Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used, and respond accordingly.", +"Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", +"Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used and respond accordingly.", +"Requests for a URL that match this handler that do not use HTTPS are automatically redirected to the HTTPS URL with the same path. Query parameters are reserved for the redirect." +], +"type": "string" +}, +"url": { +"description": "URL to serve the endpoint at.", +"type": "string" +} +}, +"type": "object" +}, +"ApiEndpointHandler": { +"description": "Uses Google Cloud Endpoints to handle requests.", +"id": "ApiEndpointHandler", +"properties": { +"scriptPath": { +"description": "Path to the script from the application root directory.", +"type": "string" +} +}, +"type": "object" +}, +"Application": { +"description": "An Application resource contains the top-level configuration of an App Engine application.", +"id": "Application", +"properties": { +"authDomain": { +"description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", +"type": "string" +}, +"codeBucket": { +"description": "Output only. Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly", +"readOnly": true, +"type": "string" +}, +"databaseType": { +"description": "The type of the Cloud Firestore or Cloud Datastore database associated with this application.", +"enum": [ +"DATABASE_TYPE_UNSPECIFIED", +"CLOUD_DATASTORE", +"CLOUD_FIRESTORE", +"CLOUD_DATASTORE_COMPATIBILITY" +], +"enumDescriptions": [ +"Database type is unspecified.", +"Cloud Datastore", +"Cloud Firestore Native", +"Cloud Firestore in Datastore Mode" +], +"type": "string" +}, +"defaultBucket": { +"description": "Output only. Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly", +"readOnly": true, +"type": "string" +}, +"defaultCookieExpiration": { +"description": "Cookie expiration policy for this application.", +"format": "google-duration", +"type": "string" +}, +"defaultHostname": { +"description": "Output only. Hostname used to reach this application, as resolved by App Engine.@OutputOnly", +"readOnly": true, +"type": "string" +}, +"dispatchRules": { +"description": "HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.", +"items": { +"$ref": "UrlDispatchRule" +}, +"type": "array" +}, +"featureSettings": { +"$ref": "FeatureSettings", +"description": "The feature specific settings to be used in the application." +}, +"gcrDomain": { +"description": "Output only. The Google Container Registry domain used for storing managed build docker images for this application.", +"readOnly": true, +"type": "string" +}, +"generatedCustomerMetadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Additional Google Generated Customer Metadata, this field won't be provided by default and can be requested by setting the IncludeExtraData field in GetApplicationRequest", +"type": "object" +}, +"iap": { +"$ref": "IdentityAwareProxy" +}, +"id": { +"description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.", +"type": "string" +}, +"locationId": { +"description": "Location from which this application runs. Application instances run out of the data centers in the specified location, which is also where all of the application's end user content is stored.Defaults to us-central.View the list of supported locations (https://cloud.google.com/appengine/docs/locations).", +"type": "string" +}, +"name": { +"description": "Output only. Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", +"readOnly": true, +"type": "string" +}, +"serviceAccount": { +"description": "The service account associated with the application. This is the app-level default identity. If no identity provided during create version, Admin API will fallback to this one.", +"type": "string" +}, +"servingStatus": { +"description": "Serving status of this application.", +"enum": [ +"UNSPECIFIED", +"SERVING", +"USER_DISABLED", +"SYSTEM_DISABLED" +], +"enumDescriptions": [ +"Serving status is unspecified.", +"Application is serving.", +"Application has been disabled by the user.", +"Application has been disabled by the system." +], +"type": "string" +} +}, +"type": "object" +}, +"AuthorizedCertificate": { +"description": "An SSL certificate that a user has been authorized to administer. A user is authorized to administer any certificate that applies to one of their authorized domains.", +"id": "AuthorizedCertificate", +"properties": { +"certificateRawData": { +"$ref": "CertificateRawData", +"description": "The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority." +}, +"displayName": { +"description": "The user-specified display name of the certificate. This is not guaranteed to be unique. Example: My Certificate.", +"type": "string" +}, +"domainMappingsCount": { +"description": "Aggregate count of the domain mappings with this certificate mapped. This count includes domain mappings on applications for which the user does not have VIEWER permissions.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly", +"format": "int32", +"type": "integer" +}, +"domainNames": { +"description": "Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly", +"items": { +"type": "string" +}, +"type": "array" +}, +"expireTime": { +"description": "The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly", +"type": "string" +}, +"managedCertificate": { +"$ref": "ManagedCertificate", +"description": "Only applicable if this certificate is managed by App Engine. Managed certificates are tied to the lifecycle of a DomainMapping and cannot be updated or deleted via the AuthorizedCertificates API. If this certificate is manually administered by the user, this field will be empty.@OutputOnly" +}, +"name": { +"description": "Full path to the AuthorizedCertificate resource in the API. Example: apps/myapp/authorizedCertificates/12345.@OutputOnly", +"type": "string" +}, +"visibleDomainMappings": { +"description": "The full paths to user visible Domain Mapping resources that have this certificate mapped. Example: apps/myapp/domainMappings/example.com.This may not represent the full list of mapped domain mappings if the user does not have VIEWER permissions on all of the applications that have this certificate mapped. See domain_mappings_count for a complete count.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthorizedDomain": { +"description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Search Console (https://search.google.com/search-console/welcome).", +"id": "AuthorizedDomain", +"properties": { +"id": { +"description": "Fully qualified domain name of the domain authorized for use. Example: example.com.", +"type": "string" +}, +"name": { +"description": "Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly", +"type": "string" +} +}, +"type": "object" +}, +"AutomaticScaling": { +"description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", +"id": "AutomaticScaling", +"properties": { +"coolDownPeriod": { +"description": "The time period that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. Only applicable in the App Engine flexible environment.", +"format": "google-duration", +"type": "string" +}, +"cpuUtilization": { +"$ref": "CpuUtilization", +"description": "Target scaling by CPU usage." +}, +"customMetrics": { +"description": "Target scaling by user-provided metrics. Only applicable in the App Engine flexible environment.", +"items": { +"$ref": "CustomMetric" +}, +"type": "array" +}, +"diskUtilization": { +"$ref": "DiskUtilization", +"description": "Target scaling by disk usage." +}, +"maxConcurrentRequests": { +"description": "Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.", +"format": "int32", +"type": "integer" +}, +"maxIdleInstances": { +"description": "Maximum number of idle instances that should be maintained for this version.", +"format": "int32", +"type": "integer" +}, +"maxPendingLatency": { +"description": "Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.", +"format": "google-duration", +"type": "string" +}, +"maxTotalInstances": { +"description": "Maximum number of instances that should be started to handle requests for this version.", +"format": "int32", +"type": "integer" +}, +"minIdleInstances": { +"description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.", +"format": "int32", +"type": "integer" +}, +"minPendingLatency": { +"description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.", +"format": "google-duration", +"type": "string" +}, +"minTotalInstances": { +"description": "Minimum number of running instances that should be maintained for this version.", +"format": "int32", +"type": "integer" +}, +"networkUtilization": { +"$ref": "NetworkUtilization", +"description": "Target scaling by network usage." +}, +"requestUtilization": { +"$ref": "RequestUtilization", +"description": "Target scaling by request utilization." +}, +"standardSchedulerSettings": { +"$ref": "StandardSchedulerSettings", +"description": "Scheduler settings for standard environment." +} +}, +"type": "object" +}, +"BasicScaling": { +"description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", +"id": "BasicScaling", +"properties": { +"idleTimeout": { +"description": "Duration of time after the last request that an instance must wait before the instance is shut down.", +"format": "google-duration", +"type": "string" +}, +"maxInstances": { +"description": "Maximum number of instances to create for this version.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BatchUpdateIngressRulesRequest": { +"description": "Request message for Firewall.BatchUpdateIngressRules.", +"id": "BatchUpdateIngressRulesRequest", +"properties": { +"ingressRules": { +"description": "A list of FirewallRules to replace the existing set.", +"items": { +"$ref": "FirewallRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateIngressRulesResponse": { +"description": "Response message for Firewall.UpdateAllIngressRules.", +"id": "BatchUpdateIngressRulesResponse", +"properties": { +"ingressRules": { +"description": "The full list of ingress FirewallRules for this application.", +"items": { +"$ref": "FirewallRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"BuildInfo": { +"description": "Google Cloud Build information.", +"id": "BuildInfo", +"properties": { +"cloudBuildId": { +"description": "The Google Cloud Build id. Example: \"f966068f-08b2-42c8-bdfe-74137dff2bf9\"", +"type": "string" +} +}, +"type": "object" +}, +"CertificateRawData": { +"description": "An SSL certificate obtained from a certificate authority.", +"id": "CertificateRawData", +"properties": { +"privateKey": { +"description": "Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- @InputOnly", +"type": "string" +}, +"publicCertificate": { +"description": "PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- ", +"type": "string" +} +}, +"type": "object" +}, +"CloudBuildOptions": { +"description": "Options for the build operations performed as a part of the version deployment. Only applicable for App Engine flexible environment when creating a version using source code directly.", +"id": "CloudBuildOptions", +"properties": { +"appYamlPath": { +"description": "Path to the yaml file used in deployment, used to determine runtime configuration details.Required for flexible environment builds.See https://cloud.google.com/appengine/docs/standard/python/config/appref for more details.", +"type": "string" +}, +"cloudBuildTimeout": { +"description": "The Cloud Build timeout used as part of any dependent builds performed by version creation. Defaults to 10 minutes.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"ContainerInfo": { +"description": "Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment.", +"id": "ContainerInfo", +"properties": { +"image": { +"description": "URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: \"gcr.io/my-project/image:tag\" or \"gcr.io/my-project/image@digest\"", +"type": "string" +} +}, +"type": "object" +}, +"ContainerState": { +"description": "ContainerState contains the externally-visible container state that is used to communicate the state and reasoning for that state to the CLH. This data is not persisted by CCFE, but is instead derived from CCFE's internal representation of the container state.", +"id": "ContainerState", +"properties": { +"currentReasons": { +"$ref": "Reasons" +}, +"previousReasons": { +"$ref": "Reasons", +"description": "The previous and current reasons for a container state will be sent for a container event. CLHs that need to know the signal that caused the container event to trigger (edges) as opposed to just knowing the state can act upon differences in the previous and current reasons.Reasons will be provided for every system: service management, data governance, abuse, and billing.If this is a CCFE-triggered event used for reconciliation then the current reasons will be set to their *_CONTROL_PLANE_SYNC state. The previous reasons will contain the last known set of non-unknown non-control_plane_sync reasons for the state." +}, +"state": { +"description": "The current state of the container. This state is the culmination of all of the opinions from external systems that CCFE knows about of the container.", +"enum": [ +"UNKNOWN_STATE", +"ON", +"OFF", +"DELETED" +], +"enumDescriptions": [ +"A container should never be in an unknown state. Receipt of a container with this state is an error.", +"CCFE considers the container to be serving or transitioning into serving.", +"CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", +"This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." +], +"type": "string" +} +}, +"type": "object" +}, +"CpuUtilization": { +"description": "Target scaling by CPU usage.", +"id": "CpuUtilization", +"properties": { +"aggregationWindowLength": { +"description": "Period of time over which CPU utilization is calculated.", +"format": "google-duration", +"type": "string" +}, +"targetUtilization": { +"description": "Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"CreateVersionMetadataV1": { +"description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1.CreateVersionRequest.", +"id": "CreateVersionMetadataV1", +"properties": { +"cloudBuildId": { +"description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly", +"type": "string" +} +}, +"type": "object" +}, +"CreateVersionMetadataV1Alpha": { +"description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1alpha.CreateVersionRequest.", +"id": "CreateVersionMetadataV1Alpha", +"properties": { +"cloudBuildId": { +"description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly", +"type": "string" +} +}, +"type": "object" +}, +"CreateVersionMetadataV1Beta": { +"description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1beta.CreateVersionRequest.", +"id": "CreateVersionMetadataV1Beta", +"properties": { +"cloudBuildId": { +"description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly", +"type": "string" +} +}, +"type": "object" +}, +"CustomMetric": { +"description": "Allows autoscaling based on Stackdriver metrics.", +"id": "CustomMetric", +"properties": { +"filter": { +"description": "Allows filtering on the metric's fields.", +"type": "string" +}, +"metricName": { +"description": "The name of the metric.", +"type": "string" +}, +"singleInstanceAssignment": { +"description": "May be used instead of target_utilization when an instance can handle a specific amount of work/resources and the metric value is equal to the current amount of work remaining. The autoscaler will try to keep the number of instances equal to the metric value divided by single_instance_assignment.", +"format": "double", +"type": "number" +}, +"targetType": { +"description": "The type of the metric. Must be a string representing a Stackdriver metric type e.g. GAGUE, DELTA_PER_SECOND, etc.", +"type": "string" +}, +"targetUtilization": { +"description": "The target value for the metric.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: A full date, with non-zero year, month, and day values. A month and day, with a zero year (for example, an anniversary). A year on its own, with a zero month and a zero day. A year and month, with a zero day (for example, a credit card expiration date).Related types: google.type.TimeOfDay google.type.DateTime google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DebugInstanceRequest": { +"description": "Request message for Instances.DebugInstance.", +"id": "DebugInstanceRequest", +"properties": { +"sshKey": { +"description": "Public SSH key to add to the instance. Examples: [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME] [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {\"userName\":\"[USERNAME]\",\"expireOn\":\"[EXPIRE_TIME]\"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).", +"type": "string" +} +}, +"type": "object" +}, +"Deployment": { +"description": "Code and application artifacts used to deploy a version to App Engine.", +"id": "Deployment", +"properties": { +"build": { +"$ref": "BuildInfo", +"description": "Google Cloud Build build information. Only applicable for instances running in the App Engine flexible environment." +}, +"cloudBuildOptions": { +"$ref": "CloudBuildOptions", +"description": "Options for any Google Cloud Build builds created as a part of this deployment.These options will only be used if a new build is created, such as when deploying to the App Engine flexible environment using files or zip." +}, +"container": { +"$ref": "ContainerInfo", +"description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment." +}, +"files": { +"additionalProperties": { +"$ref": "FileInfo" +}, +"description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", +"type": "object" +}, +"zip": { +"$ref": "ZipInfo", +"description": "The zip file for this deployment, if this is a zip deployment." +} +}, +"type": "object" +}, +"DiskUtilization": { +"description": "Target scaling by disk usage. Only applicable in the App Engine flexible environment.", +"id": "DiskUtilization", +"properties": { +"targetReadBytesPerSecond": { +"description": "Target bytes read per second.", +"format": "int32", +"type": "integer" +}, +"targetReadOpsPerSecond": { +"description": "Target ops read per seconds.", +"format": "int32", +"type": "integer" +}, +"targetWriteBytesPerSecond": { +"description": "Target bytes written per second.", +"format": "int32", +"type": "integer" +}, +"targetWriteOpsPerSecond": { +"description": "Target ops written per second.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DomainMapping": { +"description": "A domain serving an App Engine application.", +"id": "DomainMapping", +"properties": { +"id": { +"description": "Relative name of the domain serving the application. Example: example.com.", +"type": "string" +}, +"name": { +"description": "Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly", +"type": "string" +}, +"resourceRecords": { +"description": "The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly", +"items": { +"$ref": "ResourceRecord" +}, +"type": "array" +}, +"sslSettings": { +"$ref": "SslSettings", +"description": "SSL configuration for this domain. If unconfigured, this domain will not serve with SSL." +} +}, +"type": "object" +}, +"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); } ", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EndpointsApiService": { +"description": "Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy. Only valid for App Engine Flexible environment deployments.The fields here refer to the name and configuration ID of a \"service\" resource in the Service Management API (https://cloud.google.com/service-management/overview).", +"id": "EndpointsApiService", +"properties": { +"configId": { +"description": "Endpoints service configuration ID as specified by the Service Management API. For example \"2016-09-19r1\".By default, the rollout strategy for Endpoints is RolloutStrategy.FIXED. This means that Endpoints starts up with a particular configuration ID. When a new configuration is rolled out, Endpoints must be given the new configuration ID. The config_id field is used to give the configuration ID and is required in this case.Endpoints also has a rollout strategy called RolloutStrategy.MANAGED. When using this, Endpoints fetches the latest configuration and does not need the configuration ID. In this case, config_id must be omitted.", +"type": "string" +}, +"disableTraceSampling": { +"description": "Enable or disable trace sampling. By default, this is set to false for enabled.", +"type": "boolean" +}, +"name": { +"description": "Endpoints service name which is the name of the \"service\" resource in the Service Management API. For example \"myapi.endpoints.myproject.cloud.goog\"", +"type": "string" +}, +"rolloutStrategy": { +"description": "Endpoints rollout strategy. If FIXED, config_id must be specified. If MANAGED, config_id must be omitted.", +"enum": [ +"UNSPECIFIED_ROLLOUT_STRATEGY", +"FIXED", +"MANAGED" +], +"enumDescriptions": [ +"Not specified. Defaults to FIXED.", +"Endpoints service configuration ID will be fixed to the configuration ID specified by config_id.", +"Endpoints service configuration ID will be updated with each rollout." +], +"type": "string" +} +}, +"type": "object" +}, +"Entrypoint": { +"description": "The entrypoint for the application.", +"id": "Entrypoint", +"properties": { +"shell": { +"description": "The format should be a shell command that can be fed to bash -c.", +"type": "string" +} +}, +"type": "object" +}, +"ErrorHandler": { +"description": "Custom static error page to be served when an error occurs.", +"id": "ErrorHandler", +"properties": { +"errorCode": { +"description": "Error condition this handler applies to.", +"enum": [ +"ERROR_CODE_UNSPECIFIED", +"ERROR_CODE_DEFAULT", +"ERROR_CODE_OVER_QUOTA", +"ERROR_CODE_DOS_API_DENIAL", +"ERROR_CODE_TIMEOUT" +], +"enumDescriptions": [ +"Not specified. ERROR_CODE_DEFAULT is assumed.", +"All other error types.", +"Application has exceeded a resource quota.", +"Client blocked by the application's Denial of Service protection configuration.", +"Deadline reached before the application responds." +], +"type": "string" +}, +"mimeType": { +"description": "MIME type of file. Defaults to text/html.", +"type": "string" +}, +"staticFile": { +"description": "Static file content to be served for this error.", +"type": "string" +} +}, +"type": "object" +}, +"FeatureSettings": { +"description": "The feature specific settings to be used in the application. These define behaviors that are user configurable.", +"id": "FeatureSettings", +"properties": { +"splitHealthChecks": { +"description": "Boolean value indicating if split health checks should be used instead of the legacy health checks. At an app.yaml level, this means defaulting to 'readiness_check' and 'liveness_check' values instead of 'health_check' ones. Once the legacy 'health_check' behavior is deprecated, and this value is always true, this setting can be removed.", +"type": "boolean" +}, +"useContainerOptimizedOs": { +"description": "If true, use Container-Optimized OS (https://cloud.google.com/container-optimized-os/) base image for VMs, rather than a base Debian image.", +"type": "boolean" +} +}, +"type": "object" +}, +"FileInfo": { +"description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.", +"id": "FileInfo", +"properties": { +"mimeType": { +"description": "The MIME type of the file.Defaults to the value from Google Cloud Storage.", +"type": "string" +}, +"sha1Sum": { +"description": "The SHA1 hash of the file, in hex.", +"type": "string" +}, +"sourceUrl": { +"description": "URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.", +"type": "string" +} +}, +"type": "object" +}, +"FirewallRule": { +"description": "A single firewall rule that is evaluated against incoming traffic and provides an action to take on matched requests.", +"id": "FirewallRule", +"properties": { +"action": { +"description": "The action to take on matched requests.", +"enum": [ +"UNSPECIFIED_ACTION", +"ALLOW", +"DENY" +], +"enumDescriptions": [ +"", +"Matching requests are allowed.", +"Matching requests are denied." +], +"type": "string" +}, +"description": { +"description": "An optional string description of this rule. This field has a maximum length of 400 characters.", +"type": "string" +}, +"priority": { +"description": "A positive integer between 1, Int32.MaxValue-1 that defines the order of rule evaluation. Rules with the lowest priority are evaluated first.A default rule at priority Int32.MaxValue matches all IPv4 and IPv6 traffic when no previous rule matches. Only the action of this rule can be modified by the user.", +"format": "int32", +"type": "integer" +}, +"sourceRange": { +"description": "IP address or range, defined using CIDR notation, of requests that this rule applies to. You can use the wildcard character \"*\" to match all IPs equivalent to \"0/0\" and \"::/0\" together. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. Truncation will be silently performed on addresses which are not properly truncated. For example, 1.2.3.4/24 is accepted as the same address as 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 is accepted as the same address as 2001:db8::/32.", +"type": "string" +} +}, +"type": "object" +}, +"FlexibleRuntimeSettings": { +"description": "Runtime settings for the App Engine flexible environment.", +"id": "FlexibleRuntimeSettings", +"properties": { +"operatingSystem": { +"description": "The operating system of the application runtime.", +"type": "string" +}, +"runtimeVersion": { +"description": "The runtime version of an App Engine flexible application.", +"type": "string" +} +}, +"type": "object" +}, +"GceTag": { +"description": "For use only by GCE. GceTag is a wrapper around the GCE administrative tag with parent info.", +"id": "GceTag", +"properties": { +"parent": { +"description": "The parents(s) of the tag. Eg. projects/123, folders/456 It usually contains only one parent. But, in some corner cases, it can contain multiple parents. Currently, organizations are not supported.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tag": { +"description": "The administrative_tag name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAppengineV1betaLocationMetadata": { +"description": "Metadata for the given google.cloud.location.Location.", +"id": "GoogleAppengineV1betaLocationMetadata", +"properties": { +"flexibleEnvironmentAvailable": { +"description": "App Engine flexible environment is available in the given location.@OutputOnly", +"type": "boolean" +}, +"searchApiAvailable": { +"description": "Output only. Search API (https://cloud.google.com/appengine/docs/standard/python/search) is available in the given location.", +"readOnly": true, +"type": "boolean" +}, +"standardEnvironmentAvailable": { +"description": "App Engine standard environment is available in the given location.@OutputOnly", +"type": "boolean" +} +}, +"type": "object" +}, +"HealthCheck": { +"description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment.", +"id": "HealthCheck", +"properties": { +"checkInterval": { +"description": "Interval between health checks.", +"format": "google-duration", +"type": "string" +}, +"disableHealthCheck": { +"description": "Whether to explicitly disable health checks for this instance.", +"type": "boolean" +}, +"healthyThreshold": { +"description": "Number of consecutive successful health checks required before receiving traffic.", +"format": "uint32", +"type": "integer" +}, +"host": { +"description": "Host header to send when performing an HTTP health check. Example: \"myapp.appspot.com\"", +"type": "string" +}, +"restartThreshold": { +"description": "Number of consecutive failed health checks required before an instance is restarted.", +"format": "uint32", +"type": "integer" +}, +"timeout": { +"description": "Time before the health check is considered failed.", +"format": "google-duration", +"type": "string" +}, +"unhealthyThreshold": { +"description": "Number of consecutive failed health checks required before removing traffic.", +"format": "uint32", +"type": "integer" +} +}, +"type": "object" +}, +"IdentityAwareProxy": { +"description": "Identity-Aware Proxy", +"id": "IdentityAwareProxy", +"properties": { +"enabled": { +"description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.", +"type": "boolean" +}, +"oauth2ClientId": { +"description": "OAuth2 client ID to use for the authentication flow.", +"type": "string" +}, +"oauth2ClientSecret": { +"description": "OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly", +"type": "string" +}, +"oauth2ClientSecretSha256": { +"description": "Output only. Hex-encoded SHA-256 hash of the client secret.@OutputOnly", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Instance": { +"description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.", +"id": "Instance", +"properties": { +"appEngineRelease": { +"description": "Output only. App Engine release this instance is running on.", +"readOnly": true, +"type": "string" +}, +"availability": { +"description": "Output only. Availability of the instance.", +"enum": [ +"UNSPECIFIED", +"RESIDENT", +"DYNAMIC" +], +"enumDescriptions": [ +"", +"", +"" +], +"readOnly": true, +"type": "string" +}, +"averageLatency": { +"description": "Output only. Average latency (ms) over the last minute.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"errors": { +"description": "Output only. Number of errors since this instance was started.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"id": { +"description": "Output only. Relative name of the instance within the version. Example: instance-1.", +"readOnly": true, +"type": "string" +}, +"memoryUsage": { +"description": "Output only. Total memory in use (bytes).", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", +"readOnly": true, +"type": "string" +}, +"qps": { +"description": "Output only. Average queries per second (QPS) over the last minute.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"requests": { +"description": "Output only. Number of requests since this instance was started.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"startTime": { +"description": "Output only. Time that this instance was started.@OutputOnly", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vmDebugEnabled": { +"description": "Output only. Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.", +"readOnly": true, +"type": "boolean" +}, +"vmId": { +"description": "Output only. Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.", +"readOnly": true, +"type": "string" +}, +"vmIp": { +"description": "Output only. The IP address of this instance. Only applicable for instances in App Engine flexible environment.", +"readOnly": true, +"type": "string" +}, +"vmLiveness": { +"description": "Output only. The liveness health check of this instance. Only applicable for instances in App Engine flexible environment.", +"enum": [ +"LIVENESS_STATE_UNSPECIFIED", +"UNKNOWN", +"HEALTHY", +"UNHEALTHY", +"DRAINING", +"TIMEOUT" +], +"enumDescriptions": [ +"There is no liveness health check for the instance. Only applicable for instances in App Engine standard environment.", +"The health checking system is aware of the instance but its health is not known at the moment.", +"The instance is reachable i.e. a connection to the application health checking endpoint can be established, and conforms to the requirements defined by the health check.", +"The instance is reachable, but does not conform to the requirements defined by the health check.", +"The instance is being drained. The existing connections to the instance have time to complete, but the new ones are being refused.", +"The instance is unreachable i.e. a connection to the application health checking endpoint cannot be established, or the server does not respond within the specified timeout." +], +"readOnly": true, +"type": "string" +}, +"vmName": { +"description": "Output only. Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.", +"readOnly": true, +"type": "string" +}, +"vmStatus": { +"description": "Output only. Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.", +"readOnly": true, +"type": "string" +}, +"vmZoneName": { +"description": "Output only. Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Library": { +"description": "Third-party Python runtime library that is required by the application.", +"id": "Library", +"properties": { +"name": { +"description": "Name of the library. Example: \"django\".", +"type": "string" +}, +"version": { +"description": "Version of the library to select, or \"latest\".", +"type": "string" +} +}, +"type": "object" +}, +"ListAuthorizedCertificatesResponse": { +"description": "Response message for AuthorizedCertificates.ListAuthorizedCertificates.", +"id": "ListAuthorizedCertificatesResponse", +"properties": { +"certificates": { +"description": "The SSL certificates the user is authorized to administer.", +"items": { +"$ref": "AuthorizedCertificate" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListAuthorizedDomainsResponse": { +"description": "Response message for AuthorizedDomains.ListAuthorizedDomains.", +"id": "ListAuthorizedDomainsResponse", +"properties": { +"domains": { +"description": "The authorized domains belonging to the user.", +"items": { +"$ref": "AuthorizedDomain" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListDomainMappingsResponse": { +"description": "Response message for DomainMappings.ListDomainMappings.", +"id": "ListDomainMappingsResponse", +"properties": { +"domainMappings": { +"description": "The domain mappings for the application.", +"items": { +"$ref": "DomainMapping" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListIngressRulesResponse": { +"description": "Response message for Firewall.ListIngressRules.", +"id": "ListIngressRulesResponse", +"properties": { +"ingressRules": { +"description": "The ingress FirewallRules for this application.", +"items": { +"$ref": "FirewallRule" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListInstancesResponse": { +"description": "Response message for Instances.ListInstances.", +"id": "ListInstancesResponse", +"properties": { +"instances": { +"description": "The instances belonging to the requested version.", +"items": { +"$ref": "Instance" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRuntimesResponse": { +"description": "Response message for Applications.ListRuntimes.", +"id": "ListRuntimesResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +}, +"runtimes": { +"description": "The runtimes available to the requested application.", +"items": { +"$ref": "Runtime" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServicesResponse": { +"description": "Response message for Services.ListServices.", +"id": "ListServicesResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +}, +"services": { +"description": "The services belonging to the requested application.", +"items": { +"$ref": "Service" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVersionsResponse": { +"description": "Response message for Versions.ListVersions.", +"id": "ListVersionsResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +}, +"versions": { +"description": "The versions belonging to the requested service.", +"items": { +"$ref": "Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"LivenessCheck": { +"description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances.", +"id": "LivenessCheck", +"properties": { +"checkInterval": { +"description": "Interval between health checks.", +"format": "google-duration", +"type": "string" +}, +"failureThreshold": { +"description": "Number of consecutive failed checks required before considering the VM unhealthy.", +"format": "uint32", +"type": "integer" +}, +"host": { +"description": "Host header to send when performing a HTTP Liveness check. Example: \"myapp.appspot.com\"", +"type": "string" +}, +"initialDelay": { +"description": "The initial delay before starting to execute the checks.", +"format": "google-duration", +"type": "string" +}, +"path": { +"description": "The request path.", +"type": "string" +}, +"successThreshold": { +"description": "Number of consecutive successful checks required before considering the VM healthy.", +"format": "uint32", +"type": "integer" +}, +"timeout": { +"description": "Time before the check is considered failed.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"} ", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: \"us-east1\".", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"", +"type": "string" +} +}, +"type": "object" +}, +"LocationMetadata": { +"description": "Metadata for the given google.cloud.location.Location.", +"id": "LocationMetadata", +"properties": { +"flexibleEnvironmentAvailable": { +"description": "App Engine flexible environment is available in the given location.@OutputOnly", +"type": "boolean" +}, +"searchApiAvailable": { +"description": "Output only. Search API (https://cloud.google.com/appengine/docs/standard/python/search) is available in the given location.", +"readOnly": true, +"type": "boolean" +}, +"standardEnvironmentAvailable": { +"description": "App Engine standard environment is available in the given location.@OutputOnly", +"type": "boolean" +} +}, +"type": "object" +}, +"ManagedCertificate": { +"description": "A certificate managed by App Engine.", +"id": "ManagedCertificate", +"properties": { +"lastRenewalTime": { +"description": "Time at which the certificate was last renewed. The renewal process is fully managed. Certificate renewal will automatically occur before the certificate expires. Renewal errors can be tracked via ManagementStatus.@OutputOnly", +"format": "google-datetime", +"type": "string" +}, +"status": { +"description": "Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt.@OutputOnly", +"enum": [ +"MANAGEMENT_STATUS_UNSPECIFIED", +"OK", +"PENDING", +"FAILED_RETRYING_NOT_VISIBLE", +"FAILED_PERMANENT", +"FAILED_RETRYING_CAA_FORBIDDEN", +"FAILED_RETRYING_CAA_CHECKING" +], +"enumDescriptions": [ +"", +"Certificate was successfully obtained and inserted into the serving system.", +"Certificate is under active attempts to acquire or renew.", +"Most recent renewal failed due to an invalid DNS setup and will be retried. Renewal attempts will continue to fail until the certificate domain's DNS configuration is fixed. The last successfully provisioned certificate may still be serving.", +"All renewal attempts have been exhausted, likely due to an invalid DNS setup.", +"Most recent renewal failed due to an explicit CAA record that does not include one of the in-use CAs (Google CA and Let's Encrypt). Renewals will continue to fail until the CAA is reconfigured. The last successfully provisioned certificate may still be serving.", +"Most recent renewal failed due to a CAA retrieval failure. This means that the domain's DNS provider does not properly handle CAA records, failing requests for CAA records when no CAA records are defined. Renewals will continue to fail until the DNS provider is changed or a CAA record is added for the given domain. The last successfully provisioned certificate may still be serving." +], +"type": "string" +} +}, +"type": "object" +}, +"ManualScaling": { +"description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", +"id": "ManualScaling", +"properties": { +"instances": { +"description": "Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Network": { +"description": "Extra network settings. Only applicable in the App Engine flexible environment.", +"id": "Network", +"properties": { +"forwardedPorts": { +"description": "List of ports, or port pairs, to forward from the virtual machine to the application container. Only applicable in the App Engine flexible environment.", +"items": { +"type": "string" +}, +"type": "array" +}, +"instanceIpMode": { +"description": "The IP mode for instances. Only applicable in the App Engine flexible environment.", +"enum": [ +"INSTANCE_IP_MODE_UNSPECIFIED", +"EXTERNAL", +"INTERNAL" +], +"enumDescriptions": [ +"Unspecified is treated as EXTERNAL.", +"Instances are created with both internal and external IP addresses.", +"Instances are created with internal IP addresses only." +], +"type": "string" +}, +"instanceTag": { +"description": "Tag to apply to the instance during creation. Only applicable in the App Engine flexible environment.", +"type": "string" +}, +"name": { +"description": "Google Compute Engine network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.", +"type": "string" +}, +"sessionAffinity": { +"description": "Enable session affinity. Only applicable in the App Engine flexible environment.", +"type": "boolean" +}, +"subnetworkName": { +"description": "Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network that the instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network that the instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network that the instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the App Engine flexible environment application.", +"type": "string" +} +}, +"type": "object" +}, +"NetworkSettings": { +"description": "A NetworkSettings resource is a container for ingress settings for a version or service.", +"id": "NetworkSettings", +"properties": { +"ingressTrafficAllowed": { +"description": "The ingress settings for version or service.", +"enum": [ +"INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED", +"INGRESS_TRAFFIC_ALLOWED_ALL", +"INGRESS_TRAFFIC_ALLOWED_INTERNAL_ONLY", +"INGRESS_TRAFFIC_ALLOWED_INTERNAL_AND_LB" +], +"enumDescriptions": [ +"Unspecified", +"Allow HTTP traffic from public and private sources.", +"Allow HTTP traffic from only private VPC sources.", +"Allow HTTP traffic from private VPC sources and through load balancers." +], +"type": "string" +} +}, +"type": "object" +}, +"NetworkUtilization": { +"description": "Target scaling by network usage. Only applicable in the App Engine flexible environment.", +"id": "NetworkUtilization", +"properties": { +"targetReceivedBytesPerSecond": { +"description": "Target bytes received per second.", +"format": "int32", +"type": "integer" +}, +"targetReceivedPacketsPerSecond": { +"description": "Target packets received per second.", +"format": "int32", +"type": "integer" +}, +"targetSentBytesPerSecond": { +"description": "Target bytes sent per second.", +"format": "int32", +"type": "integer" +}, +"targetSentPacketsPerSecond": { +"description": "Target packets sent per second.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadataV1": { +"description": "Metadata for the given google.longrunning.Operation.", +"id": "OperationMetadataV1", +"properties": { +"createVersionMetadata": { +"$ref": "CreateVersionMetadataV1" +}, +"endTime": { +"description": "Time that this operation completed.@OutputOnly", +"format": "google-datetime", +"type": "string" +}, +"ephemeralMessage": { +"description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", +"type": "string" +}, +"insertTime": { +"description": "Time that this operation was created.@OutputOnly", +"format": "google-datetime", +"type": "string" +}, +"method": { +"description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", +"type": "string" +}, +"target": { +"description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", +"type": "string" +}, +"user": { +"description": "User who requested this operation.@OutputOnly", +"type": "string" +}, +"warning": { +"description": "Durable messages that persist on every operation poll. @OutputOnly", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"OperationMetadataV1Alpha": { +"description": "Metadata for the given google.longrunning.Operation.", +"id": "OperationMetadataV1Alpha", +"properties": { +"createVersionMetadata": { +"$ref": "CreateVersionMetadataV1Alpha" +}, +"endTime": { +"description": "Time that this operation completed.@OutputOnly", +"format": "google-datetime", +"type": "string" +}, +"ephemeralMessage": { +"description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", +"type": "string" +}, +"insertTime": { +"description": "Time that this operation was created.@OutputOnly", +"format": "google-datetime", +"type": "string" +}, +"method": { +"description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly", +"type": "string" +}, +"target": { +"description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", +"type": "string" +}, +"user": { +"description": "User who requested this operation.@OutputOnly", +"type": "string" +}, +"warning": { +"description": "Durable messages that persist on every operation poll. @OutputOnly", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"OperationMetadataV1Beta": { +"description": "Metadata for the given google.longrunning.Operation.", +"id": "OperationMetadataV1Beta", +"properties": { +"createVersionMetadata": { +"$ref": "CreateVersionMetadataV1Beta" +}, +"endTime": { +"description": "Time that this operation completed.@OutputOnly", +"format": "google-datetime", +"type": "string" +}, +"ephemeralMessage": { +"description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", +"type": "string" +}, +"insertTime": { +"description": "Time that this operation was created.@OutputOnly", +"format": "google-datetime", +"type": "string" +}, +"method": { +"description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly", +"type": "string" +}, +"target": { +"description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", +"type": "string" +}, +"user": { +"description": "User who requested this operation.@OutputOnly", +"type": "string" +}, +"warning": { +"description": "Durable messages that persist on every operation poll. @OutputOnly", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProjectEvent": { +"description": "The request sent to CLHs during project events.", +"id": "ProjectEvent", +"properties": { +"eventId": { +"description": "The unique ID for this project event. CLHs can use this value to dedup repeated calls. required", +"type": "string" +}, +"phase": { +"description": "Phase indicates when in the container event propagation this event is being communicated. Events are sent before and after the per-resource events are propagated. required", +"enum": [ +"CONTAINER_EVENT_PHASE_UNSPECIFIED", +"BEFORE_RESOURCE_HANDLING", +"AFTER_RESOURCE_HANDLING" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"projectMetadata": { +"$ref": "ProjectsMetadata", +"description": "The projects metadata for this project. required" +}, +"state": { +"$ref": "ContainerState", +"description": "The state of the organization that led to this event." +} +}, +"type": "object" +}, +"ProjectsMetadata": { +"description": "ProjectsMetadata is the metadata CCFE stores about the all the relevant projects (tenant, consumer, producer).", +"id": "ProjectsMetadata", +"properties": { +"consumerProjectId": { +"description": "The consumer project id.", +"type": "string" +}, +"consumerProjectNumber": { +"description": "The consumer project number.", +"format": "int64", +"type": "string" +}, +"consumerProjectState": { +"description": "The CCFE state of the consumer project. It is the same state that is communicated to the CLH during project events. Notice that this field is not set in the DB, it is only set in this proto when communicated to CLH in the side channel.", +"enum": [ +"UNKNOWN_STATE", +"ON", +"OFF", +"DELETED" +], +"enumDescriptions": [ +"A container should never be in an unknown state. Receipt of a container with this state is an error.", +"CCFE considers the container to be serving or transitioning into serving.", +"CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.", +"This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached." +], +"type": "string" +}, +"gceTag": { +"description": "The GCE tags associated with the consumer project and those inherited due to their ancestry, if any. Not supported by CCFE.", +"items": { +"$ref": "GceTag" +}, +"type": "array" +}, +"p4ServiceAccount": { +"description": "The service account authorized to operate on the consumer project. Note: CCFE only propagates P4SA with default tag to CLH.", +"type": "string" +}, +"producerProjectId": { +"description": "The producer project id.", +"type": "string" +}, +"producerProjectNumber": { +"description": "The producer project number.", +"format": "int64", +"type": "string" +}, +"tenantProjectId": { +"description": "The tenant project id.", +"type": "string" +}, +"tenantProjectNumber": { +"description": "The tenant project number.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ReadinessCheck": { +"description": "Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation.", +"id": "ReadinessCheck", +"properties": { +"appStartTimeout": { +"description": "A maximum time limit on application initialization, measured from moment the application successfully replies to a healthcheck until it is ready to serve traffic.", +"format": "google-duration", +"type": "string" +}, +"checkInterval": { +"description": "Interval between health checks.", +"format": "google-duration", +"type": "string" +}, +"failureThreshold": { +"description": "Number of consecutive failed checks required before removing traffic.", +"format": "uint32", +"type": "integer" +}, +"host": { +"description": "Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"", +"type": "string" +}, +"path": { +"description": "The request path.", +"type": "string" +}, +"successThreshold": { +"description": "Number of consecutive successful checks required before receiving traffic.", +"format": "uint32", +"type": "integer" +}, +"timeout": { +"description": "Time before the check is considered failed.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Reasons": { +"description": "Containers transition between and within states based on reasons sent from various systems. CCFE will provide the CLH with reasons for the current state per system.The current systems that CCFE supports are: Service Management (Inception) Data Governance (Wipeout) Abuse (Ares) Billing (Internal Cloud Billing API) Service Activation (Service Controller)", +"id": "Reasons", +"properties": { +"abuse": { +"enum": [ +"ABUSE_UNKNOWN_REASON", +"ABUSE_CONTROL_PLANE_SYNC", +"SUSPEND", +"REINSTATE" +], +"enumDescriptions": [ +"An unknown reason indicates that the abuse system has not sent a signal for this container.", +"Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", +"If a container is deemed abusive we receive a suspend signal. Suspend is a reason to put the container into an INTERNAL_OFF state.", +"Containers that were once considered abusive can later be deemed non-abusive. When this happens we must reinstate the container. Reinstate is a reason to put the container into an ON state." +], +"type": "string" +}, +"billing": { +"enum": [ +"BILLING_UNKNOWN_REASON", +"BILLING_CONTROL_PLANE_SYNC", +"PROBATION", +"CLOSE", +"OPEN" +], +"enumDescriptions": [ +"An unknown reason indicates that the billing system has not sent a signal for this container.", +"Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", +"Minor infractions cause a probation signal to be sent. Probation is a reason to put the container into a ON state even though it is a negative signal. CCFE will block mutations for this container while it is on billing probation, but the CLH is expected to serve non-mutation requests.", +"When a billing account is closed, it is a stronger signal about non-payment. Close is a reason to put the container into an INTERNAL_OFF state.", +"Consumers can re-open billing accounts and update accounts to pull them out of probation. When this happens, we get a signal that the account is open. Open is a reason to put the container into an ON state." +], +"type": "string" +}, +"dataGovernance": { +"enum": [ +"DATA_GOVERNANCE_UNKNOWN_REASON", +"DATA_GOVERNANCE_CONTROL_PLANE_SYNC", +"HIDE", +"UNHIDE", +"PURGE" +], +"enumDescriptions": [ +"An unknown reason indicates that data governance has not sent a signal for this container.", +"Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", +"When a container is deleted we retain some data for a period of time to allow the consumer to change their mind. Data governance sends a signal to hide the data when this occurs. Hide is a reason to put the container in an INTERNAL_OFF state.", +"The decision to un-delete a container can be made. When this happens data governance tells us to unhide any hidden data. Unhide is a reason to put the container in an ON state.", +"After a period of time data must be completely removed from our systems. When data governance sends a purge signal we need to remove data. Purge is a reason to put the container in a DELETED state. Purge is the only event that triggers a delete mutation. All other events have update semantics." +], +"type": "string" +}, +"serviceActivation": { +"description": "Consumer Container denotes if the service is active within a project or not. This information could be used to clean up resources in case service in DISABLED_FULL i.e. Service is inactive > 30 days.", +"enum": [ +"SERVICE_ACTIVATION_STATUS_UNSPECIFIED", +"SERVICE_ACTIVATION_ENABLED", +"SERVICE_ACTIVATION_DISABLED", +"SERVICE_ACTIVATION_DISABLED_FULL", +"SERVICE_ACTIVATION_UNKNOWN_REASON" +], +"enumDescriptions": [ +"Default Unspecified status", +"Service is active in the project.", +"Service is disabled in the project recently i.e., within last 24 hours.", +"Service has been disabled for configured grace_period (default 30 days).", +"Happens when PSM cannot determine the status of service in a project Could happen due to variety of reasons like PERMISSION_DENIED or Project got deleted etc." +], +"type": "string" +}, +"serviceManagement": { +"enum": [ +"SERVICE_MANAGEMENT_UNKNOWN_REASON", +"SERVICE_MANAGEMENT_CONTROL_PLANE_SYNC", +"ACTIVATION", +"PREPARE_DEACTIVATION", +"ABORT_DEACTIVATION", +"COMMIT_DEACTIVATION" +], +"enumDeprecated": [ +false, +false, +true, +true, +true, +true +], +"enumDescriptions": [ +"An unknown reason indicates that we have not received a signal from service management about this container. Since containers are created by request of service management, this reason should never be set.", +"Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.", +"When a customer activates an API CCFE notifies the CLH and sets the container to the ON state.", +"When a customer deactivates and API service management starts a two-step process to perform the deactivation. The first step is to prepare. Prepare is a reason to put the container in a EXTERNAL_OFF state.", +"If the deactivation is cancelled, service managed needs to abort the deactivation. Abort is a reason to put the container in an ON state.", +"If the deactivation is followed through with, service management needs to finish deactivation. Commit is a reason to put the container in a DELETED state." +], +"type": "string" +} +}, +"type": "object" +}, +"RepairApplicationRequest": { +"description": "Request message for 'Applications.RepairApplication'.", +"id": "RepairApplicationRequest", +"properties": {}, +"type": "object" +}, +"RequestUtilization": { +"description": "Target scaling by request utilization. Only applicable in the App Engine flexible environment.", +"id": "RequestUtilization", +"properties": { +"targetConcurrentRequests": { +"description": "Target number of concurrent requests.", +"format": "int32", +"type": "integer" +}, +"targetRequestCountPerSecond": { +"description": "Target requests per second.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ResourceEvent": { +"description": "The request that is passed to CLH during per-resource events. The request will be sent with update semantics in all cases except for data governance purge events. These events will be sent with delete semantics and the CLH is expected to delete the resource receiving this event.", +"id": "ResourceEvent", +"properties": { +"eventId": { +"description": "The unique ID for this per-resource event. CLHs can use this value to dedup repeated calls. required", +"type": "string" +}, +"name": { +"description": "The name of the resource for which this event is. required", +"type": "string" +}, +"state": { +"$ref": "ContainerState", +"description": "The state of the project that led to this event." +} +}, +"type": "object" +}, +"ResourceRecord": { +"description": "A DNS resource record.", +"id": "ResourceRecord", +"properties": { +"name": { +"description": "Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.", +"type": "string" +}, +"rrdata": { +"description": "Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).", +"type": "string" +}, +"type": { +"description": "Resource record type. Example: AAAA.", +"enum": [ +"A", +"AAAA", +"CNAME" +], +"enumDescriptions": [ +"An A resource record. Data is an IPv4 address.", +"An AAAA resource record. Data is an IPv6 address.", +"A CNAME resource record. Data is a domain name to be aliased." +], +"type": "string" +} +}, +"type": "object" +}, +"Resources": { +"description": "Machine resources for a version.", +"id": "Resources", +"properties": { +"cpu": { +"description": "Number of CPU cores needed.", +"format": "double", +"type": "number" +}, +"diskGb": { +"description": "Disk size (GB) needed.", +"format": "double", +"type": "number" +}, +"kmsKeyReference": { +"description": "The name of the encryption key that is stored in Google Cloud KMS. Only should be used by Cloud Composer to encrypt the vm disk", +"type": "string" +}, +"memoryGb": { +"description": "Memory (GB) needed.", +"format": "double", +"type": "number" +}, +"volumes": { +"description": "User specified volumes.", +"items": { +"$ref": "Volume" +}, +"type": "array" +} +}, +"type": "object" +}, +"Runtime": { +"description": "Runtime versions for App Engine.", +"id": "Runtime", +"properties": { +"decommissionedDate": { +"$ref": "Date", +"description": "Date when Runtime is decommissioned." +}, +"deprecationDate": { +"$ref": "Date", +"description": "Date when Runtime is deprecated." +}, +"displayName": { +"description": "User-friendly display name, e.g. 'Node.js 12', etc.", +"type": "string" +}, +"endOfSupportDate": { +"$ref": "Date", +"description": "Date when Runtime is end of support." +}, +"environment": { +"description": "The environment of the runtime.", +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"STANDARD", +"FLEXIBLE" +], +"enumDescriptions": [ +"Default value.", +"App Engine Standard.", +"App Engine Flexible" +], +"type": "string" +}, +"name": { +"description": "The name of the runtime, e.g., 'go113', 'nodejs12', etc.", +"type": "string" +}, +"stage": { +"description": "The stage of life this runtime is in, e.g., BETA, GA, etc.", +"enum": [ +"RUNTIME_STAGE_UNSPECIFIED", +"DEVELOPMENT", +"ALPHA", +"BETA", +"GA", +"DEPRECATED", +"DECOMMISSIONED", +"END_OF_SUPPORT" +], +"enumDescriptions": [ +"Not specified.", +"The runtime is in development.", +"The runtime is in the Alpha stage.", +"The runtime is in the Beta stage.", +"The runtime is generally available.", +"The runtime is deprecated.", +"The runtime is no longer supported.", +"The runtime is end of support." +], +"type": "string" +}, +"supportedOperatingSystems": { +"description": "Supported operating systems for the runtime, e.g., 'ubuntu22', etc.", +"items": { +"type": "string" +}, +"type": "array" +}, +"warnings": { +"description": "Warning messages, e.g., a deprecation warning.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ScriptHandler": { +"description": "Executes a script to handle the request that matches the URL pattern.", +"id": "ScriptHandler", +"properties": { +"scriptPath": { +"description": "Path to the script from the application root directory.", +"type": "string" +} +}, +"type": "object" +}, +"Service": { +"description": "A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.", +"id": "Service", +"properties": { +"generatedCustomerMetadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Additional Google Generated Customer Metadata, this field won't be provided by default and can be requested by setting the IncludeExtraData field in GetServiceRequest", +"type": "object" +}, +"id": { +"description": "Output only. Relative name of the service within the application. Example: default.@OutputOnly", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "A set of labels to apply to this service. Labels are key/value pairs that describe the service and all resources that belong to it (e.g., versions). The labels can be used to search and group resources, and are propagated to the usage and billing reports, enabling fine-grain analysis of costs. An example of using labels is to tag resources belonging to different environments (e.g., \"env=prod\", \"env=qa\"). Label keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, dashes, and international characters. Label keys must start with a lowercase letter or an international character. Each service can have at most 32 labels.", +"type": "object" +}, +"name": { +"description": "Output only. Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly", +"readOnly": true, +"type": "string" +}, +"networkSettings": { +"$ref": "NetworkSettings", +"description": "Ingress settings for this service. Will apply to all versions." +}, +"split": { +"$ref": "TrafficSplit", +"description": "Mapping that defines fractional HTTP traffic diversion to different versions within the service." +} +}, +"type": "object" +}, +"SslSettings": { +"description": "SSL configuration for a DomainMapping resource.", +"id": "SslSettings", +"properties": { +"certificateId": { +"description": "ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support.By default, a managed certificate is automatically created for every domain mapping. To omit SSL support or to configure SSL manually, specify SslManagementType.MANUAL on a CREATE or UPDATE request. You must be authorized to administer the AuthorizedCertificate resource to manually map it to a DomainMapping resource. Example: 12345.", +"type": "string" +}, +"pendingManagedCertificateId": { +"description": "ID of the managed AuthorizedCertificate resource currently being provisioned, if applicable. Until the new managed certificate has been successfully provisioned, the previous SSL state will be preserved. Once the provisioning process completes, the certificate_id field will reflect the new managed certificate and this field will be left empty. To remove SSL support while there is still a pending managed certificate, clear the certificate_id field with an UpdateDomainMappingRequest.@OutputOnly", +"type": "string" +}, +"sslManagementType": { +"description": "SSL management type for this domain. If AUTOMATIC, a managed certificate is automatically provisioned. If MANUAL, certificate_id must be manually specified in order to configure SSL for this domain.", +"enum": [ +"AUTOMATIC", +"MANUAL" +], +"enumDescriptions": [ +"SSL support for this domain is configured automatically. The mapped SSL certificate will be automatically renewed.", +"SSL support for this domain is configured manually by the user. Either the domain has no SSL support or a user-obtained SSL certificate has been explictly mapped to this domain." +], +"type": "string" +} +}, +"type": "object" +}, +"StandardSchedulerSettings": { +"description": "Scheduler settings for standard environment.", +"id": "StandardSchedulerSettings", +"properties": { +"maxInstances": { +"description": "Maximum number of instances to run for this version. Set to zero to disable max_instances configuration.", +"format": "int32", +"type": "integer" +}, +"minInstances": { +"description": "Minimum number of instances to run for this version. Set to zero to disable min_instances configuration.", +"format": "int32", +"type": "integer" +}, +"targetCpuUtilization": { +"description": "Target CPU utilization ratio to maintain when scaling.", +"format": "double", +"type": "number" +}, +"targetThroughputUtilization": { +"description": "Target throughput utilization ratio to maintain when scaling", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"StaticFilesHandler": { +"description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.", +"id": "StaticFilesHandler", +"properties": { +"applicationReadable": { +"description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", +"type": "boolean" +}, +"expiration": { +"description": "Time a static file served by this handler should be cached by web proxies and browsers.", +"format": "google-duration", +"type": "string" +}, +"httpHeaders": { +"additionalProperties": { +"type": "string" +}, +"description": "HTTP headers to use for all responses from these URLs.", +"type": "object" +}, +"mimeType": { +"description": "MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.", +"type": "string" +}, +"path": { +"description": "Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.", +"type": "string" +}, +"requireMatchingFile": { +"description": "Whether this handler should match the request if the file referenced by the handler does not exist.", +"type": "boolean" +}, +"uploadPathRegex": { +"description": "Regular expression that matches the file paths for all files that should be referenced by this handler.", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TrafficSplit": { +"description": "Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions.", +"id": "TrafficSplit", +"properties": { +"allocations": { +"additionalProperties": { +"format": "double", +"type": "number" +}, +"description": "Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.", +"type": "object" +}, +"shardBy": { +"description": "Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.", +"enum": [ +"UNSPECIFIED", +"COOKIE", +"IP", +"RANDOM" +], +"enumDescriptions": [ +"Diversion method unspecified.", +"Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or no diversion will occur.", +"Diversion based on applying the modulus operation to a fingerprint of the IP address.", +"Diversion based on weighted random assignment. An incoming request is randomly routed to a version in the traffic split, with probability proportional to the version's traffic share." +], +"type": "string" +} +}, +"type": "object" +}, +"UrlDispatchRule": { +"description": "Rules to match an HTTP request and dispatch that request to a service.", +"id": "UrlDispatchRule", +"properties": { +"domain": { +"description": "Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".Defaults to matching all domains: \"*\".", +"type": "string" +}, +"path": { +"description": "Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path.The sum of the lengths of the domain and path may not exceed 100 characters.", +"type": "string" +}, +"service": { +"description": "Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default.", +"type": "string" +} +}, +"type": "object" +}, +"UrlMap": { +"description": "URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.", +"id": "UrlMap", +"properties": { +"apiEndpoint": { +"$ref": "ApiEndpointHandler", +"description": "Uses API Endpoints to handle requests." +}, +"authFailAction": { +"description": "Action to take when users access resources that require authentication. Defaults to redirect.", +"enum": [ +"AUTH_FAIL_ACTION_UNSPECIFIED", +"AUTH_FAIL_ACTION_REDIRECT", +"AUTH_FAIL_ACTION_UNAUTHORIZED" +], +"enumDescriptions": [ +"Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", +"Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", +"Rejects request with a 401 HTTP status code and an error message." +], +"type": "string" +}, +"login": { +"description": "Level of login required to access this resource. Not supported for Node.js in the App Engine standard environment.", +"enum": [ +"LOGIN_UNSPECIFIED", +"LOGIN_OPTIONAL", +"LOGIN_ADMIN", +"LOGIN_REQUIRED" +], +"enumDescriptions": [ +"Not specified. LOGIN_OPTIONAL is assumed.", +"Does not require that the user is signed in.", +"If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", +"If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken." +], +"type": "string" +}, +"redirectHttpResponseCode": { +"description": "30x code to use when performing redirects for the secure field. Defaults to 302.", +"enum": [ +"REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED", +"REDIRECT_HTTP_RESPONSE_CODE_301", +"REDIRECT_HTTP_RESPONSE_CODE_302", +"REDIRECT_HTTP_RESPONSE_CODE_303", +"REDIRECT_HTTP_RESPONSE_CODE_307" +], +"enumDescriptions": [ +"Not specified. 302 is assumed.", +"301 Moved Permanently code.", +"302 Moved Temporarily code.", +"303 See Other code.", +"307 Temporary Redirect code." +], +"type": "string" +}, +"script": { +"$ref": "ScriptHandler", +"description": "Executes a script to handle the requests that match this URL pattern. Only the auto value is supported for Node.js in the App Engine standard environment, for example \"script\": \"auto\"." +}, +"securityLevel": { +"description": "Security (HTTPS) enforcement for this URL.", +"enum": [ +"SECURE_UNSPECIFIED", +"SECURE_DEFAULT", +"SECURE_NEVER", +"SECURE_OPTIONAL", +"SECURE_ALWAYS" +], +"enumDescriptions": [ +"Not specified.", +"Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used, and respond accordingly.", +"Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", +"Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used and respond accordingly.", +"Requests for a URL that match this handler that do not use HTTPS are automatically redirected to the HTTPS URL with the same path. Query parameters are reserved for the redirect." +], +"type": "string" +}, +"staticFiles": { +"$ref": "StaticFilesHandler", +"description": "Returns the contents of a file, such as an image, as the response." +}, +"urlRegex": { +"description": "URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.", +"type": "string" +} +}, +"type": "object" +}, +"Version": { +"description": "A Version resource is a specific set of source code and configuration files that are deployed into a service.", +"id": "Version", +"properties": { +"apiConfig": { +"$ref": "ApiConfigHandler", +"deprecated": true, +"description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/endpoints).Only returned in GET requests if view=FULL is set." +}, +"appEngineApis": { +"description": "Allows App Engine second generation runtimes to access the legacy bundled services.", +"type": "boolean" +}, +"automaticScaling": { +"$ref": "AutomaticScaling", +"description": "Automatic scaling is based on request rate, response latencies, and other application metrics. Instances are dynamically created and destroyed as needed in order to handle traffic." +}, +"basicScaling": { +"$ref": "BasicScaling", +"description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity." +}, +"betaSettings": { +"additionalProperties": { +"type": "string" +}, +"description": "Metadata settings that are supplied to this version to enable beta runtime features.", +"type": "object" +}, +"buildEnvVariables": { +"additionalProperties": { +"type": "string" +}, +"description": "Environment variables available to the build environment.Only returned in GET requests if view=FULL is set.", +"type": "object" +}, +"createTime": { +"description": "Time that this version was created.@OutputOnly", +"format": "google-datetime", +"type": "string" +}, +"createdBy": { +"description": "Output only. Email address of the user who created this version.@OutputOnly", +"readOnly": true, +"type": "string" +}, +"defaultExpiration": { +"description": "Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StaticFilesHandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.", +"format": "google-duration", +"type": "string" +}, +"deployment": { +"$ref": "Deployment", +"description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set." +}, +"diskUsageBytes": { +"description": "Output only. Total size in bytes of all the files that are included in this version and currently hosted on the App Engine disk.@OutputOnly", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"endpointsApiService": { +"$ref": "EndpointsApiService", +"description": "Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app." +}, +"entrypoint": { +"$ref": "Entrypoint", +"description": "The entrypoint for the application." +}, +"env": { +"description": "App Engine execution environment for this version.Defaults to standard.", +"type": "string" +}, +"envVariables": { +"additionalProperties": { +"type": "string" +}, +"description": "Environment variables available to the application.Only returned in GET requests if view=FULL is set.", +"type": "object" +}, +"errorHandlers": { +"description": "Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.", +"items": { +"$ref": "ErrorHandler" +}, +"type": "array" +}, +"flexibleRuntimeSettings": { +"$ref": "FlexibleRuntimeSettings", +"description": "Settings for App Engine flexible runtimes." +}, +"generatedCustomerMetadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Additional Google Generated Customer Metadata, this field won't be provided by default and can be requested by setting the IncludeExtraData field in GetVersionRequest", +"type": "object" +}, +"handlers": { +"description": "An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.", +"items": { +"$ref": "UrlMap" +}, +"type": "array" +}, +"healthCheck": { +"$ref": "HealthCheck", +"description": "Configures health checking for instances. Unhealthy instances are stopped and replaced with new instances. Only applicable in the App Engine flexible environment." +}, +"id": { +"description": "Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: \"default\", \"latest\", and any name with the prefix \"ah-\".", +"type": "string" +}, +"inboundServices": { +"description": "Before an application can receive email or XMPP messages, the application must be configured to enable the service.", +"items": { +"enum": [ +"INBOUND_SERVICE_UNSPECIFIED", +"INBOUND_SERVICE_MAIL", +"INBOUND_SERVICE_MAIL_BOUNCE", +"INBOUND_SERVICE_XMPP_ERROR", +"INBOUND_SERVICE_XMPP_MESSAGE", +"INBOUND_SERVICE_XMPP_SUBSCRIBE", +"INBOUND_SERVICE_XMPP_PRESENCE", +"INBOUND_SERVICE_CHANNEL_PRESENCE", +"INBOUND_SERVICE_WARMUP" +], +"enumDescriptions": [ +"Not specified.", +"Allows an application to receive mail.", +"Allows an application to receive email-bound notifications.", +"Allows an application to receive error stanzas.", +"Allows an application to receive instant messages.", +"Allows an application to receive user subscription POSTs.", +"Allows an application to receive a user's chat presence.", +"Registers an application for notifications when a client connects or disconnects from a channel.", +"Enables warmup requests." +], +"type": "string" +}, +"type": "array" +}, +"instanceClass": { +"description": "Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.", +"type": "string" +}, +"libraries": { +"description": "Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.", +"items": { +"$ref": "Library" +}, +"type": "array" +}, +"livenessCheck": { +"$ref": "LivenessCheck", +"description": "Configures liveness health checking for instances. Unhealthy instances are stopped and replaced with new instances" +}, +"manualScaling": { +"$ref": "ManualScaling", +"description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. Manually scaled versions are sometimes referred to as \"backends\"." +}, +"name": { +"description": "Output only. Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly", +"readOnly": true, +"type": "string" +}, +"network": { +"$ref": "Network", +"description": "Extra network settings. Only applicable in the App Engine flexible environment." +}, +"nobuildFilesRegex": { +"description": "Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.", +"type": "string" +}, +"readinessCheck": { +"$ref": "ReadinessCheck", +"description": "Configures readiness health checking for instances. Unhealthy instances are not put into the backend traffic rotation." +}, +"resources": { +"$ref": "Resources", +"description": "Machine resources for this version. Only applicable in the App Engine flexible environment." +}, +"runtime": { +"description": "Desired runtime. Example: python27.", +"type": "string" +}, +"runtimeApiVersion": { +"description": "The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard//config/appref", +"type": "string" +}, +"runtimeChannel": { +"description": "The channel of the runtime to use. Only available for some runtimes. Defaults to the default channel.", +"type": "string" +}, +"runtimeMainExecutablePath": { +"description": "The path or name of the app's main executable.", +"type": "string" +}, +"serviceAccount": { +"description": "The identity that the deployed version will run as. Admin API will use the App Engine Appspot service account as default if this field is neither provided in app.yaml file nor through CLI flag.", +"type": "string" +}, +"servingStatus": { +"description": "Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.", +"enum": [ +"SERVING_STATUS_UNSPECIFIED", +"SERVING", +"STOPPED" +], +"enumDescriptions": [ +"Not specified.", +"Currently serving. Instances are created according to the scaling settings of the version.", +"Disabled. No instances will be created and the scaling settings are ignored until the state of the version changes to SERVING." +], +"type": "string" +}, +"threadsafe": { +"description": "Whether multiple requests can be dispatched to this version at once.", +"type": "boolean" +}, +"versionUrl": { +"description": "Output only. Serving URL for this version. Example: \"https://myversion-dot-myservice-dot-myapp.appspot.com\"@OutputOnly", +"readOnly": true, +"type": "string" +}, +"vm": { +"description": "Whether to deploy this version in a container on a virtual machine.", +"type": "boolean" +}, +"vpcAccessConnector": { +"$ref": "VpcAccessConnector", +"description": "Enables VPC connectivity for standard apps." +}, +"zones": { +"description": "The Google Compute Engine zones that are supported by this version in the App Engine flexible environment. Deprecated.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Volume": { +"description": "Volumes mounted within the app container. Only applicable in the App Engine flexible environment.", +"id": "Volume", +"properties": { +"name": { +"description": "Unique name for the volume.", +"type": "string" +}, +"sizeGb": { +"description": "Volume size in gigabytes.", +"format": "double", +"type": "number" +}, +"volumeType": { +"description": "Underlying volume type, e.g. 'tmpfs'.", +"type": "string" +} +}, +"type": "object" +}, +"VpcAccessConnector": { +"description": "VPC access connector specification.", +"id": "VpcAccessConnector", +"properties": { +"egressSetting": { +"description": "The egress setting for the connector, controlling what traffic is diverted through it.", +"enum": [ +"EGRESS_SETTING_UNSPECIFIED", +"ALL_TRAFFIC", +"PRIVATE_IP_RANGES" +], +"enumDescriptions": [ +"", +"Force the use of VPC Access for all egress traffic from the function.", +"Use the VPC Access Connector for private IP space from RFC1918." +], +"type": "string" +}, +"name": { +"description": "Full Serverless VPC Access Connector name e.g. projects/my-project/locations/us-central1/connectors/c1.", +"type": "string" +} +}, +"type": "object" +}, +"ZipInfo": { +"description": "The zip file information for a zip deployment.", +"id": "ZipInfo", +"properties": { +"filesCount": { +"description": "An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.", +"format": "int32", +"type": "integer" +}, +"sourceUrl": { +"description": "URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "App Engine Admin API", +"version": "v1beta" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/artifactregistry.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/artifactregistry.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..5d7dc5cc1a39e574d7bf16ee789e242775070e85 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/artifactregistry.v1beta1.json @@ -0,0 +1,1700 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/cloud-platform.read-only": { +"description": "View your data across Google Cloud services and see the email address of your Google Account" +} +} +} +}, +"basePath": "", +"baseUrl": "https://artifactregistry.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Artifact Registry", +"description": "Store and manage build artifacts in a scalable and integrated service built on Google infrastructure.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/artifacts/docs/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.africa-south1.rep.googleapis.com/", +"location": "africa-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-east1.rep.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-east2.rep.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-northeast1.rep.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-northeast2.rep.googleapis.com/", +"location": "asia-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-northeast3.rep.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-south1.rep.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-south2.rep.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-southeast1.rep.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-southeast2.rep.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.australia-southeast1.rep.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.australia-southeast2.rep.googleapis.com/", +"location": "australia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-central2.rep.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-north1.rep.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-southwest1.rep.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west10.rep.googleapis.com/", +"location": "europe-west10" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west12.rep.googleapis.com/", +"location": "europe-west12" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.me-central1.rep.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.northamerica-northeast1.rep.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.northamerica-northeast2.rep.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.southamerica-east1.rep.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.southamerica-west1.rep.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west8.rep.googleapis.com/", +"location": "us-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.me-central2.rep.googleapis.com/", +"location": "me-central2" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "artifactregistry:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://artifactregistry.mtls.googleapis.com/", +"name": "artifactregistry", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"repositories": { +"methods": { +"create": { +"description": "Creates a repository. The returned Operation will finish once the repository has been created. Its response will be the created Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource where the repository will be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"repositoryId": { +"description": "Required. The repository id to use for this repository.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/repositories", +"request": { +"$ref": "Repository" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a repository and all of its contents. The returned Operation will finish once the repository has been deleted. It will not have any Operation metadata and will return a google.protobuf.Empty response.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the repository to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the repository to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Repository" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Gets the IAM policy for a given resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:getIamPolicy", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists repositories.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "Optional. The field to order the results by.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of repositories to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource whose repositories will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/repositories", +"response": { +"$ref": "ListRepositoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.locations.repositories.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`. For each location in a project, repository names must be unique.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Repository" +}, +"response": { +"$ref": "Repository" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Updates the IAM policy for a given resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:setIamPolicy", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Tests if the caller has a list of permissions on a resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:testIamPermissions", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"files": { +"methods": { +"get": { +"description": "Gets a file.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files/{filesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.files.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the file to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/files/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "File" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists files.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.files.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are: * `name` * `owner` * `annotations` Examples of using a filter: To filter the results of your request to files with the name `my_file.txt` in project `my-project` in the `us-central` region, in repository `my-repo`, append the following filter expression to your request: * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/files/my-file.txt\"` You can also use wildcards to match any number of characters before or after the value: * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/files/my-*\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/files/*file.txt\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/files/*file*\"` To filter the results of your request to files owned by the version `1.0` in package `pkg1`, append the following filter expression to your request: * `owner=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0\"` To filter the results of your request to files with the annotation key-value pair [`external_link`: `external_link_value`], append the following filter expression to your request: * `\"annotations.external_link:external_link_value\"` To filter just for a specific annotation key `external_link`, append the following filter expression to your request: * `\"annotations.external_link\"` If the annotation key or value contains special characters, you can escape them by surrounding the value with backticks. For example, to filter the results of your request to files with the annotation key-value pair [`external.link`:`https://example.com/my-file`], append the following filter expression to your request: * `` \"annotations.`external.link`:`https://example.com/my-file`\" `` You can also filter with annotations with a wildcard to match any number of characters before or after the value: * `` \"annotations.*_link:`*example.com*`\" ``", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of files to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the repository whose files will be listed. For example: \"projects/p1/locations/us-central1/repositories/repo1", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/files", +"response": { +"$ref": "ListFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"packages": { +"methods": { +"delete": { +"description": "Deletes a package and all of its versions and tags. The returned operation will complete once the package has been deleted.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.packages.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the package to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a package.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the package to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Package" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists packages.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "Optional. The field to order the results by.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of packages to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource whose packages will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/packages", +"response": { +"$ref": "ListPackagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"tags": { +"methods": { +"create": { +"description": "Creates a tag.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.packages.tags.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The name of the parent resource where the tag will be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +}, +"tagId": { +"description": "The tag id to use for this repository.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/tags", +"request": { +"$ref": "Tag" +}, +"response": { +"$ref": "Tag" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a tag.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags/{tagsId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.packages.tags.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the tag to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/tags/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a tag.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags/{tagsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.tags.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the tag to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/tags/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Tag" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists tags.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.tags.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are: * `name` * `version` Examples of using a filter: To filter the results of your request to tags with the name `my-tag` in package `my-package` in repository `my-repo` in project \"`y-project` in the us-central region, append the following filter expression to your request: * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my-tag\"` You can also use wildcards to match any number of characters before or after the value: * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my*\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag*\"` To filter the results of your request to tags applied to the version `1.0` in package `my-package`, append the following filter expression to your request: * `version=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0\"`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of tags to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The name of the parent package whose tags will be listed. For example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/tags", +"response": { +"$ref": "ListTagsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a tag.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags/{tagsId}", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.locations.repositories.packages.tags.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the tag, for example: \"projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1\". If the package part contains slashes, the slashes are escaped. The tag part can only have characters in [a-zA-Z0-9\\-._~:@], anything else must be URL encoded.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/tags/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Tag" +}, +"response": { +"$ref": "Tag" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"versions": { +"methods": { +"delete": { +"description": "Deletes a version and all of its content. The returned operation will complete once the version has been deleted.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.packages.versions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "By default, a version that is tagged may not be deleted. If force=true, the version and any tags pointing to the version are deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the version to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a version", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions/{versionsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the version to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The view that should be returned in the response.", +"enum": [ +"VERSION_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Includes basic information about the version, but not any related tags.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists versions.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "Optional. The field to order the results by.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of versions to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The name of the parent resource whose versions will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The view that should be returned in the response.", +"enum": [ +"VERSION_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Includes basic information about the version, but not any related tags.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions", +"response": { +"$ref": "ListVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +} +} +} +} +} +} +} +} +} +}, +"revision": "20241010", +"rootUrl": "https://artifactregistry.googleapis.com/", +"schemas": { +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"File": { +"description": "Files store content that is potentially associated with Packages or Versions.", +"id": "File", +"properties": { +"createTime": { +"description": "Output only. The time when the File was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"hashes": { +"description": "The hashes of the file content.", +"items": { +"$ref": "Hash" +}, +"type": "array" +}, +"name": { +"description": "The name of the file, for example: `projects/p1/locations/us-central1/repositories/repo1/files/a%2Fb%2Fc.txt`. If the file ID part contains slashes, they are escaped.", +"type": "string" +}, +"owner": { +"description": "The name of the Package or Version that owns this file, if any.", +"type": "string" +}, +"sizeBytes": { +"description": "The size of the File in bytes.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the File was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Hash": { +"description": "A hash of file content.", +"id": "Hash", +"properties": { +"type": { +"description": "The algorithm used to compute the hash value.", +"enum": [ +"HASH_TYPE_UNSPECIFIED", +"SHA256", +"MD5" +], +"enumDescriptions": [ +"Unspecified.", +"SHA256 hash.", +"MD5 hash." +], +"type": "string" +}, +"value": { +"description": "The hash value.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ListFilesResponse": { +"description": "The response from listing files.", +"id": "ListFilesResponse", +"properties": { +"files": { +"description": "The files returned.", +"items": { +"$ref": "File" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token to retrieve the next page of files, or empty if there are no more files to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListPackagesResponse": { +"description": "The response from listing packages.", +"id": "ListPackagesResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of packages, or empty if there are no more packages to return.", +"type": "string" +}, +"packages": { +"description": "The packages returned.", +"items": { +"$ref": "Package" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRepositoriesResponse": { +"description": "The response from listing repositories.", +"id": "ListRepositoriesResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of repositories, or empty if there are no more repositories to return.", +"type": "string" +}, +"repositories": { +"description": "The repositories returned.", +"items": { +"$ref": "Repository" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTagsResponse": { +"description": "The response from listing tags.", +"id": "ListTagsResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of tags, or empty if there are no more tags to return.", +"type": "string" +}, +"tags": { +"description": "The tags returned.", +"items": { +"$ref": "Tag" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVersionsResponse": { +"description": "The response from listing versions.", +"id": "ListVersionsResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of versions, or empty if there are no more versions to return.", +"type": "string" +}, +"versions": { +"description": "The versions returned.", +"items": { +"$ref": "Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"Package": { +"description": "Packages are named collections of versions.", +"id": "Package", +"properties": { +"createTime": { +"description": "The time when the package was created.", +"format": "google-datetime", +"type": "string" +}, +"displayName": { +"description": "The display name of the package.", +"type": "string" +}, +"name": { +"description": "The name of the package, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`. If the package ID part contains slashes, the slashes are escaped.", +"type": "string" +}, +"updateTime": { +"description": "The time when the package was last updated. This includes publishing a new version of the package.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Repository": { +"description": "A Repository for storing artifacts with a specific format.", +"id": "Repository", +"properties": { +"createTime": { +"description": "Output only. The time when the repository was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "The user-provided description of the repository.", +"type": "string" +}, +"format": { +"description": "Optional. The format of packages that are stored in the repository.", +"enum": [ +"FORMAT_UNSPECIFIED", +"DOCKER", +"MAVEN", +"NPM", +"APT", +"YUM", +"GOOGET", +"PYTHON" +], +"enumDescriptions": [ +"Unspecified package format.", +"Docker package format.", +"Maven package format.", +"NPM package format.", +"APT package format.", +"YUM package format.", +"GooGet package format.", +"Python package format." +], +"type": "string" +}, +"kmsKeyName": { +"description": "The Cloud KMS resource name of the customer managed encryption key that's used to encrypt the contents of the Repository. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. This value may not be changed after the Repository has been created.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels with user-defined metadata. This field may contain up to 64 entries. Label keys and values may be no longer than 63 characters. Label keys must begin with a lowercase letter and may only contain lowercase letters, numeric characters, underscores, and dashes.", +"type": "object" +}, +"name": { +"description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`. For each location in a project, repository names must be unique.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. If set, the repository satisfies physical zone isolation.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. If set, the repository satisfies physical zone separation.", +"readOnly": true, +"type": "boolean" +}, +"sizeBytes": { +"description": "Output only. The size, in bytes, of all artifact storage in this repository. Repositories that are generally available or in public preview use this to calculate storage costs.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the repository was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Tag": { +"description": "Tags point to a version and represent an alternative name that can be used to access the version.", +"id": "Tag", +"properties": { +"name": { +"description": "The name of the tag, for example: \"projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1\". If the package part contains slashes, the slashes are escaped. The tag part can only have characters in [a-zA-Z0-9\\-._~:@], anything else must be URL encoded.", +"type": "string" +}, +"version": { +"description": "The name of the version the tag refers to, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/sha256:5243811` If the package or version ID parts contain slashes, the slashes are escaped.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Version": { +"description": "The body of a version resource. A version resource represents a collection of components, such as files and other data. This may correspond to a version in many package management schemes.", +"id": "Version", +"properties": { +"createTime": { +"description": "The time when the version was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "Optional. Description of the version, as specified in its metadata.", +"type": "string" +}, +"name": { +"description": "The name of the version, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/art1`. If the package or version ID parts contain slashes, the slashes are escaped.", +"type": "string" +}, +"relatedTags": { +"description": "Output only. A list of related tags. Will contain up to 100 tags that reference this version.", +"items": { +"$ref": "Tag" +}, +"type": "array" +}, +"updateTime": { +"description": "The time when the version was last updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Artifact Registry API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/artifactregistry.v1beta2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/artifactregistry.v1beta2.json new file mode 100644 index 0000000000000000000000000000000000000000..a2d8f2ff122ef096c1d1466c4cf2882b57b90a61 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/artifactregistry.v1beta2.json @@ -0,0 +1,2370 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/cloud-platform.read-only": { +"description": "View your data across Google Cloud services and see the email address of your Google Account" +} +} +} +}, +"basePath": "", +"baseUrl": "https://artifactregistry.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Artifact Registry", +"description": "Store and manage build artifacts in a scalable and integrated service built on Google infrastructure.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/artifacts/docs/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.africa-south1.rep.googleapis.com/", +"location": "africa-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-east1.rep.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-east2.rep.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-northeast1.rep.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-northeast2.rep.googleapis.com/", +"location": "asia-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-northeast3.rep.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-south1.rep.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-south2.rep.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-southeast1.rep.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.asia-southeast2.rep.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.australia-southeast1.rep.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.australia-southeast2.rep.googleapis.com/", +"location": "australia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-central2.rep.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-north1.rep.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-southwest1.rep.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west10.rep.googleapis.com/", +"location": "europe-west10" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west12.rep.googleapis.com/", +"location": "europe-west12" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.me-central1.rep.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.northamerica-northeast1.rep.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.northamerica-northeast2.rep.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.southamerica-east1.rep.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.southamerica-west1.rep.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.us-west8.rep.googleapis.com/", +"location": "us-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://artifactregistry.me-central2.rep.googleapis.com/", +"location": "me-central2" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "artifactregistry:v1beta2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://artifactregistry.mtls.googleapis.com/", +"name": "artifactregistry", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"methods": { +"getProjectSettings": { +"description": "Retrieves the Settings for the Project.", +"flatPath": "v1beta2/projects/{projectsId}/projectSettings", +"httpMethod": "GET", +"id": "artifactregistry.projects.getProjectSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the projectSettings resource.", +"location": "path", +"pattern": "^projects/[^/]+/projectSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "ProjectSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"updateProjectSettings": { +"description": "Updates the Settings for the Project.", +"flatPath": "v1beta2/projects/{projectsId}/projectSettings", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.updateProjectSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the project's settings. Always of the form: projects/{project-id}/projectSettings In update request: never set In response: always set", +"location": "path", +"pattern": "^projects/[^/]+/projectSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Field mask to support partial updates.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "ProjectSettings" +}, +"response": { +"$ref": "ProjectSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta2/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"repositories": { +"methods": { +"create": { +"description": "Creates a repository. The returned Operation will finish once the repository has been created. Its response will be the created Repository.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource where the repository will be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"repositoryId": { +"description": "Required. The repository id to use for this repository.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+parent}/repositories", +"request": { +"$ref": "Repository" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a repository and all of its contents. The returned Operation will finish once the repository has been deleted. It will not have any Operation metadata and will return a google.protobuf.Empty response.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the repository to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a repository.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the repository to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Repository" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Gets the IAM policy for a given resource.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:getIamPolicy", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists repositories.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "Optional. The field to order the results by.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of repositories to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource whose repositories will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/repositories", +"response": { +"$ref": "ListRepositoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a repository.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.locations.repositories.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`. For each location in a project, repository names must be unique.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "Repository" +}, +"response": { +"$ref": "Repository" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Updates the IAM policy for a given resource.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:setIamPolicy", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Tests if the caller has a list of permissions on a resource.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:testIamPermissions", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"aptArtifacts": { +"methods": { +"import": { +"description": "Imports Apt artifacts. The returned Operation will complete once the resources are imported. Package, Version, and File resources are created based on the imported artifacts. Imported artifacts that conflict with existing resources are ignored.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/aptArtifacts:import", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.aptArtifacts.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The name of the parent resource where the artifacts will be imported.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/aptArtifacts:import", +"request": { +"$ref": "ImportAptArtifactsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upload": { +"description": "Directly uploads an Apt artifact. The returned Operation will complete once the resources are uploaded. Package, Version, and File resources are created based on the imported artifact. Imported artifacts that conflict with existing resources are ignored.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/aptArtifacts:create", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.aptArtifacts.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v1beta2/{+parent}/aptArtifacts:create" +} +} +}, +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The name of the parent resource where the artifacts will be uploaded.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/aptArtifacts:create", +"request": { +"$ref": "UploadAptArtifactRequest" +}, +"response": { +"$ref": "UploadAptArtifactMediaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +}, +"files": { +"methods": { +"download": { +"description": "Download a file.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files/{filesId}:download", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.files.download", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the file to download.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/files/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}:download", +"response": { +"$ref": "DownloadFileResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +], +"supportsMediaDownload": true, +"useMediaDownloadService": true +}, +"get": { +"description": "Gets a file.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files/{filesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.files.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the file to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/files/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "GoogleDevtoolsArtifactregistryV1beta2File" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists files.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.files.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are: * `name` * `owner` * `annotations` Examples of using a filter: To filter the results of your request to files with the name `my_file.txt` in project `my-project` in the `us-central` region, in repository `my-repo`, append the following filter expression to your request: * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/files/my-file.txt\"` You can also use wildcards to match any number of characters before or after the value: * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/files/my-*\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/files/*file.txt\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/files/*file*\"` To filter the results of your request to files owned by the version `1.0` in package `pkg1`, append the following filter expression to your request: * `owner=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0\"` To filter the results of your request to files with the annotation key-value pair [`external_link`: `external_link_value`], append the following filter expression to your request: * `\"annotations.external_link:external_link_value\"` To filter just for a specific annotation key `external_link`, append the following filter expression to your request: * `\"annotations.external_link\"` If the annotation key or value contains special characters, you can escape them by surrounding the value with backticks. For example, to filter the results of your request to files with the annotation key-value pair [`external.link`:`https://example.com/my-file`], append the following filter expression to your request: * `` \"annotations.`external.link`:`https://example.com/my-file`\" `` You can also filter with annotations with a wildcard to match any number of characters before or after the value: * `` \"annotations.*_link:`*example.com*`\" ``", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of files to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the repository whose files will be listed. For example: \"projects/p1/locations/us-central1/repositories/repo1", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/files", +"response": { +"$ref": "ListFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"packages": { +"methods": { +"delete": { +"description": "Deletes a package and all of its versions and tags. The returned operation will complete once the package has been deleted.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.packages.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the package to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a package.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the package to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Package" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists packages.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "Optional. The field to order the results by.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of packages to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource whose packages will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/packages", +"response": { +"$ref": "ListPackagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a package.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.locations.repositories.packages.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the package, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`. If the package ID part contains slashes, the slashes are escaped.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "Package" +}, +"response": { +"$ref": "Package" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"tags": { +"methods": { +"create": { +"description": "Creates a tag.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.packages.tags.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The name of the parent resource where the tag will be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +}, +"tagId": { +"description": "The tag id to use for this repository.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+parent}/tags", +"request": { +"$ref": "Tag" +}, +"response": { +"$ref": "Tag" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a tag.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags/{tagsId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.packages.tags.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the tag to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/tags/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a tag.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags/{tagsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.tags.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the tag to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/tags/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Tag" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists tags.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.tags.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are: * `name` * `version` Examples of using a filter: To filter the results of your request to tags with the name `my-tag` in package `my-package` in repository `my-repo` in project \"`y-project` in the us-central region, append the following filter expression to your request: * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my-tag\"` You can also use wildcards to match any number of characters before or after the value: * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my*\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag*\"` To filter the results of your request to tags applied to the version `1.0` in package `my-package`, append the following filter expression to your request: * `version=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0\"`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of tags to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The name of the parent package whose tags will be listed. For example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/tags", +"response": { +"$ref": "ListTagsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a tag.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/tags/{tagsId}", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.locations.repositories.packages.tags.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the tag, for example: \"projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1\". If the package part contains slashes, the slashes are escaped. The tag part can only have characters in [a-zA-Z0-9\\-._~:@], anything else must be URL encoded.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/tags/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "Tag" +}, +"response": { +"$ref": "Tag" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"versions": { +"methods": { +"delete": { +"description": "Deletes a version and all of its content. The returned operation will complete once the version has been deleted.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.packages.versions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "By default, a version that is tagged may not be deleted. If force=true, the version and any tags pointing to the version are deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The name of the version to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a version", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions/{versionsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the version to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The view that should be returned in the response.", +"enum": [ +"VERSION_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Includes basic information about the version, but not any related tags.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists versions.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "Optional. The field to order the results by.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of versions to return. Maximum page size is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The name of the parent resource whose versions will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The view that should be returned in the response.", +"enum": [ +"VERSION_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Includes basic information about the version, but not any related tags.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+parent}/versions", +"response": { +"$ref": "ListVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +} +} +}, +"yumArtifacts": { +"methods": { +"import": { +"description": "Imports Yum (RPM) artifacts. The returned Operation will complete once the resources are imported. Package, Version, and File resources are created based on the imported artifacts. Imported artifacts that conflict with existing resources are ignored.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/yumArtifacts:import", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.yumArtifacts.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The name of the parent resource where the artifacts will be imported.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/yumArtifacts:import", +"request": { +"$ref": "ImportYumArtifactsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upload": { +"description": "Directly uploads a Yum artifact. The returned Operation will complete once the resources are uploaded. Package, Version, and File resources are created based on the imported artifact. Imported artifacts that conflict with existing resources are ignored.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/yumArtifacts:create", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.yumArtifacts.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v1beta2/{+parent}/yumArtifacts:create" +} +} +}, +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The name of the parent resource where the artifacts will be uploaded.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/yumArtifacts:create", +"request": { +"$ref": "UploadYumArtifactRequest" +}, +"response": { +"$ref": "UploadYumArtifactMediaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +} +} +} +} +} +} +} +}, +"revision": "20241010", +"rootUrl": "https://artifactregistry.googleapis.com/", +"schemas": { +"AptArtifact": { +"description": "A detailed representation of an Apt artifact. Information in the record is derived from the archive's control file. See https://www.debian.org/doc/debian-policy/ch-controlfields.html", +"id": "AptArtifact", +"properties": { +"architecture": { +"description": "Output only. Operating system architecture of the artifact.", +"readOnly": true, +"type": "string" +}, +"component": { +"description": "Output only. Repository component of the artifact.", +"readOnly": true, +"type": "string" +}, +"controlFile": { +"description": "Output only. Contents of the artifact's control metadata file.", +"format": "byte", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The Artifact Registry resource name of the artifact.", +"readOnly": true, +"type": "string" +}, +"packageName": { +"description": "Output only. The Apt package name of the artifact.", +"readOnly": true, +"type": "string" +}, +"packageType": { +"description": "Output only. An artifact is a binary or source package.", +"enum": [ +"PACKAGE_TYPE_UNSPECIFIED", +"BINARY", +"SOURCE" +], +"enumDescriptions": [ +"Package type is not specified.", +"Binary package.", +"Source package." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"DownloadFileResponse": { +"description": "The response to download a file.", +"id": "DownloadFileResponse", +"properties": {}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1beta2File": { +"description": "Files store content that is potentially associated with Packages or Versions.", +"id": "GoogleDevtoolsArtifactregistryV1beta2File", +"properties": { +"createTime": { +"description": "Output only. The time when the File was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"hashes": { +"description": "The hashes of the file content.", +"items": { +"$ref": "Hash" +}, +"type": "array" +}, +"name": { +"description": "The name of the file, for example: `projects/p1/locations/us-central1/repositories/repo1/files/a%2Fb%2Fc.txt`. If the file ID part contains slashes, they are escaped.", +"type": "string" +}, +"owner": { +"description": "The name of the Package or Version that owns this file, if any.", +"type": "string" +}, +"sizeBytes": { +"description": "The size of the File in bytes.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the File was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Hash": { +"description": "A hash of file content.", +"id": "Hash", +"properties": { +"type": { +"description": "The algorithm used to compute the hash value.", +"enum": [ +"HASH_TYPE_UNSPECIFIED", +"SHA256", +"MD5" +], +"enumDescriptions": [ +"Unspecified.", +"SHA256 hash.", +"MD5 hash." +], +"type": "string" +}, +"value": { +"description": "The hash value.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ImportAptArtifactsErrorInfo": { +"description": "Error information explaining why a package was not imported.", +"id": "ImportAptArtifactsErrorInfo", +"properties": { +"error": { +"$ref": "Status", +"description": "The detailed error status." +}, +"gcsSource": { +"$ref": "ImportAptArtifactsGcsSource", +"description": "Google Cloud Storage location requested." +} +}, +"type": "object" +}, +"ImportAptArtifactsGcsSource": { +"description": "Google Cloud Storage location where the artifacts currently reside.", +"id": "ImportAptArtifactsGcsSource", +"properties": { +"uris": { +"description": "Cloud Storage paths URI (e.g., gs://my_bucket//my_object).", +"items": { +"type": "string" +}, +"type": "array" +}, +"useWildcards": { +"description": "Supports URI wildcards for matching multiple objects from a single URI.", +"type": "boolean" +} +}, +"type": "object" +}, +"ImportAptArtifactsMetadata": { +"description": "The operation metadata for importing artifacts.", +"id": "ImportAptArtifactsMetadata", +"properties": {}, +"type": "object" +}, +"ImportAptArtifactsRequest": { +"description": "The request to import new apt artifacts.", +"id": "ImportAptArtifactsRequest", +"properties": { +"gcsSource": { +"$ref": "ImportAptArtifactsGcsSource", +"description": "Google Cloud Storage location where input content is located." +} +}, +"type": "object" +}, +"ImportAptArtifactsResponse": { +"description": "The response message from importing APT artifacts.", +"id": "ImportAptArtifactsResponse", +"properties": { +"aptArtifacts": { +"description": "The Apt artifacts imported.", +"items": { +"$ref": "AptArtifact" +}, +"type": "array" +}, +"errors": { +"description": "Detailed error info for packages that were not imported.", +"items": { +"$ref": "ImportAptArtifactsErrorInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"ImportYumArtifactsErrorInfo": { +"description": "Error information explaining why a package was not imported.", +"id": "ImportYumArtifactsErrorInfo", +"properties": { +"error": { +"$ref": "Status", +"description": "The detailed error status." +}, +"gcsSource": { +"$ref": "ImportYumArtifactsGcsSource", +"description": "Google Cloud Storage location requested." +} +}, +"type": "object" +}, +"ImportYumArtifactsGcsSource": { +"description": "Google Cloud Storage location where the artifacts currently reside.", +"id": "ImportYumArtifactsGcsSource", +"properties": { +"uris": { +"description": "Cloud Storage paths URI (e.g., gs://my_bucket//my_object).", +"items": { +"type": "string" +}, +"type": "array" +}, +"useWildcards": { +"description": "Supports URI wildcards for matching multiple objects from a single URI.", +"type": "boolean" +} +}, +"type": "object" +}, +"ImportYumArtifactsMetadata": { +"description": "The operation metadata for importing artifacts.", +"id": "ImportYumArtifactsMetadata", +"properties": {}, +"type": "object" +}, +"ImportYumArtifactsRequest": { +"description": "The request to import new yum artifacts.", +"id": "ImportYumArtifactsRequest", +"properties": { +"gcsSource": { +"$ref": "ImportYumArtifactsGcsSource", +"description": "Google Cloud Storage location where input content is located." +} +}, +"type": "object" +}, +"ImportYumArtifactsResponse": { +"description": "The response message from importing YUM artifacts.", +"id": "ImportYumArtifactsResponse", +"properties": { +"errors": { +"description": "Detailed error info for packages that were not imported.", +"items": { +"$ref": "ImportYumArtifactsErrorInfo" +}, +"type": "array" +}, +"yumArtifacts": { +"description": "The yum artifacts imported.", +"items": { +"$ref": "YumArtifact" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListFilesResponse": { +"description": "The response from listing files.", +"id": "ListFilesResponse", +"properties": { +"files": { +"description": "The files returned.", +"items": { +"$ref": "GoogleDevtoolsArtifactregistryV1beta2File" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token to retrieve the next page of files, or empty if there are no more files to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListPackagesResponse": { +"description": "The response from listing packages.", +"id": "ListPackagesResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of packages, or empty if there are no more packages to return.", +"type": "string" +}, +"packages": { +"description": "The packages returned.", +"items": { +"$ref": "Package" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRepositoriesResponse": { +"description": "The response from listing repositories.", +"id": "ListRepositoriesResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of repositories, or empty if there are no more repositories to return.", +"type": "string" +}, +"repositories": { +"description": "The repositories returned.", +"items": { +"$ref": "Repository" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTagsResponse": { +"description": "The response from listing tags.", +"id": "ListTagsResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of tags, or empty if there are no more tags to return.", +"type": "string" +}, +"tags": { +"description": "The tags returned.", +"items": { +"$ref": "Tag" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVersionsResponse": { +"description": "The response from listing versions.", +"id": "ListVersionsResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of versions, or empty if there are no more versions to return.", +"type": "string" +}, +"versions": { +"description": "The versions returned.", +"items": { +"$ref": "Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"MavenRepositoryConfig": { +"description": "MavenRepositoryConfig is maven related repository details. Provides additional configuration details for repositories of the maven format type.", +"id": "MavenRepositoryConfig", +"properties": { +"allowSnapshotOverwrites": { +"description": "The repository with this flag will allow publishing the same snapshot versions.", +"type": "boolean" +}, +"versionPolicy": { +"description": "Version policy defines the versions that the registry will accept.", +"enum": [ +"VERSION_POLICY_UNSPECIFIED", +"RELEASE", +"SNAPSHOT" +], +"enumDescriptions": [ +"VERSION_POLICY_UNSPECIFIED - the version policy is not defined. When the version policy is not defined, no validation is performed for the versions.", +"RELEASE - repository will accept only Release versions.", +"SNAPSHOT - repository will accept only Snapshot versions." +], +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Metadata type for longrunning-operations, currently empty.", +"id": "OperationMetadata", +"properties": {}, +"type": "object" +}, +"Package": { +"description": "Packages are named collections of versions.", +"id": "Package", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Client specified annotations.", +"type": "object" +}, +"createTime": { +"description": "The time when the package was created.", +"format": "google-datetime", +"type": "string" +}, +"displayName": { +"description": "The display name of the package.", +"type": "string" +}, +"name": { +"description": "The name of the package, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`. If the package ID part contains slashes, the slashes are escaped.", +"type": "string" +}, +"updateTime": { +"description": "The time when the package was last updated. This includes publishing a new version of the package.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ProjectSettings": { +"description": "The Artifact Registry settings that apply to a Project.", +"id": "ProjectSettings", +"properties": { +"legacyRedirectionState": { +"description": "The redirection state of the legacy repositories in this project.", +"enum": [ +"REDIRECTION_STATE_UNSPECIFIED", +"REDIRECTION_FROM_GCR_IO_DISABLED", +"REDIRECTION_FROM_GCR_IO_ENABLED", +"REDIRECTION_FROM_GCR_IO_FINALIZED", +"REDIRECTION_FROM_GCR_IO_ENABLED_AND_COPYING", +"REDIRECTION_FROM_GCR_IO_PARTIAL_AND_COPYING" +], +"enumDeprecated": [ +false, +false, +false, +true, +false, +false +], +"enumDescriptions": [ +"No redirection status has been set.", +"Redirection is disabled.", +"Redirection is enabled.", +"Redirection is enabled, and has been finalized so cannot be reverted.", +"Redirection is enabled and missing images are copied from GCR", +"Redirection is partially enabled and missing images are copied from GCR" +], +"type": "string" +}, +"name": { +"description": "The name of the project's settings. Always of the form: projects/{project-id}/projectSettings In update request: never set In response: always set", +"type": "string" +}, +"pullPercent": { +"description": "The percentage of pull traffic to redirect from GCR to AR when using partial redirection.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Repository": { +"description": "A Repository for storing artifacts with a specific format.", +"id": "Repository", +"properties": { +"createTime": { +"description": "Output only. The time when the repository was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "The user-provided description of the repository.", +"type": "string" +}, +"format": { +"description": "Optional. The format of packages that are stored in the repository.", +"enum": [ +"FORMAT_UNSPECIFIED", +"DOCKER", +"MAVEN", +"NPM", +"APT", +"YUM", +"GOOGET", +"PYTHON" +], +"enumDescriptions": [ +"Unspecified package format.", +"Docker package format.", +"Maven package format.", +"NPM package format.", +"APT package format.", +"YUM package format.", +"GooGet package format.", +"Python package format." +], +"type": "string" +}, +"kmsKeyName": { +"description": "The Cloud KMS resource name of the customer managed encryption key that's used to encrypt the contents of the Repository. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. This value may not be changed after the Repository has been created.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels with user-defined metadata. This field may contain up to 64 entries. Label keys and values may be no longer than 63 characters. Label keys must begin with a lowercase letter and may only contain lowercase letters, numeric characters, underscores, and dashes.", +"type": "object" +}, +"mavenConfig": { +"$ref": "MavenRepositoryConfig", +"description": "Maven repository config contains repository level configuration for the repositories of maven type." +}, +"name": { +"description": "The name of the repository, for example: `projects/p1/locations/us-central1/repositories/repo1`. For each location in a project, repository names must be unique.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. If set, the repository satisfies physical zone isolation.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. If set, the repository satisfies physical zone separation.", +"readOnly": true, +"type": "boolean" +}, +"sizeBytes": { +"description": "Output only. The size, in bytes, of all artifact storage in this repository. Repositories that are generally available or in public preview use this to calculate storage costs.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the repository was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Tag": { +"description": "Tags point to a version and represent an alternative name that can be used to access the version.", +"id": "Tag", +"properties": { +"name": { +"description": "The name of the tag, for example: \"projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1\". If the package part contains slashes, the slashes are escaped. The tag part can only have characters in [a-zA-Z0-9\\-._~:@], anything else must be URL encoded.", +"type": "string" +}, +"version": { +"description": "The name of the version the tag refers to, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/sha256:5243811` If the package or version ID parts contain slashes, the slashes are escaped.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UploadAptArtifactMediaResponse": { +"description": "The response to upload an artifact.", +"id": "UploadAptArtifactMediaResponse", +"properties": { +"operation": { +"$ref": "Operation", +"description": "Operation to be returned to the user." +} +}, +"type": "object" +}, +"UploadAptArtifactMetadata": { +"description": "The operation metadata for uploading artifacts.", +"id": "UploadAptArtifactMetadata", +"properties": {}, +"type": "object" +}, +"UploadAptArtifactRequest": { +"description": "The request to upload an artifact.", +"id": "UploadAptArtifactRequest", +"properties": {}, +"type": "object" +}, +"UploadAptArtifactResponse": { +"description": "The response of the completed artifact upload operation. This response is contained in the Operation and available to users.", +"id": "UploadAptArtifactResponse", +"properties": { +"aptArtifacts": { +"description": "The Apt artifacts updated.", +"items": { +"$ref": "AptArtifact" +}, +"type": "array" +} +}, +"type": "object" +}, +"UploadYumArtifactMediaResponse": { +"description": "The response to upload an artifact.", +"id": "UploadYumArtifactMediaResponse", +"properties": { +"operation": { +"$ref": "Operation", +"description": "Operation to be returned to the user." +} +}, +"type": "object" +}, +"UploadYumArtifactMetadata": { +"description": "The operation metadata for uploading artifacts.", +"id": "UploadYumArtifactMetadata", +"properties": {}, +"type": "object" +}, +"UploadYumArtifactRequest": { +"description": "The request to upload an artifact.", +"id": "UploadYumArtifactRequest", +"properties": {}, +"type": "object" +}, +"UploadYumArtifactResponse": { +"description": "The response of the completed artifact upload operation. This response is contained in the Operation and available to users.", +"id": "UploadYumArtifactResponse", +"properties": { +"yumArtifacts": { +"description": "The Yum artifacts updated.", +"items": { +"$ref": "YumArtifact" +}, +"type": "array" +} +}, +"type": "object" +}, +"Version": { +"description": "The body of a version resource. A version resource represents a collection of components, such as files and other data. This may correspond to a version in many package management schemes.", +"id": "Version", +"properties": { +"createTime": { +"description": "The time when the version was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "Optional. Description of the version, as specified in its metadata.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Output only. Repository-specific Metadata stored against this version. The fields returned are defined by the underlying repository-specific resource. Currently, the resources could be: DockerImage MavenArtifact", +"readOnly": true, +"type": "object" +}, +"name": { +"description": "The name of the version, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/art1`. If the package or version ID parts contain slashes, the slashes are escaped.", +"type": "string" +}, +"relatedTags": { +"description": "Output only. A list of related tags. Will contain up to 100 tags that reference this version.", +"items": { +"$ref": "Tag" +}, +"type": "array" +}, +"updateTime": { +"description": "The time when the version was last updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"YumArtifact": { +"description": "A detailed representation of a Yum artifact.", +"id": "YumArtifact", +"properties": { +"architecture": { +"description": "Output only. Operating system architecture of the artifact.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The Artifact Registry resource name of the artifact.", +"readOnly": true, +"type": "string" +}, +"packageName": { +"description": "Output only. The yum package name of the artifact.", +"readOnly": true, +"type": "string" +}, +"packageType": { +"description": "Output only. An artifact is a binary or source package.", +"enum": [ +"PACKAGE_TYPE_UNSPECIFIED", +"BINARY", +"SOURCE" +], +"enumDescriptions": [ +"Package type is not specified.", +"Binary package (.rpm).", +"Source package (.srpm)." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Artifact Registry API", +"version": "v1beta2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/assuredworkloads.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/assuredworkloads.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..83d7eca0abf630d5f6356552dfcabc7a45b290c8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/assuredworkloads.v1.json @@ -0,0 +1,1776 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://assuredworkloads.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Assuredworkloads", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/learnmoreurl", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "assuredworkloads:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://assuredworkloads.mtls.googleapis.com/", +"name": "assuredworkloads", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"organizations": { +"resources": { +"locations": { +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "assuredworkloads.organizations.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "assuredworkloads.organizations.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workloads": { +"methods": { +"analyzeWorkloadMove": { +"description": "Analyzes a hypothetical move of a source resource to a target workload to surface compliance risks. The analysis is best effort and is not guaranteed to be exhaustive.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}:analyzeWorkloadMove", +"httpMethod": "GET", +"id": "assuredworkloads.organizations.locations.workloads.analyzeWorkloadMove", +"parameterOrder": [ +"target" +], +"parameters": { +"assetTypes": { +"description": "Optional. List of asset types to be analyzed, including and under the source resource. If empty, all assets are analyzed. The complete list of asset types is available [here](https://cloud.google.com/asset-inventory/docs/supported-asset-types).", +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Page size. If a value is not specified, the default value of 10 is used.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The page token from the previous response. It needs to be passed in the second and following requests.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The source type is a project. Specify the project's relative resource name, formatted as either a project number or a project ID: \"projects/{PROJECT_NUMBER}\" or \"projects/{PROJECT_ID}\" For example: \"projects/951040570662\" when specifying a project number, or \"projects/my-project-123\" when specifying a project ID.", +"location": "query", +"type": "string" +}, +"target": { +"description": "Required. The resource ID of the folder-based destination workload. This workload is where the source resource will hypothetically be moved to. Specify the workload's relative resource name, formatted as: \"organizations/{ORGANIZATION_ID}/locations/{LOCATION_ID}/workloads/{WORKLOAD_ID}\" For example: \"organizations/123/locations/us-east1/workloads/assured-workload-2\"", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+target}:analyzeWorkloadMove", +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1AnalyzeWorkloadMoveResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates Assured Workload.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads", +"httpMethod": "POST", +"id": "assuredworkloads.organizations.locations.workloads.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"externalId": { +"description": "Optional. A identifier associated with the workload and underlying projects which allows for the break down of billing costs for a workload. The value provided for the identifier will add a label to the workload and contained projects with the identifier as the value.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the new Workload's parent. Must be of the form `organizations/{org_id}/locations/{location_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/workloads", +"request": { +"$ref": "GoogleCloudAssuredworkloadsV1Workload" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the workload. Make sure that workload's direct children are already in a deleted state, otherwise the request will fail with a FAILED_PRECONDITION error. In addition to assuredworkloads.workload.delete permission, the user should also have orgpolicy.policy.set permission on the deleted folder to remove Assured Workloads OrgPolicies.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}", +"httpMethod": "DELETE", +"id": "assuredworkloads.organizations.locations.workloads.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The etag of the workload. If this is provided, it must match the server's etag.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The `name` field is used to identify the workload. Format: organizations/{org_id}/locations/{location_id}/workloads/{workload_id}", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enableResourceMonitoring": { +"description": "Enable resource violation monitoring for a workload.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}:enableResourceMonitoring", +"httpMethod": "POST", +"id": "assuredworkloads.organizations.locations.workloads.enableResourceMonitoring", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The `name` field is used to identify the workload. Format: organizations/{org_id}/locations/{location_id}/workloads/{workload_id}", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:enableResourceMonitoring", +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets Assured Workload associated with a CRM Node", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}", +"httpMethod": "GET", +"id": "assuredworkloads.organizations.locations.workloads.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Workload to fetch. This is the workloads's relative path in the API, formatted as \"organizations/{organization_id}/locations/{location_id}/workloads/{workload_id}\". For example, \"organizations/123/locations/us-east1/workloads/assured-workload-1\".", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1Workload" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Assured Workloads under a CRM Node.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads", +"httpMethod": "GET", +"id": "assuredworkloads.organizations.locations.workloads.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A custom filter for filtering by properties of a workload. At this time, only filtering by labels is supported.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token returned from previous request. Page token contains context from previous request. Page token needs to be passed in the second and following requests.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent Resource to list workloads from. Must be of the form `organizations/{org_id}/locations/{location}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/workloads", +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1ListWorkloadsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"mutatePartnerPermissions": { +"description": "Update the permissions settings for an existing partner workload. For force updates don't set etag field in the Workload. Only one update operation per workload can be in progress.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}:mutatePartnerPermissions", +"httpMethod": "PATCH", +"id": "assuredworkloads.organizations.locations.workloads.mutatePartnerPermissions", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The `name` field is used to identify the workload. Format: organizations/{org_id}/locations/{location_id}/workloads/{workload_id}", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:mutatePartnerPermissions", +"request": { +"$ref": "GoogleCloudAssuredworkloadsV1MutatePartnerPermissionsRequest" +}, +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1Workload" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing workload. Currently allows updating of workload display_name and labels. For force updates don't set etag field in the Workload. Only one update operation per workload can be in progress.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}", +"httpMethod": "PATCH", +"id": "assuredworkloads.organizations.locations.workloads.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudAssuredworkloadsV1Workload" +}, +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1Workload" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restrictAllowedResources": { +"description": "Restrict the list of resources allowed in the Workload environment. The current list of allowed products can be found at https://cloud.google.com/assured-workloads/docs/supported-products In addition to assuredworkloads.workload.update permission, the user should also have orgpolicy.policy.set permission on the folder resource to use this functionality.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}:restrictAllowedResources", +"httpMethod": "POST", +"id": "assuredworkloads.organizations.locations.workloads.restrictAllowedResources", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Workload. This is the workloads's relative path in the API, formatted as \"organizations/{organization_id}/locations/{location_id}/workloads/{workload_id}\". For example, \"organizations/123/locations/us-east1/workloads/assured-workload-1\".", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:restrictAllowedResources", +"request": { +"$ref": "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesRequest" +}, +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"violations": { +"methods": { +"acknowledge": { +"description": "Acknowledges an existing violation. By acknowledging a violation, users acknowledge the existence of a compliance violation in their workload and decide to ignore it due to a valid business justification. Acknowledgement is a permanent operation and it cannot be reverted.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}/violations/{violationsId}:acknowledge", +"httpMethod": "POST", +"id": "assuredworkloads.organizations.locations.workloads.violations.acknowledge", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Violation to acknowledge. Format: organizations/{organization}/locations/{location}/workloads/{workload}/violations/{violation}", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+/violations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:acknowledge", +"request": { +"$ref": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest" +}, +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves Assured Workload Violation based on ID.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}/violations/{violationsId}", +"httpMethod": "GET", +"id": "assuredworkloads.organizations.locations.workloads.violations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Violation to fetch (ie. Violation.name). Format: organizations/{organization}/locations/{location}/workloads/{workload}/violations/{violation}", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+/violations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1Violation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Violations in the AssuredWorkload Environment. Callers may also choose to read across multiple Workloads as per [AIP-159](https://google.aip.dev/159) by using '-' (the hyphen or dash character) as a wildcard character instead of workload-id in the parent. Format `organizations/{org_id}/locations/{location}/workloads/-`", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}/violations", +"httpMethod": "GET", +"id": "assuredworkloads.organizations.locations.workloads.violations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A custom filter for filtering by the Violations properties.", +"location": "query", +"type": "string" +}, +"interval.endTime": { +"description": "The end of the time window.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"interval.startTime": { +"description": "The start of the time window.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token returned from previous request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Workload name. Format `organizations/{org_id}/locations/{location}/workloads/{workload}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/violations", +"response": { +"$ref": "GoogleCloudAssuredworkloadsV1ListViolationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241206", +"rootUrl": "https://assuredworkloads.googleapis.com/", +"schemas": { +"GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest": { +"description": "Request for acknowledging the violation", +"id": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest", +"properties": { +"acknowledgeType": { +"description": "Optional. Acknowledge type of specified violation.", +"enum": [ +"ACKNOWLEDGE_TYPE_UNSPECIFIED", +"SINGLE_VIOLATION", +"EXISTING_CHILD_RESOURCE_VIOLATIONS" +], +"enumDescriptions": [ +"Acknowledge type unspecified.", +"Acknowledge only the specific violation.", +"Acknowledge specified orgPolicy violation and also associated resource violations." +], +"type": "string" +}, +"comment": { +"description": "Required. Business justification explaining the need for violation acknowledgement", +"type": "string" +}, +"nonCompliantOrgPolicy": { +"deprecated": true, +"description": "Optional. This field is deprecated and will be removed in future version of the API. Name of the OrgPolicy which was modified with non-compliant change and resulted in this violation. Format: projects/{project_number}/policies/{constraint_name} folders/{folder_id}/policies/{constraint_name} organizations/{organization_id}/policies/{constraint_name}", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1AcknowledgeViolationResponse": { +"description": "Response for violation acknowledgement", +"id": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1AnalyzeWorkloadMoveResponse": { +"description": "Response containing the analysis results for the hypothetical resource move.", +"id": "GoogleCloudAssuredworkloadsV1AnalyzeWorkloadMoveResponse", +"properties": { +"assetMoveAnalyses": { +"description": "List of analysis results for each asset in scope.", +"items": { +"$ref": "GoogleCloudAssuredworkloadsV1AssetMoveAnalysis" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The next page token. Is empty if the last page is reached.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1AssetMoveAnalysis": { +"description": "Represents move analysis results for an asset.", +"id": "GoogleCloudAssuredworkloadsV1AssetMoveAnalysis", +"properties": { +"analysisGroups": { +"description": "List of eligible analyses performed for the asset.", +"items": { +"$ref": "GoogleCloudAssuredworkloadsV1MoveAnalysisGroup" +}, +"type": "array" +}, +"asset": { +"description": "The full resource name of the asset being analyzed. Example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1", +"type": "string" +}, +"assetType": { +"description": "Type of the asset being analyzed. Possible values will be among the ones listed [here](https://cloud.google.com/asset-inventory/docs/supported-asset-types).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1CreateWorkloadOperationMetadata": { +"description": "Operation metadata to give request details of CreateWorkload.", +"id": "GoogleCloudAssuredworkloadsV1CreateWorkloadOperationMetadata", +"properties": { +"complianceRegime": { +"description": "Optional. Compliance controls that should be applied to the resources managed by the workload.", +"enum": [ +"COMPLIANCE_REGIME_UNSPECIFIED", +"IL4", +"CJIS", +"FEDRAMP_HIGH", +"FEDRAMP_MODERATE", +"US_REGIONAL_ACCESS", +"HIPAA", +"HITRUST", +"EU_REGIONS_AND_SUPPORT", +"CA_REGIONS_AND_SUPPORT", +"ITAR", +"AU_REGIONS_AND_US_SUPPORT", +"ASSURED_WORKLOADS_FOR_PARTNERS", +"ISR_REGIONS", +"ISR_REGIONS_AND_SUPPORT", +"CA_PROTECTED_B", +"IL5", +"IL2", +"JP_REGIONS_AND_SUPPORT", +"KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS", +"REGIONAL_CONTROLS", +"HEALTHCARE_AND_LIFE_SCIENCES_CONTROLS", +"HEALTHCARE_AND_LIFE_SCIENCES_CONTROLS_US_SUPPORT", +"IRS_1075", +"CANADA_CONTROLLED_GOODS" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unknown compliance regime.", +"Information protection as per DoD IL4 requirements.", +"Criminal Justice Information Services (CJIS) Security policies.", +"FedRAMP High data protection controls", +"FedRAMP Moderate data protection controls", +"Assured Workloads For US Regions data protection controls", +"[DEPRECATED] Health Insurance Portability and Accountability Act controls", +"[DEPRECATED] Health Information Trust Alliance controls", +"Assured Workloads For EU Regions and Support controls", +"Assured Workloads For Canada Regions and Support controls", +"International Traffic in Arms Regulations", +"Assured Workloads for Australia Regions and Support controls", +"Assured Workloads for Partners;", +"Assured Workloads for Israel Regions", +"Assured Workloads for Israel Regions", +"Assured Workloads for Canada Protected B regime", +"Information protection as per DoD IL5 requirements.", +"Information protection as per DoD IL2 requirements.", +"Assured Workloads for Japan Regions", +"Assured Workloads Sovereign Controls KSA", +"Assured Workloads for Regional Controls", +"Healthcare and Life Science Controls", +"Healthcare and Life Science Controls with US Support", +"Internal Revenue Service 1075 controls", +"Canada Controlled Goods" +], +"type": "string" +}, +"createTime": { +"description": "Optional. Time when the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"displayName": { +"description": "Optional. The display name of the workload.", +"type": "string" +}, +"parent": { +"description": "Optional. The parent of the workload.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse": { +"description": "Response for EnableResourceMonitoring endpoint.", +"id": "GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1ListViolationsResponse": { +"description": "Response of ListViolations endpoint.", +"id": "GoogleCloudAssuredworkloadsV1ListViolationsResponse", +"properties": { +"nextPageToken": { +"description": "The next page token. Returns empty if reached the last page.", +"type": "string" +}, +"violations": { +"description": "List of Violations under a Workload.", +"items": { +"$ref": "GoogleCloudAssuredworkloadsV1Violation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1ListWorkloadsResponse": { +"description": "Response of ListWorkloads endpoint.", +"id": "GoogleCloudAssuredworkloadsV1ListWorkloadsResponse", +"properties": { +"nextPageToken": { +"description": "The next page token. Return empty if reached the last page.", +"type": "string" +}, +"workloads": { +"description": "List of Workloads under a given parent.", +"items": { +"$ref": "GoogleCloudAssuredworkloadsV1Workload" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1MoveAnalysisGroup": { +"description": "Represents a logical group of checks performed for an asset. If successful, the group contains the analysis result, otherwise it contains an error with the failure reason.", +"id": "GoogleCloudAssuredworkloadsV1MoveAnalysisGroup", +"properties": { +"analysisResult": { +"$ref": "GoogleCloudAssuredworkloadsV1MoveAnalysisResult", +"description": "Result of a successful analysis." +}, +"displayName": { +"description": "Name of the analysis group.", +"type": "string" +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "Error details for a failed analysis." +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1MoveAnalysisResult": { +"description": "Represents the successful move analysis results for a group.", +"id": "GoogleCloudAssuredworkloadsV1MoveAnalysisResult", +"properties": { +"blockers": { +"description": "List of blockers. If not resolved, these will result in compliance violations in the target.", +"items": { +"$ref": "GoogleCloudAssuredworkloadsV1MoveImpact" +}, +"type": "array" +}, +"warnings": { +"description": "List of warnings. These are risks that may or may not result in compliance violations.", +"items": { +"$ref": "GoogleCloudAssuredworkloadsV1MoveImpact" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1MoveImpact": { +"description": "Represents the impact of moving the asset to the target.", +"id": "GoogleCloudAssuredworkloadsV1MoveImpact", +"properties": { +"detail": { +"description": "Explanation of the impact.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1MutatePartnerPermissionsRequest": { +"description": "Request for updating permission settings for a partner workload.", +"id": "GoogleCloudAssuredworkloadsV1MutatePartnerPermissionsRequest", +"properties": { +"etag": { +"description": "Optional. The etag of the workload. If this is provided, it must match the server's etag.", +"type": "string" +}, +"partnerPermissions": { +"$ref": "GoogleCloudAssuredworkloadsV1WorkloadPartnerPermissions", +"description": "Required. The partner permissions to be updated." +}, +"updateMask": { +"description": "Required. The list of fields to be updated. E.g. update_mask { paths: \"partner_permissions.data_logs_viewer\"}", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesRequest": { +"description": "Request for restricting list of available resources in Workload environment.", +"id": "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesRequest", +"properties": { +"restrictionType": { +"description": "Required. The type of restriction for using gcp products in the Workload environment.", +"enum": [ +"RESTRICTION_TYPE_UNSPECIFIED", +"ALLOW_ALL_GCP_RESOURCES", +"ALLOW_COMPLIANT_RESOURCES", +"APPEND_COMPLIANT_RESOURCES" +], +"enumDescriptions": [ +"Unknown restriction type.", +"Allow the use all of all gcp products, irrespective of the compliance posture. This effectively removes gcp.restrictServiceUsage OrgPolicy on the AssuredWorkloads Folder.", +"Based on Workload's compliance regime, allowed list changes. See - https://cloud.google.com/assured-workloads/docs/supported-products for the list of supported resources.", +"Similar to ALLOW_COMPLIANT_RESOURCES but adds the list of compliant resources to the existing list of compliant resources. Effective org-policy of the Folder is considered to ensure there is no disruption to the existing customer workflows." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesResponse": { +"description": "Response for restricting the list of allowed resources.", +"id": "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1Violation": { +"description": "Workload monitoring Violation.", +"id": "GoogleCloudAssuredworkloadsV1Violation", +"properties": { +"acknowledged": { +"description": "A boolean that indicates if the violation is acknowledged", +"type": "boolean" +}, +"acknowledgementTime": { +"description": "Optional. Timestamp when this violation was acknowledged first. Check exception_contexts to find the last time the violation was acknowledged when there are more than one violations. This field will be absent when acknowledged field is marked as false.", +"format": "google-datetime", +"type": "string" +}, +"associatedOrgPolicyViolationId": { +"description": "Optional. Output only. Violation Id of the org-policy violation due to which the resource violation is caused. Empty for org-policy violations.", +"readOnly": true, +"type": "string" +}, +"auditLogLink": { +"description": "Output only. Immutable. Audit Log Link for violated resource Format: https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{timeRange}{folder}", +"readOnly": true, +"type": "string" +}, +"beginTime": { +"description": "Output only. Time of the event which triggered the Violation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"category": { +"description": "Output only. Category under which this violation is mapped. e.g. Location, Service Usage, Access, Encryption, etc.", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Output only. Description for the Violation. e.g. OrgPolicy gcp.resourceLocations has non compliant value.", +"readOnly": true, +"type": "string" +}, +"exceptionAuditLogLink": { +"description": "Output only. Immutable. Audit Log link to find business justification provided for violation exception. Format: https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{protoPayload.methodName}{timeRange}{organization}", +"readOnly": true, +"type": "string" +}, +"exceptionContexts": { +"description": "Output only. List of all the exception detail added for the violation.", +"items": { +"$ref": "GoogleCloudAssuredworkloadsV1ViolationExceptionContext" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. Immutable. Name of the Violation. Format: organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}", +"readOnly": true, +"type": "string" +}, +"nonCompliantOrgPolicy": { +"description": "Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and resulted this violation. Format: projects/{project_number}/policies/{constraint_name} folders/{folder_id}/policies/{constraint_name} organizations/{organization_id}/policies/{constraint_name}", +"readOnly": true, +"type": "string" +}, +"orgPolicyConstraint": { +"deprecated": true, +"description": "Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in this violation.", +"readOnly": true, +"type": "string" +}, +"parentProjectNumber": { +"description": "Optional. Output only. Parent project number where resource is present. Empty for org-policy violations.", +"readOnly": true, +"type": "string" +}, +"remediation": { +"$ref": "GoogleCloudAssuredworkloadsV1ViolationRemediation", +"description": "Output only. Compliance violation remediation", +"readOnly": true +}, +"resolveTime": { +"description": "Output only. Time of the event which fixed the Violation. If the violation is ACTIVE this will be empty.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Optional. Output only. Name of the resource like //storage.googleapis.com/myprojectxyz-testbucket. Empty for org-policy violations.", +"readOnly": true, +"type": "string" +}, +"resourceType": { +"description": "Optional. Output only. Type of the resource like compute.googleapis.com/Disk, etc. Empty for org-policy violations.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the violation", +"enum": [ +"STATE_UNSPECIFIED", +"RESOLVED", +"UNRESOLVED", +"EXCEPTION" +], +"enumDescriptions": [ +"Unspecified state.", +"Violation is resolved.", +"Violation is Unresolved", +"Violation is Exception" +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The last time when the Violation record was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"violationType": { +"description": "Output only. Type of the violation", +"enum": [ +"VIOLATION_TYPE_UNSPECIFIED", +"ORG_POLICY", +"RESOURCE" +], +"enumDescriptions": [ +"Unspecified type.", +"Org Policy Violation.", +"Resource Violation." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1ViolationExceptionContext": { +"description": "Violation exception detail.", +"id": "GoogleCloudAssuredworkloadsV1ViolationExceptionContext", +"properties": { +"acknowledgementTime": { +"description": "Timestamp when the violation was acknowledged.", +"format": "google-datetime", +"type": "string" +}, +"comment": { +"description": "Business justification provided towards the acknowledgement of the violation.", +"type": "string" +}, +"userName": { +"description": "Name of the user (or service account) who acknowledged the violation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1ViolationRemediation": { +"description": "Represents remediation guidance to resolve compliance violation for AssuredWorkload", +"id": "GoogleCloudAssuredworkloadsV1ViolationRemediation", +"properties": { +"compliantValues": { +"description": "Values that can resolve the violation For example: for list org policy violations, this will either be the list of allowed or denied values", +"items": { +"type": "string" +}, +"type": "array" +}, +"instructions": { +"$ref": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructions", +"description": "Required. Remediation instructions to resolve violations" +}, +"remediationType": { +"description": "Output only. Reemediation type based on the type of org policy values violated", +"enum": [ +"REMEDIATION_TYPE_UNSPECIFIED", +"REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION", +"REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION", +"REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION", +"REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION", +"REMEDIATION_RESOURCE_VIOLATION", +"REMEDIATION_RESOURCE_VIOLATION_NON_CMEK_SERVICES" +], +"enumDescriptions": [ +"Unspecified remediation type", +"Remediation type for boolean org policy", +"Remediation type for list org policy which have allowed values in the monitoring rule", +"Remediation type for list org policy which have denied values in the monitoring rule", +"Remediation type for gcp.restrictCmekCryptoKeyProjects", +"Remediation type for resource violation.", +"Remediation type for resource violation due to gcp.restrictNonCmekServices" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1ViolationRemediationInstructions": { +"description": "Instructions to remediate violation", +"id": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructions", +"properties": { +"consoleInstructions": { +"$ref": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsConsole", +"description": "Remediation instructions to resolve violation via cloud console" +}, +"gcloudInstructions": { +"$ref": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsGcloud", +"description": "Remediation instructions to resolve violation via gcloud cli" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsConsole": { +"description": "Remediation instructions to resolve violation via cloud console", +"id": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsConsole", +"properties": { +"additionalLinks": { +"description": "Additional urls for more information about steps", +"items": { +"type": "string" +}, +"type": "array" +}, +"consoleUris": { +"description": "Link to console page where violations can be resolved", +"items": { +"type": "string" +}, +"type": "array" +}, +"steps": { +"description": "Steps to resolve violation via cloud console", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsGcloud": { +"description": "Remediation instructions to resolve violation via gcloud cli", +"id": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsGcloud", +"properties": { +"additionalLinks": { +"description": "Additional urls for more information about steps", +"items": { +"type": "string" +}, +"type": "array" +}, +"gcloudCommands": { +"description": "Gcloud command to resolve violation", +"items": { +"type": "string" +}, +"type": "array" +}, +"steps": { +"description": "Steps to resolve violation via gcloud cli", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1Workload": { +"description": "A Workload object for managing highly regulated workloads of cloud customers.", +"id": "GoogleCloudAssuredworkloadsV1Workload", +"properties": { +"billingAccount": { +"description": "Optional. The billing account used for the resources which are direct children of workload. This billing account is initially associated with the resources created as part of Workload creation. After the initial creation of these resources, the customer can change the assigned billing account. The resource name has the form `billingAccounts/{billing_account_id}`. For example, `billingAccounts/012345-567890-ABCDEF`.", +"type": "string" +}, +"complianceRegime": { +"description": "Required. Immutable. Compliance Regime associated with this workload.", +"enum": [ +"COMPLIANCE_REGIME_UNSPECIFIED", +"IL4", +"CJIS", +"FEDRAMP_HIGH", +"FEDRAMP_MODERATE", +"US_REGIONAL_ACCESS", +"HIPAA", +"HITRUST", +"EU_REGIONS_AND_SUPPORT", +"CA_REGIONS_AND_SUPPORT", +"ITAR", +"AU_REGIONS_AND_US_SUPPORT", +"ASSURED_WORKLOADS_FOR_PARTNERS", +"ISR_REGIONS", +"ISR_REGIONS_AND_SUPPORT", +"CA_PROTECTED_B", +"IL5", +"IL2", +"JP_REGIONS_AND_SUPPORT", +"KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS", +"REGIONAL_CONTROLS", +"HEALTHCARE_AND_LIFE_SCIENCES_CONTROLS", +"HEALTHCARE_AND_LIFE_SCIENCES_CONTROLS_US_SUPPORT", +"IRS_1075", +"CANADA_CONTROLLED_GOODS" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unknown compliance regime.", +"Information protection as per DoD IL4 requirements.", +"Criminal Justice Information Services (CJIS) Security policies.", +"FedRAMP High data protection controls", +"FedRAMP Moderate data protection controls", +"Assured Workloads For US Regions data protection controls", +"[DEPRECATED] Health Insurance Portability and Accountability Act controls", +"[DEPRECATED] Health Information Trust Alliance controls", +"Assured Workloads For EU Regions and Support controls", +"Assured Workloads For Canada Regions and Support controls", +"International Traffic in Arms Regulations", +"Assured Workloads for Australia Regions and Support controls", +"Assured Workloads for Partners;", +"Assured Workloads for Israel Regions", +"Assured Workloads for Israel Regions", +"Assured Workloads for Canada Protected B regime", +"Information protection as per DoD IL5 requirements.", +"Information protection as per DoD IL2 requirements.", +"Assured Workloads for Japan Regions", +"Assured Workloads Sovereign Controls KSA", +"Assured Workloads for Regional Controls", +"Healthcare and Life Science Controls", +"Healthcare and Life Science Controls with US Support", +"Internal Revenue Service 1075 controls", +"Canada Controlled Goods" +], +"type": "string" +}, +"complianceStatus": { +"$ref": "GoogleCloudAssuredworkloadsV1WorkloadComplianceStatus", +"description": "Output only. Count of active Violations in the Workload.", +"readOnly": true +}, +"compliantButDisallowedServices": { +"description": "Output only. Urls for services which are compliant for this Assured Workload, but which are currently disallowed by the ResourceUsageRestriction org policy. Invoke RestrictAllowedResources endpoint to allow your project developers to use these services in their environment.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. Immutable. The Workload creation timestamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The user-assigned display name of the Workload. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, and spaces. Example: My Workload", +"type": "string" +}, +"ekmProvisioningResponse": { +"$ref": "GoogleCloudAssuredworkloadsV1WorkloadEkmProvisioningResponse", +"description": "Output only. Represents the Ekm Provisioning State of the given workload.", +"readOnly": true +}, +"enableSovereignControls": { +"description": "Optional. Indicates the sovereignty status of the given workload. Currently meant to be used by Europe/Canada customers.", +"type": "boolean" +}, +"etag": { +"description": "Optional. ETag of the workload, it is calculated on the basis of the Workload contents. It will be used in Update & Delete operations.", +"type": "string" +}, +"kajEnrollmentState": { +"description": "Output only. Represents the KAJ enrollment state of the given workload.", +"enum": [ +"KAJ_ENROLLMENT_STATE_UNSPECIFIED", +"KAJ_ENROLLMENT_STATE_PENDING", +"KAJ_ENROLLMENT_STATE_COMPLETE" +], +"enumDescriptions": [ +"Default State for KAJ Enrollment.", +"Pending State for KAJ Enrollment.", +"Complete State for KAJ Enrollment." +], +"readOnly": true, +"type": "string" +}, +"kmsSettings": { +"$ref": "GoogleCloudAssuredworkloadsV1WorkloadKMSSettings", +"deprecated": true, +"description": "Input only. Settings used to create a CMEK crypto key. When set, a project with a KMS CMEK key is provisioned. This field is deprecated as of Feb 28, 2022. In order to create a Keyring, callers should specify, ENCRYPTION_KEYS_PROJECT or KEYRING in ResourceSettings.resource_type field." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels applied to the workload.", +"type": "object" +}, +"name": { +"description": "Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.", +"type": "string" +}, +"partner": { +"description": "Optional. Partner regime associated with this workload.", +"enum": [ +"PARTNER_UNSPECIFIED", +"LOCAL_CONTROLS_BY_S3NS", +"SOVEREIGN_CONTROLS_BY_T_SYSTEMS", +"SOVEREIGN_CONTROLS_BY_SIA_MINSAIT", +"SOVEREIGN_CONTROLS_BY_PSN", +"SOVEREIGN_CONTROLS_BY_CNTXT", +"SOVEREIGN_CONTROLS_BY_CNTXT_NO_EKM" +], +"enumDescriptions": [ +"", +"Enum representing S3NS (Thales) partner.", +"Enum representing T_SYSTEM (TSI) partner.", +"Enum representing SIA_MINSAIT (Indra) partner.", +"Enum representing PSN (TIM) partner.", +"Enum representing CNTXT (Kingdom of Saudi Arabia) partner.", +"Enum representing CNTXT (Kingdom of Saudi Arabia) partner offering without EKM." +], +"type": "string" +}, +"partnerPermissions": { +"$ref": "GoogleCloudAssuredworkloadsV1WorkloadPartnerPermissions", +"description": "Optional. Permissions granted to the AW Partner SA account for the customer workload" +}, +"partnerServicesBillingAccount": { +"description": "Optional. Billing account necessary for purchasing services from Sovereign Partners. This field is required for creating SIA/PSN/CNTXT partner workloads. The caller should have 'billing.resourceAssociations.create' IAM permission on this billing-account. The format of this string is billingAccounts/AAAAAA-BBBBBB-CCCCCC", +"type": "string" +}, +"provisionedResourcesParent": { +"description": "Input only. The parent resource for the resources managed by this Assured Workload. May be either empty or a folder resource which is a child of the Workload parent. If not specified all resources are created under the parent organization. Format: folders/{folder_id}", +"type": "string" +}, +"resourceMonitoringEnabled": { +"description": "Output only. Indicates whether resource monitoring is enabled for workload or not. It is true when Resource feed is subscribed to AWM topic and AWM Service Agent Role is binded to AW Service Account for resource Assured workload.", +"readOnly": true, +"type": "boolean" +}, +"resourceSettings": { +"description": "Input only. Resource properties that are used to customize workload resources. These properties (such as custom project id) will be used to create workload resources if possible. This field is optional.", +"items": { +"$ref": "GoogleCloudAssuredworkloadsV1WorkloadResourceSettings" +}, +"type": "array" +}, +"resources": { +"description": "Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.", +"items": { +"$ref": "GoogleCloudAssuredworkloadsV1WorkloadResourceInfo" +}, +"readOnly": true, +"type": "array" +}, +"saaEnrollmentResponse": { +"$ref": "GoogleCloudAssuredworkloadsV1WorkloadSaaEnrollmentResponse", +"description": "Output only. Represents the SAA enrollment response of the given workload. SAA enrollment response is queried during GetWorkload call. In failure cases, user friendly error message is shown in SAA details page.", +"readOnly": true +}, +"violationNotificationsEnabled": { +"description": "Optional. Indicates whether the e-mail notification for a violation is enabled for a workload. This value will be by default True, and if not present will be considered as true. This should only be updated via updateWorkload call. Any Changes to this field during the createWorkload call will not be honored. This will always be true while creating the workload.", +"type": "boolean" +}, +"workloadOptions": { +"$ref": "GoogleCloudAssuredworkloadsV1WorkloadWorkloadOptions", +"description": "Optional. Options to be set for the given created workload." +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1WorkloadComplianceStatus": { +"description": "Represents the Compliance Status of this workload", +"id": "GoogleCloudAssuredworkloadsV1WorkloadComplianceStatus", +"properties": { +"acknowledgedResourceViolationCount": { +"description": "Number of current resource violations which are not acknowledged.", +"format": "int32", +"type": "integer" +}, +"acknowledgedViolationCount": { +"description": "Number of current orgPolicy violations which are acknowledged.", +"format": "int32", +"type": "integer" +}, +"activeResourceViolationCount": { +"description": "Number of current resource violations which are acknowledged.", +"format": "int32", +"type": "integer" +}, +"activeViolationCount": { +"description": "Number of current orgPolicy violations which are not acknowledged.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1WorkloadEkmProvisioningResponse": { +"description": "External key management systems(EKM) Provisioning response", +"id": "GoogleCloudAssuredworkloadsV1WorkloadEkmProvisioningResponse", +"properties": { +"ekmProvisioningErrorDomain": { +"description": "Indicates Ekm provisioning error if any.", +"enum": [ +"EKM_PROVISIONING_ERROR_DOMAIN_UNSPECIFIED", +"UNSPECIFIED_ERROR", +"GOOGLE_SERVER_ERROR", +"EXTERNAL_USER_ERROR", +"EXTERNAL_PARTNER_ERROR", +"TIMEOUT_ERROR" +], +"enumDescriptions": [ +"No error domain", +"Error but domain is unspecified.", +"Internal logic breaks within provisioning code.", +"Error occurred with the customer not granting permission/creating resource.", +"Error occurred within the partner's provisioning cluster.", +"Resource wasn't provisioned in the required 7 day time period" +], +"type": "string" +}, +"ekmProvisioningErrorMapping": { +"description": "Detailed error message if Ekm provisioning fails", +"enum": [ +"EKM_PROVISIONING_ERROR_MAPPING_UNSPECIFIED", +"INVALID_SERVICE_ACCOUNT", +"MISSING_METRICS_SCOPE_ADMIN_PERMISSION", +"MISSING_EKM_CONNECTION_ADMIN_PERMISSION" +], +"enumDescriptions": [ +"Error is unspecified.", +"Service account is used is invalid.", +"Iam permission monitoring.MetricsScopeAdmin wasn't applied.", +"Iam permission cloudkms.ekmConnectionsAdmin wasn't applied." +], +"type": "string" +}, +"ekmProvisioningState": { +"description": "Output only. Indicates Ekm enrollment Provisioning of a given workload.", +"enum": [ +"EKM_PROVISIONING_STATE_UNSPECIFIED", +"EKM_PROVISIONING_STATE_PENDING", +"EKM_PROVISIONING_STATE_FAILED", +"EKM_PROVISIONING_STATE_COMPLETED" +], +"enumDescriptions": [ +"Default State for Ekm Provisioning", +"Pending State for Ekm Provisioning", +"Failed State for Ekm Provisioning", +"Completed State for Ekm Provisioning" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1WorkloadKMSSettings": { +"deprecated": true, +"description": "Settings specific to the Key Management Service.", +"id": "GoogleCloudAssuredworkloadsV1WorkloadKMSSettings", +"properties": { +"nextRotationTime": { +"description": "Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.", +"format": "google-datetime", +"type": "string" +}, +"rotationPeriod": { +"description": "Required. Input only. Immutable. [next_rotation_time] will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1WorkloadPartnerPermissions": { +"description": "Permissions granted to the AW Partner SA account for the customer workload", +"id": "GoogleCloudAssuredworkloadsV1WorkloadPartnerPermissions", +"properties": { +"accessTransparencyLogsSupportCaseViewer": { +"description": "Optional. Allow partner to view support case details for an AXT log", +"type": "boolean" +}, +"assuredWorkloadsMonitoring": { +"description": "Optional. Allow partner to view violation alerts.", +"type": "boolean" +}, +"dataLogsViewer": { +"description": "Optional. Allow the partner to view inspectability logs and monitoring violations.", +"type": "boolean" +}, +"serviceAccessApprover": { +"description": "Optional. Allow partner to view access approval logs.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1WorkloadResourceInfo": { +"description": "Represent the resources that are children of this Workload.", +"id": "GoogleCloudAssuredworkloadsV1WorkloadResourceInfo", +"properties": { +"resourceId": { +"description": "Output only. Resource identifier. For a project this represents project_number.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceType": { +"description": "Indicates the type of resource.", +"enum": [ +"RESOURCE_TYPE_UNSPECIFIED", +"CONSUMER_PROJECT", +"CONSUMER_FOLDER", +"ENCRYPTION_KEYS_PROJECT", +"KEYRING" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"Unknown resource type.", +"Deprecated. Existing workloads will continue to support this, but new CreateWorkloadRequests should not specify this as an input value.", +"Consumer Folder.", +"Consumer project containing encryption keys.", +"Keyring resource that hosts encryption keys." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1WorkloadResourceSettings": { +"description": "Represent the custom settings for the resources to be created.", +"id": "GoogleCloudAssuredworkloadsV1WorkloadResourceSettings", +"properties": { +"displayName": { +"description": "User-assigned resource display name. If not empty it will be used to create a resource with the specified name.", +"type": "string" +}, +"resourceId": { +"description": "Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail. For KeyRing, this represents the keyring_id. For a folder, don't set this value as folder_id is assigned by Google.", +"type": "string" +}, +"resourceType": { +"description": "Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT)", +"enum": [ +"RESOURCE_TYPE_UNSPECIFIED", +"CONSUMER_PROJECT", +"CONSUMER_FOLDER", +"ENCRYPTION_KEYS_PROJECT", +"KEYRING" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"Unknown resource type.", +"Deprecated. Existing workloads will continue to support this, but new CreateWorkloadRequests should not specify this as an input value.", +"Consumer Folder.", +"Consumer project containing encryption keys.", +"Keyring resource that hosts encryption keys." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1WorkloadSaaEnrollmentResponse": { +"description": "Signed Access Approvals (SAA) enrollment response.", +"id": "GoogleCloudAssuredworkloadsV1WorkloadSaaEnrollmentResponse", +"properties": { +"setupErrors": { +"description": "Indicates SAA enrollment setup error if any.", +"items": { +"enum": [ +"SETUP_ERROR_UNSPECIFIED", +"ERROR_INVALID_BASE_SETUP", +"ERROR_MISSING_EXTERNAL_SIGNING_KEY", +"ERROR_NOT_ALL_SERVICES_ENROLLED", +"ERROR_SETUP_CHECK_FAILED" +], +"enumDescriptions": [ +"Unspecified.", +"Invalid states for all customers, to be redirected to AA UI for additional details.", +"Returned when there is not an EKM key configured.", +"Returned when there are no enrolled services or the customer is enrolled in CAA only for a subset of services.", +"Returned when exception was encountered during evaluation of other criteria." +], +"type": "string" +}, +"type": "array" +}, +"setupStatus": { +"description": "Output only. Indicates SAA enrollment status of a given workload.", +"enum": [ +"SETUP_STATE_UNSPECIFIED", +"STATUS_PENDING", +"STATUS_COMPLETE" +], +"enumDescriptions": [ +"Unspecified.", +"SAA enrollment pending.", +"SAA enrollment comopleted." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAssuredworkloadsV1WorkloadWorkloadOptions": { +"description": "Options to be set for the given created workload.", +"id": "GoogleCloudAssuredworkloadsV1WorkloadWorkloadOptions", +"properties": { +"kajEnrollmentType": { +"description": "Optional. Specifies type of KAJ Enrollment if provided.", +"enum": [ +"KAJ_ENROLLMENT_TYPE_UNSPECIFIED", +"KEY_ACCESS_TRANSPARENCY_OFF" +], +"enumDescriptions": [ +"KAJ Enrollment type is unspecified", +"KAT sets External, Hardware, and Software key feature logging only to TRUE. (no enforcement)" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"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": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Assured Workloads API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigquery.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigquery.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..ea15203aebeca26d456c597c5d1292c6b0a16648 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigquery.v2.json @@ -0,0 +1,10436 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/bigquery": { +"description": "View and manage your data in Google BigQuery and see the email address for your Google Account" +}, +"https://www.googleapis.com/auth/bigquery.insertdata": { +"description": "Insert data into Google BigQuery" +}, +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/cloud-platform.read-only": { +"description": "View your data across Google Cloud services and see the email address of your Google Account" +}, +"https://www.googleapis.com/auth/devstorage.full_control": { +"description": "Manage your data and permissions in Cloud Storage and see the email address for your Google Account" +}, +"https://www.googleapis.com/auth/devstorage.read_only": { +"description": "View your data in Google Cloud Storage" +}, +"https://www.googleapis.com/auth/devstorage.read_write": { +"description": "Manage your data in Cloud Storage and see the email address of your Google Account" +} +} +} +}, +"basePath": "/bigquery/v2/", +"baseUrl": "https://bigquery.googleapis.com/bigquery/v2/", +"batchPath": "batch/bigquery/v2", +"canonicalName": "Bigquery", +"description": "A data platform for customers to create, manage, share and query data.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/bigquery/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquery.us-west8.rep.googleapis.com/", +"location": "us-west8" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "bigquery:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://bigquery.mtls.googleapis.com/", +"name": "bigquery", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"datasets": { +"methods": { +"delete": { +"description": "Deletes the dataset specified by the datasetId value. Before you can delete a dataset, you must delete all its tables, either manually or by specifying deleteContents. Immediately after deletion, you can create another dataset with the same name.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}", +"httpMethod": "DELETE", +"id": "bigquery.datasets.delete", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of dataset being deleted", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"deleteContents": { +"description": "If True, delete all the tables in the dataset. If False and the dataset contains tables, the request will fail. Default is False", +"location": "query", +"type": "boolean" +}, +"projectId": { +"description": "Required. Project ID of the dataset being deleted", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}", +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the dataset specified by datasetID.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}", +"httpMethod": "GET", +"id": "bigquery.datasets.get", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"accessPolicyVersion": { +"description": "Optional. The version of the access policy schema to fetch. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for conditional access policy binding in datasets must specify version 3. Dataset with no conditional role bindings in access policy may specify any valid value or leave the field unset. This field will be mapped to [IAM Policy version] (https://cloud.google.com/iam/docs/policies#versions) and will be used to fetch policy from IAM. If unset or if 0 or 1 value is used for dataset with conditional bindings, access entry with condition will have role string appended by 'withcond' string followed by a hash value. For example : { \"access\": [ { \"role\": \"roles/bigquery.dataViewer_with_conditionalbinding_7a34awqsda\", \"userByEmail\": \"user@example.com\", } ] } Please refer https://cloud.google.com/iam/docs/troubleshooting-withcond for more details.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"datasetId": { +"description": "Required. Dataset ID of the requested dataset", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"datasetView": { +"description": "Optional. Specifies the view that determines which dataset information is returned. By default, metadata and ACL information are returned.", +"enum": [ +"DATASET_VIEW_UNSPECIFIED", +"METADATA", +"ACL", +"FULL" +], +"enumDescriptions": [ +"The default value. Default to the FULL view.", +"Includes metadata information for the dataset, such as location, etag, lastModifiedTime, etc.", +"Includes ACL information for the dataset, which defines dataset access for one or more entities.", +"Includes both dataset metadata and ACL information." +], +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the requested dataset", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}", +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"insert": { +"description": "Creates a new empty dataset.", +"flatPath": "projects/{projectsId}/datasets", +"httpMethod": "POST", +"id": "bigquery.datasets.insert", +"parameterOrder": [ +"projectId" +], +"parameters": { +"accessPolicyVersion": { +"description": "Optional. The version of the provided access policy schema. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. This version refers to the schema version of the access policy and not the version of access policy. This field's value can be equal or more than the access policy schema provided in the request. For example, * Requests with conditional access policy binding in datasets must specify version 3. * But dataset with no conditional role bindings in access policy may specify any valid value or leave the field unset. If unset or if 0 or 1 value is used for dataset with conditional bindings, request will be rejected. This field will be mapped to IAM Policy version (https://cloud.google.com/iam/docs/policies#versions) and will be used to set policy in IAM.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"projectId": { +"description": "Required. Project ID of the new dataset", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets", +"request": { +"$ref": "Dataset" +}, +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all datasets in the specified project to which the user has been granted the READER dataset role.", +"flatPath": "projects/{projectsId}/datasets", +"httpMethod": "GET", +"id": "bigquery.datasets.list", +"parameterOrder": [ +"projectId" +], +"parameters": { +"all": { +"description": "Whether to list all datasets, including hidden ones", +"location": "query", +"type": "boolean" +}, +"filter": { +"description": "An expression for filtering the results of the request by label. The syntax is `labels.[:]`. Multiple filters can be ANDed together by connecting with a space. Example: `labels.department:receiving labels.active`. See [Filtering datasets using labels](https://cloud.google.com/bigquery/docs/filtering-labels#filtering_datasets_using_labels) for details.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the datasets to be listed", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets", +"response": { +"$ref": "DatasetList" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource. This method supports RFC5789 patch semantics.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}", +"httpMethod": "PATCH", +"id": "bigquery.datasets.patch", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"accessPolicyVersion": { +"description": "Optional. The version of the provided access policy schema. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. This version refers to the schema version of the access policy and not the version of access policy. This field's value can be equal or more than the access policy schema provided in the request. For example, * Operations updating conditional access policy binding in datasets must specify version 3. Some of the operations are : - Adding a new access policy entry with condition. - Removing an access policy entry with condition. - Updating an access policy entry with condition. * But dataset with no conditional role bindings in access policy may specify any valid value or leave the field unset. If unset or if 0 or 1 value is used for dataset with conditional bindings, request will be rejected. This field will be mapped to IAM Policy version (https://cloud.google.com/iam/docs/policies#versions) and will be used to set policy in IAM.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"datasetId": { +"description": "Required. Dataset ID of the dataset being updated", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the dataset being updated", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}", +"request": { +"$ref": "Dataset" +}, +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes a dataset which is within time travel window based on datasetId. If a time is specified, the dataset version deleted at that time is undeleted, else the last live version is undeleted.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}:undelete", +"httpMethod": "POST", +"id": "bigquery.datasets.undelete", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of dataset being deleted", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the dataset to be undeleted", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}:undelete", +"request": { +"$ref": "UndeleteDatasetRequest" +}, +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}", +"httpMethod": "PUT", +"id": "bigquery.datasets.update", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"accessPolicyVersion": { +"description": "Optional. The version of the provided access policy schema. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. This version refers to the schema version of the access policy and not the version of access policy. This field's value can be equal or more than the access policy schema provided in the request. For example, * Operations updating conditional access policy binding in datasets must specify version 3. Some of the operations are : - Adding a new access policy entry with condition. - Removing an access policy entry with condition. - Updating an access policy entry with condition. * But dataset with no conditional role bindings in access policy may specify any valid value or leave the field unset. If unset or if 0 or 1 value is used for dataset with conditional bindings, request will be rejected. This field will be mapped to IAM Policy version (https://cloud.google.com/iam/docs/policies#versions) and will be used to set policy in IAM.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"datasetId": { +"description": "Required. Dataset ID of the dataset being updated", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the dataset being updated", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}", +"request": { +"$ref": "Dataset" +}, +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"jobs": { +"methods": { +"cancel": { +"description": "Requests that a job be cancelled. This call will return immediately, and the client will need to poll for the job status to see if the cancel completed successfully. Cancelled jobs may still incur costs.", +"flatPath": "projects/{projectsId}/jobs/{jobsId}/cancel", +"httpMethod": "POST", +"id": "bigquery.jobs.cancel", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "Required. Job ID of the job to cancel", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"location": { +"description": "The geographic location of the job. You must [specify the location](https://cloud.google.com/bigquery/docs/locations#specify_locations) to run the job for the following scenarios: * If the location to run a job is not in the `us` or the `eu` multi-regional location * If the job's location is in a single region (for example, `us-central1`)", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the job to cancel", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/jobs/{+jobId}/cancel", +"response": { +"$ref": "JobCancelResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Requests the deletion of the metadata of a job. This call returns when the job's metadata is deleted.", +"flatPath": "projects/{projectsId}/jobs/{jobsId}/delete", +"httpMethod": "DELETE", +"id": "bigquery.jobs.delete", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "Required. Job ID of the job for which metadata is to be deleted. If this is a parent job which has child jobs, the metadata from all child jobs will be deleted as well. Direct deletion of the metadata of child jobs is not allowed.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"location": { +"description": "The geographic location of the job. Required. For more information, see how to [specify locations](https://cloud.google.com/bigquery/docs/locations#specify_locations).", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the job for which metadata is to be deleted.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/jobs/{+jobId}/delete", +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns information about a specific job. Job information is available for a six month period after creation. Requires that you're the person who ran the job, or have the Is Owner project role.", +"flatPath": "projects/{projectsId}/jobs/{jobsId}", +"httpMethod": "GET", +"id": "bigquery.jobs.get", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "Required. Job ID of the requested job.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"location": { +"description": "The geographic location of the job. You must specify the location to run the job for the following scenarios: * If the location to run a job is not in the `us` or the `eu` multi-regional location * If the job's location is in a single region (for example, `us-central1`) For more information, see how to [specify locations](https://cloud.google.com/bigquery/docs/locations#specify_locations).", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the requested job.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/jobs/{+jobId}", +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getQueryResults": { +"description": "RPC to get the results of a query job.", +"flatPath": "projects/{projectsId}/queries/{queriesId}", +"httpMethod": "GET", +"id": "bigquery.jobs.getQueryResults", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"formatOptions.useInt64Timestamp": { +"description": "Optional. Output timestamp as usec int64. Default is false.", +"location": "query", +"type": "boolean" +}, +"jobId": { +"description": "Required. Job ID of the query job.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"location": { +"description": "The geographic location of the job. You must specify the location to run the job for the following scenarios: * If the location to run a job is not in the `us` or the `eu` multi-regional location * If the job's location is in a single region (for example, `us-central1`) For more information, see how to [specify locations](https://cloud.google.com/bigquery/docs/locations#specify_locations).", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Maximum number of results to read.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the query job.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"startIndex": { +"description": "Zero-based index of the starting row.", +"format": "uint64", +"location": "query", +"type": "string" +}, +"timeoutMs": { +"description": "Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 10 seconds (10,000 milliseconds). If the query is complete, the jobComplete field in the response is true. If the query has not yet completed, jobComplete is false. You can request a longer timeout period in the timeoutMs field. However, the call is not guaranteed to wait for the specified timeout; it typically returns after around 200 seconds (200,000 milliseconds), even if the query is not complete. If jobComplete is false, you can continue to wait for the query to complete by calling the getQueryResults method until the jobComplete field in the getQueryResults response is true.", +"format": "uint32", +"location": "query", +"type": "integer" +} +}, +"path": "projects/{+projectId}/queries/{+jobId}", +"response": { +"$ref": "GetQueryResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"insert": { +"description": "Starts a new asynchronous job. This API has two different kinds of endpoint URIs, as this method supports a variety of use cases. * The *Metadata* URI is used for most interactions, as it accepts the job configuration directly. * The *Upload* URI is ONLY for the case when you're sending both a load job configuration and a data stream together. In this case, the Upload URI accepts the job configuration and the data as two distinct multipart MIME parts.", +"flatPath": "projects/{projectsId}/jobs", +"httpMethod": "POST", +"id": "bigquery.jobs.insert", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/bigquery/v2/projects/{+projectId}/jobs" +}, +"simple": { +"multipart": true, +"path": "/upload/bigquery/v2/projects/{+projectId}/jobs" +} +} +}, +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Project ID of project that will be billed for the job.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/jobs", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/devstorage.full_control", +"https://www.googleapis.com/auth/devstorage.read_only", +"https://www.googleapis.com/auth/devstorage.read_write" +], +"supportsMediaUpload": true +}, +"list": { +"description": "Lists all jobs that you started in the specified project. Job information is available for a six month period after creation. The job list is sorted in reverse chronological order, by job creation time. Requires the Can View project role, or the Is Owner project role if you set the allUsers property.", +"flatPath": "projects/{projectsId}/jobs", +"httpMethod": "GET", +"id": "bigquery.jobs.list", +"parameterOrder": [ +"projectId" +], +"parameters": { +"allUsers": { +"description": "Whether to display jobs owned by all users in the project. Default False.", +"location": "query", +"type": "boolean" +}, +"maxCreationTime": { +"description": "Max value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created before or at this timestamp are returned.", +"format": "uint64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"minCreationTime": { +"description": "Min value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created after or at this timestamp are returned.", +"format": "uint64", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results.", +"location": "query", +"type": "string" +}, +"parentJobId": { +"description": "If set, show only child jobs of the specified parent. Otherwise, show all top-level jobs.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Project ID of the jobs to list.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projection": { +"description": "Restrict information returned to a set of selected fields", +"enum": [ +"full", +"minimal" +], +"enumDescriptions": [ +"Includes all job data", +"Does not include the job configuration" +], +"location": "query", +"type": "string" +}, +"stateFilter": { +"description": "Filter for job state", +"enum": [ +"done", +"pending", +"running" +], +"enumDescriptions": [ +"Finished jobs", +"Pending jobs", +"Running jobs" +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/jobs", +"response": { +"$ref": "JobList" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"query": { +"description": "Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.", +"flatPath": "projects/{projectsId}/queries", +"httpMethod": "POST", +"id": "bigquery.jobs.query", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. Project ID of the query request.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/queries", +"request": { +"$ref": "QueryRequest" +}, +"response": { +"$ref": "QueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"models": { +"methods": { +"delete": { +"description": "Deletes the model specified by modelId from the dataset.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/models/{modelsId}", +"httpMethod": "DELETE", +"id": "bigquery.models.delete", +"parameterOrder": [ +"projectId", +"datasetId", +"modelId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the model to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"modelId": { +"description": "Required. Model ID of the model to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the model to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}", +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified model resource by model ID.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/models/{modelsId}", +"httpMethod": "GET", +"id": "bigquery.models.get", +"parameterOrder": [ +"projectId", +"datasetId", +"modelId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the requested model.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"modelId": { +"description": "Required. Model ID of the requested model.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the requested model.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}", +"response": { +"$ref": "Model" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists all models in the specified dataset. Requires the READER dataset role. After retrieving the list of models, you can get information about a particular model by calling the models.get method.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/models", +"httpMethod": "GET", +"id": "bigquery.models.list", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the models to list.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call to request the next page of results", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the models to list.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/models", +"response": { +"$ref": "ListModelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Patch specific fields in the specified model.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/models/{modelsId}", +"httpMethod": "PATCH", +"id": "bigquery.models.patch", +"parameterOrder": [ +"projectId", +"datasetId", +"modelId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the model to patch.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"modelId": { +"description": "Required. Model ID of the model to patch.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the model to patch.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}", +"request": { +"$ref": "Model" +}, +"response": { +"$ref": "Model" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projects": { +"methods": { +"getServiceAccount": { +"description": "RPC to get the service account for a project used for interactions with Google Cloud KMS", +"flatPath": "projects/{projectsId}/serviceAccount", +"httpMethod": "GET", +"id": "bigquery.projects.getServiceAccount", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. ID of the project.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/serviceAccount", +"response": { +"$ref": "GetServiceAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "RPC to list projects to which the user has been granted any project role. Users of this method are encouraged to consider the [Resource Manager](https://cloud.google.com/resource-manager/docs/) API, which provides the underlying data for this method and has more capabilities.", +"flatPath": "projects", +"httpMethod": "GET", +"id": "bigquery.projects.list", +"parameterOrder": [], +"parameters": { +"maxResults": { +"description": "`maxResults` unset returns all results, up to 50 per page. Additionally, the number of projects in a page may be fewer than `maxResults` because projects are retrieved and then filtered to only projects with the BigQuery API enabled.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results. If not present, no further pages are present.", +"location": "query", +"type": "string" +} +}, +"path": "projects", +"response": { +"$ref": "ProjectList" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"routines": { +"methods": { +"delete": { +"description": "Deletes the routine specified by routineId from the dataset.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}", +"httpMethod": "DELETE", +"id": "bigquery.routines.delete", +"parameterOrder": [ +"projectId", +"datasetId", +"routineId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the routine to delete", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the routine to delete", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"routineId": { +"description": "Required. Routine ID of the routine to delete", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}", +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified routine resource by routine ID.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}", +"httpMethod": "GET", +"id": "bigquery.routines.get", +"parameterOrder": [ +"projectId", +"datasetId", +"routineId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the requested routine", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the requested routine", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "If set, only the Routine fields in the field mask are returned in the response. If unset, all Routine fields are returned.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"routineId": { +"description": "Required. Routine ID of the requested routine", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}", +"response": { +"$ref": "Routine" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}:getIamPolicy", +"httpMethod": "POST", +"id": "bigquery.routines.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/datasets/[^/]+/routines/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"insert": { +"description": "Creates a new routine in the dataset.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines", +"httpMethod": "POST", +"id": "bigquery.routines.insert", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the new routine", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the new routine", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/routines", +"request": { +"$ref": "Routine" +}, +"response": { +"$ref": "Routine" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all routines in the specified dataset. Requires the READER dataset role.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines", +"httpMethod": "GET", +"id": "bigquery.routines.list", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the routines to list", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "If set, then only the Routines matching this filter are returned. The supported format is `routineType:{RoutineType}`, where `{RoutineType}` is a RoutineType enum. For example: `routineType:SCALAR_FUNCTION`.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the routines to list", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "If set, then only the Routine fields in the field mask, as well as project_id, dataset_id and routine_id, are returned in the response. If unset, then the following Routine fields are returned: etag, project_id, dataset_id, routine_id, routine_type, creation_time, last_modified_time, and language.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/routines", +"response": { +"$ref": "ListRoutinesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}:setIamPolicy", +"httpMethod": "POST", +"id": "bigquery.routines.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/datasets/[^/]+/routines/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates information in an existing routine. The update method replaces the entire Routine resource.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}", +"httpMethod": "PUT", +"id": "bigquery.routines.update", +"parameterOrder": [ +"projectId", +"datasetId", +"routineId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the routine to update", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the routine to update", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"routineId": { +"description": "Required. Routine ID of the routine to update", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}", +"request": { +"$ref": "Routine" +}, +"response": { +"$ref": "Routine" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"rowAccessPolicies": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies/{rowAccessPoliciesId}:getIamPolicy", +"httpMethod": "POST", +"id": "bigquery.rowAccessPolicies.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+/rowAccessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists all row access policies on the specified table.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies", +"httpMethod": "GET", +"id": "bigquery.rowAccessPolicies.list", +"parameterOrder": [ +"projectId", +"datasetId", +"tableId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of row access policies to list.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the row access policies to list.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tableId": { +"description": "Required. Table ID of the table to list row access policies.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/rowAccessPolicies", +"response": { +"$ref": "ListRowAccessPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies/{rowAccessPoliciesId}:testIamPermissions", +"httpMethod": "POST", +"id": "bigquery.rowAccessPolicies.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+/rowAccessPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"tabledata": { +"methods": { +"insertAll": { +"description": "Streams data into BigQuery one record at a time without needing to run a load job.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/insertAll", +"httpMethod": "POST", +"id": "bigquery.tabledata.insertAll", +"parameterOrder": [ +"projectId", +"datasetId", +"tableId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the destination.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the destination.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tableId": { +"description": "Required. Table ID of the destination.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/insertAll", +"request": { +"$ref": "TableDataInsertAllRequest" +}, +"response": { +"$ref": "TableDataInsertAllResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/bigquery.insertdata", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List the content of a table in rows.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/data", +"httpMethod": "GET", +"id": "bigquery.tabledata.list", +"parameterOrder": [ +"projectId", +"datasetId", +"tableId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset id of the table to list.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"formatOptions.useInt64Timestamp": { +"description": "Optional. Output timestamp as usec int64. Default is false.", +"location": "query", +"type": "boolean" +}, +"maxResults": { +"description": "Row limit of the table.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "To retrieve the next page of table data, set this field to the string provided in the pageToken field of the response body from your previous call to tabledata.list.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project id of the table to list.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"selectedFields": { +"description": "Subset of fields to return, supports select into sub fields. Example: selected_fields = \"a,e.d.f\";", +"location": "query", +"type": "string" +}, +"startIndex": { +"description": "Start row index of the table.", +"format": "uint64", +"location": "query", +"type": "string" +}, +"tableId": { +"description": "Required. Table id of the table to list.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/data", +"response": { +"$ref": "TableDataList" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"tables": { +"methods": { +"delete": { +"description": "Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}", +"httpMethod": "DELETE", +"id": "bigquery.tables.delete", +"parameterOrder": [ +"projectId", +"datasetId", +"tableId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the table to delete", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the table to delete", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tableId": { +"description": "Required. Table ID of the table to delete", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}", +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}", +"httpMethod": "GET", +"id": "bigquery.tables.get", +"parameterOrder": [ +"projectId", +"datasetId", +"tableId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the requested table", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the requested table", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"selectedFields": { +"description": "List of table schema fields to return (comma-separated). If unspecified, all fields are returned. A fieldMask cannot be used here because the fields will automatically be converted from camelCase to snake_case and the conversion will fail if there are underscores. Since these are fields in BigQuery table schemas, underscores are allowed.", +"location": "query", +"type": "string" +}, +"tableId": { +"description": "Required. Table ID of the requested table", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Optional. Specifies the view that determines which table information is returned. By default, basic table information and storage statistics (STORAGE_STATS) are returned.", +"enum": [ +"TABLE_METADATA_VIEW_UNSPECIFIED", +"BASIC", +"STORAGE_STATS", +"FULL" +], +"enumDescriptions": [ +"The default value. Default to the STORAGE_STATS view.", +"Includes basic table information including schema and partitioning specification. This view does not include storage statistics such as numRows or numBytes. This view is significantly more efficient and should be used to support high query rates.", +"Includes all information in the BASIC view as well as storage statistics (numBytes, numLongTermBytes, numRows and lastModifiedTime).", +"Includes all table information, including storage statistics. It returns same information as STORAGE_STATS view, but may contain additional information in the future." +], +"location": "query", +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}", +"response": { +"$ref": "Table" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}:getIamPolicy", +"httpMethod": "POST", +"id": "bigquery.tables.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"insert": { +"description": "Creates a new, empty table in the dataset.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables", +"httpMethod": "POST", +"id": "bigquery.tables.insert", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the new table", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the new table", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/tables", +"request": { +"$ref": "Table" +}, +"response": { +"$ref": "Table" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all tables in the specified dataset. Requires the READER dataset role.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables", +"httpMethod": "GET", +"id": "bigquery.tables.list", +"parameterOrder": [ +"projectId", +"datasetId" +], +"parameters": { +"datasetId": { +"description": "Required. Dataset ID of the tables to list", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token, returned by a previous call, to request the next page of results", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the tables to list", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/tables", +"response": { +"$ref": "TableList" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource. This method supports RFC5789 patch semantics.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}", +"httpMethod": "PATCH", +"id": "bigquery.tables.patch", +"parameterOrder": [ +"projectId", +"datasetId", +"tableId" +], +"parameters": { +"autodetect_schema": { +"description": "Optional. When true will autodetect schema, else will keep original schema", +"location": "query", +"type": "boolean" +}, +"datasetId": { +"description": "Required. Dataset ID of the table to update", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the table to update", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tableId": { +"description": "Required. Table ID of the table to update", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}", +"request": { +"$ref": "Table" +}, +"response": { +"$ref": "Table" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}:setIamPolicy", +"httpMethod": "POST", +"id": "bigquery.tables.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}:testIamPermissions", +"httpMethod": "POST", +"id": "bigquery.tables.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"update": { +"description": "Updates information in an existing table. The update method replaces the entire Table resource, whereas the patch method only replaces fields that are provided in the submitted Table resource.", +"flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}", +"httpMethod": "PUT", +"id": "bigquery.tables.update", +"parameterOrder": [ +"projectId", +"datasetId", +"tableId" +], +"parameters": { +"autodetect_schema": { +"description": "Optional. When true will autodetect schema, else will keep original schema", +"location": "query", +"type": "boolean" +}, +"datasetId": { +"description": "Required. Dataset ID of the table to update", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. Project ID of the table to update", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tableId": { +"description": "Required. Table ID of the table to update", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}", +"request": { +"$ref": "Table" +}, +"response": { +"$ref": "Table" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20241222", +"rootUrl": "https://bigquery.googleapis.com/", +"schemas": { +"AggregateClassificationMetrics": { +"description": "Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows.", +"id": "AggregateClassificationMetrics", +"properties": { +"accuracy": { +"description": "Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.", +"format": "double", +"type": "number" +}, +"f1Score": { +"description": "The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.", +"format": "double", +"type": "number" +}, +"logLoss": { +"description": "Logarithmic Loss. For multiclass this is a macro-averaged metric.", +"format": "double", +"type": "number" +}, +"precision": { +"description": "Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.", +"format": "double", +"type": "number" +}, +"recall": { +"description": "Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.", +"format": "double", +"type": "number" +}, +"rocAuc": { +"description": "Area Under a ROC Curve. For multiclass this is a macro-averaged metric.", +"format": "double", +"type": "number" +}, +"threshold": { +"description": "Threshold at which the metrics are computed. For binary classification models this is the positive class threshold. For multi-class classfication models this is the confidence threshold.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"AggregationThresholdPolicy": { +"description": "Represents privacy policy associated with \"aggregation threshold\" method.", +"id": "AggregationThresholdPolicy", +"properties": { +"privacyUnitColumns": { +"description": "Optional. The privacy unit column(s) associated with this policy. For now, only one column per data source object (table, view) is allowed as a privacy unit column. Representing as a repeated field in metadata for extensibility to multiple columns in future. Duplicates and Repeated struct fields are not allowed. For nested fields, use dot notation (\"outer.inner\")", +"items": { +"type": "string" +}, +"type": "array" +}, +"threshold": { +"description": "Optional. The threshold for the \"aggregation threshold\" policy.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Argument": { +"description": "Input/output argument of a function or a stored procedure.", +"id": "Argument", +"properties": { +"argumentKind": { +"description": "Optional. Defaults to FIXED_TYPE.", +"enum": [ +"ARGUMENT_KIND_UNSPECIFIED", +"FIXED_TYPE", +"ANY_TYPE" +], +"enumDescriptions": [ +"Default value.", +"The argument is a variable with fully specified type, which can be a struct or an array, but not a table.", +"The argument is any type, including struct or array, but not a table." +], +"type": "string" +}, +"dataType": { +"$ref": "StandardSqlDataType", +"description": "Set if argument_kind == FIXED_TYPE." +}, +"isAggregate": { +"description": "Optional. Whether the argument is an aggregate function parameter. Must be Unset for routine types other than AGGREGATE_FUNCTION. For AGGREGATE_FUNCTION, if set to false, it is equivalent to adding \"NOT AGGREGATE\" clause in DDL; Otherwise, it is equivalent to omitting \"NOT AGGREGATE\" clause in DDL.", +"type": "boolean" +}, +"mode": { +"description": "Optional. Specifies whether the argument is input or output. Can be set for procedures only.", +"enum": [ +"MODE_UNSPECIFIED", +"IN", +"OUT", +"INOUT" +], +"enumDescriptions": [ +"Default value.", +"The argument is input-only.", +"The argument is output-only.", +"The argument is both an input and an output." +], +"type": "string" +}, +"name": { +"description": "Optional. The name of this argument. Can be absent for function return argument.", +"type": "string" +} +}, +"type": "object" +}, +"ArimaCoefficients": { +"description": "Arima coefficients.", +"id": "ArimaCoefficients", +"properties": { +"autoRegressiveCoefficients": { +"description": "Auto-regressive coefficients, an array of double.", +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +}, +"interceptCoefficient": { +"description": "Intercept coefficient, just a double not an array.", +"format": "double", +"type": "number" +}, +"movingAverageCoefficients": { +"description": "Moving-average coefficients, an array of double.", +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +} +}, +"type": "object" +}, +"ArimaFittingMetrics": { +"description": "ARIMA model fitting metrics.", +"id": "ArimaFittingMetrics", +"properties": { +"aic": { +"description": "AIC.", +"format": "double", +"type": "number" +}, +"logLikelihood": { +"description": "Log-likelihood.", +"format": "double", +"type": "number" +}, +"variance": { +"description": "Variance.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ArimaForecastingMetrics": { +"description": "Model evaluation metrics for ARIMA forecasting models.", +"id": "ArimaForecastingMetrics", +"properties": { +"arimaFittingMetrics": { +"deprecated": true, +"description": "Arima model fitting metrics.", +"items": { +"$ref": "ArimaFittingMetrics" +}, +"type": "array" +}, +"arimaSingleModelForecastingMetrics": { +"description": "Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.", +"items": { +"$ref": "ArimaSingleModelForecastingMetrics" +}, +"type": "array" +}, +"hasDrift": { +"deprecated": true, +"description": "Whether Arima model fitted with drift or not. It is always false when d is not 1.", +"items": { +"type": "boolean" +}, +"type": "array" +}, +"nonSeasonalOrder": { +"deprecated": true, +"description": "Non-seasonal order.", +"items": { +"$ref": "ArimaOrder" +}, +"type": "array" +}, +"seasonalPeriods": { +"deprecated": true, +"description": "Seasonal periods. Repeated because multiple periods are supported for one time series.", +"items": { +"enum": [ +"SEASONAL_PERIOD_TYPE_UNSPECIFIED", +"NO_SEASONALITY", +"DAILY", +"WEEKLY", +"MONTHLY", +"QUARTERLY", +"YEARLY" +], +"enumDescriptions": [ +"Unspecified seasonal period.", +"No seasonality", +"Daily period, 24 hours.", +"Weekly period, 7 days.", +"Monthly period, 30 days or irregular.", +"Quarterly period, 90 days or irregular.", +"Yearly period, 365 days or irregular." +], +"type": "string" +}, +"type": "array" +}, +"timeSeriesId": { +"deprecated": true, +"description": "Id to differentiate different time series for the large-scale case.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ArimaModelInfo": { +"description": "Arima model information.", +"id": "ArimaModelInfo", +"properties": { +"arimaCoefficients": { +"$ref": "ArimaCoefficients", +"description": "Arima coefficients." +}, +"arimaFittingMetrics": { +"$ref": "ArimaFittingMetrics", +"description": "Arima fitting metrics." +}, +"hasDrift": { +"description": "Whether Arima model fitted with drift or not. It is always false when d is not 1.", +"type": "boolean" +}, +"hasHolidayEffect": { +"description": "If true, holiday_effect is a part of time series decomposition result.", +"type": "boolean" +}, +"hasSpikesAndDips": { +"description": "If true, spikes_and_dips is a part of time series decomposition result.", +"type": "boolean" +}, +"hasStepChanges": { +"description": "If true, step_changes is a part of time series decomposition result.", +"type": "boolean" +}, +"nonSeasonalOrder": { +"$ref": "ArimaOrder", +"description": "Non-seasonal order." +}, +"seasonalPeriods": { +"description": "Seasonal periods. Repeated because multiple periods are supported for one time series.", +"items": { +"enum": [ +"SEASONAL_PERIOD_TYPE_UNSPECIFIED", +"NO_SEASONALITY", +"DAILY", +"WEEKLY", +"MONTHLY", +"QUARTERLY", +"YEARLY" +], +"enumDescriptions": [ +"Unspecified seasonal period.", +"No seasonality", +"Daily period, 24 hours.", +"Weekly period, 7 days.", +"Monthly period, 30 days or irregular.", +"Quarterly period, 90 days or irregular.", +"Yearly period, 365 days or irregular." +], +"type": "string" +}, +"type": "array" +}, +"timeSeriesId": { +"description": "The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.", +"type": "string" +}, +"timeSeriesIds": { +"description": "The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ArimaOrder": { +"description": "Arima order, can be used for both non-seasonal and seasonal parts.", +"id": "ArimaOrder", +"properties": { +"d": { +"description": "Order of the differencing part.", +"format": "int64", +"type": "string" +}, +"p": { +"description": "Order of the autoregressive part.", +"format": "int64", +"type": "string" +}, +"q": { +"description": "Order of the moving-average part.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ArimaResult": { +"description": "(Auto-)arima fitting result. Wrap everything in ArimaResult for easier refactoring if we want to use model-specific iteration results.", +"id": "ArimaResult", +"properties": { +"arimaModelInfo": { +"description": "This message is repeated because there are multiple arima models fitted in auto-arima. For non-auto-arima model, its size is one.", +"items": { +"$ref": "ArimaModelInfo" +}, +"type": "array" +}, +"seasonalPeriods": { +"description": "Seasonal periods. Repeated because multiple periods are supported for one time series.", +"items": { +"enum": [ +"SEASONAL_PERIOD_TYPE_UNSPECIFIED", +"NO_SEASONALITY", +"DAILY", +"WEEKLY", +"MONTHLY", +"QUARTERLY", +"YEARLY" +], +"enumDescriptions": [ +"Unspecified seasonal period.", +"No seasonality", +"Daily period, 24 hours.", +"Weekly period, 7 days.", +"Monthly period, 30 days or irregular.", +"Quarterly period, 90 days or irregular.", +"Yearly period, 365 days or irregular." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ArimaSingleModelForecastingMetrics": { +"description": "Model evaluation metrics for a single ARIMA forecasting model.", +"id": "ArimaSingleModelForecastingMetrics", +"properties": { +"arimaFittingMetrics": { +"$ref": "ArimaFittingMetrics", +"description": "Arima fitting metrics." +}, +"hasDrift": { +"description": "Is arima model fitted with drift or not. It is always false when d is not 1.", +"type": "boolean" +}, +"hasHolidayEffect": { +"description": "If true, holiday_effect is a part of time series decomposition result.", +"type": "boolean" +}, +"hasSpikesAndDips": { +"description": "If true, spikes_and_dips is a part of time series decomposition result.", +"type": "boolean" +}, +"hasStepChanges": { +"description": "If true, step_changes is a part of time series decomposition result.", +"type": "boolean" +}, +"nonSeasonalOrder": { +"$ref": "ArimaOrder", +"description": "Non-seasonal order." +}, +"seasonalPeriods": { +"description": "Seasonal periods. Repeated because multiple periods are supported for one time series.", +"items": { +"enum": [ +"SEASONAL_PERIOD_TYPE_UNSPECIFIED", +"NO_SEASONALITY", +"DAILY", +"WEEKLY", +"MONTHLY", +"QUARTERLY", +"YEARLY" +], +"enumDescriptions": [ +"Unspecified seasonal period.", +"No seasonality", +"Daily period, 24 hours.", +"Weekly period, 7 days.", +"Monthly period, 30 days or irregular.", +"Quarterly period, 90 days or irregular.", +"Yearly period, 365 days or irregular." +], +"type": "string" +}, +"type": "array" +}, +"timeSeriesId": { +"description": "The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.", +"type": "string" +}, +"timeSeriesIds": { +"description": "The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"AvroOptions": { +"description": "Options for external data sources.", +"id": "AvroOptions", +"properties": { +"useAvroLogicalTypes": { +"description": "Optional. If sourceFormat is set to \"AVRO\", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER).", +"type": "boolean" +} +}, +"type": "object" +}, +"BiEngineReason": { +"description": "Reason why BI Engine didn't accelerate the query (or sub-query).", +"id": "BiEngineReason", +"properties": { +"code": { +"description": "Output only. High-level BI Engine reason for partial or disabled acceleration", +"enum": [ +"CODE_UNSPECIFIED", +"NO_RESERVATION", +"INSUFFICIENT_RESERVATION", +"UNSUPPORTED_SQL_TEXT", +"INPUT_TOO_LARGE", +"OTHER_REASON", +"TABLE_EXCLUDED" +], +"enumDescriptions": [ +"BiEngineReason not specified.", +"No reservation available for BI Engine acceleration.", +"Not enough memory available for BI Engine acceleration.", +"This particular SQL text is not supported for acceleration by BI Engine.", +"Input too large for acceleration by BI Engine.", +"Catch-all code for all other cases for partial or disabled acceleration.", +"One or more tables were not eligible for BI Engine acceleration." +], +"readOnly": true, +"type": "string" +}, +"message": { +"description": "Output only. Free form human-readable reason for partial or disabled acceleration.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BiEngineStatistics": { +"description": "Statistics for a BI Engine specific query. Populated as part of JobStatistics2", +"id": "BiEngineStatistics", +"properties": { +"accelerationMode": { +"description": "Output only. Specifies which mode of BI Engine acceleration was performed (if any).", +"enum": [ +"BI_ENGINE_ACCELERATION_MODE_UNSPECIFIED", +"BI_ENGINE_DISABLED", +"PARTIAL_INPUT", +"FULL_INPUT", +"FULL_QUERY" +], +"enumDescriptions": [ +"BiEngineMode type not specified.", +"BI Engine acceleration was attempted but disabled. bi_engine_reasons specifies a more detailed reason.", +"Some inputs were accelerated using BI Engine. See bi_engine_reasons for why parts of the query were not accelerated.", +"All of the query inputs were accelerated using BI Engine.", +"All of the query was accelerated using BI Engine." +], +"readOnly": true, +"type": "string" +}, +"biEngineMode": { +"description": "Output only. Specifies which mode of BI Engine acceleration was performed (if any).", +"enum": [ +"ACCELERATION_MODE_UNSPECIFIED", +"DISABLED", +"PARTIAL", +"FULL" +], +"enumDescriptions": [ +"BiEngineMode type not specified.", +"BI Engine disabled the acceleration. bi_engine_reasons specifies a more detailed reason.", +"Part of the query was accelerated using BI Engine. See bi_engine_reasons for why parts of the query were not accelerated.", +"All of the query was accelerated using BI Engine." +], +"readOnly": true, +"type": "string" +}, +"biEngineReasons": { +"description": "In case of DISABLED or PARTIAL bi_engine_mode, these contain the explanatory reasons as to why BI Engine could not accelerate. In case the full query was accelerated, this field is not populated.", +"items": { +"$ref": "BiEngineReason" +}, +"type": "array" +} +}, +"type": "object" +}, +"BigLakeConfiguration": { +"description": "Configuration for BigLake managed tables.", +"id": "BigLakeConfiguration", +"properties": { +"connectionId": { +"description": "Optional. The connection specifying the credentials to be used to read and write to external storage, such as Cloud Storage. The connection_id can have the form `{project}.{location}.{connection_id}` or `projects/{project}/locations/{location}/connections/{connection_id}\".", +"type": "string" +}, +"fileFormat": { +"description": "Optional. The file format the table data is stored in.", +"enum": [ +"FILE_FORMAT_UNSPECIFIED", +"PARQUET" +], +"enumDescriptions": [ +"Default Value.", +"Apache Parquet format." +], +"type": "string" +}, +"storageUri": { +"description": "Optional. The fully qualified location prefix of the external folder where table data is stored. The '*' wildcard character is not allowed. The URI should be in the format `gs://bucket/path_to_table/`", +"type": "string" +}, +"tableFormat": { +"description": "Optional. The table format the metadata only snapshots are stored in.", +"enum": [ +"TABLE_FORMAT_UNSPECIFIED", +"ICEBERG" +], +"enumDescriptions": [ +"Default Value.", +"Apache Iceberg format." +], +"type": "string" +} +}, +"type": "object" +}, +"BigQueryModelTraining": { +"id": "BigQueryModelTraining", +"properties": { +"currentIteration": { +"description": "Deprecated.", +"format": "int32", +"type": "integer" +}, +"expectedTotalIterations": { +"description": "Deprecated.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BigtableColumn": { +"description": "Information related to a Bigtable column.", +"id": "BigtableColumn", +"properties": { +"encoding": { +"description": "Optional. The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. 'encoding' can also be set at the column family level. However, the setting at this level takes precedence if 'encoding' is set at both levels.", +"type": "string" +}, +"fieldName": { +"description": "Optional. If the qualifier is not a valid BigQuery field identifier i.e. does not match a-zA-Z*, a valid identifier must be provided as the column field name and is used as field name in queries.", +"type": "string" +}, +"onlyReadLatest": { +"description": "Optional. If this is set, only the latest version of value in this column are exposed. 'onlyReadLatest' can also be set at the column family level. However, the setting at this level takes precedence if 'onlyReadLatest' is set at both levels.", +"type": "boolean" +}, +"qualifierEncoded": { +"description": "[Required] Qualifier of the column. Columns in the parent column family that has this exact qualifier are exposed as `.` field. If the qualifier is valid UTF-8 string, it can be specified in the qualifier_string field. Otherwise, a base-64 encoded value must be set to qualifier_encoded. The column field name is the same as the column qualifier. However, if the qualifier is not a valid BigQuery field identifier i.e. does not match a-zA-Z*, a valid identifier must be provided as field_name.", +"format": "byte", +"type": "string" +}, +"qualifierString": { +"description": "Qualifier string.", +"type": "string" +}, +"type": { +"description": "Optional. The type to convert the value in cells of this column. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): * BYTES * STRING * INTEGER * FLOAT * BOOLEAN * JSON Default type is BYTES. 'type' can also be set at the column family level. However, the setting at this level takes precedence if 'type' is set at both levels.", +"type": "string" +} +}, +"type": "object" +}, +"BigtableColumnFamily": { +"description": "Information related to a Bigtable column family.", +"id": "BigtableColumnFamily", +"properties": { +"columns": { +"description": "Optional. Lists of columns that should be exposed as individual fields as opposed to a list of (column name, value) pairs. All columns whose qualifier matches a qualifier in this list can be accessed as `.`. Other columns can be accessed as a list through the `.Column` field.", +"items": { +"$ref": "BigtableColumn" +}, +"type": "array" +}, +"encoding": { +"description": "Optional. The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. This can be overridden for a specific column by listing that column in 'columns' and specifying an encoding for it.", +"type": "string" +}, +"familyId": { +"description": "Identifier of the column family.", +"type": "string" +}, +"onlyReadLatest": { +"description": "Optional. If this is set only the latest version of value are exposed for all columns in this column family. This can be overridden for a specific column by listing that column in 'columns' and specifying a different setting for that column.", +"type": "boolean" +}, +"type": { +"description": "Optional. The type to convert the value in cells of this column family. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): * BYTES * STRING * INTEGER * FLOAT * BOOLEAN * JSON Default type is BYTES. This can be overridden for a specific column by listing that column in 'columns' and specifying a type for it.", +"type": "string" +} +}, +"type": "object" +}, +"BigtableOptions": { +"description": "Options specific to Google Cloud Bigtable data sources.", +"id": "BigtableOptions", +"properties": { +"columnFamilies": { +"description": "Optional. List of column families to expose in the table schema along with their types. This list restricts the column families that can be referenced in queries and specifies their value types. You can use this list to do type conversions - see the 'type' field for more details. If you leave this list empty, all column families are present in the table schema and their values are read as BYTES. During a query only the column families referenced in that query are read from Bigtable.", +"items": { +"$ref": "BigtableColumnFamily" +}, +"type": "array" +}, +"ignoreUnspecifiedColumnFamilies": { +"description": "Optional. If field is true, then the column families that are not specified in columnFamilies list are not exposed in the table schema. Otherwise, they are read with BYTES type values. The default value is false.", +"type": "boolean" +}, +"outputColumnFamiliesAsJson": { +"description": "Optional. If field is true, then each column family will be read as a single JSON column. Otherwise they are read as a repeated cell structure containing timestamp/value tuples. The default value is false.", +"type": "boolean" +}, +"readRowkeyAsString": { +"description": "Optional. If field is true, then the rowkey column families will be read and converted to string. Otherwise they are read with BYTES type values and users need to manually cast them with CAST if necessary. The default value is false.", +"type": "boolean" +} +}, +"type": "object" +}, +"BinaryClassificationMetrics": { +"description": "Evaluation metrics for binary classification/classifier models.", +"id": "BinaryClassificationMetrics", +"properties": { +"aggregateClassificationMetrics": { +"$ref": "AggregateClassificationMetrics", +"description": "Aggregate classification metrics." +}, +"binaryConfusionMatrixList": { +"description": "Binary confusion matrix at multiple thresholds.", +"items": { +"$ref": "BinaryConfusionMatrix" +}, +"type": "array" +}, +"negativeLabel": { +"description": "Label representing the negative class.", +"type": "string" +}, +"positiveLabel": { +"description": "Label representing the positive class.", +"type": "string" +} +}, +"type": "object" +}, +"BinaryConfusionMatrix": { +"description": "Confusion matrix for binary classification models.", +"id": "BinaryConfusionMatrix", +"properties": { +"accuracy": { +"description": "The fraction of predictions given the correct label.", +"format": "double", +"type": "number" +}, +"f1Score": { +"description": "The equally weighted average of recall and precision.", +"format": "double", +"type": "number" +}, +"falseNegatives": { +"description": "Number of false samples predicted as false.", +"format": "int64", +"type": "string" +}, +"falsePositives": { +"description": "Number of false samples predicted as true.", +"format": "int64", +"type": "string" +}, +"positiveClassThreshold": { +"description": "Threshold value used when computing each of the following metric.", +"format": "double", +"type": "number" +}, +"precision": { +"description": "The fraction of actual positive predictions that had positive actual labels.", +"format": "double", +"type": "number" +}, +"recall": { +"description": "The fraction of actual positive labels that were given a positive prediction.", +"format": "double", +"type": "number" +}, +"trueNegatives": { +"description": "Number of true samples predicted as false.", +"format": "int64", +"type": "string" +}, +"truePositives": { +"description": "Number of true samples predicted as true.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"BqmlIterationResult": { +"id": "BqmlIterationResult", +"properties": { +"durationMs": { +"description": "Deprecated.", +"format": "int64", +"type": "string" +}, +"evalLoss": { +"description": "Deprecated.", +"format": "double", +"type": "number" +}, +"index": { +"description": "Deprecated.", +"format": "int32", +"type": "integer" +}, +"learnRate": { +"description": "Deprecated.", +"format": "double", +"type": "number" +}, +"trainingLoss": { +"description": "Deprecated.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"BqmlTrainingRun": { +"id": "BqmlTrainingRun", +"properties": { +"iterationResults": { +"description": "Deprecated.", +"items": { +"$ref": "BqmlIterationResult" +}, +"type": "array" +}, +"startTime": { +"description": "Deprecated.", +"format": "date-time", +"type": "string" +}, +"state": { +"description": "Deprecated.", +"type": "string" +}, +"trainingOptions": { +"description": "Deprecated.", +"properties": { +"earlyStop": { +"type": "boolean" +}, +"l1Reg": { +"format": "double", +"type": "number" +}, +"l2Reg": { +"format": "double", +"type": "number" +}, +"learnRate": { +"format": "double", +"type": "number" +}, +"learnRateStrategy": { +"type": "string" +}, +"lineSearchInitLearnRate": { +"format": "double", +"type": "number" +}, +"maxIteration": { +"format": "int64", +"type": "string" +}, +"minRelProgress": { +"format": "double", +"type": "number" +}, +"warmStart": { +"type": "boolean" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"CategoricalValue": { +"description": "Representative value of a categorical feature.", +"id": "CategoricalValue", +"properties": { +"categoryCounts": { +"description": "Counts of all categories for the categorical feature. If there are more than ten categories, we return top ten (by count) and return one more CategoryCount with category \"_OTHER_\" and count as aggregate counts of remaining categories.", +"items": { +"$ref": "CategoryCount" +}, +"type": "array" +} +}, +"type": "object" +}, +"CategoryCount": { +"description": "Represents the count of a single category within the cluster.", +"id": "CategoryCount", +"properties": { +"category": { +"description": "The name of category.", +"type": "string" +}, +"count": { +"description": "The count of training samples matching the category within the cluster.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CloneDefinition": { +"description": "Information about base table and clone time of a table clone.", +"id": "CloneDefinition", +"properties": { +"baseTableReference": { +"$ref": "TableReference", +"description": "Required. Reference describing the ID of the table that was cloned." +}, +"cloneTime": { +"description": "Required. The time at which the base table was cloned. This value is reported in the JSON response using RFC3339 format.", +"format": "date-time", +"type": "string" +} +}, +"type": "object" +}, +"Cluster": { +"description": "Message containing the information about one cluster.", +"id": "Cluster", +"properties": { +"centroidId": { +"description": "Centroid id.", +"format": "int64", +"type": "string" +}, +"count": { +"description": "Count of training data rows that were assigned to this cluster.", +"format": "int64", +"type": "string" +}, +"featureValues": { +"description": "Values of highly variant features for this cluster.", +"items": { +"$ref": "FeatureValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusterInfo": { +"description": "Information about a single cluster for clustering model.", +"id": "ClusterInfo", +"properties": { +"centroidId": { +"description": "Centroid id.", +"format": "int64", +"type": "string" +}, +"clusterRadius": { +"description": "Cluster radius, the average distance from centroid to each point assigned to the cluster.", +"format": "double", +"type": "number" +}, +"clusterSize": { +"description": "Cluster size, the total number of points assigned to the cluster.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Clustering": { +"description": "Configures table clustering.", +"id": "Clustering", +"properties": { +"fields": { +"description": "One or more fields on which data should be clustered. Only top-level, non-repeated, simple-type fields are supported. The ordering of the clustering fields should be prioritized from most to least important for filtering purposes. For additional information, see [Introduction to clustered tables](https://cloud.google.com/bigquery/docs/clustered-tables#limitations).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusteringMetrics": { +"description": "Evaluation metrics for clustering models.", +"id": "ClusteringMetrics", +"properties": { +"clusters": { +"description": "Information for all clusters.", +"items": { +"$ref": "Cluster" +}, +"type": "array" +}, +"daviesBouldinIndex": { +"description": "Davies-Bouldin index.", +"format": "double", +"type": "number" +}, +"meanSquaredDistance": { +"description": "Mean of squared distances between each sample to its cluster centroid.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ConfusionMatrix": { +"description": "Confusion matrix for multi-class classification models.", +"id": "ConfusionMatrix", +"properties": { +"confidenceThreshold": { +"description": "Confidence threshold used when computing the entries of the confusion matrix.", +"format": "double", +"type": "number" +}, +"rows": { +"description": "One row per actual label.", +"items": { +"$ref": "Row" +}, +"type": "array" +} +}, +"type": "object" +}, +"ConnectionProperty": { +"description": "A connection-level property to customize query behavior. Under JDBC, these correspond directly to connection properties passed to the DriverManager. Under ODBC, these correspond to properties in the connection string. Currently supported connection properties: * **dataset_project_id**: represents the default project for datasets that are used in the query. Setting the system variable `@@dataset_project_id` achieves the same behavior. For more information about system variables, see: https://cloud.google.com/bigquery/docs/reference/system-variables * **time_zone**: represents the default timezone used to run the query. * **session_id**: associates the query with a given session. * **query_label**: associates the query with a given job label. If set, all subsequent queries in a script or session will have this label. For the format in which a you can specify a query label, see labels in the JobConfiguration resource type: https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#jobconfiguration * **service_account**: indicates the service account to use to run a continuous query. If set, the query job uses the service account to access Google Cloud resources. Service account access is bounded by the IAM permissions that you have granted to the service account. Additional properties are allowed, but ignored. Specifying multiple connection properties with the same key returns an error.", +"id": "ConnectionProperty", +"properties": { +"key": { +"description": "The key of the property to set.", +"type": "string" +}, +"value": { +"description": "The value of the property to set.", +"type": "string" +} +}, +"type": "object" +}, +"CsvOptions": { +"description": "Information related to a CSV data source.", +"id": "CsvOptions", +"properties": { +"allowJaggedRows": { +"description": "Optional. Indicates if BigQuery should accept rows that are missing trailing optional columns. If true, BigQuery treats missing trailing columns as null values. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false.", +"type": "boolean" +}, +"allowQuotedNewlines": { +"description": "Optional. Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.", +"type": "boolean" +}, +"encoding": { +"description": "Optional. The character encoding of the data. The supported values are UTF-8, ISO-8859-1, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.", +"type": "string" +}, +"fieldDelimiter": { +"description": "Optional. The separator character for fields in a CSV file. The separator is interpreted as a single byte. For files encoded in ISO-8859-1, any single character can be used as a separator. For files encoded in UTF-8, characters represented in decimal range 1-127 (U+0001-U+007F) can be used without any modification. UTF-8 characters encoded with multiple bytes (i.e. U+0080 and above) will have only the first byte used for separating fields. The remaining bytes will be treated as a part of the field. BigQuery also supports the escape sequence \"\\t\" (U+0009) to specify a tab separator. The default value is comma (\",\", U+002C).", +"type": "string" +}, +"nullMarker": { +"description": "Optional. Specifies a string that represents a null value in a CSV file. For example, if you specify \"\\N\", BigQuery interprets \"\\N\" as a null value when querying a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery throws an error if an empty string is present for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.", +"type": "string" +}, +"preserveAsciiControlCharacters": { +"description": "Optional. Indicates if the embedded ASCII control characters (the first 32 characters in the ASCII-table, from '\\x00' to '\\x1F') are preserved.", +"type": "boolean" +}, +"quote": { +"default": "\"", +"description": "Optional. The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote (\"). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true. To include the specific quote character within a quoted value, precede it with an additional matching quote character. For example, if you want to escape the default character ' \" ', use ' \"\" '.", +"pattern": ".?", +"type": "string" +}, +"skipLeadingRows": { +"description": "Optional. The number of rows at the top of a CSV file that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped. When autodetect is on, the behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"DataFormatOptions": { +"description": "Options for data format adjustments.", +"id": "DataFormatOptions", +"properties": { +"useInt64Timestamp": { +"description": "Optional. Output timestamp as usec int64. Default is false.", +"type": "boolean" +} +}, +"type": "object" +}, +"DataMaskingStatistics": { +"description": "Statistics for data-masking.", +"id": "DataMaskingStatistics", +"properties": { +"dataMaskingApplied": { +"description": "Whether any accessed data was protected by the data masking.", +"type": "boolean" +} +}, +"type": "object" +}, +"DataPolicyOption": { +"description": "Data policy option proto, it currently supports name only, will support precedence later.", +"id": "DataPolicyOption", +"properties": { +"name": { +"description": "Data policy resource name in the form of projects/project_id/locations/location_id/dataPolicies/data_policy_id.", +"type": "string" +} +}, +"type": "object" +}, +"DataSplitResult": { +"description": "Data split result. This contains references to the training and evaluation data tables that were used to train the model.", +"id": "DataSplitResult", +"properties": { +"evaluationTable": { +"$ref": "TableReference", +"description": "Table reference of the evaluation data after split." +}, +"testTable": { +"$ref": "TableReference", +"description": "Table reference of the test data after split." +}, +"trainingTable": { +"$ref": "TableReference", +"description": "Table reference of the training data after split." +} +}, +"type": "object" +}, +"Dataset": { +"description": "Represents a BigQuery dataset.", +"id": "Dataset", +"properties": { +"access": { +"description": "Optional. An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER; If you patch a dataset, then this field is overwritten by the patched dataset's access field. To add entities, you must supply the entire existing access array in addition to any new entities that you want to add.", +"items": { +"description": "An object that defines dataset access for an entity.", +"properties": { +"condition": { +"$ref": "Expr", +"description": "Optional. condition for the binding. If CEL expression in this field is true, this access binding will be considered" +}, +"dataset": { +"$ref": "DatasetAccessEntry", +"description": "[Pick one] A grant authorizing all resources of a particular type in a particular dataset access to this dataset. Only views are supported for now. The role field is not required when this field is set. If that dataset is deleted and re-created, its access needs to be granted again via an update operation." +}, +"domain": { +"description": "[Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: \"example.com\". Maps to IAM policy member \"domain:DOMAIN\".", +"type": "string" +}, +"groupByEmail": { +"description": "[Pick one] An email address of a Google Group to grant access to. Maps to IAM policy member \"group:GROUP\".", +"type": "string" +}, +"iamMember": { +"description": "[Pick one] Some other type of member that appears in the IAM Policy but isn't a user, group, domain, or special group.", +"type": "string" +}, +"role": { +"description": "An IAM role ID that should be granted to the user, group, or domain specified in this access entry. The following legacy mappings will be applied: * `OWNER`: `roles/bigquery.dataOwner` * `WRITER`: `roles/bigquery.dataEditor` * `READER`: `roles/bigquery.dataViewer` This field will accept any of the above formats, but will return only the legacy format. For example, if you set this field to \"roles/bigquery.dataOwner\", it will be returned back as \"OWNER\".", +"type": "string" +}, +"routine": { +"$ref": "RoutineReference", +"description": "[Pick one] A routine from a different dataset to grant access to. Queries executed against that routine will have read access to views/tables/routines in this dataset. Only UDF is supported for now. The role field is not required when this field is set. If that routine is updated by any user, access to the routine needs to be granted again via an update operation." +}, +"specialGroup": { +"description": "[Pick one] A special group to grant access to. Possible values include: * projectOwners: Owners of the enclosing project. * projectReaders: Readers of the enclosing project. * projectWriters: Writers of the enclosing project. * allAuthenticatedUsers: All authenticated BigQuery users. Maps to similarly-named IAM members.", +"type": "string" +}, +"userByEmail": { +"description": "[Pick one] An email address of a user to grant access to. For example: fred@example.com. Maps to IAM policy member \"user:EMAIL\" or \"serviceAccount:EMAIL\".", +"type": "string" +}, +"view": { +"$ref": "TableReference", +"description": "[Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to views/tables/routines in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation." +} +}, +"type": "object" +}, +"type": "array" +}, +"creationTime": { +"description": "Output only. The time when this dataset was created, in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"datasetReference": { +"$ref": "DatasetReference", +"description": "Required. A reference that identifies the dataset." +}, +"defaultCollation": { +"description": "Optional. Defines the default collation specification of future tables created in the dataset. If a table is created in this dataset without table-level default collation, then the table inherits the dataset default collation, which is applied to the string fields that do not have explicit collation specified. A change to this field affects only tables created afterwards, and does not alter the existing tables. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior.", +"type": "string" +}, +"defaultEncryptionConfiguration": { +"$ref": "EncryptionConfiguration", +"description": "The default encryption key for all tables in the dataset. After this property is set, the encryption key of all newly-created tables in the dataset is set to this value unless the table creation request or query explicitly overrides the key." +}, +"defaultPartitionExpirationMs": { +"description": "This default partition expiration, expressed in milliseconds. When new time-partitioned tables are created in a dataset where this property is set, the table will inherit this value, propagated as the `TimePartitioning.expirationMs` property on the new table. If you set `TimePartitioning.expirationMs` explicitly when creating a table, the `defaultPartitionExpirationMs` of the containing dataset is ignored. When creating a partitioned table, if `defaultPartitionExpirationMs` is set, the `defaultTableExpirationMs` value is ignored and the table will not be inherit a table expiration deadline.", +"format": "int64", +"type": "string" +}, +"defaultRoundingMode": { +"description": "Optional. Defines the default rounding mode specification of new tables created within this dataset. During table creation, if this field is specified, the table within this dataset will inherit the default rounding mode of the dataset. Setting the default rounding mode on a table overrides this option. Existing tables in the dataset are unaffected. If columns are defined during that table creation, they will immediately inherit the table's default rounding mode, unless otherwise specified.", +"enum": [ +"ROUNDING_MODE_UNSPECIFIED", +"ROUND_HALF_AWAY_FROM_ZERO", +"ROUND_HALF_EVEN" +], +"enumDescriptions": [ +"Unspecified will default to using ROUND_HALF_AWAY_FROM_ZERO.", +"ROUND_HALF_AWAY_FROM_ZERO rounds half values away from zero when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5, 1.6, 1.7, 1.8, 1.9 => 2", +"ROUND_HALF_EVEN rounds half values to the nearest even value when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5 => 2 1.6, 1.7, 1.8, 1.9 => 2 2.5 => 2" +], +"type": "string" +}, +"defaultTableExpirationMs": { +"description": "Optional. The default lifetime of all tables in the dataset, in milliseconds. The minimum lifetime value is 3600000 milliseconds (one hour). To clear an existing default expiration with a PATCH request, set to 0. Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.", +"format": "int64", +"type": "string" +}, +"description": { +"description": "Optional. A user-friendly description of the dataset.", +"type": "string" +}, +"etag": { +"description": "Output only. A hash of the resource.", +"readOnly": true, +"type": "string" +}, +"externalCatalogDatasetOptions": { +"$ref": "ExternalCatalogDatasetOptions", +"description": "Optional. Options defining open source compatible datasets living in the BigQuery catalog. Contains metadata of open source database, schema or namespace represented by the current dataset." +}, +"externalDatasetReference": { +"$ref": "ExternalDatasetReference", +"description": "Optional. Reference to a read-only external dataset defined in data catalogs outside of BigQuery. Filled out when the dataset type is EXTERNAL." +}, +"friendlyName": { +"description": "Optional. A descriptive name for the dataset.", +"type": "string" +}, +"id": { +"description": "Output only. The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.", +"readOnly": true, +"type": "string" +}, +"isCaseInsensitive": { +"description": "Optional. TRUE if the dataset and its table names are case-insensitive, otherwise FALSE. By default, this is FALSE, which means the dataset and its table names are case-sensitive. This field does not affect routine references.", +"type": "boolean" +}, +"kind": { +"default": "bigquery#dataset", +"description": "Output only. The resource type.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See [Creating and Updating Dataset Labels](https://cloud.google.com/bigquery/docs/creating-managing-labels#creating_and_updating_dataset_labels) for more information.", +"type": "object" +}, +"lastModifiedTime": { +"description": "Output only. The date when this dataset was last modified, in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"linkedDatasetMetadata": { +"$ref": "LinkedDatasetMetadata", +"description": "Output only. Metadata about the LinkedDataset. Filled out when the dataset type is LINKED.", +"readOnly": true +}, +"linkedDatasetSource": { +"$ref": "LinkedDatasetSource", +"description": "Optional. The source dataset reference when the dataset is of type LINKED. For all other dataset types it is not set. This field cannot be updated once it is set. Any attempt to update this field using Update and Patch API Operations will be ignored." +}, +"location": { +"description": "The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.", +"type": "string" +}, +"maxTimeTravelHours": { +"description": "Optional. Defines the time travel window in hours. The value can be from 48 to 168 hours (2 to 7 days). The default value is 168 hours if this is not set.", +"format": "int64", +"type": "string" +}, +"resourceTags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The [tags](https://cloud.google.com/bigquery/docs/tags) attached to this dataset. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example \"123456789012/environment\" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is expected to be the short name, for example \"Production\". See [Tag definitions](https://cloud.google.com/iam/docs/tags-access-control#definitions) for more details.", +"type": "object" +}, +"restrictions": { +"$ref": "RestrictionConfig", +"description": "Optional. Output only. Restriction config for all tables and dataset. If set, restrict certain accesses on the dataset and all its tables based on the config. See [Data egress](https://cloud.google.com/bigquery/docs/analytics-hub-introduction#data_egress) for more details.", +"readOnly": true +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"selfLink": { +"description": "Output only. A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.", +"readOnly": true, +"type": "string" +}, +"storageBillingModel": { +"description": "Optional. Updates storage_billing_model for the dataset.", +"enum": [ +"STORAGE_BILLING_MODEL_UNSPECIFIED", +"LOGICAL", +"PHYSICAL" +], +"enumDescriptions": [ +"Value not set.", +"Billing for logical bytes.", +"Billing for physical bytes." +], +"type": "string" +}, +"tags": { +"deprecated": true, +"description": "Output only. Tags for the dataset. To provide tags as inputs, use the `resourceTags` field.", +"items": { +"description": "A global tag managed by Resource Manager. https://cloud.google.com/iam/docs/tags-access-control#definitions", +"properties": { +"tagKey": { +"description": "Required. The namespaced friendly name of the tag key, e.g. \"12345/environment\" where 12345 is org id.", +"type": "string" +}, +"tagValue": { +"description": "Required. The friendly short name of the tag value, e.g. \"production\".", +"type": "string" +} +}, +"type": "object" +}, +"readOnly": true, +"type": "array" +}, +"type": { +"description": "Output only. Same as `type` in `ListFormatDataset`. The type of the dataset, one of: * DEFAULT - only accessible by owner and authorized accounts, * PUBLIC - accessible by everyone, * LINKED - linked dataset, * EXTERNAL - dataset with definition in external metadata catalog.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DatasetAccessEntry": { +"description": "Grants all resources of particular types in a particular dataset read access to the current dataset. Similar to how individually authorized views work, updates to any resource granted through its dataset (including creation of new resources) requires read permission to referenced resources, plus write permission to the authorizing dataset.", +"id": "DatasetAccessEntry", +"properties": { +"dataset": { +"$ref": "DatasetReference", +"description": "The dataset this entry applies to" +}, +"targetTypes": { +"description": "Which resources in the dataset this entry applies to. Currently, only views are supported, but additional target types may be added in the future.", +"items": { +"enum": [ +"TARGET_TYPE_UNSPECIFIED", +"VIEWS", +"ROUTINES" +], +"enumDescriptions": [ +"Do not use. You must set a target type explicitly.", +"This entry applies to views in the dataset.", +"This entry applies to routines in the dataset." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatasetList": { +"description": "Response format for a page of results when listing datasets.", +"id": "DatasetList", +"properties": { +"datasets": { +"description": "An array of the dataset resources in the project. Each resource contains basic information. For full information about a particular dataset resource, use the Datasets: get method. This property is omitted when there are no datasets in the project.", +"items": { +"description": "A dataset resource with only a subset of fields, to be returned in a list of datasets.", +"properties": { +"datasetReference": { +"$ref": "DatasetReference", +"description": "The dataset reference. Use this property to access specific parts of the dataset's ID, such as project ID or dataset ID." +}, +"friendlyName": { +"description": "An alternate name for the dataset. The friendly name is purely decorative in nature.", +"type": "string" +}, +"id": { +"description": "The fully-qualified, unique, opaque ID of the dataset.", +"type": "string" +}, +"kind": { +"description": "The resource type. This property always returns the value \"bigquery#dataset\"", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this dataset. You can use these to organize and group your datasets.", +"type": "object" +}, +"location": { +"description": "The geographic location where the dataset resides.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"etag": { +"description": "Output only. A hash value of the results page. You can use this property to determine if the page has changed since the last request.", +"readOnly": true, +"type": "string" +}, +"kind": { +"default": "bigquery#datasetList", +"description": "Output only. The resource type. This property always returns the value \"bigquery#datasetList\"", +"readOnly": true, +"type": "string" +}, +"nextPageToken": { +"description": "A token that can be used to request the next results page. This property is omitted on the final results page.", +"type": "string" +}, +"unreachable": { +"description": "A list of skipped locations that were unreachable. For more information about BigQuery locations, see: https://cloud.google.com/bigquery/docs/locations. Example: \"europe-west5\"", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatasetReference": { +"description": "Identifier for a dataset.", +"id": "DatasetReference", +"properties": { +"datasetId": { +"description": "Required. A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", +"type": "string" +}, +"projectId": { +"description": "Optional. The ID of the project containing this dataset.", +"type": "string" +} +}, +"type": "object" +}, +"DestinationTableProperties": { +"description": "Properties for the destination table.", +"id": "DestinationTableProperties", +"properties": { +"description": { +"description": "Optional. The description for the destination table. This will only be used if the destination table is newly created. If the table already exists and a value different than the current description is provided, the job will fail.", +"type": "string" +}, +"expirationTime": { +"description": "Internal use only.", +"format": "date-time", +"type": "string" +}, +"friendlyName": { +"description": "Optional. Friendly name for the destination table. If the table already exists, it should be same as the existing friendly name.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels associated with this table. You can use these to organize and group your tables. This will only be used if the destination table is newly created. If the table already exists and labels are different than the current labels are provided, the job will fail.", +"type": "object" +} +}, +"type": "object" +}, +"DifferentialPrivacyPolicy": { +"description": "Represents privacy policy associated with \"differential privacy\" method.", +"id": "DifferentialPrivacyPolicy", +"properties": { +"deltaBudget": { +"description": "Optional. The total delta budget for all queries against the privacy-protected view. Each subscriber query against this view charges the amount of delta that is pre-defined by the contributor through the privacy policy delta_per_query field. If there is sufficient budget, then the subscriber query attempts to complete. It might still fail due to other reasons, in which case the charge is refunded. If there is insufficient budget the query is rejected. There might be multiple charge attempts if a single query references multiple views. In this case there must be sufficient budget for all charges or the query is rejected and charges are refunded in best effort. The budget does not have a refresh policy and can only be updated via ALTER VIEW or circumvented by creating a new view that can be queried with a fresh budget.", +"format": "double", +"type": "number" +}, +"deltaBudgetRemaining": { +"description": "Output only. The delta budget remaining. If budget is exhausted, no more queries are allowed. Note that the budget for queries that are in progress is deducted before the query executes. If the query fails or is cancelled then the budget is refunded. In this case the amount of budget remaining can increase.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"deltaPerQuery": { +"description": "Optional. The delta value that is used per query. Delta represents the probability that any row will fail to be epsilon differentially private. Indicates the risk associated with exposing aggregate rows in the result of a query.", +"format": "double", +"type": "number" +}, +"epsilonBudget": { +"description": "Optional. The total epsilon budget for all queries against the privacy-protected view. Each subscriber query against this view charges the amount of epsilon they request in their query. If there is sufficient budget, then the subscriber query attempts to complete. It might still fail due to other reasons, in which case the charge is refunded. If there is insufficient budget the query is rejected. There might be multiple charge attempts if a single query references multiple views. In this case there must be sufficient budget for all charges or the query is rejected and charges are refunded in best effort. The budget does not have a refresh policy and can only be updated via ALTER VIEW or circumvented by creating a new view that can be queried with a fresh budget.", +"format": "double", +"type": "number" +}, +"epsilonBudgetRemaining": { +"description": "Output only. The epsilon budget remaining. If budget is exhausted, no more queries are allowed. Note that the budget for queries that are in progress is deducted before the query executes. If the query fails or is cancelled then the budget is refunded. In this case the amount of budget remaining can increase.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"maxEpsilonPerQuery": { +"description": "Optional. The maximum epsilon value that a query can consume. If the subscriber specifies epsilon as a parameter in a SELECT query, it must be less than or equal to this value. The epsilon parameter controls the amount of noise that is added to the groups \u2014 a higher epsilon means less noise.", +"format": "double", +"type": "number" +}, +"maxGroupsContributed": { +"description": "Optional. The maximum groups contributed value that is used per query. Represents the maximum number of groups to which each protected entity can contribute. Changing this value does not improve or worsen privacy. The best value for accuracy and utility depends on the query and data.", +"format": "int64", +"type": "string" +}, +"privacyUnitColumn": { +"description": "Optional. The privacy unit column associated with this policy. Differential privacy policies can only have one privacy unit column per data source object (table, view).", +"type": "string" +} +}, +"type": "object" +}, +"DimensionalityReductionMetrics": { +"description": "Model evaluation metrics for dimensionality reduction models.", +"id": "DimensionalityReductionMetrics", +"properties": { +"totalExplainedVarianceRatio": { +"description": "Total percentage of variance explained by the selected principal components.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"DmlStatistics": { +"description": "Detailed statistics for DML statements", +"id": "DmlStatistics", +"properties": { +"deletedRowCount": { +"description": "Output only. Number of deleted Rows. populated by DML DELETE, MERGE and TRUNCATE statements.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"insertedRowCount": { +"description": "Output only. Number of inserted Rows. Populated by DML INSERT and MERGE statements", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"updatedRowCount": { +"description": "Output only. Number of updated Rows. Populated by DML UPDATE and MERGE statements.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DoubleCandidates": { +"description": "Discrete candidates of a double hyperparameter.", +"id": "DoubleCandidates", +"properties": { +"candidates": { +"description": "Candidates for the double parameter in increasing order.", +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +} +}, +"type": "object" +}, +"DoubleHparamSearchSpace": { +"description": "Search space for a double hyperparameter.", +"id": "DoubleHparamSearchSpace", +"properties": { +"candidates": { +"$ref": "DoubleCandidates", +"description": "Candidates of the double hyperparameter." +}, +"range": { +"$ref": "DoubleRange", +"description": "Range of the double hyperparameter." +} +}, +"type": "object" +}, +"DoubleRange": { +"description": "Range of a double hyperparameter.", +"id": "DoubleRange", +"properties": { +"max": { +"description": "Max value of the double parameter.", +"format": "double", +"type": "number" +}, +"min": { +"description": "Min value of the double parameter.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"EncryptionConfiguration": { +"description": "Configuration for Cloud KMS encryption settings.", +"id": "EncryptionConfiguration", +"properties": { +"kmsKeyName": { +"description": "Optional. Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.", +"type": "string" +} +}, +"type": "object" +}, +"Entry": { +"description": "A single entry in the confusion matrix.", +"id": "Entry", +"properties": { +"itemCount": { +"description": "Number of items being predicted as this label.", +"format": "int64", +"type": "string" +}, +"predictedLabel": { +"description": "The predicted label. For confidence_threshold > 0, we will also add an entry indicating the number of items under the confidence threshold.", +"type": "string" +} +}, +"type": "object" +}, +"ErrorProto": { +"description": "Error details.", +"id": "ErrorProto", +"properties": { +"debugInfo": { +"description": "Debugging information. This property is internal to Google and should not be used.", +"type": "string" +}, +"location": { +"description": "Specifies where the error occurred, if present.", +"type": "string" +}, +"message": { +"description": "A human-readable description of the error.", +"type": "string" +}, +"reason": { +"description": "A short error code that summarizes the error.", +"type": "string" +} +}, +"type": "object" +}, +"EvaluationMetrics": { +"description": "Evaluation metrics of a model. These are either computed on all training data or just the eval data based on whether eval data was used during training. These are not present for imported models.", +"id": "EvaluationMetrics", +"properties": { +"arimaForecastingMetrics": { +"$ref": "ArimaForecastingMetrics", +"description": "Populated for ARIMA models." +}, +"binaryClassificationMetrics": { +"$ref": "BinaryClassificationMetrics", +"description": "Populated for binary classification/classifier models." +}, +"clusteringMetrics": { +"$ref": "ClusteringMetrics", +"description": "Populated for clustering models." +}, +"dimensionalityReductionMetrics": { +"$ref": "DimensionalityReductionMetrics", +"description": "Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA." +}, +"multiClassClassificationMetrics": { +"$ref": "MultiClassClassificationMetrics", +"description": "Populated for multi-class classification/classifier models." +}, +"rankingMetrics": { +"$ref": "RankingMetrics", +"description": "Populated for implicit feedback type matrix factorization models." +}, +"regressionMetrics": { +"$ref": "RegressionMetrics", +"description": "Populated for regression models and explicit feedback type matrix factorization models." +} +}, +"type": "object" +}, +"ExplainQueryStage": { +"description": "A single stage of query execution.", +"id": "ExplainQueryStage", +"properties": { +"completedParallelInputs": { +"description": "Number of parallel input segments completed.", +"format": "int64", +"type": "string" +}, +"computeMode": { +"description": "Output only. Compute mode for this stage.", +"enum": [ +"COMPUTE_MODE_UNSPECIFIED", +"BIGQUERY", +"BI_ENGINE" +], +"enumDescriptions": [ +"ComputeMode type not specified.", +"This stage was processed using BigQuery slots.", +"This stage was processed using BI Engine compute." +], +"readOnly": true, +"type": "string" +}, +"computeMsAvg": { +"description": "Milliseconds the average shard spent on CPU-bound tasks.", +"format": "int64", +"type": "string" +}, +"computeMsMax": { +"description": "Milliseconds the slowest shard spent on CPU-bound tasks.", +"format": "int64", +"type": "string" +}, +"computeRatioAvg": { +"description": "Relative amount of time the average shard spent on CPU-bound tasks.", +"format": "double", +"type": "number" +}, +"computeRatioMax": { +"description": "Relative amount of time the slowest shard spent on CPU-bound tasks.", +"format": "double", +"type": "number" +}, +"endMs": { +"description": "Stage end time represented as milliseconds since the epoch.", +"format": "int64", +"type": "string" +}, +"id": { +"description": "Unique ID for the stage within the plan.", +"format": "int64", +"type": "string" +}, +"inputStages": { +"description": "IDs for stages that are inputs to this stage.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Human-readable name for the stage.", +"type": "string" +}, +"parallelInputs": { +"description": "Number of parallel input segments to be processed", +"format": "int64", +"type": "string" +}, +"readMsAvg": { +"description": "Milliseconds the average shard spent reading input.", +"format": "int64", +"type": "string" +}, +"readMsMax": { +"description": "Milliseconds the slowest shard spent reading input.", +"format": "int64", +"type": "string" +}, +"readRatioAvg": { +"description": "Relative amount of time the average shard spent reading input.", +"format": "double", +"type": "number" +}, +"readRatioMax": { +"description": "Relative amount of time the slowest shard spent reading input.", +"format": "double", +"type": "number" +}, +"recordsRead": { +"description": "Number of records read into the stage.", +"format": "int64", +"type": "string" +}, +"recordsWritten": { +"description": "Number of records written by the stage.", +"format": "int64", +"type": "string" +}, +"shuffleOutputBytes": { +"description": "Total number of bytes written to shuffle.", +"format": "int64", +"type": "string" +}, +"shuffleOutputBytesSpilled": { +"description": "Total number of bytes written to shuffle and spilled to disk.", +"format": "int64", +"type": "string" +}, +"slotMs": { +"description": "Slot-milliseconds used by the stage.", +"format": "int64", +"type": "string" +}, +"startMs": { +"description": "Stage start time represented as milliseconds since the epoch.", +"format": "int64", +"type": "string" +}, +"status": { +"description": "Current status for this stage.", +"type": "string" +}, +"steps": { +"description": "List of operations within the stage in dependency order (approximately chronological).", +"items": { +"$ref": "ExplainQueryStep" +}, +"type": "array" +}, +"waitMsAvg": { +"description": "Milliseconds the average shard spent waiting to be scheduled.", +"format": "int64", +"type": "string" +}, +"waitMsMax": { +"description": "Milliseconds the slowest shard spent waiting to be scheduled.", +"format": "int64", +"type": "string" +}, +"waitRatioAvg": { +"description": "Relative amount of time the average shard spent waiting to be scheduled.", +"format": "double", +"type": "number" +}, +"waitRatioMax": { +"description": "Relative amount of time the slowest shard spent waiting to be scheduled.", +"format": "double", +"type": "number" +}, +"writeMsAvg": { +"description": "Milliseconds the average shard spent on writing output.", +"format": "int64", +"type": "string" +}, +"writeMsMax": { +"description": "Milliseconds the slowest shard spent on writing output.", +"format": "int64", +"type": "string" +}, +"writeRatioAvg": { +"description": "Relative amount of time the average shard spent on writing output.", +"format": "double", +"type": "number" +}, +"writeRatioMax": { +"description": "Relative amount of time the slowest shard spent on writing output.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ExplainQueryStep": { +"description": "An operation within a stage.", +"id": "ExplainQueryStep", +"properties": { +"kind": { +"description": "Machine-readable operation type.", +"type": "string" +}, +"substeps": { +"description": "Human-readable description of the step(s).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Explanation": { +"description": "Explanation for a single feature.", +"id": "Explanation", +"properties": { +"attribution": { +"description": "Attribution of feature.", +"format": "double", +"type": "number" +}, +"featureName": { +"description": "The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.", +"type": "string" +} +}, +"type": "object" +}, +"ExportDataStatistics": { +"description": "Statistics for the EXPORT DATA statement as part of Query Job. EXTRACT JOB statistics are populated in JobStatistics4.", +"id": "ExportDataStatistics", +"properties": { +"fileCount": { +"description": "Number of destination files generated in case of EXPORT DATA statement only.", +"format": "int64", +"type": "string" +}, +"rowCount": { +"description": "[Alpha] Number of destination rows generated in case of EXPORT DATA statement only.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"ExternalCatalogDatasetOptions": { +"description": "Options defining open source compatible datasets living in the BigQuery catalog. Contains metadata of open source database, schema, or namespace represented by the current dataset.", +"id": "ExternalCatalogDatasetOptions", +"properties": { +"defaultStorageLocationUri": { +"description": "Optional. The storage location URI for all tables in the dataset. Equivalent to hive metastore's database locationUri. Maximum length of 1024 characters.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. A map of key value pairs defining the parameters and properties of the open source schema. Maximum size of 2MiB.", +"type": "object" +} +}, +"type": "object" +}, +"ExternalCatalogTableOptions": { +"description": "Metadata about open source compatible table. The fields contained in these options correspond to Hive metastore's table-level properties.", +"id": "ExternalCatalogTableOptions", +"properties": { +"connectionId": { +"description": "Optional. A connection ID that specifies the credentials to be used to read external storage, such as Azure Blob, Cloud Storage, or Amazon S3. This connection is needed to read the open source table from BigQuery. The connection_id format must be either `..` or `projects//locations//connections/`.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. A map of the key-value pairs defining the parameters and properties of the open source table. Corresponds with Hive metastore table parameters. Maximum size of 4MiB.", +"type": "object" +}, +"storageDescriptor": { +"$ref": "StorageDescriptor", +"description": "Optional. A storage descriptor containing information about the physical storage of this table." +} +}, +"type": "object" +}, +"ExternalDataConfiguration": { +"id": "ExternalDataConfiguration", +"properties": { +"autodetect": { +"description": "Try to detect schema and format options automatically. Any option specified explicitly will be honored.", +"type": "boolean" +}, +"avroOptions": { +"$ref": "AvroOptions", +"description": "Optional. Additional properties to set if sourceFormat is set to AVRO." +}, +"bigtableOptions": { +"$ref": "BigtableOptions", +"description": "Optional. Additional options if sourceFormat is set to BIGTABLE." +}, +"compression": { +"description": "Optional. The compression type of the data source. Possible values include GZIP and NONE. The default value is NONE. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups, Avro, ORC and Parquet formats. An empty string is an invalid value.", +"type": "string" +}, +"connectionId": { +"description": "Optional. The connection specifying the credentials to be used to read external storage, such as Azure Blob, Cloud Storage, or S3. The connection_id can have the form `{project_id}.{location_id};{connection_id}` or `projects/{project_id}/locations/{location_id}/connections/{connection_id}`.", +"type": "string" +}, +"csvOptions": { +"$ref": "CsvOptions", +"description": "Optional. Additional properties to set if sourceFormat is set to CSV." +}, +"decimalTargetTypes": { +"description": "Defines the list of possible SQL data types to which the source decimal values are converted. This list and the precision and the scale parameters of the decimal field determine the target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the specified list and if it supports the precision and the scale. STRING supports all precision and scale values. If none of the listed types supports the precision and the scale, the type supporting the widest range in the specified list is picked, and if a value exceeds the supported range when reading the data, an error will be thrown. Example: Suppose the value of this field is [\"NUMERIC\", \"BIGNUMERIC\"]. If (precision,scale) is: * (38,9) -> NUMERIC; * (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); * (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); * (76,38) -> BIGNUMERIC; * (77,38) -> BIGNUMERIC (error if value exeeds supported range). This field cannot contain duplicate types. The order of the types in this field is ignored. For example, [\"BIGNUMERIC\", \"NUMERIC\"] is the same as [\"NUMERIC\", \"BIGNUMERIC\"] and NUMERIC always takes precedence over BIGNUMERIC. Defaults to [\"NUMERIC\", \"STRING\"] for ORC and [\"NUMERIC\"] for the other file formats.", +"items": { +"enum": [ +"DECIMAL_TARGET_TYPE_UNSPECIFIED", +"NUMERIC", +"BIGNUMERIC", +"STRING" +], +"enumDescriptions": [ +"Invalid type.", +"Decimal values could be converted to NUMERIC type.", +"Decimal values could be converted to BIGNUMERIC type.", +"Decimal values could be converted to STRING type." +], +"type": "string" +}, +"type": "array" +}, +"fileSetSpecType": { +"description": "Optional. Specifies how source URIs are interpreted for constructing the file set to load. By default source URIs are expanded against the underlying storage. Other options include specifying manifest files. Only applicable to object storage systems.", +"enum": [ +"FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH", +"FILE_SET_SPEC_TYPE_NEW_LINE_DELIMITED_MANIFEST" +], +"enumDescriptions": [ +"This option expands source URIs by listing files from the object store. It is the default behavior if FileSetSpecType is not set.", +"This option indicates that the provided URIs are newline-delimited manifest files, with one URI per line. Wildcard URIs are not supported." +], +"type": "string" +}, +"googleSheetsOptions": { +"$ref": "GoogleSheetsOptions", +"description": "Optional. Additional options if sourceFormat is set to GOOGLE_SHEETS." +}, +"hivePartitioningOptions": { +"$ref": "HivePartitioningOptions", +"description": "Optional. When set, configures hive partitioning support. Not all storage formats support hive partitioning -- requesting hive partitioning on an unsupported format will lead to an error, as will providing an invalid specification." +}, +"ignoreUnknownValues": { +"description": "Optional. Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored. ORC: This setting is ignored. Parquet: This setting is ignored.", +"type": "boolean" +}, +"jsonExtension": { +"description": "Optional. Load option to be used together with source_format newline-delimited JSON to indicate that a variant of JSON is being loaded. To load newline-delimited GeoJSON, specify GEOJSON (and source_format must be set to NEWLINE_DELIMITED_JSON).", +"enum": [ +"JSON_EXTENSION_UNSPECIFIED", +"GEOJSON" +], +"enumDescriptions": [ +"The default if provided value is not one included in the enum, or the value is not specified. The source formate is parsed without any modification.", +"Use GeoJSON variant of JSON. See https://tools.ietf.org/html/rfc7946." +], +"type": "string" +}, +"jsonOptions": { +"$ref": "JsonOptions", +"description": "Optional. Additional properties to set if sourceFormat is set to JSON." +}, +"maxBadRecords": { +"description": "Optional. The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups, Avro, ORC and Parquet formats.", +"format": "int32", +"type": "integer" +}, +"metadataCacheMode": { +"description": "Optional. Metadata Cache Mode for the table. Set this to enable caching of metadata from external data source.", +"enum": [ +"METADATA_CACHE_MODE_UNSPECIFIED", +"AUTOMATIC", +"MANUAL" +], +"enumDescriptions": [ +"Unspecified metadata cache mode.", +"Set this mode to trigger automatic background refresh of metadata cache from the external source. Queries will use the latest available cache version within the table's maxStaleness interval.", +"Set this mode to enable triggering manual refresh of the metadata cache from external source. Queries will use the latest manually triggered cache version within the table's maxStaleness interval." +], +"type": "string" +}, +"objectMetadata": { +"description": "Optional. ObjectMetadata is used to create Object Tables. Object Tables contain a listing of objects (with their metadata) found at the source_uris. If ObjectMetadata is set, source_format should be omitted. Currently SIMPLE is the only supported Object Metadata type.", +"enum": [ +"OBJECT_METADATA_UNSPECIFIED", +"DIRECTORY", +"SIMPLE" +], +"enumDescriptions": [ +"Unspecified by default.", +"A synonym for `SIMPLE`.", +"Directory listing of objects." +], +"type": "string" +}, +"parquetOptions": { +"$ref": "ParquetOptions", +"description": "Optional. Additional properties to set if sourceFormat is set to PARQUET." +}, +"referenceFileSchemaUri": { +"description": "Optional. When creating an external table, the user can provide a reference file with the table schema. This is enabled for the following formats: AVRO, PARQUET, ORC.", +"type": "string" +}, +"schema": { +"$ref": "TableSchema", +"description": "Optional. The schema for the data. Schema is required for CSV and JSON formats if autodetect is not on. Schema is disallowed for Google Cloud Bigtable, Cloud Datastore backups, Avro, ORC and Parquet formats." +}, +"sourceFormat": { +"description": "[Required] The data format. For CSV files, specify \"CSV\". For Google sheets, specify \"GOOGLE_SHEETS\". For newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro files, specify \"AVRO\". For Google Cloud Datastore backups, specify \"DATASTORE_BACKUP\". For Apache Iceberg tables, specify \"ICEBERG\". For ORC files, specify \"ORC\". For Parquet files, specify \"PARQUET\". [Beta] For Google Cloud Bigtable, specify \"BIGTABLE\".", +"type": "string" +}, +"sourceUris": { +"description": "[Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified. Also, the '*' wildcard character is not allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExternalDatasetReference": { +"description": "Configures the access a dataset defined in an external metadata storage.", +"id": "ExternalDatasetReference", +"properties": { +"connection": { +"description": "Required. The connection id that is used to access the external_source. Format: projects/{project_id}/locations/{location_id}/connections/{connection_id}", +"type": "string" +}, +"externalSource": { +"description": "Required. External source that backs this dataset.", +"type": "string" +} +}, +"type": "object" +}, +"ExternalServiceCost": { +"description": "The external service cost is a portion of the total cost, these costs are not additive with total_bytes_billed. Moreover, this field only track external service costs that will show up as BigQuery costs (e.g. training BigQuery ML job with google cloud CAIP or Automl Tables services), not other costs which may be accrued by running the query (e.g. reading from Bigtable or Cloud Storage). The external service costs with different billing sku (e.g. CAIP job is charged based on VM usage) are converted to BigQuery billed_bytes and slot_ms with equivalent amount of US dollars. Services may not directly correlate to these metrics, but these are the equivalents for billing purposes. Output only.", +"id": "ExternalServiceCost", +"properties": { +"bytesBilled": { +"description": "External service cost in terms of bigquery bytes billed.", +"format": "int64", +"type": "string" +}, +"bytesProcessed": { +"description": "External service cost in terms of bigquery bytes processed.", +"format": "int64", +"type": "string" +}, +"externalService": { +"description": "External service name.", +"type": "string" +}, +"reservedSlotCount": { +"description": "Non-preemptable reserved slots used for external job. For example, reserved slots for Cloua AI Platform job are the VM usages converted to BigQuery slot with equivalent mount of price.", +"format": "int64", +"type": "string" +}, +"slotMs": { +"description": "External service cost in terms of bigquery slot milliseconds.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"FeatureValue": { +"description": "Representative value of a single feature within the cluster.", +"id": "FeatureValue", +"properties": { +"categoricalValue": { +"$ref": "CategoricalValue", +"description": "The categorical feature value." +}, +"featureColumn": { +"description": "The feature column name.", +"type": "string" +}, +"numericalValue": { +"description": "The numerical feature value. This is the centroid value for this feature.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ForeignTypeInfo": { +"description": "Metadata about the foreign data type definition such as the system in which the type is defined.", +"id": "ForeignTypeInfo", +"properties": { +"typeSystem": { +"description": "Required. Specifies the system which defines the foreign data type.", +"enum": [ +"TYPE_SYSTEM_UNSPECIFIED", +"HIVE" +], +"enumDescriptions": [ +"TypeSystem not specified.", +"Represents Hive data types." +], +"type": "string" +} +}, +"type": "object" +}, +"ForeignViewDefinition": { +"description": "A view can be represented in multiple ways. Each representation has its own dialect. This message stores the metadata required for these representations.", +"id": "ForeignViewDefinition", +"properties": { +"dialect": { +"description": "Optional. Represents the dialect of the query.", +"type": "string" +}, +"query": { +"description": "Required. The query that defines the view.", +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GetQueryResultsResponse": { +"description": "Response object of GetQueryResults.", +"id": "GetQueryResultsResponse", +"properties": { +"cacheHit": { +"description": "Whether the query result was fetched from the query cache.", +"type": "boolean" +}, +"errors": { +"description": "Output only. The first errors or warnings encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful. For more information about error messages, see [Error messages](https://cloud.google.com/bigquery/docs/error-messages).", +"items": { +"$ref": "ErrorProto" +}, +"readOnly": true, +"type": "array" +}, +"etag": { +"description": "A hash of this response.", +"type": "string" +}, +"jobComplete": { +"description": "Whether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available.", +"type": "boolean" +}, +"jobReference": { +"$ref": "JobReference", +"description": "Reference to the BigQuery Job that was created to run the query. This field will be present even if the original request timed out, in which case GetQueryResults can be used to read the results once the query has completed. Since this API only returns the first page of results, subsequent pages can be fetched via the same mechanism (GetQueryResults)." +}, +"kind": { +"default": "bigquery#getQueryResultsResponse", +"description": "The resource type of the response.", +"type": "string" +}, +"numDmlAffectedRows": { +"description": "Output only. The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"pageToken": { +"description": "A token used for paging results. When this token is non-empty, it indicates additional results are available.", +"type": "string" +}, +"rows": { +"description": "An object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above. Present only when the query completes successfully. The REST-based representation of this data leverages a series of JSON f,v objects for indicating fields and values.", +"items": { +"$ref": "TableRow" +}, +"type": "array" +}, +"schema": { +"$ref": "TableSchema", +"description": "The schema of the results. Present only when the query completes successfully." +}, +"totalBytesProcessed": { +"description": "The total number of bytes processed for this query.", +"format": "int64", +"type": "string" +}, +"totalRows": { +"description": "The total number of rows in the complete query result set, which can be more than the number of rows in this single page of results. Present only when the query completes successfully.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"GetServiceAccountResponse": { +"description": "Response object of GetServiceAccount", +"id": "GetServiceAccountResponse", +"properties": { +"email": { +"description": "The service account email address.", +"type": "string" +}, +"kind": { +"default": "bigquery#getServiceAccountResponse", +"description": "The resource type of the response.", +"type": "string" +} +}, +"type": "object" +}, +"GlobalExplanation": { +"description": "Global explanations containing the top most important features after training.", +"id": "GlobalExplanation", +"properties": { +"classLabel": { +"description": "Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.", +"type": "string" +}, +"explanations": { +"description": "A list of the top global explanations. Sorted by absolute value of attribution in descending order.", +"items": { +"$ref": "Explanation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleSheetsOptions": { +"description": "Options specific to Google Sheets data sources.", +"id": "GoogleSheetsOptions", +"properties": { +"range": { +"description": "Optional. Range of a sheet to query from. Only used when non-empty. Typical format: sheet_name!top_left_cell_id:bottom_right_cell_id For example: sheet1!A1:B20", +"type": "string" +}, +"skipLeadingRows": { +"description": "Optional. The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, the behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"HighCardinalityJoin": { +"description": "High cardinality join detailed information.", +"id": "HighCardinalityJoin", +"properties": { +"leftRows": { +"description": "Output only. Count of left input rows.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"outputRows": { +"description": "Output only. Count of the output rows.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"rightRows": { +"description": "Output only. Count of right input rows.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"stepIndex": { +"description": "Output only. The index of the join operator in the ExplainQueryStep lists.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"HivePartitioningOptions": { +"description": "Options for configuring hive partitioning detect.", +"id": "HivePartitioningOptions", +"properties": { +"fields": { +"description": "Output only. For permanent external tables, this field is populated with the hive partition keys in the order they were inferred. The types of the partition keys can be deduced by checking the table schema (which will include the partition keys). Not every API will populate this field in the output. For example, Tables.Get will populate it, but Tables.List will not contain this field.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"mode": { +"description": "Optional. When set, what mode of hive partitioning to use when reading data. The following modes are supported: * AUTO: automatically infer partition key name(s) and type(s). * STRINGS: automatically infer partition key name(s). All types are strings. * CUSTOM: partition key schema is encoded in the source URI prefix. Not all storage formats support hive partitioning. Requesting hive partitioning on an unsupported format will lead to an error. Currently supported formats are: JSON, CSV, ORC, Avro and Parquet.", +"type": "string" +}, +"requirePartitionFilter": { +"default": "false", +"description": "Optional. If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. Note that this field should only be true when creating a permanent external table or querying a temporary external table. Hive-partitioned loads with require_partition_filter explicitly set to true will fail.", +"type": "boolean" +}, +"sourceUriPrefix": { +"description": "Optional. When hive partition detection is requested, a common prefix for all source uris must be required. The prefix must end immediately before the partition key encoding begins. For example, consider files following this data layout: gs://bucket/path_to_table/dt=2019-06-01/country=USA/id=7/file.avro gs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro When hive partitioning is requested with either AUTO or STRINGS detection, the common prefix can be either of gs://bucket/path_to_table or gs://bucket/path_to_table/. CUSTOM detection requires encoding the partitioning schema immediately after the common prefix. For CUSTOM, any of * gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:INTEGER} * gs://bucket/path_to_table/{dt:STRING}/{country:STRING}/{id:INTEGER} * gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:STRING} would all be valid source URI prefixes.", +"type": "string" +} +}, +"type": "object" +}, +"HparamSearchSpaces": { +"description": "Hyperparameter search spaces. These should be a subset of training_options.", +"id": "HparamSearchSpaces", +"properties": { +"activationFn": { +"$ref": "StringHparamSearchSpace", +"description": "Activation functions of neural network models." +}, +"batchSize": { +"$ref": "IntHparamSearchSpace", +"description": "Mini batch sample size." +}, +"boosterType": { +"$ref": "StringHparamSearchSpace", +"description": "Booster type for boosted tree models." +}, +"colsampleBylevel": { +"$ref": "DoubleHparamSearchSpace", +"description": "Subsample ratio of columns for each level for boosted tree models." +}, +"colsampleBynode": { +"$ref": "DoubleHparamSearchSpace", +"description": "Subsample ratio of columns for each node(split) for boosted tree models." +}, +"colsampleBytree": { +"$ref": "DoubleHparamSearchSpace", +"description": "Subsample ratio of columns when constructing each tree for boosted tree models." +}, +"dartNormalizeType": { +"$ref": "StringHparamSearchSpace", +"description": "Dart normalization type for boosted tree models." +}, +"dropout": { +"$ref": "DoubleHparamSearchSpace", +"description": "Dropout probability for dnn model training and boosted tree models using dart booster." +}, +"hiddenUnits": { +"$ref": "IntArrayHparamSearchSpace", +"description": "Hidden units for neural network models." +}, +"l1Reg": { +"$ref": "DoubleHparamSearchSpace", +"description": "L1 regularization coefficient." +}, +"l2Reg": { +"$ref": "DoubleHparamSearchSpace", +"description": "L2 regularization coefficient." +}, +"learnRate": { +"$ref": "DoubleHparamSearchSpace", +"description": "Learning rate of training jobs." +}, +"maxTreeDepth": { +"$ref": "IntHparamSearchSpace", +"description": "Maximum depth of a tree for boosted tree models." +}, +"minSplitLoss": { +"$ref": "DoubleHparamSearchSpace", +"description": "Minimum split loss for boosted tree models." +}, +"minTreeChildWeight": { +"$ref": "IntHparamSearchSpace", +"description": "Minimum sum of instance weight needed in a child for boosted tree models." +}, +"numClusters": { +"$ref": "IntHparamSearchSpace", +"description": "Number of clusters for k-means." +}, +"numFactors": { +"$ref": "IntHparamSearchSpace", +"description": "Number of latent factors to train on." +}, +"numParallelTree": { +"$ref": "IntHparamSearchSpace", +"description": "Number of parallel trees for boosted tree models." +}, +"optimizer": { +"$ref": "StringHparamSearchSpace", +"description": "Optimizer of TF models." +}, +"subsample": { +"$ref": "DoubleHparamSearchSpace", +"description": "Subsample the training data to grow tree to prevent overfitting for boosted tree models." +}, +"treeMethod": { +"$ref": "StringHparamSearchSpace", +"description": "Tree construction algorithm for boosted tree models." +}, +"walsAlpha": { +"$ref": "DoubleHparamSearchSpace", +"description": "Hyperparameter for matrix factoration when implicit feedback type is specified." +} +}, +"type": "object" +}, +"HparamTuningTrial": { +"description": "Training info of a trial in [hyperparameter tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models.", +"id": "HparamTuningTrial", +"properties": { +"endTimeMs": { +"description": "Ending time of the trial.", +"format": "int64", +"type": "string" +}, +"errorMessage": { +"description": "Error message for FAILED and INFEASIBLE trial.", +"type": "string" +}, +"evalLoss": { +"description": "Loss computed on the eval data at the end of trial.", +"format": "double", +"type": "number" +}, +"evaluationMetrics": { +"$ref": "EvaluationMetrics", +"description": "Evaluation metrics of this trial calculated on the test data. Empty in Job API." +}, +"hparamTuningEvaluationMetrics": { +"$ref": "EvaluationMetrics", +"description": "Hyperparameter tuning evaluation metrics of this trial calculated on the eval data. Unlike evaluation_metrics, only the fields corresponding to the hparam_tuning_objectives are set." +}, +"hparams": { +"$ref": "TrainingOptions", +"description": "The hyperprameters selected for this trial." +}, +"startTimeMs": { +"description": "Starting time of the trial.", +"format": "int64", +"type": "string" +}, +"status": { +"description": "The status of the trial.", +"enum": [ +"TRIAL_STATUS_UNSPECIFIED", +"NOT_STARTED", +"RUNNING", +"SUCCEEDED", +"FAILED", +"INFEASIBLE", +"STOPPED_EARLY" +], +"enumDescriptions": [ +"Default value.", +"Scheduled but not started.", +"Running state.", +"The trial succeeded.", +"The trial failed.", +"The trial is infeasible due to the invalid params.", +"Trial stopped early because it's not promising." +], +"type": "string" +}, +"trainingLoss": { +"description": "Loss computed on the training data at the end of trial.", +"format": "double", +"type": "number" +}, +"trialId": { +"description": "1-based index of the trial.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"IndexUnusedReason": { +"description": "Reason about why no search index was used in the search query (or sub-query).", +"id": "IndexUnusedReason", +"properties": { +"baseTable": { +"$ref": "TableReference", +"description": "Specifies the base table involved in the reason that no search index was used." +}, +"code": { +"description": "Specifies the high-level reason for the scenario when no search index was used.", +"enum": [ +"CODE_UNSPECIFIED", +"INDEX_CONFIG_NOT_AVAILABLE", +"PENDING_INDEX_CREATION", +"BASE_TABLE_TRUNCATED", +"INDEX_CONFIG_MODIFIED", +"TIME_TRAVEL_QUERY", +"NO_PRUNING_POWER", +"UNINDEXED_SEARCH_FIELDS", +"UNSUPPORTED_SEARCH_PATTERN", +"OPTIMIZED_WITH_MATERIALIZED_VIEW", +"SECURED_BY_DATA_MASKING", +"MISMATCHED_TEXT_ANALYZER", +"BASE_TABLE_TOO_SMALL", +"BASE_TABLE_TOO_LARGE", +"ESTIMATED_PERFORMANCE_GAIN_TOO_LOW", +"NOT_SUPPORTED_IN_STANDARD_EDITION", +"INDEX_SUPPRESSED_BY_FUNCTION_OPTION", +"QUERY_CACHE_HIT", +"STALE_INDEX", +"INTERNAL_ERROR", +"OTHER_REASON" +], +"enumDescriptions": [ +"Code not specified.", +"Indicates the search index configuration has not been created.", +"Indicates the search index creation has not been completed.", +"Indicates the base table has been truncated (rows have been removed from table with TRUNCATE TABLE statement) since the last time the search index was refreshed.", +"Indicates the search index configuration has been changed since the last time the search index was refreshed.", +"Indicates the search query accesses data at a timestamp before the last time the search index was refreshed.", +"Indicates the usage of search index will not contribute to any pruning improvement for the search function, e.g. when the search predicate is in a disjunction with other non-search predicates.", +"Indicates the search index does not cover all fields in the search function.", +"Indicates the search index does not support the given search query pattern.", +"Indicates the query has been optimized by using a materialized view.", +"Indicates the query has been secured by data masking, and thus search indexes are not applicable.", +"Indicates that the search index and the search function call do not have the same text analyzer.", +"Indicates the base table is too small (below a certain threshold). The index does not provide noticeable search performance gains when the base table is too small.", +"Indicates that the total size of indexed base tables in your organization exceeds your region's limit and the index is not used in the query. To index larger base tables, you can use your own reservation for index-management jobs.", +"Indicates that the estimated performance gain from using the search index is too low for the given search query.", +"Indicates that search indexes can not be used for search query with STANDARD edition.", +"Indicates that an option in the search function that cannot make use of the index has been selected.", +"Indicates that the query was cached, and thus the search index was not used.", +"The index cannot be used in the search query because it is stale.", +"Indicates an internal error that causes the search index to be unused.", +"Indicates that the reason search indexes cannot be used in the query is not covered by any of the other IndexUnusedReason options." +], +"type": "string" +}, +"indexName": { +"description": "Specifies the name of the unused search index, if available.", +"type": "string" +}, +"message": { +"description": "Free form human-readable reason for the scenario when no search index was used.", +"type": "string" +} +}, +"type": "object" +}, +"InputDataChange": { +"description": "Details about the input data change insight.", +"id": "InputDataChange", +"properties": { +"recordsReadDiffPercentage": { +"description": "Output only. Records read difference percentage compared to a previous run.", +"format": "float", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"IntArray": { +"description": "An array of int.", +"id": "IntArray", +"properties": { +"elements": { +"description": "Elements in the int array.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"IntArrayHparamSearchSpace": { +"description": "Search space for int array.", +"id": "IntArrayHparamSearchSpace", +"properties": { +"candidates": { +"description": "Candidates for the int array parameter.", +"items": { +"$ref": "IntArray" +}, +"type": "array" +} +}, +"type": "object" +}, +"IntCandidates": { +"description": "Discrete candidates of an int hyperparameter.", +"id": "IntCandidates", +"properties": { +"candidates": { +"description": "Candidates for the int parameter in increasing order.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"IntHparamSearchSpace": { +"description": "Search space for an int hyperparameter.", +"id": "IntHparamSearchSpace", +"properties": { +"candidates": { +"$ref": "IntCandidates", +"description": "Candidates of the int hyperparameter." +}, +"range": { +"$ref": "IntRange", +"description": "Range of the int hyperparameter." +} +}, +"type": "object" +}, +"IntRange": { +"description": "Range of an int hyperparameter.", +"id": "IntRange", +"properties": { +"max": { +"description": "Max value of the int parameter.", +"format": "int64", +"type": "string" +}, +"min": { +"description": "Min value of the int parameter.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"IterationResult": { +"description": "Information about a single iteration of the training run.", +"id": "IterationResult", +"properties": { +"arimaResult": { +"$ref": "ArimaResult", +"description": "Arima result." +}, +"clusterInfos": { +"description": "Information about top clusters for clustering models.", +"items": { +"$ref": "ClusterInfo" +}, +"type": "array" +}, +"durationMs": { +"description": "Time taken to run the iteration in milliseconds.", +"format": "int64", +"type": "string" +}, +"evalLoss": { +"description": "Loss computed on the eval data at the end of iteration.", +"format": "double", +"type": "number" +}, +"index": { +"description": "Index of the iteration, 0 based.", +"format": "int32", +"type": "integer" +}, +"learnRate": { +"description": "Learn rate used for this iteration.", +"format": "double", +"type": "number" +}, +"principalComponentInfos": { +"description": "The information of the principal components.", +"items": { +"$ref": "PrincipalComponentInfo" +}, +"type": "array" +}, +"trainingLoss": { +"description": "Loss computed on the training data at the end of iteration.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Job": { +"id": "Job", +"properties": { +"configuration": { +"$ref": "JobConfiguration", +"description": "Required. Describes the job configuration." +}, +"etag": { +"description": "Output only. A hash of this resource.", +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. Opaque ID field of the job.", +"readOnly": true, +"type": "string" +}, +"jobCreationReason": { +"$ref": "JobCreationReason", +"description": "Output only. The reason why a Job was created. [Preview](https://cloud.google.com/products/#product-launch-stages)", +"readOnly": true +}, +"jobReference": { +"$ref": "JobReference", +"description": "Optional. Reference describing the unique-per-user name of the job." +}, +"kind": { +"default": "bigquery#job", +"description": "Output only. The type of the resource.", +"readOnly": true, +"type": "string" +}, +"principal_subject": { +"description": "Output only. [Full-projection-only] String representation of identity of requesting party. Populated for both first- and third-party identities. Only present for APIs that support third-party identities.", +"readOnly": true, +"type": "string" +}, +"selfLink": { +"description": "Output only. A URL that can be used to access the resource again.", +"readOnly": true, +"type": "string" +}, +"statistics": { +"$ref": "JobStatistics", +"description": "Output only. Information about the job, including starting time and ending time of the job.", +"readOnly": true +}, +"status": { +"$ref": "JobStatus", +"description": "Output only. The status of this job. Examine this value when polling an asynchronous job to see if the job is complete.", +"readOnly": true +}, +"user_email": { +"description": "Output only. Email address of the user who ran the job.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"JobCancelResponse": { +"description": "Describes format of a jobs cancellation response.", +"id": "JobCancelResponse", +"properties": { +"job": { +"$ref": "Job", +"description": "The final state of the job." +}, +"kind": { +"default": "bigquery#jobCancelResponse", +"description": "The resource type of the response.", +"type": "string" +} +}, +"type": "object" +}, +"JobConfiguration": { +"id": "JobConfiguration", +"properties": { +"copy": { +"$ref": "JobConfigurationTableCopy", +"description": "[Pick one] Copies a table." +}, +"dryRun": { +"description": "Optional. If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined.", +"type": "boolean" +}, +"extract": { +"$ref": "JobConfigurationExtract", +"description": "[Pick one] Configures an extract job." +}, +"jobTimeoutMs": { +"description": "Optional. Job timeout in milliseconds. If this time limit is exceeded, BigQuery will attempt to stop a longer job, but may not always succeed in canceling it before the job completes. For example, a job that takes more than 60 seconds to complete has a better chance of being stopped than a job that takes 10 seconds to complete.", +"format": "int64", +"type": "string" +}, +"jobType": { +"description": "Output only. The type of the job. Can be QUERY, LOAD, EXTRACT, COPY or UNKNOWN.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.", +"type": "object" +}, +"load": { +"$ref": "JobConfigurationLoad", +"description": "[Pick one] Configures a load job." +}, +"query": { +"$ref": "JobConfigurationQuery", +"description": "[Pick one] Configures a query job." +} +}, +"type": "object" +}, +"JobConfigurationExtract": { +"description": "JobConfigurationExtract configures a job that exports data from a BigQuery table into Google Cloud Storage.", +"id": "JobConfigurationExtract", +"properties": { +"compression": { +"description": "Optional. The compression type to use for exported files. Possible values include DEFLATE, GZIP, NONE, SNAPPY, and ZSTD. The default value is NONE. Not all compression formats are support for all file formats. DEFLATE is only supported for Avro. ZSTD is only supported for Parquet. Not applicable when extracting models.", +"type": "string" +}, +"destinationFormat": { +"description": "Optional. The exported file format. Possible values include CSV, NEWLINE_DELIMITED_JSON, PARQUET, or AVRO for tables and ML_TF_SAVED_MODEL or ML_XGBOOST_BOOSTER for models. The default value for tables is CSV. Tables with nested or repeated fields cannot be exported as CSV. The default value for models is ML_TF_SAVED_MODEL.", +"type": "string" +}, +"destinationUri": { +"description": "[Pick one] DEPRECATED: Use destinationUris instead, passing only one URI as necessary. The fully-qualified Google Cloud Storage URI where the extracted table should be written.", +"type": "string" +}, +"destinationUris": { +"description": "[Pick one] A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written.", +"items": { +"type": "string" +}, +"type": "array" +}, +"fieldDelimiter": { +"description": "Optional. When extracting data in CSV format, this defines the delimiter to use between fields in the exported data. Default is ','. Not applicable when extracting models.", +"type": "string" +}, +"modelExtractOptions": { +"$ref": "ModelExtractOptions", +"description": "Optional. Model extract options only applicable when extracting models." +}, +"printHeader": { +"default": "true", +"description": "Optional. Whether to print out a header row in the results. Default is true. Not applicable when extracting models.", +"type": "boolean" +}, +"sourceModel": { +"$ref": "ModelReference", +"description": "A reference to the model being exported." +}, +"sourceTable": { +"$ref": "TableReference", +"description": "A reference to the table being exported." +}, +"useAvroLogicalTypes": { +"description": "Whether to use logical types when extracting to AVRO format. Not applicable when extracting models.", +"type": "boolean" +} +}, +"type": "object" +}, +"JobConfigurationLoad": { +"description": "JobConfigurationLoad contains the configuration properties for loading data into a destination table.", +"id": "JobConfigurationLoad", +"properties": { +"allowJaggedRows": { +"description": "Optional. Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.", +"type": "boolean" +}, +"allowQuotedNewlines": { +"description": "Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.", +"type": "boolean" +}, +"autodetect": { +"description": "Optional. Indicates if we should automatically infer the options and schema for CSV and JSON sources.", +"type": "boolean" +}, +"clustering": { +"$ref": "Clustering", +"description": "Clustering specification for the destination table." +}, +"columnNameCharacterMap": { +"description": "Optional. Character map supported for column names in CSV/Parquet loads. Defaults to STRICT and can be overridden by Project Config Service. Using this option with unsupporting load formats will result in an error.", +"enum": [ +"COLUMN_NAME_CHARACTER_MAP_UNSPECIFIED", +"STRICT", +"V1", +"V2" +], +"enumDescriptions": [ +"Unspecified column name character map.", +"Support flexible column name and reject invalid column names.", +"Support alphanumeric + underscore characters and names must start with a letter or underscore. Invalid column names will be normalized.", +"Support flexible column name. Invalid column names will be normalized." +], +"type": "string" +}, +"connectionProperties": { +"description": "Optional. Connection properties which can modify the load job behavior. Currently, only the 'session_id' connection property is supported, and is used to resolve _SESSION appearing as the dataset id.", +"items": { +"$ref": "ConnectionProperty" +}, +"type": "array" +}, +"copyFilesOnly": { +"description": "Optional. [Experimental] Configures the load job to copy files directly to the destination BigLake managed table, bypassing file content reading and rewriting. Copying files only is supported when all the following are true: * `source_uris` are located in the same Cloud Storage location as the destination table's `storage_uri` location. * `source_format` is `PARQUET`. * `destination_table` is an existing BigLake managed table. The table's schema does not have flexible column names. The table's columns do not have type parameters other than precision and scale. * No options other than the above are specified.", +"type": "boolean" +}, +"createDisposition": { +"description": "Optional. Specifies whether the job is allowed to create new tables. The following values are supported: * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. * CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.", +"type": "string" +}, +"createSession": { +"description": "Optional. If this property is true, the job creates a new session using a randomly generated session_id. To continue using a created session with subsequent queries, pass the existing session identifier as a `ConnectionProperty` value. The session identifier is returned as part of the `SessionInfo` message within the query statistics. The new session's location will be set to `Job.JobReference.location` if it is present, otherwise it's set to the default location based on existing routing logic.", +"type": "boolean" +}, +"decimalTargetTypes": { +"description": "Defines the list of possible SQL data types to which the source decimal values are converted. This list and the precision and the scale parameters of the decimal field determine the target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the specified list and if it supports the precision and the scale. STRING supports all precision and scale values. If none of the listed types supports the precision and the scale, the type supporting the widest range in the specified list is picked, and if a value exceeds the supported range when reading the data, an error will be thrown. Example: Suppose the value of this field is [\"NUMERIC\", \"BIGNUMERIC\"]. If (precision,scale) is: * (38,9) -> NUMERIC; * (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); * (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); * (76,38) -> BIGNUMERIC; * (77,38) -> BIGNUMERIC (error if value exeeds supported range). This field cannot contain duplicate types. The order of the types in this field is ignored. For example, [\"BIGNUMERIC\", \"NUMERIC\"] is the same as [\"NUMERIC\", \"BIGNUMERIC\"] and NUMERIC always takes precedence over BIGNUMERIC. Defaults to [\"NUMERIC\", \"STRING\"] for ORC and [\"NUMERIC\"] for the other file formats.", +"items": { +"enum": [ +"DECIMAL_TARGET_TYPE_UNSPECIFIED", +"NUMERIC", +"BIGNUMERIC", +"STRING" +], +"enumDescriptions": [ +"Invalid type.", +"Decimal values could be converted to NUMERIC type.", +"Decimal values could be converted to BIGNUMERIC type.", +"Decimal values could be converted to STRING type." +], +"type": "string" +}, +"type": "array" +}, +"destinationEncryptionConfiguration": { +"$ref": "EncryptionConfiguration", +"description": "Custom encryption configuration (e.g., Cloud KMS keys)" +}, +"destinationTable": { +"$ref": "TableReference", +"description": "[Required] The destination table to load the data into." +}, +"destinationTableProperties": { +"$ref": "DestinationTableProperties", +"description": "Optional. [Experimental] Properties with which to create the destination table if it is new." +}, +"encoding": { +"description": "Optional. The character encoding of the data. The supported values are UTF-8, ISO-8859-1, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the `quote` and `fieldDelimiter` properties. If you don't specify an encoding, or if you specify a UTF-8 encoding when the CSV file is not UTF-8 encoded, BigQuery attempts to convert the data to UTF-8. Generally, your data loads successfully, but it may not match byte-for-byte what you expect. To avoid this, specify the correct encoding by using the `--encoding` flag. If BigQuery can't convert a character other than the ASCII `0` character, BigQuery converts the character to the standard Unicode replacement character: \ufffd.", +"type": "string" +}, +"fieldDelimiter": { +"description": "Optional. The separator character for fields in a CSV file. The separator is interpreted as a single byte. For files encoded in ISO-8859-1, any single character can be used as a separator. For files encoded in UTF-8, characters represented in decimal range 1-127 (U+0001-U+007F) can be used without any modification. UTF-8 characters encoded with multiple bytes (i.e. U+0080 and above) will have only the first byte used for separating fields. The remaining bytes will be treated as a part of the field. BigQuery also supports the escape sequence \"\\t\" (U+0009) to specify a tab separator. The default value is comma (\",\", U+002C).", +"type": "string" +}, +"fileSetSpecType": { +"description": "Optional. Specifies how source URIs are interpreted for constructing the file set to load. By default, source URIs are expanded against the underlying storage. You can also specify manifest files to control how the file set is constructed. This option is only applicable to object storage systems.", +"enum": [ +"FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH", +"FILE_SET_SPEC_TYPE_NEW_LINE_DELIMITED_MANIFEST" +], +"enumDescriptions": [ +"This option expands source URIs by listing files from the object store. It is the default behavior if FileSetSpecType is not set.", +"This option indicates that the provided URIs are newline-delimited manifest files, with one URI per line. Wildcard URIs are not supported." +], +"type": "string" +}, +"hivePartitioningOptions": { +"$ref": "HivePartitioningOptions", +"description": "Optional. When set, configures hive partitioning support. Not all storage formats support hive partitioning -- requesting hive partitioning on an unsupported format will lead to an error, as will providing an invalid specification." +}, +"ignoreUnknownValues": { +"description": "Optional. Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names in the table schema Avro, Parquet, ORC: Fields in the file schema that don't exist in the table schema.", +"type": "boolean" +}, +"jsonExtension": { +"description": "Optional. Load option to be used together with source_format newline-delimited JSON to indicate that a variant of JSON is being loaded. To load newline-delimited GeoJSON, specify GEOJSON (and source_format must be set to NEWLINE_DELIMITED_JSON).", +"enum": [ +"JSON_EXTENSION_UNSPECIFIED", +"GEOJSON" +], +"enumDescriptions": [ +"The default if provided value is not one included in the enum, or the value is not specified. The source formate is parsed without any modification.", +"Use GeoJSON variant of JSON. See https://tools.ietf.org/html/rfc7946." +], +"type": "string" +}, +"maxBadRecords": { +"description": "Optional. The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This is only supported for CSV and NEWLINE_DELIMITED_JSON file formats.", +"format": "int32", +"type": "integer" +}, +"nullMarker": { +"description": "Optional. Specifies a string that represents a null value in a CSV file. For example, if you specify \"\\N\", BigQuery interprets \"\\N\" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery throws an error if an empty string is present for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.", +"type": "string" +}, +"parquetOptions": { +"$ref": "ParquetOptions", +"description": "Optional. Additional properties to set if sourceFormat is set to PARQUET." +}, +"preserveAsciiControlCharacters": { +"description": "Optional. When sourceFormat is set to \"CSV\", this indicates whether the embedded ASCII control characters (the first 32 characters in the ASCII-table, from '\\x00' to '\\x1F') are preserved.", +"type": "boolean" +}, +"projectionFields": { +"description": "If sourceFormat is set to \"DATASTORE_BACKUP\", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.", +"items": { +"type": "string" +}, +"type": "array" +}, +"quote": { +"default": "\"", +"description": "Optional. The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('\"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true. To include the specific quote character within a quoted value, precede it with an additional matching quote character. For example, if you want to escape the default character ' \" ', use ' \"\" '. @default \"", +"pattern": ".?", +"type": "string" +}, +"rangePartitioning": { +"$ref": "RangePartitioning", +"description": "Range partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified." +}, +"referenceFileSchemaUri": { +"description": "Optional. The user can provide a reference file with the reader schema. This file is only loaded if it is part of source URIs, but is not loaded otherwise. It is enabled for the following formats: AVRO, PARQUET, ORC.", +"type": "string" +}, +"schema": { +"$ref": "TableSchema", +"description": "Optional. The schema for the destination table. The schema can be omitted if the destination table already exists, or if you're loading data from Google Cloud Datastore." +}, +"schemaInline": { +"description": "[Deprecated] The inline schema. For CSV schemas, specify as \"Field1:Type1[,Field2:Type2]*\". For example, \"foo:STRING, bar:INTEGER, baz:FLOAT\".", +"type": "string" +}, +"schemaInlineFormat": { +"description": "[Deprecated] The format of the schemaInline property.", +"type": "string" +}, +"schemaUpdateOptions": { +"description": "Allows the schema of the destination table to be updated as a side effect of the load job if a schema is autodetected or supplied in the job configuration. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: * ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. * ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", +"items": { +"type": "string" +}, +"type": "array" +}, +"skipLeadingRows": { +"description": "Optional. The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped. When autodetect is on, the behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.", +"format": "int32", +"type": "integer" +}, +"sourceFormat": { +"description": "Optional. The format of the data files. For CSV files, specify \"CSV\". For datastore backups, specify \"DATASTORE_BACKUP\". For newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro, specify \"AVRO\". For parquet, specify \"PARQUET\". For orc, specify \"ORC\". The default value is CSV.", +"type": "string" +}, +"sourceUris": { +"description": "[Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups: Exactly one URI can be specified. Also, the '*' wildcard character is not allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"timePartitioning": { +"$ref": "TimePartitioning", +"description": "Time-based partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified." +}, +"useAvroLogicalTypes": { +"description": "Optional. If sourceFormat is set to \"AVRO\", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER).", +"type": "boolean" +}, +"writeDisposition": { +"description": "Optional. Specifies the action that occurs if the destination table already exists. The following values are supported: * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the data, removes the constraints and uses the schema from the load job. * WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.", +"type": "string" +} +}, +"type": "object" +}, +"JobConfigurationQuery": { +"description": "JobConfigurationQuery configures a BigQuery query job.", +"id": "JobConfigurationQuery", +"properties": { +"allowLargeResults": { +"default": "false", +"description": "Optional. If true and query uses legacy SQL dialect, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set. For GoogleSQL queries, this flag is ignored and large results are always allowed. However, you must still set destinationTable when result size exceeds the allowed maximum response size.", +"type": "boolean" +}, +"clustering": { +"$ref": "Clustering", +"description": "Clustering specification for the destination table." +}, +"connectionProperties": { +"description": "Connection properties which can modify the query behavior.", +"items": { +"$ref": "ConnectionProperty" +}, +"type": "array" +}, +"continuous": { +"description": "[Optional] Specifies whether the query should be executed as a continuous query. The default value is false.", +"type": "boolean" +}, +"createDisposition": { +"description": "Optional. Specifies whether the job is allowed to create new tables. The following values are supported: * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. * CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.", +"type": "string" +}, +"createSession": { +"description": "If this property is true, the job creates a new session using a randomly generated session_id. To continue using a created session with subsequent queries, pass the existing session identifier as a `ConnectionProperty` value. The session identifier is returned as part of the `SessionInfo` message within the query statistics. The new session's location will be set to `Job.JobReference.location` if it is present, otherwise it's set to the default location based on existing routing logic.", +"type": "boolean" +}, +"defaultDataset": { +"$ref": "DatasetReference", +"description": "Optional. Specifies the default dataset to use for unqualified table names in the query. This setting does not alter behavior of unqualified dataset names. Setting the system variable `@@dataset_id` achieves the same behavior. See https://cloud.google.com/bigquery/docs/reference/system-variables for more information on system variables." +}, +"destinationEncryptionConfiguration": { +"$ref": "EncryptionConfiguration", +"description": "Custom encryption configuration (e.g., Cloud KMS keys)" +}, +"destinationTable": { +"$ref": "TableReference", +"description": "Optional. Describes the table where the query results should be stored. This property must be set for large results that exceed the maximum response size. For queries that produce anonymous (cached) results, this field will be populated by BigQuery." +}, +"flattenResults": { +"default": "true", +"description": "Optional. If true and query uses legacy SQL dialect, flattens all nested and repeated fields in the query results. allowLargeResults must be true if this is set to false. For GoogleSQL queries, this flag is ignored and results are never flattened.", +"type": "boolean" +}, +"maximumBillingTier": { +"default": "1", +"description": "Optional. [Deprecated] Maximum billing tier allowed for this query. The billing tier controls the amount of compute resources allotted to the query, and multiplies the on-demand cost of the query accordingly. A query that runs within its allotted resources will succeed and indicate its billing tier in statistics.query.billingTier, but if the query exceeds its allotted resources, it will fail with billingTierLimitExceeded. WARNING: The billed byte amount can be multiplied by an amount up to this number! Most users should not need to alter this setting, and we recommend that you avoid introducing new uses of it.", +"format": "int32", +"type": "integer" +}, +"maximumBytesBilled": { +"description": "Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge). If unspecified, this will be set to your project default.", +"format": "int64", +"type": "string" +}, +"parameterMode": { +"description": "GoogleSQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.", +"type": "string" +}, +"preserveNulls": { +"description": "[Deprecated] This property is deprecated.", +"type": "boolean" +}, +"priority": { +"description": "Optional. Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.", +"type": "string" +}, +"query": { +"description": "[Required] SQL query text to execute. The useLegacySql field can be used to indicate whether the query uses legacy SQL or GoogleSQL.", +"type": "string" +}, +"queryParameters": { +"description": "Query parameters for GoogleSQL queries.", +"items": { +"$ref": "QueryParameter" +}, +"type": "array" +}, +"rangePartitioning": { +"$ref": "RangePartitioning", +"description": "Range partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified." +}, +"schemaUpdateOptions": { +"description": "Allows the schema of the destination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: * ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. * ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", +"items": { +"type": "string" +}, +"type": "array" +}, +"scriptOptions": { +"$ref": "ScriptOptions", +"description": "Options controlling the execution of scripts." +}, +"systemVariables": { +"$ref": "SystemVariables", +"description": "Output only. System variables for GoogleSQL queries. A system variable is output if the variable is settable and its value differs from the system default. \"@@\" prefix is not included in the name of the System variables.", +"readOnly": true +}, +"tableDefinitions": { +"additionalProperties": { +"$ref": "ExternalDataConfiguration" +}, +"description": "Optional. You can specify external table definitions, which operate as ephemeral tables that can be queried. These definitions are configured using a JSON map, where the string key represents the table identifier, and the value is the corresponding external data configuration object.", +"type": "object" +}, +"timePartitioning": { +"$ref": "TimePartitioning", +"description": "Time-based partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified." +}, +"useLegacySql": { +"default": "true", +"description": "Optional. Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the value of flattenResults is ignored; query will be run as if flattenResults is false.", +"type": "boolean" +}, +"useQueryCache": { +"default": "true", +"description": "Optional. Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified. The default value is true.", +"type": "boolean" +}, +"userDefinedFunctionResources": { +"description": "Describes user-defined function resources used in the query.", +"items": { +"$ref": "UserDefinedFunctionResource" +}, +"type": "array" +}, +"writeDisposition": { +"description": "Optional. Specifies the action that occurs if the destination table already exists. The following values are supported: * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the data, removes the constraints, and uses the schema from the query result. * WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.", +"type": "string" +} +}, +"type": "object" +}, +"JobConfigurationTableCopy": { +"description": "JobConfigurationTableCopy configures a job that copies data from one table to another. For more information on copying tables, see [Copy a table](https://cloud.google.com/bigquery/docs/managing-tables#copy-table).", +"id": "JobConfigurationTableCopy", +"properties": { +"createDisposition": { +"description": "Optional. Specifies whether the job is allowed to create new tables. The following values are supported: * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. * CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.", +"type": "string" +}, +"destinationEncryptionConfiguration": { +"$ref": "EncryptionConfiguration", +"description": "Custom encryption configuration (e.g., Cloud KMS keys)." +}, +"destinationExpirationTime": { +"description": "Optional. The time when the destination table expires. Expired tables will be deleted and their storage reclaimed.", +"format": "google-datetime", +"type": "string" +}, +"destinationTable": { +"$ref": "TableReference", +"description": "[Required] The destination table." +}, +"operationType": { +"description": "Optional. Supported operation types in table copy job.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"COPY", +"SNAPSHOT", +"RESTORE", +"CLONE" +], +"enumDescriptions": [ +"Unspecified operation type.", +"The source and destination table have the same table type.", +"The source table type is TABLE and the destination table type is SNAPSHOT.", +"The source table type is SNAPSHOT and the destination table type is TABLE.", +"The source and destination table have the same table type, but only bill for unique data." +], +"type": "string" +}, +"sourceTable": { +"$ref": "TableReference", +"description": "[Pick one] Source table to copy." +}, +"sourceTables": { +"description": "[Pick one] Source tables to copy.", +"items": { +"$ref": "TableReference" +}, +"type": "array" +}, +"writeDisposition": { +"description": "Optional. Specifies the action that occurs if the destination table already exists. The following values are supported: * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema and table constraints from the source table. * WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.", +"type": "string" +} +}, +"type": "object" +}, +"JobCreationReason": { +"description": "Reason about why a Job was created from a [`jobs.query`](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query) method when used with `JOB_CREATION_OPTIONAL` Job creation mode. For [`jobs.insert`](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert) method calls it will always be `REQUESTED`. [Preview](https://cloud.google.com/products/#product-launch-stages)", +"id": "JobCreationReason", +"properties": { +"code": { +"description": "Output only. Specifies the high level reason why a Job was created.", +"enum": [ +"CODE_UNSPECIFIED", +"REQUESTED", +"LONG_RUNNING", +"LARGE_RESULTS", +"OTHER" +], +"enumDescriptions": [ +"Reason is not specified.", +"Job creation was requested.", +"The query request ran beyond a system defined timeout specified by the [timeoutMs field in the QueryRequest](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query#queryrequest). As a result it was considered a long running operation for which a job was created.", +"The results from the query cannot fit in the response.", +"BigQuery has determined that the query needs to be executed as a Job." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"JobList": { +"description": "JobList is the response format for a jobs.list call.", +"id": "JobList", +"properties": { +"etag": { +"description": "A hash of this page of results.", +"type": "string" +}, +"jobs": { +"description": "List of jobs that were requested.", +"items": { +"description": "ListFormatJob is a partial projection of job information returned as part of a jobs.list response.", +"properties": { +"configuration": { +"$ref": "JobConfiguration", +"description": "Required. Describes the job configuration." +}, +"errorResult": { +"$ref": "ErrorProto", +"description": "A result object that will be present only if the job has failed." +}, +"id": { +"description": "Unique opaque ID of the job.", +"type": "string" +}, +"jobReference": { +"$ref": "JobReference", +"description": "Unique opaque ID of the job." +}, +"kind": { +"description": "The resource type.", +"type": "string" +}, +"principal_subject": { +"description": "[Full-projection-only] String representation of identity of requesting party. Populated for both first- and third-party identities. Only present for APIs that support third-party identities.", +"type": "string" +}, +"state": { +"description": "Running state of the job. When the state is DONE, errorResult can be checked to determine whether the job succeeded or failed.", +"type": "string" +}, +"statistics": { +"$ref": "JobStatistics", +"description": "Output only. Information about the job, including starting time and ending time of the job.", +"readOnly": true +}, +"status": { +"$ref": "JobStatus", +"description": "[Full-projection-only] Describes the status of this job." +}, +"user_email": { +"description": "[Full-projection-only] Email address of the user who ran the job.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"kind": { +"default": "bigquery#jobList", +"description": "The resource type of the response.", +"type": "string" +}, +"nextPageToken": { +"description": "A token to request the next page of results.", +"type": "string" +}, +"unreachable": { +"description": "A list of skipped locations that were unreachable. For more information about BigQuery locations, see: https://cloud.google.com/bigquery/docs/locations. Example: \"europe-west5\"", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"JobReference": { +"description": "A job reference is a fully qualified identifier for referring to a job.", +"id": "JobReference", +"properties": { +"jobId": { +"description": "Required. The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.", +"type": "string" +}, +"location": { +"description": "Optional. The geographic location of the job. The default value is US. For more information about BigQuery locations, see: https://cloud.google.com/bigquery/docs/locations", +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the project containing this job.", +"type": "string" +} +}, +"type": "object" +}, +"JobStatistics": { +"description": "Statistics for a single job execution.", +"id": "JobStatistics", +"properties": { +"completionRatio": { +"description": "Output only. [TrustedTester] Job progress (0.0 -> 1.0) for LOAD and EXTRACT jobs.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"copy": { +"$ref": "JobStatistics5", +"description": "Output only. Statistics for a copy job.", +"readOnly": true +}, +"creationTime": { +"description": "Output only. Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"dataMaskingStatistics": { +"$ref": "DataMaskingStatistics", +"description": "Output only. Statistics for data-masking. Present only for query and extract jobs.", +"readOnly": true +}, +"edition": { +"description": "Output only. Name of edition corresponding to the reservation for this job at the time of this update.", +"enum": [ +"RESERVATION_EDITION_UNSPECIFIED", +"STANDARD", +"ENTERPRISE", +"ENTERPRISE_PLUS" +], +"enumDescriptions": [ +"Default value, which will be treated as ENTERPRISE.", +"Standard edition.", +"Enterprise edition.", +"Enterprise Plus edition." +], +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. End time of this job, in milliseconds since the epoch. This field will be present whenever a job is in the DONE state.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"extract": { +"$ref": "JobStatistics4", +"description": "Output only. Statistics for an extract job.", +"readOnly": true +}, +"finalExecutionDurationMs": { +"description": "Output only. The duration in milliseconds of the execution of the final attempt of this job, as BigQuery may internally re-attempt to execute the job.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"load": { +"$ref": "JobStatistics3", +"description": "Output only. Statistics for a load job.", +"readOnly": true +}, +"numChildJobs": { +"description": "Output only. Number of child jobs executed.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"parentJobId": { +"description": "Output only. If this is a child job, specifies the job ID of the parent.", +"readOnly": true, +"type": "string" +}, +"query": { +"$ref": "JobStatistics2", +"description": "Output only. Statistics for a query job.", +"readOnly": true +}, +"quotaDeferments": { +"description": "Output only. Quotas which delayed this job's start time.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"reservationUsage": { +"deprecated": true, +"description": "Output only. Job resource usage breakdown by reservation. This field reported misleading information and will no longer be populated.", +"items": { +"description": "Job resource usage breakdown by reservation.", +"properties": { +"name": { +"description": "Reservation name or \"unreserved\" for on-demand resource usage and multi-statement queries.", +"type": "string" +}, +"slotMs": { +"description": "Total slot milliseconds used by the reservation for a particular job.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"readOnly": true, +"type": "array" +}, +"reservation_id": { +"description": "Output only. Name of the primary reservation assigned to this job. Note that this could be different than reservations reported in the reservation usage field if parent reservations were used to execute this job.", +"readOnly": true, +"type": "string" +}, +"rowLevelSecurityStatistics": { +"$ref": "RowLevelSecurityStatistics", +"description": "Output only. Statistics for row-level security. Present only for query and extract jobs.", +"readOnly": true +}, +"scriptStatistics": { +"$ref": "ScriptStatistics", +"description": "Output only. If this a child job of a script, specifies information about the context of this job within the script.", +"readOnly": true +}, +"sessionInfo": { +"$ref": "SessionInfo", +"description": "Output only. Information of the session if this job is part of one.", +"readOnly": true +}, +"startTime": { +"description": "Output only. Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"totalBytesProcessed": { +"description": "Output only. Total bytes processed for the job.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"totalSlotMs": { +"description": "Output only. Slot-milliseconds for the job.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"transactionInfo": { +"$ref": "TransactionInfo", +"description": "Output only. [Alpha] Information of the multi-statement transaction if this job is part of one. This property is only expected on a child job or a job that is in a session. A script parent job is not part of the transaction started in the script.", +"readOnly": true +} +}, +"type": "object" +}, +"JobStatistics2": { +"description": "Statistics for a query job.", +"id": "JobStatistics2", +"properties": { +"biEngineStatistics": { +"$ref": "BiEngineStatistics", +"description": "Output only. BI Engine specific Statistics.", +"readOnly": true +}, +"billingTier": { +"description": "Output only. Billing tier for the job. This is a BigQuery-specific concept which is not related to the Google Cloud notion of \"free tier\". The value here is a measure of the query's resource consumption relative to the amount of data scanned. For on-demand queries, the limit is 100, and all queries within this limit are billed at the standard on-demand rates. On-demand queries that exceed this limit will fail with a billingTierLimitExceeded error.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"cacheHit": { +"description": "Output only. Whether the query result was fetched from the query cache.", +"readOnly": true, +"type": "boolean" +}, +"dclTargetDataset": { +"$ref": "DatasetReference", +"description": "Output only. Referenced dataset for DCL statement.", +"readOnly": true +}, +"dclTargetTable": { +"$ref": "TableReference", +"description": "Output only. Referenced table for DCL statement.", +"readOnly": true +}, +"dclTargetView": { +"$ref": "TableReference", +"description": "Output only. Referenced view for DCL statement.", +"readOnly": true +}, +"ddlAffectedRowAccessPolicyCount": { +"description": "Output only. The number of row access policies affected by a DDL statement. Present only for DROP ALL ROW ACCESS POLICIES queries.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"ddlDestinationTable": { +"$ref": "TableReference", +"description": "Output only. The table after rename. Present only for ALTER TABLE RENAME TO query.", +"readOnly": true +}, +"ddlOperationPerformed": { +"description": "Output only. The DDL operation performed, possibly dependent on the pre-existence of the DDL target.", +"readOnly": true, +"type": "string" +}, +"ddlTargetDataset": { +"$ref": "DatasetReference", +"description": "Output only. The DDL target dataset. Present only for CREATE/ALTER/DROP SCHEMA(dataset) queries.", +"readOnly": true +}, +"ddlTargetRoutine": { +"$ref": "RoutineReference", +"description": "Output only. [Beta] The DDL target routine. Present only for CREATE/DROP FUNCTION/PROCEDURE queries.", +"readOnly": true +}, +"ddlTargetRowAccessPolicy": { +"$ref": "RowAccessPolicyReference", +"description": "Output only. The DDL target row access policy. Present only for CREATE/DROP ROW ACCESS POLICY queries.", +"readOnly": true +}, +"ddlTargetTable": { +"$ref": "TableReference", +"description": "Output only. The DDL target table. Present only for CREATE/DROP TABLE/VIEW and DROP ALL ROW ACCESS POLICIES queries.", +"readOnly": true +}, +"dmlStats": { +"$ref": "DmlStatistics", +"description": "Output only. Detailed statistics for DML statements INSERT, UPDATE, DELETE, MERGE or TRUNCATE.", +"readOnly": true +}, +"estimatedBytesProcessed": { +"description": "Output only. The original estimate of bytes processed for the job.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"exportDataStatistics": { +"$ref": "ExportDataStatistics", +"description": "Output only. Stats for EXPORT DATA statement.", +"readOnly": true +}, +"externalServiceCosts": { +"description": "Output only. Job cost breakdown as bigquery internal cost and external service costs.", +"items": { +"$ref": "ExternalServiceCost" +}, +"readOnly": true, +"type": "array" +}, +"loadQueryStatistics": { +"$ref": "LoadQueryStatistics", +"description": "Output only. Statistics for a LOAD query.", +"readOnly": true +}, +"materializedViewStatistics": { +"$ref": "MaterializedViewStatistics", +"description": "Output only. Statistics of materialized views of a query job.", +"readOnly": true +}, +"metadataCacheStatistics": { +"$ref": "MetadataCacheStatistics", +"description": "Output only. Statistics of metadata cache usage in a query for BigLake tables.", +"readOnly": true +}, +"mlStatistics": { +"$ref": "MlStatistics", +"description": "Output only. Statistics of a BigQuery ML training job.", +"readOnly": true +}, +"modelTraining": { +"$ref": "BigQueryModelTraining", +"description": "Deprecated." +}, +"modelTrainingCurrentIteration": { +"description": "Deprecated.", +"format": "int32", +"type": "integer" +}, +"modelTrainingExpectedTotalIteration": { +"description": "Deprecated.", +"format": "int64", +"type": "string" +}, +"numDmlAffectedRows": { +"description": "Output only. The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"performanceInsights": { +"$ref": "PerformanceInsights", +"description": "Output only. Performance insights.", +"readOnly": true +}, +"queryInfo": { +"$ref": "QueryInfo", +"description": "Output only. Query optimization information for a QUERY job.", +"readOnly": true +}, +"queryPlan": { +"description": "Output only. Describes execution plan for the query.", +"items": { +"$ref": "ExplainQueryStage" +}, +"readOnly": true, +"type": "array" +}, +"referencedRoutines": { +"description": "Output only. Referenced routines for the job.", +"items": { +"$ref": "RoutineReference" +}, +"readOnly": true, +"type": "array" +}, +"referencedTables": { +"description": "Output only. Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.", +"items": { +"$ref": "TableReference" +}, +"readOnly": true, +"type": "array" +}, +"reservationUsage": { +"deprecated": true, +"description": "Output only. Job resource usage breakdown by reservation. This field reported misleading information and will no longer be populated.", +"items": { +"description": "Job resource usage breakdown by reservation.", +"properties": { +"name": { +"description": "Reservation name or \"unreserved\" for on-demand resource usage and multi-statement queries.", +"type": "string" +}, +"slotMs": { +"description": "Total slot milliseconds used by the reservation for a particular job.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"readOnly": true, +"type": "array" +}, +"schema": { +"$ref": "TableSchema", +"description": "Output only. The schema of the results. Present only for successful dry run of non-legacy SQL queries.", +"readOnly": true +}, +"searchStatistics": { +"$ref": "SearchStatistics", +"description": "Output only. Search query specific statistics.", +"readOnly": true +}, +"sparkStatistics": { +"$ref": "SparkStatistics", +"description": "Output only. Statistics of a Spark procedure job.", +"readOnly": true +}, +"statementType": { +"description": "Output only. The type of query statement, if valid. Possible values: * `SELECT`: [`SELECT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#select_list) statement. * `ASSERT`: [`ASSERT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/debugging-statements#assert) statement. * `INSERT`: [`INSERT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#insert_statement) statement. * `UPDATE`: [`UPDATE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#update_statement) statement. * `DELETE`: [`DELETE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language) statement. * `MERGE`: [`MERGE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language) statement. * `CREATE_TABLE`: [`CREATE TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_statement) statement, without `AS SELECT`. * `CREATE_TABLE_AS_SELECT`: [`CREATE TABLE AS SELECT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_statement) statement. * `CREATE_VIEW`: [`CREATE VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_view_statement) statement. * `CREATE_MODEL`: [`CREATE MODEL`](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-create#create_model_statement) statement. * `CREATE_MATERIALIZED_VIEW`: [`CREATE MATERIALIZED VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_materialized_view_statement) statement. * `CREATE_FUNCTION`: [`CREATE FUNCTION`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_function_statement) statement. * `CREATE_TABLE_FUNCTION`: [`CREATE TABLE FUNCTION`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_function_statement) statement. * `CREATE_PROCEDURE`: [`CREATE PROCEDURE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_procedure) statement. * `CREATE_ROW_ACCESS_POLICY`: [`CREATE ROW ACCESS POLICY`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_row_access_policy_statement) statement. * `CREATE_SCHEMA`: [`CREATE SCHEMA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_schema_statement) statement. * `CREATE_SNAPSHOT_TABLE`: [`CREATE SNAPSHOT TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_snapshot_table_statement) statement. * `CREATE_SEARCH_INDEX`: [`CREATE SEARCH INDEX`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_search_index_statement) statement. * `DROP_TABLE`: [`DROP TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_statement) statement. * `DROP_EXTERNAL_TABLE`: [`DROP EXTERNAL TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_external_table_statement) statement. * `DROP_VIEW`: [`DROP VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_view_statement) statement. * `DROP_MODEL`: [`DROP MODEL`](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-drop-model) statement. * `DROP_MATERIALIZED_VIEW`: [`DROP MATERIALIZED VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_materialized_view_statement) statement. * `DROP_FUNCTION` : [`DROP FUNCTION`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_function_statement) statement. * `DROP_TABLE_FUNCTION` : [`DROP TABLE FUNCTION`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_function) statement. * `DROP_PROCEDURE`: [`DROP PROCEDURE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_procedure_statement) statement. * `DROP_SEARCH_INDEX`: [`DROP SEARCH INDEX`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_search_index) statement. * `DROP_SCHEMA`: [`DROP SCHEMA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_schema_statement) statement. * `DROP_SNAPSHOT_TABLE`: [`DROP SNAPSHOT TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_snapshot_table_statement) statement. * `DROP_ROW_ACCESS_POLICY`: [`DROP [ALL] ROW ACCESS POLICY|POLICIES`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_row_access_policy_statement) statement. * `ALTER_TABLE`: [`ALTER TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_table_set_options_statement) statement. * `ALTER_VIEW`: [`ALTER VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_view_set_options_statement) statement. * `ALTER_MATERIALIZED_VIEW`: [`ALTER MATERIALIZED VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_materialized_view_set_options_statement) statement. * `ALTER_SCHEMA`: [`ALTER SCHEMA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_schema_set_options_statement) statement. * `SCRIPT`: [`SCRIPT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language). * `TRUNCATE_TABLE`: [`TRUNCATE TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#truncate_table_statement) statement. * `CREATE_EXTERNAL_TABLE`: [`CREATE EXTERNAL TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_external_table_statement) statement. * `EXPORT_DATA`: [`EXPORT DATA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/other-statements#export_data_statement) statement. * `EXPORT_MODEL`: [`EXPORT MODEL`](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-export-model) statement. * `LOAD_DATA`: [`LOAD DATA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/other-statements#load_data_statement) statement. * `CALL`: [`CALL`](https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#call) statement.", +"readOnly": true, +"type": "string" +}, +"timeline": { +"description": "Output only. Describes a timeline of job execution.", +"items": { +"$ref": "QueryTimelineSample" +}, +"readOnly": true, +"type": "array" +}, +"totalBytesBilled": { +"description": "Output only. If the project is configured to use on-demand pricing, then this field contains the total bytes billed for the job. If the project is configured to use flat-rate pricing, then you are not billed for bytes and this field is informational only.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"totalBytesProcessed": { +"description": "Output only. Total bytes processed for the job.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"totalBytesProcessedAccuracy": { +"description": "Output only. For dry-run jobs, totalBytesProcessed is an estimate and this field specifies the accuracy of the estimate. Possible values can be: UNKNOWN: accuracy of the estimate is unknown. PRECISE: estimate is precise. LOWER_BOUND: estimate is lower bound of what the query would cost. UPPER_BOUND: estimate is upper bound of what the query would cost.", +"readOnly": true, +"type": "string" +}, +"totalPartitionsProcessed": { +"description": "Output only. Total number of partitions processed from all partitioned tables referenced in the job.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"totalSlotMs": { +"description": "Output only. Slot-milliseconds for the job.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"transferredBytes": { +"description": "Output only. Total bytes transferred for cross-cloud queries such as Cross Cloud Transfer and CREATE TABLE AS SELECT (CTAS).", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"undeclaredQueryParameters": { +"description": "Output only. GoogleSQL only: list of undeclared query parameters detected during a dry run validation.", +"items": { +"$ref": "QueryParameter" +}, +"readOnly": true, +"type": "array" +}, +"vectorSearchStatistics": { +"$ref": "VectorSearchStatistics", +"description": "Output only. Vector Search query specific statistics.", +"readOnly": true +} +}, +"type": "object" +}, +"JobStatistics3": { +"description": "Statistics for a load job.", +"id": "JobStatistics3", +"properties": { +"badRecords": { +"description": "Output only. The number of bad records encountered. Note that if the job has failed because of more bad records encountered than the maximum allowed in the load job configuration, then this number can be less than the total number of bad records present in the input data.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"inputFileBytes": { +"description": "Output only. Number of bytes of source data in a load job.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"inputFiles": { +"description": "Output only. Number of source files in a load job.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"outputBytes": { +"description": "Output only. Size of the loaded data in bytes. Note that while a load job is in the running state, this value may change.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"outputRows": { +"description": "Output only. Number of rows imported in a load job. Note that while an import job is in the running state, this value may change.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"timeline": { +"description": "Output only. Describes a timeline of job execution.", +"items": { +"$ref": "QueryTimelineSample" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"JobStatistics4": { +"description": "Statistics for an extract job.", +"id": "JobStatistics4", +"properties": { +"destinationUriFileCounts": { +"description": "Output only. Number of files per destination URI or URI pattern specified in the extract configuration. These values will be in the same order as the URIs specified in the 'destinationUris' field.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"inputBytes": { +"description": "Output only. Number of user bytes extracted into the result. This is the byte count as computed by BigQuery for billing purposes and doesn't have any relationship with the number of actual result bytes extracted in the desired format.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"timeline": { +"description": "Output only. Describes a timeline of job execution.", +"items": { +"$ref": "QueryTimelineSample" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"JobStatistics5": { +"description": "Statistics for a copy job.", +"id": "JobStatistics5", +"properties": { +"copiedLogicalBytes": { +"description": "Output only. Number of logical bytes copied to the destination table.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"copiedRows": { +"description": "Output only. Number of rows copied to the destination table.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"JobStatus": { +"id": "JobStatus", +"properties": { +"errorResult": { +"$ref": "ErrorProto", +"description": "Output only. Final error result of the job. If present, indicates that the job has completed and was unsuccessful.", +"readOnly": true +}, +"errors": { +"description": "Output only. The first errors encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has not completed or was unsuccessful.", +"items": { +"$ref": "ErrorProto" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "Output only. Running state of the job. Valid states include 'PENDING', 'RUNNING', and 'DONE'.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"JoinRestrictionPolicy": { +"description": "Represents privacy policy associated with \"join restrictions\". Join restriction gives data providers the ability to enforce joins on the 'join_allowed_columns' when data is queried from a privacy protected view.", +"id": "JoinRestrictionPolicy", +"properties": { +"joinAllowedColumns": { +"description": "Optional. The only columns that joins are allowed on. This field is must be specified for join_conditions JOIN_ANY and JOIN_ALL and it cannot be set for JOIN_BLOCKED.", +"items": { +"type": "string" +}, +"type": "array" +}, +"joinCondition": { +"description": "Optional. Specifies if a join is required or not on queries for the view. Default is JOIN_CONDITION_UNSPECIFIED.", +"enum": [ +"JOIN_CONDITION_UNSPECIFIED", +"JOIN_ANY", +"JOIN_ALL", +"JOIN_NOT_REQUIRED", +"JOIN_BLOCKED" +], +"enumDescriptions": [ +"A join is neither required nor restricted on any column. Default value.", +"A join is required on at least one of the specified columns.", +"A join is required on all specified columns.", +"A join is not required, but if present it is only permitted on 'join_allowed_columns'", +"Joins are blocked for all queries." +], +"type": "string" +} +}, +"type": "object" +}, +"JsonObject": { +"additionalProperties": { +"$ref": "JsonValue" +}, +"description": "Represents a single JSON object.", +"id": "JsonObject", +"type": "object" +}, +"JsonOptions": { +"description": "Json Options for load and make external tables.", +"id": "JsonOptions", +"properties": { +"encoding": { +"description": "Optional. The character encoding of the data. The supported values are UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8.", +"type": "string" +} +}, +"type": "object" +}, +"JsonValue": { +"id": "JsonValue", +"type": "any" +}, +"LinkedDatasetMetadata": { +"description": "Metadata about the Linked Dataset.", +"id": "LinkedDatasetMetadata", +"properties": { +"linkState": { +"description": "Output only. Specifies whether Linked Dataset is currently in a linked state or not.", +"enum": [ +"LINK_STATE_UNSPECIFIED", +"LINKED", +"UNLINKED" +], +"enumDescriptions": [ +"The default value. Default to the LINKED state.", +"Normal Linked Dataset state. Data is queryable via the Linked Dataset.", +"Data publisher or owner has unlinked this Linked Dataset. It means you can no longer query or see the data in the Linked Dataset." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"LinkedDatasetSource": { +"description": "A dataset source type which refers to another BigQuery dataset.", +"id": "LinkedDatasetSource", +"properties": { +"sourceDataset": { +"$ref": "DatasetReference", +"description": "The source dataset reference contains project numbers and not project ids." +} +}, +"type": "object" +}, +"ListModelsResponse": { +"description": "Response format for a single page when listing BigQuery ML models.", +"id": "ListModelsResponse", +"properties": { +"models": { +"description": "Models in the requested dataset. Only the following fields are populated: model_reference, model_type, creation_time, last_modified_time and labels.", +"items": { +"$ref": "Model" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to request the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListRoutinesResponse": { +"description": "Describes the format of a single result page when listing routines.", +"id": "ListRoutinesResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of results.", +"type": "string" +}, +"routines": { +"description": "Routines in the requested dataset. Unless read_mask is set in the request, only the following fields are populated: etag, project_id, dataset_id, routine_id, routine_type, creation_time, last_modified_time, language, and remote_function_options.", +"items": { +"$ref": "Routine" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRowAccessPoliciesResponse": { +"description": "Response message for the ListRowAccessPolicies method.", +"id": "ListRowAccessPoliciesResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of results.", +"type": "string" +}, +"rowAccessPolicies": { +"description": "Row access policies on the requested table.", +"items": { +"$ref": "RowAccessPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoadQueryStatistics": { +"description": "Statistics for a LOAD query.", +"id": "LoadQueryStatistics", +"properties": { +"badRecords": { +"description": "Output only. The number of bad records encountered while processing a LOAD query. Note that if the job has failed because of more bad records encountered than the maximum allowed in the load job configuration, then this number can be less than the total number of bad records present in the input data.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"bytesTransferred": { +"deprecated": true, +"description": "Output only. This field is deprecated. The number of bytes of source data copied over the network for a `LOAD` query. `transferred_bytes` has the canonical value for physical transferred bytes, which is used for BigQuery Omni billing.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"inputFileBytes": { +"description": "Output only. Number of bytes of source data in a LOAD query.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"inputFiles": { +"description": "Output only. Number of source files in a LOAD query.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"outputBytes": { +"description": "Output only. Size of the loaded data in bytes. Note that while a LOAD query is in the running state, this value may change.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"outputRows": { +"description": "Output only. Number of rows imported in a LOAD query. Note that while a LOAD query is in the running state, this value may change.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"LocationMetadata": { +"description": "BigQuery-specific metadata about a location. This will be set on google.cloud.location.Location.metadata in Cloud Location API responses.", +"id": "LocationMetadata", +"properties": { +"legacyLocationId": { +"description": "The legacy BigQuery location ID, e.g. \u201cEU\u201d for the \u201ceurope\u201d location. This is for any API consumers that need the legacy \u201cUS\u201d and \u201cEU\u201d locations.", +"type": "string" +} +}, +"type": "object" +}, +"MaterializedView": { +"description": "A materialized view considered for a query job.", +"id": "MaterializedView", +"properties": { +"chosen": { +"description": "Whether the materialized view is chosen for the query. A materialized view can be chosen to rewrite multiple parts of the same query. If a materialized view is chosen to rewrite any part of the query, then this field is true, even if the materialized view was not chosen to rewrite others parts.", +"type": "boolean" +}, +"estimatedBytesSaved": { +"description": "If present, specifies a best-effort estimation of the bytes saved by using the materialized view rather than its base tables.", +"format": "int64", +"type": "string" +}, +"rejectedReason": { +"description": "If present, specifies the reason why the materialized view was not chosen for the query.", +"enum": [ +"REJECTED_REASON_UNSPECIFIED", +"NO_DATA", +"COST", +"BASE_TABLE_TRUNCATED", +"BASE_TABLE_DATA_CHANGE", +"BASE_TABLE_PARTITION_EXPIRATION_CHANGE", +"BASE_TABLE_EXPIRED_PARTITION", +"BASE_TABLE_INCOMPATIBLE_METADATA_CHANGE", +"TIME_ZONE", +"OUT_OF_TIME_TRAVEL_WINDOW", +"BASE_TABLE_FINE_GRAINED_SECURITY_POLICY", +"BASE_TABLE_TOO_STALE" +], +"enumDescriptions": [ +"Default unspecified value.", +"View has no cached data because it has not refreshed yet.", +"The estimated cost of the view is more expensive than another view or the base table. Note: The estimate cost might not match the billed cost.", +"View has no cached data because a base table is truncated.", +"View is invalidated because of a data change in one or more base tables. It could be any recent change if the [`maxStaleness`](https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#Table.FIELDS.max_staleness) option is not set for the view, or otherwise any change outside of the staleness window.", +"View is invalidated because a base table's partition expiration has changed.", +"View is invalidated because a base table's partition has expired.", +"View is invalidated because a base table has an incompatible metadata change.", +"View is invalidated because it was refreshed with a time zone other than that of the current job.", +"View is outside the time travel window.", +"View is inaccessible to the user because of a fine-grained security policy on one of its base tables.", +"One of the view's base tables is too stale. For example, the cached metadata of a BigLake external table needs to be updated." +], +"type": "string" +}, +"tableReference": { +"$ref": "TableReference", +"description": "The candidate materialized view." +} +}, +"type": "object" +}, +"MaterializedViewDefinition": { +"description": "Definition and configuration of a materialized view.", +"id": "MaterializedViewDefinition", +"properties": { +"allowNonIncrementalDefinition": { +"description": "Optional. This option declares the intention to construct a materialized view that isn't refreshed incrementally.", +"type": "boolean" +}, +"enableRefresh": { +"description": "Optional. Enable automatic refresh of the materialized view when the base table is updated. The default value is \"true\".", +"type": "boolean" +}, +"lastRefreshTime": { +"description": "Output only. The time when this materialized view was last refreshed, in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"maxStaleness": { +"description": "[Optional] Max staleness of data that could be returned when materizlized view is queried (formatted as Google SQL Interval type).", +"format": "byte", +"type": "string" +}, +"query": { +"description": "Required. A query whose results are persisted.", +"type": "string" +}, +"refreshIntervalMs": { +"description": "Optional. The maximum frequency at which this materialized view will be refreshed. The default value is \"1800000\" (30 minutes).", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"MaterializedViewStatistics": { +"description": "Statistics of materialized views considered in a query job.", +"id": "MaterializedViewStatistics", +"properties": { +"materializedView": { +"description": "Materialized views considered for the query job. Only certain materialized views are used. For a detailed list, see the child message. If many materialized views are considered, then the list might be incomplete.", +"items": { +"$ref": "MaterializedView" +}, +"type": "array" +} +}, +"type": "object" +}, +"MaterializedViewStatus": { +"description": "Status of a materialized view. The last refresh timestamp status is omitted here, but is present in the MaterializedViewDefinition message.", +"id": "MaterializedViewStatus", +"properties": { +"lastRefreshStatus": { +"$ref": "ErrorProto", +"description": "Output only. Error result of the last automatic refresh. If present, indicates that the last automatic refresh was unsuccessful.", +"readOnly": true +}, +"refreshWatermark": { +"description": "Output only. Refresh watermark of materialized view. The base tables' data were collected into the materialized view cache until this time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MetadataCacheStatistics": { +"description": "Statistics for metadata caching in BigLake tables.", +"id": "MetadataCacheStatistics", +"properties": { +"tableMetadataCacheUsage": { +"description": "Set for the Metadata caching eligible tables referenced in the query.", +"items": { +"$ref": "TableMetadataCacheUsage" +}, +"type": "array" +} +}, +"type": "object" +}, +"MlStatistics": { +"description": "Job statistics specific to a BigQuery ML training job.", +"id": "MlStatistics", +"properties": { +"hparamTrials": { +"description": "Output only. Trials of a [hyperparameter tuning job](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) sorted by trial_id.", +"items": { +"$ref": "HparamTuningTrial" +}, +"readOnly": true, +"type": "array" +}, +"iterationResults": { +"description": "Results for all completed iterations. Empty for [hyperparameter tuning jobs](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview).", +"items": { +"$ref": "IterationResult" +}, +"type": "array" +}, +"maxIterations": { +"description": "Output only. Maximum number of iterations specified as max_iterations in the 'CREATE MODEL' query. The actual number of iterations may be less than this number due to early stop.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"modelType": { +"description": "Output only. The type of the model that is being trained.", +"enum": [ +"MODEL_TYPE_UNSPECIFIED", +"LINEAR_REGRESSION", +"LOGISTIC_REGRESSION", +"KMEANS", +"MATRIX_FACTORIZATION", +"DNN_CLASSIFIER", +"TENSORFLOW", +"DNN_REGRESSOR", +"XGBOOST", +"BOOSTED_TREE_REGRESSOR", +"BOOSTED_TREE_CLASSIFIER", +"ARIMA", +"AUTOML_REGRESSOR", +"AUTOML_CLASSIFIER", +"PCA", +"DNN_LINEAR_COMBINED_CLASSIFIER", +"DNN_LINEAR_COMBINED_REGRESSOR", +"AUTOENCODER", +"ARIMA_PLUS", +"ARIMA_PLUS_XREG", +"RANDOM_FOREST_REGRESSOR", +"RANDOM_FOREST_CLASSIFIER", +"TENSORFLOW_LITE", +"ONNX", +"TRANSFORM_ONLY", +"CONTRIBUTION_ANALYSIS" +], +"enumDescriptions": [ +"Default value.", +"Linear regression model.", +"Logistic regression based classification model.", +"K-means clustering model.", +"Matrix factorization model.", +"DNN classifier model.", +"An imported TensorFlow model.", +"DNN regressor model.", +"An imported XGBoost model.", +"Boosted tree regressor model.", +"Boosted tree classifier model.", +"ARIMA model.", +"AutoML Tables regression model.", +"AutoML Tables classification model.", +"Prinpical Component Analysis model.", +"Wide-and-deep classifier model.", +"Wide-and-deep regressor model.", +"Autoencoder model.", +"New name for the ARIMA model.", +"ARIMA with external regressors.", +"Random forest regressor model.", +"Random forest classifier model.", +"An imported TensorFlow Lite model.", +"An imported ONNX model.", +"Model to capture the columns and logic in the TRANSFORM clause along with statistics useful for ML analytic functions.", +"The contribution analysis model." +], +"readOnly": true, +"type": "string" +}, +"trainingType": { +"description": "Output only. Training type of the job.", +"enum": [ +"TRAINING_TYPE_UNSPECIFIED", +"SINGLE_TRAINING", +"HPARAM_TUNING" +], +"enumDescriptions": [ +"Unspecified training type.", +"Single training with fixed parameter space.", +"[Hyperparameter tuning training](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview)." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Model": { +"id": "Model", +"properties": { +"bestTrialId": { +"deprecated": true, +"description": "The best trial_id across all training runs.", +"format": "int64", +"type": "string" +}, +"creationTime": { +"description": "Output only. The time when this model was created, in millisecs since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"defaultTrialId": { +"description": "Output only. The default trial_id to use in TVFs when the trial_id is not passed in. For single-objective [hyperparameter tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the best trial ID. For multi-objective [hyperparameter tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the smallest trial ID among all Pareto optimal trials.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A user-friendly description of this model.", +"type": "string" +}, +"encryptionConfiguration": { +"$ref": "EncryptionConfiguration", +"description": "Custom encryption configuration (e.g., Cloud KMS keys). This shows the encryption configuration of the model data while stored in BigQuery storage. This field can be used with PatchModel to update encryption key for an already encrypted model." +}, +"etag": { +"description": "Output only. A hash of this resource.", +"readOnly": true, +"type": "string" +}, +"expirationTime": { +"description": "Optional. The time when this model expires, in milliseconds since the epoch. If not present, the model will persist indefinitely. Expired models will be deleted and their storage reclaimed. The defaultTableExpirationMs property of the encapsulating dataset can be used to set a default expirationTime on newly created models.", +"format": "int64", +"type": "string" +}, +"featureColumns": { +"description": "Output only. Input feature columns for the model inference. If the model is trained with TRANSFORM clause, these are the input of the TRANSFORM clause.", +"items": { +"$ref": "StandardSqlField" +}, +"readOnly": true, +"type": "array" +}, +"friendlyName": { +"description": "Optional. A descriptive name for this model.", +"type": "string" +}, +"hparamSearchSpaces": { +"$ref": "HparamSearchSpaces", +"description": "Output only. All hyperparameter search spaces in this model.", +"readOnly": true +}, +"hparamTrials": { +"description": "Output only. Trials of a [hyperparameter tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) model sorted by trial_id.", +"items": { +"$ref": "HparamTuningTrial" +}, +"readOnly": true, +"type": "array" +}, +"labelColumns": { +"description": "Output only. Label columns that were used to train this model. The output of the model will have a \"predicted_\" prefix to these columns.", +"items": { +"$ref": "StandardSqlField" +}, +"readOnly": true, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this model. You can use these to organize and group your models. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.", +"type": "object" +}, +"lastModifiedTime": { +"description": "Output only. The time when this model was last modified, in millisecs since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"location": { +"description": "Output only. The geographic location where the model resides. This value is inherited from the dataset.", +"readOnly": true, +"type": "string" +}, +"modelReference": { +"$ref": "ModelReference", +"description": "Required. Unique identifier for this model." +}, +"modelType": { +"description": "Output only. Type of the model resource.", +"enum": [ +"MODEL_TYPE_UNSPECIFIED", +"LINEAR_REGRESSION", +"LOGISTIC_REGRESSION", +"KMEANS", +"MATRIX_FACTORIZATION", +"DNN_CLASSIFIER", +"TENSORFLOW", +"DNN_REGRESSOR", +"XGBOOST", +"BOOSTED_TREE_REGRESSOR", +"BOOSTED_TREE_CLASSIFIER", +"ARIMA", +"AUTOML_REGRESSOR", +"AUTOML_CLASSIFIER", +"PCA", +"DNN_LINEAR_COMBINED_CLASSIFIER", +"DNN_LINEAR_COMBINED_REGRESSOR", +"AUTOENCODER", +"ARIMA_PLUS", +"ARIMA_PLUS_XREG", +"RANDOM_FOREST_REGRESSOR", +"RANDOM_FOREST_CLASSIFIER", +"TENSORFLOW_LITE", +"ONNX", +"TRANSFORM_ONLY", +"CONTRIBUTION_ANALYSIS" +], +"enumDescriptions": [ +"Default value.", +"Linear regression model.", +"Logistic regression based classification model.", +"K-means clustering model.", +"Matrix factorization model.", +"DNN classifier model.", +"An imported TensorFlow model.", +"DNN regressor model.", +"An imported XGBoost model.", +"Boosted tree regressor model.", +"Boosted tree classifier model.", +"ARIMA model.", +"AutoML Tables regression model.", +"AutoML Tables classification model.", +"Prinpical Component Analysis model.", +"Wide-and-deep classifier model.", +"Wide-and-deep regressor model.", +"Autoencoder model.", +"New name for the ARIMA model.", +"ARIMA with external regressors.", +"Random forest regressor model.", +"Random forest classifier model.", +"An imported TensorFlow Lite model.", +"An imported ONNX model.", +"Model to capture the columns and logic in the TRANSFORM clause along with statistics useful for ML analytic functions.", +"The contribution analysis model." +], +"readOnly": true, +"type": "string" +}, +"optimalTrialIds": { +"description": "Output only. For single-objective [hyperparameter tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it only contains the best trial. For multi-objective [hyperparameter tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it contains all Pareto optimal trials sorted by trial_id.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"remoteModelInfo": { +"$ref": "RemoteModelInfo", +"description": "Output only. Remote model info", +"readOnly": true +}, +"trainingRuns": { +"description": "Information for all training runs in increasing order of start_time.", +"items": { +"$ref": "TrainingRun" +}, +"type": "array" +}, +"transformColumns": { +"description": "Output only. This field will be populated if a TRANSFORM clause was used to train a model. TRANSFORM clause (if used) takes feature_columns as input and outputs transform_columns. transform_columns then are used to train the model.", +"items": { +"$ref": "TransformColumn" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ModelDefinition": { +"id": "ModelDefinition", +"properties": { +"modelOptions": { +"description": "Deprecated.", +"properties": { +"labels": { +"items": { +"type": "string" +}, +"type": "array" +}, +"lossType": { +"type": "string" +}, +"modelType": { +"type": "string" +} +}, +"type": "object" +}, +"trainingRuns": { +"description": "Deprecated.", +"items": { +"$ref": "BqmlTrainingRun" +}, +"type": "array" +} +}, +"type": "object" +}, +"ModelExtractOptions": { +"description": "Options related to model extraction.", +"id": "ModelExtractOptions", +"properties": { +"trialId": { +"description": "The 1-based ID of the trial to be exported from a hyperparameter tuning model. If not specified, the trial with id = [Model](https://cloud.google.com/bigquery/docs/reference/rest/v2/models#resource:-model).defaultTrialId is exported. This field is ignored for models not trained with hyperparameter tuning.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ModelReference": { +"description": "Id path of a model.", +"id": "ModelReference", +"properties": { +"datasetId": { +"description": "Required. The ID of the dataset containing this model.", +"type": "string" +}, +"modelId": { +"description": "Required. The ID of the model. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the project containing this model.", +"type": "string" +} +}, +"type": "object" +}, +"MultiClassClassificationMetrics": { +"description": "Evaluation metrics for multi-class classification/classifier models.", +"id": "MultiClassClassificationMetrics", +"properties": { +"aggregateClassificationMetrics": { +"$ref": "AggregateClassificationMetrics", +"description": "Aggregate classification metrics." +}, +"confusionMatrixList": { +"description": "Confusion matrix at different thresholds.", +"items": { +"$ref": "ConfusionMatrix" +}, +"type": "array" +} +}, +"type": "object" +}, +"ParquetOptions": { +"description": "Parquet Options for load and make external tables.", +"id": "ParquetOptions", +"properties": { +"enableListInference": { +"description": "Optional. Indicates whether to use schema inference specifically for Parquet LIST logical type.", +"type": "boolean" +}, +"enumAsString": { +"description": "Optional. Indicates whether to infer Parquet ENUM logical type as STRING instead of BYTES by default.", +"type": "boolean" +}, +"mapTargetType": { +"description": "Optional. Indicates how to represent a Parquet map if present.", +"enum": [ +"MAP_TARGET_TYPE_UNSPECIFIED", +"ARRAY_OF_STRUCT" +], +"enumDescriptions": [ +"In this mode, the map will have the following schema: struct map_field_name { repeated struct key_value { key value } }.", +"In this mode, the map will have the following schema: repeated struct map_field_name { key value }." +], +"type": "string" +} +}, +"type": "object" +}, +"PartitionSkew": { +"description": "Partition skew detailed information.", +"id": "PartitionSkew", +"properties": { +"skewSources": { +"description": "Output only. Source stages which produce skewed data.", +"items": { +"$ref": "SkewSource" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"PartitionedColumn": { +"description": "The partitioning column information.", +"id": "PartitionedColumn", +"properties": { +"field": { +"description": "Required. The name of the partition column.", +"type": "string" +} +}, +"type": "object" +}, +"PartitioningDefinition": { +"description": "The partitioning information, which includes managed table, external table and metastore partitioned table partition information.", +"id": "PartitioningDefinition", +"properties": { +"partitionedColumn": { +"description": "Optional. Details about each partitioning column. This field is output only for all partitioning types other than metastore partitioned tables. BigQuery native tables only support 1 partitioning column. Other table types may support 0, 1 or more partitioning columns. For metastore partitioned tables, the order must match the definition order in the Hive Metastore, where it must match the physical layout of the table. For example, CREATE TABLE a_table(id BIGINT, name STRING) PARTITIONED BY (city STRING, state STRING). In this case the values must be ['city', 'state'] in that order.", +"items": { +"$ref": "PartitionedColumn" +}, +"type": "array" +} +}, +"type": "object" +}, +"PerformanceInsights": { +"description": "Performance insights for the job.", +"id": "PerformanceInsights", +"properties": { +"avgPreviousExecutionMs": { +"description": "Output only. Average execution ms of previous runs. Indicates the job ran slow compared to previous executions. To find previous executions, use INFORMATION_SCHEMA tables and filter jobs with same query hash.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"stagePerformanceChangeInsights": { +"description": "Output only. Query stage performance insights compared to previous runs, for diagnosing performance regression.", +"items": { +"$ref": "StagePerformanceChangeInsight" +}, +"readOnly": true, +"type": "array" +}, +"stagePerformanceStandaloneInsights": { +"description": "Output only. Standalone query stage performance insights, for exploring potential improvements.", +"items": { +"$ref": "StagePerformanceStandaloneInsight" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PrincipalComponentInfo": { +"description": "Principal component infos, used only for eigen decomposition based models, e.g., PCA. Ordered by explained_variance in the descending order.", +"id": "PrincipalComponentInfo", +"properties": { +"cumulativeExplainedVarianceRatio": { +"description": "The explained_variance is pre-ordered in the descending order to compute the cumulative explained variance ratio.", +"format": "double", +"type": "number" +}, +"explainedVariance": { +"description": "Explained variance by this principal component, which is simply the eigenvalue.", +"format": "double", +"type": "number" +}, +"explainedVarianceRatio": { +"description": "Explained_variance over the total explained variance.", +"format": "double", +"type": "number" +}, +"principalComponentId": { +"description": "Id of the principal component.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PrivacyPolicy": { +"description": "Represents privacy policy that contains the privacy requirements specified by the data owner. Currently, this is only supported on views.", +"id": "PrivacyPolicy", +"properties": { +"aggregationThresholdPolicy": { +"$ref": "AggregationThresholdPolicy", +"description": "Optional. Policy used for aggregation thresholds." +}, +"differentialPrivacyPolicy": { +"$ref": "DifferentialPrivacyPolicy", +"description": "Optional. Policy used for differential privacy." +}, +"joinRestrictionPolicy": { +"$ref": "JoinRestrictionPolicy", +"description": "Optional. Join restriction policy is outside of the one of policies, since this policy can be set along with other policies. This policy gives data providers the ability to enforce joins on the 'join_allowed_columns' when data is queried from a privacy protected view." +} +}, +"type": "object" +}, +"ProjectList": { +"description": "Response object of ListProjects", +"id": "ProjectList", +"properties": { +"etag": { +"description": "A hash of the page of results.", +"type": "string" +}, +"kind": { +"default": "bigquery#projectList", +"description": "The resource type of the response.", +"type": "string" +}, +"nextPageToken": { +"description": "Use this token to request the next page of results.", +"type": "string" +}, +"projects": { +"description": "Projects to which the user has at least READ access.", +"items": { +"description": "Information about a single project.", +"properties": { +"friendlyName": { +"description": "A descriptive name for this project. A wrapper is used here because friendlyName can be set to the empty string.", +"type": "string" +}, +"id": { +"description": "An opaque ID of this project.", +"type": "string" +}, +"kind": { +"description": "The resource type.", +"type": "string" +}, +"numericId": { +"description": "The numeric ID of this project.", +"format": "uint64", +"type": "string" +}, +"projectReference": { +"$ref": "ProjectReference", +"description": "A unique reference to this project." +} +}, +"type": "object" +}, +"type": "array" +}, +"totalItems": { +"description": "The total number of projects in the page. A wrapper is used here because the field should still be in the response when the value is 0.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ProjectReference": { +"description": "A unique reference to a project.", +"id": "ProjectReference", +"properties": { +"projectId": { +"description": "Required. ID of the project. Can be either the numeric ID or the assigned ID of the project.", +"type": "string" +} +}, +"type": "object" +}, +"QueryInfo": { +"description": "Query optimization information for a QUERY job.", +"id": "QueryInfo", +"properties": { +"optimizationDetails": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Output only. Information about query optimizations.", +"readOnly": true, +"type": "object" +} +}, +"type": "object" +}, +"QueryParameter": { +"description": "A parameter given to a query.", +"id": "QueryParameter", +"properties": { +"name": { +"description": "Optional. If unset, this is a positional parameter. Otherwise, should be unique within a query.", +"type": "string" +}, +"parameterType": { +"$ref": "QueryParameterType", +"description": "Required. The type of this parameter." +}, +"parameterValue": { +"$ref": "QueryParameterValue", +"description": "Required. The value of this parameter." +} +}, +"type": "object" +}, +"QueryParameterType": { +"description": "The type of a query parameter.", +"id": "QueryParameterType", +"properties": { +"arrayType": { +"$ref": "QueryParameterType", +"description": "Optional. The type of the array's elements, if this is an array." +}, +"rangeElementType": { +"$ref": "QueryParameterType", +"description": "Optional. The element type of the range, if this is a range." +}, +"structTypes": { +"description": "Optional. The types of the fields of this struct, in order, if this is a struct.", +"items": { +"description": "The type of a struct parameter.", +"properties": { +"description": { +"description": "Optional. Human-oriented description of the field.", +"type": "string" +}, +"name": { +"description": "Optional. The name of this field.", +"type": "string" +}, +"type": { +"$ref": "QueryParameterType", +"description": "Required. The type of this field." +} +}, +"type": "object" +}, +"type": "array" +}, +"type": { +"description": "Required. The top level type of this field.", +"type": "string" +} +}, +"type": "object" +}, +"QueryParameterValue": { +"description": "The value of a query parameter.", +"id": "QueryParameterValue", +"properties": { +"arrayValues": { +"description": "Optional. The array values, if this is an array type.", +"items": { +"$ref": "QueryParameterValue" +}, +"type": "array" +}, +"rangeValue": { +"$ref": "RangeValue", +"description": "Optional. The range value, if this is a range type." +}, +"structValues": { +"additionalProperties": { +"$ref": "QueryParameterValue" +}, +"description": "The struct field values.", +"type": "object" +}, +"value": { +"description": "Optional. The value of this value, if a simple scalar type.", +"type": "string" +} +}, +"type": "object" +}, +"QueryRequest": { +"description": "Describes the format of the jobs.query request.", +"id": "QueryRequest", +"properties": { +"connectionProperties": { +"description": "Optional. Connection properties which can modify the query behavior.", +"items": { +"$ref": "ConnectionProperty" +}, +"type": "array" +}, +"continuous": { +"description": "[Optional] Specifies whether the query should be executed as a continuous query. The default value is false.", +"type": "boolean" +}, +"createSession": { +"description": "Optional. If true, creates a new session using a randomly generated session_id. If false, runs query with an existing session_id passed in ConnectionProperty, otherwise runs query in non-session mode. The session location will be set to QueryRequest.location if it is present, otherwise it's set to the default location based on existing routing logic.", +"type": "boolean" +}, +"defaultDataset": { +"$ref": "DatasetReference", +"description": "Optional. Specifies the default datasetId and projectId to assume for any unqualified table names in the query. If not set, all table names in the query string must be qualified in the format 'datasetId.tableId'." +}, +"dryRun": { +"description": "Optional. If set to true, BigQuery doesn't run the job. Instead, if the query is valid, BigQuery returns statistics about the job such as how many bytes would be processed. If the query is invalid, an error returns. The default value is false.", +"type": "boolean" +}, +"formatOptions": { +"$ref": "DataFormatOptions", +"description": "Optional. Output format adjustments." +}, +"jobCreationMode": { +"description": "Optional. If not set, jobs are always required. If set, the query request will follow the behavior described JobCreationMode. [Preview](https://cloud.google.com/products/#product-launch-stages)", +"enum": [ +"JOB_CREATION_MODE_UNSPECIFIED", +"JOB_CREATION_REQUIRED", +"JOB_CREATION_OPTIONAL" +], +"enumDescriptions": [ +"If unspecified JOB_CREATION_REQUIRED is the default.", +"Default. Job creation is always required.", +"Job creation is optional. Returning immediate results is prioritized. BigQuery will automatically determine if a Job needs to be created. The conditions under which BigQuery can decide to not create a Job are subject to change. If Job creation is required, JOB_CREATION_REQUIRED mode should be used, which is the default." +], +"type": "string" +}, +"kind": { +"default": "bigquery#queryRequest", +"description": "The resource type of the request.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels associated with this query. Labels can be used to organize and group query jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label keys must start with a letter and each label in the list must have a different key.", +"type": "object" +}, +"location": { +"description": "The geographic location where the job should run. For more information, see how to [specify locations](https://cloud.google.com/bigquery/docs/locations#specify_locations).", +"type": "string" +}, +"maxResults": { +"description": "Optional. The maximum number of rows of data to return per page of results. Setting this flag to a small value such as 1000 and then paging through results might improve reliability when the query result set is large. In addition to this limit, responses are also limited to 10 MB. By default, there is no maximum row count, and only the byte limit applies.", +"format": "uint32", +"type": "integer" +}, +"maximumBytesBilled": { +"description": "Optional. Limits the bytes billed for this query. Queries with bytes billed above this limit will fail (without incurring a charge). If unspecified, the project default is used.", +"format": "int64", +"type": "string" +}, +"parameterMode": { +"description": "GoogleSQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.", +"type": "string" +}, +"preserveNulls": { +"deprecated": true, +"description": "This property is deprecated.", +"type": "boolean" +}, +"query": { +"description": "Required. A query string to execute, using Google Standard SQL or legacy SQL syntax. Example: \"SELECT COUNT(f1) FROM myProjectId.myDatasetId.myTableId\".", +"type": "string" +}, +"queryParameters": { +"description": "Query parameters for GoogleSQL queries.", +"items": { +"$ref": "QueryParameter" +}, +"type": "array" +}, +"requestId": { +"description": "Optional. A unique user provided identifier to ensure idempotent behavior for queries. Note that this is different from the job_id. It has the following properties: 1. It is case-sensitive, limited to up to 36 ASCII characters. A UUID is recommended. 2. Read only queries can ignore this token since they are nullipotent by definition. 3. For the purposes of idempotency ensured by the request_id, a request is considered duplicate of another only if they have the same request_id and are actually duplicates. When determining whether a request is a duplicate of another request, all parameters in the request that may affect the result are considered. For example, query, connection_properties, query_parameters, use_legacy_sql are parameters that affect the result and are considered when determining whether a request is a duplicate, but properties like timeout_ms don't affect the result and are thus not considered. Dry run query requests are never considered duplicate of another request. 4. When a duplicate mutating query request is detected, it returns: a. the results of the mutation if it completes successfully within the timeout. b. the running operation if it is still in progress at the end of the timeout. 5. Its lifetime is limited to 15 minutes. In other words, if two requests are sent with the same request_id, but more than 15 minutes apart, idempotency is not guaranteed.", +"type": "string" +}, +"timeoutMs": { +"description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 10 seconds (10,000 milliseconds). If the query is complete, the jobComplete field in the response is true. If the query has not yet completed, jobComplete is false. You can request a longer timeout period in the timeoutMs field. However, the call is not guaranteed to wait for the specified timeout; it typically returns after around 200 seconds (200,000 milliseconds), even if the query is not complete. If jobComplete is false, you can continue to wait for the query to complete by calling the getQueryResults method until the jobComplete field in the getQueryResults response is true.", +"format": "uint32", +"type": "integer" +}, +"useLegacySql": { +"default": "true", +"description": "Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the value of flattenResults is ignored; query will be run as if flattenResults is false.", +"type": "boolean" +}, +"useQueryCache": { +"default": "true", +"description": "Optional. Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. The default value is true.", +"type": "boolean" +} +}, +"type": "object" +}, +"QueryResponse": { +"id": "QueryResponse", +"properties": { +"cacheHit": { +"description": "Whether the query result was fetched from the query cache.", +"type": "boolean" +}, +"dmlStats": { +"$ref": "DmlStatistics", +"description": "Output only. Detailed statistics for DML statements INSERT, UPDATE, DELETE, MERGE or TRUNCATE.", +"readOnly": true +}, +"errors": { +"description": "Output only. The first errors or warnings encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful. For more information about error messages, see [Error messages](https://cloud.google.com/bigquery/docs/error-messages).", +"items": { +"$ref": "ErrorProto" +}, +"readOnly": true, +"type": "array" +}, +"jobComplete": { +"description": "Whether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available.", +"type": "boolean" +}, +"jobCreationReason": { +"$ref": "JobCreationReason", +"description": "Optional. The reason why a Job was created. Only relevant when a job_reference is present in the response. If job_reference is not present it will always be unset. [Preview](https://cloud.google.com/products/#product-launch-stages)" +}, +"jobReference": { +"$ref": "JobReference", +"description": "Reference to the Job that was created to run the query. This field will be present even if the original request timed out, in which case GetQueryResults can be used to read the results once the query has completed. Since this API only returns the first page of results, subsequent pages can be fetched via the same mechanism (GetQueryResults). If job_creation_mode was set to `JOB_CREATION_OPTIONAL` and the query completes without creating a job, this field will be empty." +}, +"kind": { +"default": "bigquery#queryResponse", +"description": "The resource type.", +"type": "string" +}, +"numDmlAffectedRows": { +"description": "Output only. The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"pageToken": { +"description": "A token used for paging results. A non-empty token indicates that additional results are available. To see additional results, query the [`jobs.getQueryResults`](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/getQueryResults) method. For more information, see [Paging through table data](https://cloud.google.com/bigquery/docs/paging-results).", +"type": "string" +}, +"queryId": { +"description": "Auto-generated ID for the query. [Preview](https://cloud.google.com/products/#product-launch-stages)", +"type": "string" +}, +"rows": { +"description": "An object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above.", +"items": { +"$ref": "TableRow" +}, +"type": "array" +}, +"schema": { +"$ref": "TableSchema", +"description": "The schema of the results. Present only when the query completes successfully." +}, +"sessionInfo": { +"$ref": "SessionInfo", +"description": "Output only. Information of the session if this job is part of one.", +"readOnly": true +}, +"totalBytesProcessed": { +"description": "The total number of bytes processed for this query. If this query was a dry run, this is the number of bytes that would be processed if the query were run.", +"format": "int64", +"type": "string" +}, +"totalRows": { +"description": "The total number of rows in the complete query result set, which can be more than the number of rows in this single page of results.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"QueryTimelineSample": { +"description": "Summary of the state of query execution at a given time.", +"id": "QueryTimelineSample", +"properties": { +"activeUnits": { +"description": "Total number of active workers. This does not correspond directly to slot usage. This is the largest value observed since the last sample.", +"format": "int64", +"type": "string" +}, +"completedUnits": { +"description": "Total parallel units of work completed by this query.", +"format": "int64", +"type": "string" +}, +"elapsedMs": { +"description": "Milliseconds elapsed since the start of query execution.", +"format": "int64", +"type": "string" +}, +"estimatedRunnableUnits": { +"description": "Units of work that can be scheduled immediately. Providing additional slots for these units of work will accelerate the query, if no other query in the reservation needs additional slots.", +"format": "int64", +"type": "string" +}, +"pendingUnits": { +"description": "Total units of work remaining for the query. This number can be revised (increased or decreased) while the query is running.", +"format": "int64", +"type": "string" +}, +"totalSlotMs": { +"description": "Cumulative slot-ms consumed by the query.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"RangePartitioning": { +"id": "RangePartitioning", +"properties": { +"field": { +"description": "Required. The name of the column to partition the table on. It must be a top-level, INT64 column whose mode is NULLABLE or REQUIRED.", +"type": "string" +}, +"range": { +"description": "[Experimental] Defines the ranges for range partitioning.", +"properties": { +"end": { +"description": "[Experimental] The end of range partitioning, exclusive.", +"format": "int64", +"type": "string" +}, +"interval": { +"description": "[Experimental] The width of each interval.", +"format": "int64", +"type": "string" +}, +"start": { +"description": "[Experimental] The start of range partitioning, inclusive.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"RangeValue": { +"description": "Represents the value of a range.", +"id": "RangeValue", +"properties": { +"end": { +"$ref": "QueryParameterValue", +"description": "Optional. The end value of the range. A missing value represents an unbounded end." +}, +"start": { +"$ref": "QueryParameterValue", +"description": "Optional. The start value of the range. A missing value represents an unbounded start." +} +}, +"type": "object" +}, +"RankingMetrics": { +"description": "Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit.", +"id": "RankingMetrics", +"properties": { +"averageRank": { +"description": "Determines the goodness of a ranking by computing the percentile rank from the predicted confidence and dividing it by the original rank.", +"format": "double", +"type": "number" +}, +"meanAveragePrecision": { +"description": "Calculates a precision per user for all the items by ranking them and then averages all the precisions across all the users.", +"format": "double", +"type": "number" +}, +"meanSquaredError": { +"description": "Similar to the mean squared error computed in regression and explicit recommendation models except instead of computing the rating directly, the output from evaluate is computed against a preference which is 1 or 0 depending on if the rating exists or not.", +"format": "double", +"type": "number" +}, +"normalizedDiscountedCumulativeGain": { +"description": "A metric to determine the goodness of a ranking calculated from the predicted confidence by comparing it to an ideal rank measured by the original ratings.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"RegressionMetrics": { +"description": "Evaluation metrics for regression and explicit feedback type matrix factorization models.", +"id": "RegressionMetrics", +"properties": { +"meanAbsoluteError": { +"description": "Mean absolute error.", +"format": "double", +"type": "number" +}, +"meanSquaredError": { +"description": "Mean squared error.", +"format": "double", +"type": "number" +}, +"meanSquaredLogError": { +"description": "Mean squared log error.", +"format": "double", +"type": "number" +}, +"medianAbsoluteError": { +"description": "Median absolute error.", +"format": "double", +"type": "number" +}, +"rSquared": { +"description": "R^2 score. This corresponds to r2_score in ML.EVALUATE.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"RemoteFunctionOptions": { +"description": "Options for a remote user-defined function.", +"id": "RemoteFunctionOptions", +"properties": { +"connection": { +"description": "Fully qualified name of the user-provided connection object which holds the authentication information to send requests to the remote service. Format: ```\"projects/{projectId}/locations/{locationId}/connections/{connectionId}\"```", +"type": "string" +}, +"endpoint": { +"description": "Endpoint of the user-provided remote service, e.g. ```https://us-east1-my_gcf_project.cloudfunctions.net/remote_add```", +"type": "string" +}, +"maxBatchingRows": { +"description": "Max number of rows in each batch sent to the remote service. If absent or if 0, BigQuery dynamically decides the number of rows in a batch.", +"format": "int64", +"type": "string" +}, +"userDefinedContext": { +"additionalProperties": { +"type": "string" +}, +"description": "User-defined context as a set of key/value pairs, which will be sent as function invocation context together with batched arguments in the requests to the remote service. The total number of bytes of keys and values must be less than 8KB.", +"type": "object" +} +}, +"type": "object" +}, +"RemoteModelInfo": { +"description": "Remote Model Info", +"id": "RemoteModelInfo", +"properties": { +"connection": { +"description": "Output only. Fully qualified name of the user-provided connection object of the remote model. Format: ```\"projects/{project_id}/locations/{location_id}/connections/{connection_id}\"```", +"readOnly": true, +"type": "string" +}, +"endpoint": { +"description": "Output only. The endpoint for remote model.", +"readOnly": true, +"type": "string" +}, +"maxBatchingRows": { +"description": "Output only. Max number of rows in each batch sent to the remote service. If unset, the number of rows in each batch is set dynamically.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"remoteModelVersion": { +"description": "Output only. The model version for LLM.", +"readOnly": true, +"type": "string" +}, +"remoteServiceType": { +"description": "Output only. The remote service type for remote model.", +"enum": [ +"REMOTE_SERVICE_TYPE_UNSPECIFIED", +"CLOUD_AI_TRANSLATE_V3", +"CLOUD_AI_VISION_V1", +"CLOUD_AI_NATURAL_LANGUAGE_V1", +"CLOUD_AI_SPEECH_TO_TEXT_V2" +], +"enumDescriptions": [ +"Unspecified remote service type.", +"V3 Cloud AI Translation API. See more details at [Cloud Translation API] (https://cloud.google.com/translate/docs/reference/rest).", +"V1 Cloud AI Vision API See more details at [Cloud Vision API] (https://cloud.google.com/vision/docs/reference/rest).", +"V1 Cloud AI Natural Language API. See more details at [REST Resource: documents](https://cloud.google.com/natural-language/docs/reference/rest/v1/documents).", +"V2 Speech-to-Text API. See more details at [Google Cloud Speech-to-Text V2 API](https://cloud.google.com/speech-to-text/v2/docs)" +], +"readOnly": true, +"type": "string" +}, +"speechRecognizer": { +"description": "Output only. The name of the speech recognizer to use for speech recognition. The expected format is `projects/{project}/locations/{location}/recognizers/{recognizer}`. Customers can specify this field at model creation. If not specified, a default recognizer `projects/{model project}/locations/global/recognizers/_` will be used. See more details at [recognizers](https://cloud.google.com/speech-to-text/v2/docs/reference/rest/v2/projects.locations.recognizers)", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RestrictionConfig": { +"id": "RestrictionConfig", +"properties": { +"type": { +"description": "Output only. Specifies the type of dataset/table restriction.", +"enum": [ +"RESTRICTION_TYPE_UNSPECIFIED", +"RESTRICTED_DATA_EGRESS" +], +"enumDescriptions": [ +"Should never be used.", +"Restrict data egress. See [Data egress](https://cloud.google.com/bigquery/docs/analytics-hub-introduction#data_egress) for more details." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Routine": { +"description": "A user-defined function or a stored procedure.", +"id": "Routine", +"properties": { +"arguments": { +"description": "Optional.", +"items": { +"$ref": "Argument" +}, +"type": "array" +}, +"creationTime": { +"description": "Output only. The time when this routine was created, in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"dataGovernanceType": { +"description": "Optional. If set to `DATA_MASKING`, the function is validated and made available as a masking function. For more information, see [Create custom masking routines](https://cloud.google.com/bigquery/docs/user-defined-functions#custom-mask).", +"enum": [ +"DATA_GOVERNANCE_TYPE_UNSPECIFIED", +"DATA_MASKING" +], +"enumDescriptions": [ +"The data governance type is unspecified.", +"The data governance type is data masking." +], +"type": "string" +}, +"definitionBody": { +"description": "Required. The body of the routine. For functions, this is the expression in the AS clause. If language=SQL, it is the substring inside (but excluding) the parentheses. For example, for the function created with the following statement: `CREATE FUNCTION JoinLines(x string, y string) as (concat(x, \"\\n\", y))` The definition_body is `concat(x, \"\\n\", y)` (\\n is not replaced with linebreak). If language=JAVASCRIPT, it is the evaluated string in the AS clause. For example, for the function created with the following statement: `CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return \"\\n\";\\n'` The definition_body is `return \"\\n\";\\n` Note that both \\n are replaced with linebreaks.", +"type": "string" +}, +"description": { +"description": "Optional. The description of the routine, if defined.", +"type": "string" +}, +"determinismLevel": { +"description": "Optional. The determinism level of the JavaScript UDF, if defined.", +"enum": [ +"DETERMINISM_LEVEL_UNSPECIFIED", +"DETERMINISTIC", +"NOT_DETERMINISTIC" +], +"enumDescriptions": [ +"The determinism of the UDF is unspecified.", +"The UDF is deterministic, meaning that 2 function calls with the same inputs always produce the same result, even across 2 query runs.", +"The UDF is not deterministic." +], +"type": "string" +}, +"etag": { +"description": "Output only. A hash of this resource.", +"readOnly": true, +"type": "string" +}, +"importedLibraries": { +"description": "Optional. If language = \"JAVASCRIPT\", this field stores the path of the imported JAVASCRIPT libraries.", +"items": { +"type": "string" +}, +"type": "array" +}, +"language": { +"description": "Optional. Defaults to \"SQL\" if remote_function_options field is absent, not set otherwise.", +"enum": [ +"LANGUAGE_UNSPECIFIED", +"SQL", +"JAVASCRIPT", +"PYTHON", +"JAVA", +"SCALA" +], +"enumDescriptions": [ +"Default value.", +"SQL language.", +"JavaScript language.", +"Python language.", +"Java language.", +"Scala language." +], +"type": "string" +}, +"lastModifiedTime": { +"description": "Output only. The time when this routine was last modified, in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"remoteFunctionOptions": { +"$ref": "RemoteFunctionOptions", +"description": "Optional. Remote function specific options." +}, +"returnTableType": { +"$ref": "StandardSqlTableType", +"description": "Optional. Can be set only if routine_type = \"TABLE_VALUED_FUNCTION\". If absent, the return table type is inferred from definition_body at query time in each query that references this routine. If present, then the columns in the evaluated table result will be cast to match the column types specified in return table type, at query time." +}, +"returnType": { +"$ref": "StandardSqlDataType", +"description": "Optional if language = \"SQL\"; required otherwise. Cannot be set if routine_type = \"TABLE_VALUED_FUNCTION\". If absent, the return type is inferred from definition_body at query time in each query that references this routine. If present, then the evaluated result will be cast to the specified returned type at query time. For example, for the functions created with the following statements: * `CREATE FUNCTION Add(x FLOAT64, y FLOAT64) RETURNS FLOAT64 AS (x + y);` * `CREATE FUNCTION Increment(x FLOAT64) AS (Add(x, 1));` * `CREATE FUNCTION Decrement(x FLOAT64) RETURNS FLOAT64 AS (Add(x, -1));` The return_type is `{type_kind: \"FLOAT64\"}` for `Add` and `Decrement`, and is absent for `Increment` (inferred as FLOAT64 at query time). Suppose the function `Add` is replaced by `CREATE OR REPLACE FUNCTION Add(x INT64, y INT64) AS (x + y);` Then the inferred return type of `Increment` is automatically changed to INT64 at query time, while the return type of `Decrement` remains FLOAT64." +}, +"routineReference": { +"$ref": "RoutineReference", +"description": "Required. Reference describing the ID of this routine." +}, +"routineType": { +"description": "Required. The type of routine.", +"enum": [ +"ROUTINE_TYPE_UNSPECIFIED", +"SCALAR_FUNCTION", +"PROCEDURE", +"TABLE_VALUED_FUNCTION", +"AGGREGATE_FUNCTION" +], +"enumDescriptions": [ +"Default value.", +"Non-built-in persistent scalar function.", +"Stored procedure.", +"Non-built-in persistent TVF.", +"Non-built-in persistent aggregate function." +], +"type": "string" +}, +"securityMode": { +"description": "Optional. The security mode of the routine, if defined. If not defined, the security mode is automatically determined from the routine's configuration.", +"enum": [ +"SECURITY_MODE_UNSPECIFIED", +"DEFINER", +"INVOKER" +], +"enumDescriptions": [ +"The security mode of the routine is unspecified.", +"The routine is to be executed with the privileges of the user who defines it.", +"The routine is to be executed with the privileges of the user who invokes it." +], +"type": "string" +}, +"sparkOptions": { +"$ref": "SparkOptions", +"description": "Optional. Spark specific options." +}, +"strictMode": { +"description": "Optional. Use this option to catch many common errors. Error checking is not exhaustive, and successfully creating a procedure doesn't guarantee that the procedure will successfully execute at runtime. If `strictMode` is set to `TRUE`, the procedure body is further checked for errors such as non-existent tables or columns. The `CREATE PROCEDURE` statement fails if the body fails any of these checks. If `strictMode` is set to `FALSE`, the procedure body is checked only for syntax. For procedures that invoke themselves recursively, specify `strictMode=FALSE` to avoid non-existent procedure errors during validation. Default value is `TRUE`.", +"type": "boolean" +} +}, +"type": "object" +}, +"RoutineReference": { +"description": "Id path of a routine.", +"id": "RoutineReference", +"properties": { +"datasetId": { +"description": "Required. The ID of the dataset containing this routine.", +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the project containing this routine.", +"type": "string" +}, +"routineId": { +"description": "Required. The ID of the routine. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters.", +"type": "string" +} +}, +"type": "object" +}, +"Row": { +"description": "A single row in the confusion matrix.", +"id": "Row", +"properties": { +"actualLabel": { +"description": "The original label of this row.", +"type": "string" +}, +"entries": { +"description": "Info describing predicted label distribution.", +"items": { +"$ref": "Entry" +}, +"type": "array" +} +}, +"type": "object" +}, +"RowAccessPolicy": { +"description": "Represents access on a subset of rows on the specified table, defined by its filter predicate. Access to the subset of rows is controlled by its IAM policy.", +"id": "RowAccessPolicy", +"properties": { +"creationTime": { +"description": "Output only. The time when this row access policy was created, in milliseconds since the epoch.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Output only. A hash of this resource.", +"readOnly": true, +"type": "string" +}, +"filterPredicate": { +"description": "Required. A SQL boolean expression that represents the rows defined by this row access policy, similar to the boolean expression in a WHERE clause of a SELECT query on a table. References to other tables, routines, and temporary functions are not supported. Examples: region=\"EU\" date_field = CAST('2019-9-27' as DATE) nullable_field is not NULL numeric_field BETWEEN 1.0 AND 5.0", +"type": "string" +}, +"lastModifiedTime": { +"description": "Output only. The time when this row access policy was last modified, in milliseconds since the epoch.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"rowAccessPolicyReference": { +"$ref": "RowAccessPolicyReference", +"description": "Required. Reference describing the ID of this row access policy." +} +}, +"type": "object" +}, +"RowAccessPolicyReference": { +"description": "Id path of a row access policy.", +"id": "RowAccessPolicyReference", +"properties": { +"datasetId": { +"description": "Required. The ID of the dataset containing this row access policy.", +"type": "string" +}, +"policyId": { +"description": "Required. The ID of the row access policy. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters.", +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the project containing this row access policy.", +"type": "string" +}, +"tableId": { +"description": "Required. The ID of the table containing this row access policy.", +"type": "string" +} +}, +"type": "object" +}, +"RowLevelSecurityStatistics": { +"description": "Statistics for row-level security.", +"id": "RowLevelSecurityStatistics", +"properties": { +"rowLevelSecurityApplied": { +"description": "Whether any accessed data was protected by row access policies.", +"type": "boolean" +} +}, +"type": "object" +}, +"ScriptOptions": { +"description": "Options related to script execution.", +"id": "ScriptOptions", +"properties": { +"keyResultStatement": { +"description": "Determines which statement in the script represents the \"key result\", used to populate the schema and query results of the script job. Default is LAST.", +"enum": [ +"KEY_RESULT_STATEMENT_KIND_UNSPECIFIED", +"LAST", +"FIRST_SELECT" +], +"enumDescriptions": [ +"Default value.", +"The last result determines the key result.", +"The first SELECT statement determines the key result." +], +"type": "string" +}, +"statementByteBudget": { +"description": "Limit on the number of bytes billed per statement. Exceeding this budget results in an error.", +"format": "int64", +"type": "string" +}, +"statementTimeoutMs": { +"description": "Timeout period for each statement in a script.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ScriptStackFrame": { +"description": "Represents the location of the statement/expression being evaluated. Line and column numbers are defined as follows: - Line and column numbers start with one. That is, line 1 column 1 denotes the start of the script. - When inside a stored procedure, all line/column numbers are relative to the procedure body, not the script in which the procedure was defined. - Start/end positions exclude leading/trailing comments and whitespace. The end position always ends with a \";\", when present. - Multi-byte Unicode characters are treated as just one column. - If the original script (or procedure definition) contains TAB characters, a tab \"snaps\" the indentation forward to the nearest multiple of 8 characters, plus 1. For example, a TAB on column 1, 2, 3, 4, 5, 6 , or 8 will advance the next character to column 9. A TAB on column 9, 10, 11, 12, 13, 14, 15, or 16 will advance the next character to column 17.", +"id": "ScriptStackFrame", +"properties": { +"endColumn": { +"description": "Output only. One-based end column.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"endLine": { +"description": "Output only. One-based end line.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"procedureId": { +"description": "Output only. Name of the active procedure, empty if in a top-level script.", +"readOnly": true, +"type": "string" +}, +"startColumn": { +"description": "Output only. One-based start column.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"startLine": { +"description": "Output only. One-based start line.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"text": { +"description": "Output only. Text of the current statement/expression.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ScriptStatistics": { +"description": "Job statistics specific to the child job of a script.", +"id": "ScriptStatistics", +"properties": { +"evaluationKind": { +"description": "Whether this child job was a statement or expression.", +"enum": [ +"EVALUATION_KIND_UNSPECIFIED", +"STATEMENT", +"EXPRESSION" +], +"enumDescriptions": [ +"Default value.", +"The statement appears directly in the script.", +"The statement evaluates an expression that appears in the script." +], +"type": "string" +}, +"stackFrames": { +"description": "Stack trace showing the line/column/procedure name of each frame on the stack at the point where the current evaluation happened. The leaf frame is first, the primary script is last. Never empty.", +"items": { +"$ref": "ScriptStackFrame" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchStatistics": { +"description": "Statistics for a search query. Populated as part of JobStatistics2.", +"id": "SearchStatistics", +"properties": { +"indexUnusedReasons": { +"description": "When `indexUsageMode` is `UNUSED` or `PARTIALLY_USED`, this field explains why indexes were not used in all or part of the search query. If `indexUsageMode` is `FULLY_USED`, this field is not populated.", +"items": { +"$ref": "IndexUnusedReason" +}, +"type": "array" +}, +"indexUsageMode": { +"description": "Specifies the index usage mode for the query.", +"enum": [ +"INDEX_USAGE_MODE_UNSPECIFIED", +"UNUSED", +"PARTIALLY_USED", +"FULLY_USED" +], +"enumDescriptions": [ +"Index usage mode not specified.", +"No search indexes were used in the search query. See [`indexUnusedReasons`] (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for detailed reasons.", +"Part of the search query used search indexes. See [`indexUnusedReasons`] (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for why other parts of the query did not use search indexes.", +"The entire search query used search indexes." +], +"type": "string" +} +}, +"type": "object" +}, +"SerDeInfo": { +"description": "Serializer and deserializer information.", +"id": "SerDeInfo", +"properties": { +"name": { +"description": "Optional. Name of the SerDe. The maximum length is 256 characters.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Key-value pairs that define the initialization parameters for the serialization library. Maximum size 10 Kib.", +"type": "object" +}, +"serializationLibrary": { +"description": "Required. Specifies a fully-qualified class name of the serialization library that is responsible for the translation of data between table representation and the underlying low-level input and output format structures. The maximum length is 256 characters.", +"type": "string" +} +}, +"type": "object" +}, +"SessionInfo": { +"description": "[Preview] Information related to sessions.", +"id": "SessionInfo", +"properties": { +"sessionId": { +"description": "Output only. The id of the session.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"SkewSource": { +"description": "Details about source stages which produce skewed data.", +"id": "SkewSource", +"properties": { +"stageId": { +"description": "Output only. Stage id of the skew source stage.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SnapshotDefinition": { +"description": "Information about base table and snapshot time of the snapshot.", +"id": "SnapshotDefinition", +"properties": { +"baseTableReference": { +"$ref": "TableReference", +"description": "Required. Reference describing the ID of the table that was snapshot." +}, +"snapshotTime": { +"description": "Required. The time at which the base table was snapshot. This value is reported in the JSON response using RFC3339 format.", +"format": "date-time", +"type": "string" +} +}, +"type": "object" +}, +"SparkLoggingInfo": { +"description": "Spark job logs can be filtered by these fields in Cloud Logging.", +"id": "SparkLoggingInfo", +"properties": { +"projectId": { +"description": "Output only. Project ID where the Spark logs were written.", +"readOnly": true, +"type": "string" +}, +"resourceType": { +"description": "Output only. Resource type used for logging.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SparkOptions": { +"description": "Options for a user-defined Spark routine.", +"id": "SparkOptions", +"properties": { +"archiveUris": { +"description": "Archive files to be extracted into the working directory of each executor. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html).", +"items": { +"type": "string" +}, +"type": "array" +}, +"connection": { +"description": "Fully qualified name of the user-provided Spark connection object. Format: ```\"projects/{project_id}/locations/{location_id}/connections/{connection_id}\"```", +"type": "string" +}, +"containerImage": { +"description": "Custom container image for the runtime environment.", +"type": "string" +}, +"fileUris": { +"description": "Files to be placed in the working directory of each executor. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html).", +"items": { +"type": "string" +}, +"type": "array" +}, +"jarUris": { +"description": "JARs to include on the driver and executor CLASSPATH. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html).", +"items": { +"type": "string" +}, +"type": "array" +}, +"mainClass": { +"description": "The fully qualified name of a class in jar_uris, for example, com.example.wordcount. Exactly one of main_class and main_jar_uri field should be set for Java/Scala language type.", +"type": "string" +}, +"mainFileUri": { +"description": "The main file/jar URI of the Spark application. Exactly one of the definition_body field and the main_file_uri field must be set for Python. Exactly one of main_class and main_file_uri field should be set for Java/Scala language type.", +"type": "string" +}, +"properties": { +"additionalProperties": { +"type": "string" +}, +"description": "Configuration properties as a set of key/value pairs, which will be passed on to the Spark application. For more information, see [Apache Spark](https://spark.apache.org/docs/latest/index.html) and the [procedure option list](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#procedure_option_list).", +"type": "object" +}, +"pyFileUris": { +"description": "Python files to be placed on the PYTHONPATH for PySpark application. Supported file types: `.py`, `.egg`, and `.zip`. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html).", +"items": { +"type": "string" +}, +"type": "array" +}, +"runtimeVersion": { +"description": "Runtime version. If not specified, the default runtime version is used.", +"type": "string" +} +}, +"type": "object" +}, +"SparkStatistics": { +"description": "Statistics for a BigSpark query. Populated as part of JobStatistics2", +"id": "SparkStatistics", +"properties": { +"endpoints": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. Endpoints returned from Dataproc. Key list: - history_server_endpoint: A link to Spark job UI.", +"readOnly": true, +"type": "object" +}, +"gcsStagingBucket": { +"description": "Output only. The Google Cloud Storage bucket that is used as the default file system by the Spark application. This field is only filled when the Spark procedure uses the invoker security mode. The `gcsStagingBucket` bucket is inferred from the `@@spark_proc_properties.staging_bucket` system variable (if it is provided). Otherwise, BigQuery creates a default staging bucket for the job and returns the bucket name in this field. Example: * `gs://[bucket_name]`", +"readOnly": true, +"type": "string" +}, +"kmsKeyName": { +"description": "Output only. The Cloud KMS encryption key that is used to protect the resources created by the Spark job. If the Spark procedure uses the invoker security mode, the Cloud KMS encryption key is either inferred from the provided system variable, `@@spark_proc_properties.kms_key_name`, or the default key of the BigQuery job's project (if the CMEK organization policy is enforced). Otherwise, the Cloud KMS key is either inferred from the Spark connection associated with the procedure (if it is provided), or from the default key of the Spark connection's project if the CMEK organization policy is enforced. Example: * `projects/[kms_project_id]/locations/[region]/keyRings/[key_region]/cryptoKeys/[key]`", +"readOnly": true, +"type": "string" +}, +"loggingInfo": { +"$ref": "SparkLoggingInfo", +"description": "Output only. Logging info is used to generate a link to Cloud Logging.", +"readOnly": true +}, +"sparkJobId": { +"description": "Output only. Spark job ID if a Spark job is created successfully.", +"readOnly": true, +"type": "string" +}, +"sparkJobLocation": { +"description": "Output only. Location where the Spark job is executed. A location is selected by BigQueury for jobs configured to run in a multi-region.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"StagePerformanceChangeInsight": { +"description": "Performance insights compared to the previous executions for a specific stage.", +"id": "StagePerformanceChangeInsight", +"properties": { +"inputDataChange": { +"$ref": "InputDataChange", +"description": "Output only. Input data change insight of the query stage.", +"readOnly": true +}, +"stageId": { +"description": "Output only. The stage id that the insight mapped to.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"StagePerformanceStandaloneInsight": { +"description": "Standalone performance insights for a specific stage.", +"id": "StagePerformanceStandaloneInsight", +"properties": { +"biEngineReasons": { +"description": "Output only. If present, the stage had the following reasons for being disqualified from BI Engine execution.", +"items": { +"$ref": "BiEngineReason" +}, +"readOnly": true, +"type": "array" +}, +"highCardinalityJoins": { +"description": "Output only. High cardinality joins in the stage.", +"items": { +"$ref": "HighCardinalityJoin" +}, +"readOnly": true, +"type": "array" +}, +"insufficientShuffleQuota": { +"description": "Output only. True if the stage has insufficient shuffle quota.", +"readOnly": true, +"type": "boolean" +}, +"partitionSkew": { +"$ref": "PartitionSkew", +"description": "Output only. Partition skew in the stage.", +"readOnly": true +}, +"slotContention": { +"description": "Output only. True if the stage has a slot contention issue.", +"readOnly": true, +"type": "boolean" +}, +"stageId": { +"description": "Output only. The stage id that the insight mapped to.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"StandardSqlDataType": { +"description": "The data type of a variable such as a function argument. Examples include: * INT64: `{\"typeKind\": \"INT64\"}` * ARRAY: { \"typeKind\": \"ARRAY\", \"arrayElementType\": {\"typeKind\": \"STRING\"} } * STRUCT>: { \"typeKind\": \"STRUCT\", \"structType\": { \"fields\": [ { \"name\": \"x\", \"type\": {\"typeKind\": \"STRING\"} }, { \"name\": \"y\", \"type\": { \"typeKind\": \"ARRAY\", \"arrayElementType\": {\"typeKind\": \"DATE\"} } } ] } } * RANGE: { \"typeKind\": \"RANGE\", \"rangeElementType\": {\"typeKind\": \"DATE\"} }", +"id": "StandardSqlDataType", +"properties": { +"arrayElementType": { +"$ref": "StandardSqlDataType", +"description": "The type of the array's elements, if type_kind = \"ARRAY\"." +}, +"rangeElementType": { +"$ref": "StandardSqlDataType", +"description": "The type of the range's elements, if type_kind = \"RANGE\"." +}, +"structType": { +"$ref": "StandardSqlStructType", +"description": "The fields of this struct, in order, if type_kind = \"STRUCT\"." +}, +"typeKind": { +"description": "Required. The top level type of this field. Can be any GoogleSQL data type (e.g., \"INT64\", \"DATE\", \"ARRAY\").", +"enum": [ +"TYPE_KIND_UNSPECIFIED", +"INT64", +"BOOL", +"FLOAT64", +"STRING", +"BYTES", +"TIMESTAMP", +"DATE", +"TIME", +"DATETIME", +"INTERVAL", +"GEOGRAPHY", +"NUMERIC", +"BIGNUMERIC", +"JSON", +"ARRAY", +"STRUCT", +"RANGE" +], +"enumDescriptions": [ +"Invalid type.", +"Encoded as a string in decimal format.", +"Encoded as a boolean \"false\" or \"true\".", +"Encoded as a number, or string \"NaN\", \"Infinity\" or \"-Infinity\".", +"Encoded as a string value.", +"Encoded as a base64 string per RFC 4648, section 4.", +"Encoded as an RFC 3339 timestamp with mandatory \"Z\" time zone string: 1985-04-12T23:20:50.52Z", +"Encoded as RFC 3339 full-date format string: 1985-04-12", +"Encoded as RFC 3339 partial-time format string: 23:20:50.52", +"Encoded as RFC 3339 full-date \"T\" partial-time: 1985-04-12T23:20:50.52", +"Encoded as fully qualified 3 part: 0-5 15 2:30:45.6", +"Encoded as WKT", +"Encoded as a decimal string.", +"Encoded as a decimal string.", +"Encoded as a string.", +"Encoded as a list with types matching Type.array_type.", +"Encoded as a list with fields of type Type.struct_type[i]. List is used because a JSON object cannot have duplicate field names.", +"Encoded as a pair with types matching range_element_type. Pairs must begin with \"[\", end with \")\", and be separated by \", \"." +], +"type": "string" +} +}, +"type": "object" +}, +"StandardSqlField": { +"description": "A field or a column.", +"id": "StandardSqlField", +"properties": { +"name": { +"description": "Optional. The name of this field. Can be absent for struct fields.", +"type": "string" +}, +"type": { +"$ref": "StandardSqlDataType", +"description": "Optional. The type of this parameter. Absent if not explicitly specified (e.g., CREATE FUNCTION statement can omit the return type; in this case the output parameter does not have this \"type\" field)." +} +}, +"type": "object" +}, +"StandardSqlStructType": { +"description": "The representation of a SQL STRUCT type.", +"id": "StandardSqlStructType", +"properties": { +"fields": { +"description": "Fields within the struct.", +"items": { +"$ref": "StandardSqlField" +}, +"type": "array" +} +}, +"type": "object" +}, +"StandardSqlTableType": { +"description": "A table type", +"id": "StandardSqlTableType", +"properties": { +"columns": { +"description": "The columns in this table type", +"items": { +"$ref": "StandardSqlField" +}, +"type": "array" +} +}, +"type": "object" +}, +"StorageDescriptor": { +"description": "Contains information about how a table's data is stored and accessed by open source query engines.", +"id": "StorageDescriptor", +"properties": { +"inputFormat": { +"description": "Optional. Specifies the fully qualified class name of the InputFormat (e.g. \"org.apache.hadoop.hive.ql.io.orc.OrcInputFormat\"). The maximum length is 128 characters.", +"type": "string" +}, +"locationUri": { +"description": "Optional. The physical location of the table (e.g. `gs://spark-dataproc-data/pangea-data/case_sensitive/` or `gs://spark-dataproc-data/pangea-data/*`). The maximum length is 2056 bytes.", +"type": "string" +}, +"outputFormat": { +"description": "Optional. Specifies the fully qualified class name of the OutputFormat (e.g. \"org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat\"). The maximum length is 128 characters.", +"type": "string" +}, +"serdeInfo": { +"$ref": "SerDeInfo", +"description": "Optional. Serializer and deserializer information." +} +}, +"type": "object" +}, +"Streamingbuffer": { +"id": "Streamingbuffer", +"properties": { +"estimatedBytes": { +"description": "Output only. A lower-bound estimate of the number of bytes currently in the streaming buffer.", +"format": "uint64", +"readOnly": true, +"type": "string" +}, +"estimatedRows": { +"description": "Output only. A lower-bound estimate of the number of rows currently in the streaming buffer.", +"format": "uint64", +"readOnly": true, +"type": "string" +}, +"oldestEntryTime": { +"description": "Output only. Contains the timestamp of the oldest entry in the streaming buffer, in milliseconds since the epoch, if the streaming buffer is available.", +"format": "uint64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"StringHparamSearchSpace": { +"description": "Search space for string and enum.", +"id": "StringHparamSearchSpace", +"properties": { +"candidates": { +"description": "Canididates for the string or enum parameter in lower case.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SystemVariables": { +"description": "System variables given to a query.", +"id": "SystemVariables", +"properties": { +"types": { +"additionalProperties": { +"$ref": "StandardSqlDataType" +}, +"description": "Output only. Data type for each system variable.", +"readOnly": true, +"type": "object" +}, +"values": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Output only. Value for each system variable.", +"readOnly": true, +"type": "object" +} +}, +"type": "object" +}, +"Table": { +"id": "Table", +"properties": { +"biglakeConfiguration": { +"$ref": "BigLakeConfiguration", +"description": "Optional. Specifies the configuration of a BigLake managed table." +}, +"cloneDefinition": { +"$ref": "CloneDefinition", +"description": "Output only. Contains information about the clone. This value is set via the clone operation.", +"readOnly": true +}, +"clustering": { +"$ref": "Clustering", +"description": "Clustering specification for the table. Must be specified with time-based partitioning, data in the table will be first partitioned and subsequently clustered." +}, +"creationTime": { +"description": "Output only. The time when this table was created, in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"defaultCollation": { +"description": "Optional. Defines the default collation specification of new STRING fields in the table. During table creation or update, if a STRING field is added to this table without explicit collation specified, then the table inherits the table default collation. A change to this field affects only fields added afterwards, and does not alter the existing fields. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior.", +"type": "string" +}, +"defaultRoundingMode": { +"description": "Optional. Defines the default rounding mode specification of new decimal fields (NUMERIC OR BIGNUMERIC) in the table. During table creation or update, if a decimal field is added to this table without an explicit rounding mode specified, then the field inherits the table default rounding mode. Changing this field doesn't affect existing fields.", +"enum": [ +"ROUNDING_MODE_UNSPECIFIED", +"ROUND_HALF_AWAY_FROM_ZERO", +"ROUND_HALF_EVEN" +], +"enumDescriptions": [ +"Unspecified will default to using ROUND_HALF_AWAY_FROM_ZERO.", +"ROUND_HALF_AWAY_FROM_ZERO rounds half values away from zero when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5, 1.6, 1.7, 1.8, 1.9 => 2", +"ROUND_HALF_EVEN rounds half values to the nearest even value when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5 => 2 1.6, 1.7, 1.8, 1.9 => 2 2.5 => 2" +], +"type": "string" +}, +"description": { +"description": "Optional. A user-friendly description of this table.", +"type": "string" +}, +"encryptionConfiguration": { +"$ref": "EncryptionConfiguration", +"description": "Custom encryption configuration (e.g., Cloud KMS keys)." +}, +"etag": { +"description": "Output only. A hash of this resource.", +"readOnly": true, +"type": "string" +}, +"expirationTime": { +"description": "Optional. The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed. The defaultTableExpirationMs property of the encapsulating dataset can be used to set a default expirationTime on newly created tables.", +"format": "int64", +"type": "string" +}, +"externalCatalogTableOptions": { +"$ref": "ExternalCatalogTableOptions", +"description": "Optional. Options defining open source compatible table." +}, +"externalDataConfiguration": { +"$ref": "ExternalDataConfiguration", +"description": "Optional. Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table." +}, +"friendlyName": { +"description": "Optional. A descriptive name for this table.", +"type": "string" +}, +"id": { +"description": "Output only. An opaque ID uniquely identifying the table.", +"readOnly": true, +"type": "string" +}, +"kind": { +"default": "bigquery#table", +"description": "The type of resource ID.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.", +"type": "object" +}, +"lastModifiedTime": { +"description": "Output only. The time when this table was last modified, in milliseconds since the epoch.", +"format": "uint64", +"readOnly": true, +"type": "string" +}, +"location": { +"description": "Output only. The geographic location where the table resides. This value is inherited from the dataset.", +"readOnly": true, +"type": "string" +}, +"managedTableType": { +"description": "Optional. If set, overrides the default managed table type configured in the dataset.", +"enum": [ +"MANAGED_TABLE_TYPE_UNSPECIFIED", +"NATIVE", +"ICEBERG" +], +"enumDescriptions": [ +"No managed table type specified.", +"The managed table is a native BigQuery table.", +"The managed table is a BigQuery table for Apache Iceberg." +], +"type": "string" +}, +"materializedView": { +"$ref": "MaterializedViewDefinition", +"description": "Optional. The materialized view definition." +}, +"materializedViewStatus": { +"$ref": "MaterializedViewStatus", +"description": "Output only. The materialized view status.", +"readOnly": true +}, +"maxStaleness": { +"description": "Optional. The maximum staleness of data that could be returned when the table (or stale MV) is queried. Staleness encoded as a string encoding of sql IntervalValue type.", +"type": "string" +}, +"model": { +"$ref": "ModelDefinition", +"description": "Deprecated." +}, +"numActiveLogicalBytes": { +"description": "Output only. Number of logical bytes that are less than 90 days old.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numActivePhysicalBytes": { +"description": "Output only. Number of physical bytes less than 90 days old. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numBytes": { +"description": "Output only. The size of this table in logical bytes, excluding any data in the streaming buffer.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numCurrentPhysicalBytes": { +"description": "Output only. Number of physical bytes used by current live data storage. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numLongTermBytes": { +"description": "Output only. The number of logical bytes in the table that are considered \"long-term storage\".", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numLongTermLogicalBytes": { +"description": "Output only. Number of logical bytes that are more than 90 days old.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numLongTermPhysicalBytes": { +"description": "Output only. Number of physical bytes more than 90 days old. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numPartitions": { +"description": "Output only. The number of partitions present in the table or materialized view. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numPhysicalBytes": { +"description": "Output only. The physical size of this table in bytes. This includes storage used for time travel.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numRows": { +"description": "Output only. The number of rows of data in this table, excluding any data in the streaming buffer.", +"format": "uint64", +"readOnly": true, +"type": "string" +}, +"numTimeTravelPhysicalBytes": { +"description": "Output only. Number of physical bytes used by time travel storage (deleted or changed data). This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numTotalLogicalBytes": { +"description": "Output only. Total number of logical bytes in the table or materialized view.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"numTotalPhysicalBytes": { +"description": "Output only. The physical size of this table in bytes. This also includes storage used for time travel. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"partitionDefinition": { +"$ref": "PartitioningDefinition", +"description": "Optional. The partition information for all table formats, including managed partitioned tables, hive partitioned tables, iceberg partitioned, and metastore partitioned tables. This field is only populated for metastore partitioned tables. For other table formats, this is an output only field." +}, +"rangePartitioning": { +"$ref": "RangePartitioning", +"description": "If specified, configures range partitioning for this table." +}, +"replicas": { +"description": "Optional. Output only. Table references of all replicas currently active on the table.", +"items": { +"$ref": "TableReference" +}, +"readOnly": true, +"type": "array" +}, +"requirePartitionFilter": { +"default": "false", +"description": "Optional. If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.", +"type": "boolean" +}, +"resourceTags": { +"additionalProperties": { +"type": "string" +}, +"description": "[Optional] The tags associated with this table. Tag keys are globally unique. See additional information on [tags](https://cloud.google.com/iam/docs/tags-access-control#definitions). An object containing a list of \"key\": value pairs. The key is the namespaced friendly name of the tag key, e.g. \"12345/environment\" where 12345 is parent id. The value is the friendly short name of the tag value, e.g. \"production\".", +"type": "object" +}, +"restrictions": { +"$ref": "RestrictionConfig", +"description": "Optional. Output only. Restriction config for table. If set, restrict certain accesses on the table based on the config. See [Data egress](https://cloud.google.com/bigquery/docs/analytics-hub-introduction#data_egress) for more details.", +"readOnly": true +}, +"schema": { +"$ref": "TableSchema", +"description": "Optional. Describes the schema of this table." +}, +"selfLink": { +"description": "Output only. A URL that can be used to access this resource again.", +"readOnly": true, +"type": "string" +}, +"snapshotDefinition": { +"$ref": "SnapshotDefinition", +"description": "Output only. Contains information about the snapshot. This value is set via snapshot creation.", +"readOnly": true +}, +"streamingBuffer": { +"$ref": "Streamingbuffer", +"description": "Output only. Contains information regarding this table's streaming buffer, if one is present. This field will be absent if the table is not being streamed to or if there is no data in the streaming buffer.", +"readOnly": true +}, +"tableConstraints": { +"$ref": "TableConstraints", +"description": "Optional. Tables Primary Key and Foreign Key information" +}, +"tableReference": { +"$ref": "TableReference", +"description": "Required. Reference describing the ID of this table." +}, +"tableReplicationInfo": { +"$ref": "TableReplicationInfo", +"description": "Optional. Table replication info for table created `AS REPLICA` DDL like: `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv`" +}, +"timePartitioning": { +"$ref": "TimePartitioning", +"description": "If specified, configures time-based partitioning for this table." +}, +"type": { +"description": "Output only. Describes the table type. The following values are supported: * `TABLE`: A normal BigQuery table. * `VIEW`: A virtual table defined by a SQL query. * `EXTERNAL`: A table that references data stored in an external storage system, such as Google Cloud Storage. * `MATERIALIZED_VIEW`: A precomputed view defined by a SQL query. * `SNAPSHOT`: An immutable BigQuery table that preserves the contents of a base table at a particular time. See additional information on [table snapshots](https://cloud.google.com/bigquery/docs/table-snapshots-intro). The default value is `TABLE`.", +"readOnly": true, +"type": "string" +}, +"view": { +"$ref": "ViewDefinition", +"description": "Optional. The view definition." +} +}, +"type": "object" +}, +"TableCell": { +"id": "TableCell", +"properties": { +"v": { +"type": "any" +} +}, +"type": "object" +}, +"TableConstraints": { +"description": "The TableConstraints defines the primary key and foreign key.", +"id": "TableConstraints", +"properties": { +"foreignKeys": { +"description": "Optional. Present only if the table has a foreign key. The foreign key is not enforced.", +"items": { +"description": "Represents a foreign key constraint on a table's columns.", +"properties": { +"columnReferences": { +"description": "Required. The columns that compose the foreign key.", +"items": { +"description": "The pair of the foreign key column and primary key column.", +"properties": { +"referencedColumn": { +"description": "Required. The column in the primary key that are referenced by the referencing_column.", +"type": "string" +}, +"referencingColumn": { +"description": "Required. The column that composes the foreign key.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"name": { +"description": "Optional. Set only if the foreign key constraint is named.", +"type": "string" +}, +"referencedTable": { +"properties": { +"datasetId": { +"type": "string" +}, +"projectId": { +"type": "string" +}, +"tableId": { +"type": "string" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"type": "array" +}, +"primaryKey": { +"description": "Represents the primary key constraint on a table's columns.", +"properties": { +"columns": { +"description": "Required. The columns that are composed of the primary key constraint.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"TableDataInsertAllRequest": { +"description": "Request for sending a single streaming insert.", +"id": "TableDataInsertAllRequest", +"properties": { +"ignoreUnknownValues": { +"description": "Optional. Accept rows that contain values that do not match the schema. The unknown values are ignored. Default is false, which treats unknown values as errors.", +"type": "boolean" +}, +"kind": { +"default": "bigquery#tableDataInsertAllRequest", +"description": "Optional. The resource type of the response. The value is not checked at the backend. Historically, it has been set to \"bigquery#tableDataInsertAllRequest\" but you are not required to set it.", +"type": "string" +}, +"rows": { +"items": { +"description": "Data for a single insertion row.", +"properties": { +"insertId": { +"description": "Insertion ID for best-effort deduplication. This feature is not recommended, and users seeking stronger insertion semantics are encouraged to use other mechanisms such as the BigQuery Write API.", +"type": "string" +}, +"json": { +"$ref": "JsonObject", +"description": "Data for a single row." +} +}, +"type": "object" +}, +"type": "array" +}, +"skipInvalidRows": { +"description": "Optional. Insert all valid rows of a request, even if invalid rows exist. The default value is false, which causes the entire request to fail if any invalid rows exist.", +"type": "boolean" +}, +"templateSuffix": { +"description": "Optional. If specified, treats the destination table as a base template, and inserts the rows into an instance table named \"{destination}{templateSuffix}\". BigQuery will manage creation of the instance table, using the schema of the base template table. See https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables for considerations when working with templates tables.", +"type": "string" +}, +"traceId": { +"description": "Optional. Unique request trace id. Used for debugging purposes only. It is case-sensitive, limited to up to 36 ASCII characters. A UUID is recommended.", +"type": "string" +} +}, +"type": "object" +}, +"TableDataInsertAllResponse": { +"description": "Describes the format of a streaming insert response.", +"id": "TableDataInsertAllResponse", +"properties": { +"insertErrors": { +"description": "Describes specific errors encountered while processing the request.", +"items": { +"description": "Error details about a single row's insertion.", +"properties": { +"errors": { +"description": "Error information for the row indicated by the index property.", +"items": { +"$ref": "ErrorProto" +}, +"type": "array" +}, +"index": { +"description": "The index of the row that error applies to.", +"format": "uint32", +"type": "integer" +} +}, +"type": "object" +}, +"type": "array" +}, +"kind": { +"default": "bigquery#tableDataInsertAllResponse", +"description": "Returns \"bigquery#tableDataInsertAllResponse\".", +"type": "string" +} +}, +"type": "object" +}, +"TableDataList": { +"id": "TableDataList", +"properties": { +"etag": { +"description": "A hash of this page of results.", +"type": "string" +}, +"kind": { +"default": "bigquery#tableDataList", +"description": "The resource type of the response.", +"type": "string" +}, +"pageToken": { +"description": "A token used for paging results. Providing this token instead of the startIndex parameter can help you retrieve stable results when an underlying table is changing.", +"type": "string" +}, +"rows": { +"description": "Rows of results.", +"items": { +"$ref": "TableRow" +}, +"type": "array" +}, +"totalRows": { +"description": "Total rows of the entire table. In order to show default value 0 we have to present it as string.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"TableFieldSchema": { +"description": "A field in TableSchema", +"id": "TableFieldSchema", +"properties": { +"categories": { +"description": "Deprecated.", +"properties": { +"names": { +"description": "Deprecated.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"collation": { +"description": "Optional. Field collation can be set only when the type of field is STRING. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior.", +"type": "string" +}, +"dataPolicies": { +"description": "Optional. Data policy options, will replace the data_policies.", +"items": { +"$ref": "DataPolicyOption" +}, +"type": "array" +}, +"defaultValueExpression": { +"description": "Optional. A SQL expression to specify the [default value] (https://cloud.google.com/bigquery/docs/default-values) for this field.", +"type": "string" +}, +"description": { +"description": "Optional. The field description. The maximum length is 1,024 characters.", +"type": "string" +}, +"fields": { +"description": "Optional. Describes the nested schema fields if the type property is set to RECORD.", +"items": { +"$ref": "TableFieldSchema" +}, +"type": "array" +}, +"foreignTypeDefinition": { +"description": "Optional. Definition of the foreign data type. Only valid for top-level schema fields (not nested fields). If the type is FOREIGN, this field is required.", +"type": "string" +}, +"maxLength": { +"description": "Optional. Maximum length of values of this field for STRINGS or BYTES. If max_length is not specified, no maximum length constraint is imposed on this field. If type = \"STRING\", then max_length represents the maximum UTF-8 length of strings in this field. If type = \"BYTES\", then max_length represents the maximum number of bytes in this field. It is invalid to set this field if type \u2260 \"STRING\" and \u2260 \"BYTES\".", +"format": "int64", +"type": "string" +}, +"mode": { +"description": "Optional. The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.", +"type": "string" +}, +"name": { +"description": "Required. The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 300 characters.", +"type": "string" +}, +"policyTags": { +"description": "Optional. The policy tags attached to this field, used for field-level access control. If not set, defaults to empty policy_tags.", +"properties": { +"names": { +"description": "A list of policy tag resource names. For example, \"projects/1/locations/eu/taxonomies/2/policyTags/3\". At most 1 policy tag is currently allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"precision": { +"description": "Optional. Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type \u2260 \"NUMERIC\" and \u2260 \"BIGNUMERIC\". If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: * Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] * Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: * If type = \"NUMERIC\": 1 \u2264 precision - scale \u2264 29 and 0 \u2264 scale \u2264 9. * If type = \"BIGNUMERIC\": 1 \u2264 precision - scale \u2264 38 and 0 \u2264 scale \u2264 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): * If type = \"NUMERIC\": 1 \u2264 precision \u2264 29. * If type = \"BIGNUMERIC\": 1 \u2264 precision \u2264 38. If scale is specified but not precision, then it is invalid.", +"format": "int64", +"type": "string" +}, +"rangeElementType": { +"description": "Represents the type of a field element.", +"properties": { +"type": { +"description": "Required. The type of a field element. For more information, see TableFieldSchema.type.", +"type": "string" +} +}, +"type": "object" +}, +"roundingMode": { +"description": "Optional. Specifies the rounding mode to be used when storing values of NUMERIC and BIGNUMERIC type.", +"enum": [ +"ROUNDING_MODE_UNSPECIFIED", +"ROUND_HALF_AWAY_FROM_ZERO", +"ROUND_HALF_EVEN" +], +"enumDescriptions": [ +"Unspecified will default to using ROUND_HALF_AWAY_FROM_ZERO.", +"ROUND_HALF_AWAY_FROM_ZERO rounds half values away from zero when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5, 1.6, 1.7, 1.8, 1.9 => 2", +"ROUND_HALF_EVEN rounds half values to the nearest even value when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5 => 2 1.6, 1.7, 1.8, 1.9 => 2 2.5 => 2" +], +"type": "string" +}, +"scale": { +"description": "Optional. See documentation for precision.", +"format": "int64", +"type": "string" +}, +"type": { +"description": "Required. The field data type. Possible values include: * STRING * BYTES * INTEGER (or INT64) * FLOAT (or FLOAT64) * BOOLEAN (or BOOL) * TIMESTAMP * DATE * TIME * DATETIME * GEOGRAPHY * NUMERIC * BIGNUMERIC * JSON * RECORD (or STRUCT) * RANGE Use of RECORD/STRUCT indicates that the field contains a nested schema.", +"type": "string" +} +}, +"type": "object" +}, +"TableList": { +"description": "Partial projection of the metadata for a given table in a list response.", +"id": "TableList", +"properties": { +"etag": { +"description": "A hash of this page of results.", +"type": "string" +}, +"kind": { +"default": "bigquery#tableList", +"description": "The type of list.", +"type": "string" +}, +"nextPageToken": { +"description": "A token to request the next page of results.", +"type": "string" +}, +"tables": { +"description": "Tables in the requested dataset.", +"items": { +"properties": { +"clustering": { +"$ref": "Clustering", +"description": "Clustering specification for this table, if configured." +}, +"creationTime": { +"description": "Output only. The time when this table was created, in milliseconds since the epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"expirationTime": { +"description": "The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.", +"format": "int64", +"type": "string" +}, +"friendlyName": { +"description": "The user-friendly name for this table.", +"type": "string" +}, +"id": { +"description": "An opaque ID of the table.", +"type": "string" +}, +"kind": { +"description": "The resource type.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this table. You can use these to organize and group your tables.", +"type": "object" +}, +"rangePartitioning": { +"$ref": "RangePartitioning", +"description": "The range partitioning for this table." +}, +"requirePartitionFilter": { +"default": "false", +"description": "Optional. If set to true, queries including this table must specify a partition filter. This filter is used for partition elimination.", +"type": "boolean" +}, +"tableReference": { +"$ref": "TableReference", +"description": "A reference uniquely identifying table." +}, +"timePartitioning": { +"$ref": "TimePartitioning", +"description": "The time-based partitioning for this table." +}, +"type": { +"description": "The type of table.", +"type": "string" +}, +"view": { +"description": "Information about a logical view.", +"properties": { +"privacyPolicy": { +"$ref": "PrivacyPolicy", +"description": "Specifices the privacy policy for the view." +}, +"useLegacySql": { +"description": "True if view is defined in legacy SQL dialect, false if in GoogleSQL.", +"type": "boolean" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"type": "array" +}, +"totalItems": { +"description": "The total number of tables in the dataset.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TableMetadataCacheUsage": { +"description": "Table level detail on the usage of metadata caching. Only set for Metadata caching eligible tables referenced in the query.", +"id": "TableMetadataCacheUsage", +"properties": { +"explanation": { +"description": "Free form human-readable reason metadata caching was unused for the job.", +"type": "string" +}, +"staleness": { +"description": "Duration since last refresh as of this job for managed tables (indicates metadata cache staleness as seen by this job).", +"format": "google-duration", +"type": "string" +}, +"tableReference": { +"$ref": "TableReference", +"description": "Metadata caching eligible table referenced in the query." +}, +"tableType": { +"description": "[Table type](https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#Table.FIELDS.type).", +"type": "string" +}, +"unusedReason": { +"description": "Reason for not using metadata caching for the table.", +"enum": [ +"UNUSED_REASON_UNSPECIFIED", +"EXCEEDED_MAX_STALENESS", +"METADATA_CACHING_NOT_ENABLED", +"OTHER_REASON" +], +"enumDescriptions": [ +"Unused reasons not specified.", +"Metadata cache was outside the table's maxStaleness.", +"Metadata caching feature is not enabled. [Update BigLake tables] (/bigquery/docs/create-cloud-storage-table-biglake#update-biglake-tables) to enable the metadata caching.", +"Other unknown reason." +], +"type": "string" +} +}, +"type": "object" +}, +"TableReference": { +"id": "TableReference", +"properties": { +"datasetId": { +"description": "Required. The ID of the dataset containing this table.", +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the project containing this table.", +"type": "string" +}, +"tableId": { +"description": "Required. The ID of the table. The ID can contain Unicode characters in category L (letter), M (mark), N (number), Pc (connector, including underscore), Pd (dash), and Zs (space). For more information, see [General Category](https://wikipedia.org/wiki/Unicode_character_property#General_Category). The maximum length is 1,024 characters. Certain operations allow suffixing of the table ID with a partition decorator, such as `sample_table$20190123`.", +"type": "string" +} +}, +"type": "object" +}, +"TableReplicationInfo": { +"description": "Replication info of a table created using `AS REPLICA` DDL like: `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv`", +"id": "TableReplicationInfo", +"properties": { +"replicatedSourceLastRefreshTime": { +"description": "Optional. Output only. If source is a materialized view, this field signifies the last refresh time of the source.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"replicationError": { +"$ref": "ErrorProto", +"description": "Optional. Output only. Replication error that will permanently stopped table replication.", +"readOnly": true +}, +"replicationIntervalMs": { +"description": "Optional. Specifies the interval at which the source table is polled for updates. It's Optional. If not specified, default replication interval would be applied.", +"format": "int64", +"type": "string" +}, +"replicationStatus": { +"description": "Optional. Output only. Replication status of configured replication.", +"enum": [ +"REPLICATION_STATUS_UNSPECIFIED", +"ACTIVE", +"SOURCE_DELETED", +"PERMISSION_DENIED", +"UNSUPPORTED_CONFIGURATION" +], +"enumDescriptions": [ +"Default value.", +"Replication is Active with no errors.", +"Source object is deleted.", +"Source revoked replication permissions.", +"Source configuration doesn\u2019t allow replication." +], +"readOnly": true, +"type": "string" +}, +"sourceTable": { +"$ref": "TableReference", +"description": "Required. Source table reference that is replicated." +} +}, +"type": "object" +}, +"TableRow": { +"id": "TableRow", +"properties": { +"f": { +"description": "Represents a single row in the result set, consisting of one or more fields.", +"items": { +"$ref": "TableCell" +}, +"type": "array" +} +}, +"type": "object" +}, +"TableSchema": { +"description": "Schema of a table", +"id": "TableSchema", +"properties": { +"fields": { +"description": "Describes the fields in a table.", +"items": { +"$ref": "TableFieldSchema" +}, +"type": "array" +}, +"foreignTypeInfo": { +"$ref": "ForeignTypeInfo", +"description": "Optional. Specifies metadata of the foreign data type definition in field schema (TableFieldSchema.foreign_type_definition)." +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TimePartitioning": { +"id": "TimePartitioning", +"properties": { +"expirationMs": { +"description": "Optional. Number of milliseconds for which to keep the storage for a partition. A wrapper is used here because 0 is an invalid value.", +"format": "int64", +"type": "string" +}, +"field": { +"description": "Optional. If not set, the table is partitioned by pseudo column '_PARTITIONTIME'; if set, the table is partitioned by this field. The field must be a top-level TIMESTAMP or DATE field. Its mode must be NULLABLE or REQUIRED. A wrapper is used here because an empty string is an invalid value.", +"type": "string" +}, +"requirePartitionFilter": { +"default": "false", +"deprecated": true, +"description": "If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. This field is deprecated; please set the field with the same name on the table itself instead. This field needs a wrapper because we want to output the default value, false, if the user explicitly set it.", +"type": "boolean" +}, +"type": { +"description": "Required. The supported types are DAY, HOUR, MONTH, and YEAR, which will generate one partition per day, hour, month, and year, respectively.", +"type": "string" +} +}, +"type": "object" +}, +"TrainingOptions": { +"description": "Options used in model training.", +"id": "TrainingOptions", +"properties": { +"activationFn": { +"description": "Activation function of the neural nets.", +"type": "string" +}, +"adjustStepChanges": { +"description": "If true, detect step changes and make data adjustment in the input time series.", +"type": "boolean" +}, +"approxGlobalFeatureContrib": { +"description": "Whether to use approximate feature contribution method in XGBoost model explanation for global explain.", +"type": "boolean" +}, +"autoArima": { +"description": "Whether to enable auto ARIMA or not.", +"type": "boolean" +}, +"autoArimaMaxOrder": { +"description": "The max value of the sum of non-seasonal p and q.", +"format": "int64", +"type": "string" +}, +"autoArimaMinOrder": { +"description": "The min value of the sum of non-seasonal p and q.", +"format": "int64", +"type": "string" +}, +"autoClassWeights": { +"description": "Whether to calculate class weights automatically based on the popularity of each label.", +"type": "boolean" +}, +"batchSize": { +"description": "Batch size for dnn models.", +"format": "int64", +"type": "string" +}, +"boosterType": { +"description": "Booster type for boosted tree models.", +"enum": [ +"BOOSTER_TYPE_UNSPECIFIED", +"GBTREE", +"DART" +], +"enumDescriptions": [ +"Unspecified booster type.", +"Gbtree booster.", +"Dart booster." +], +"type": "string" +}, +"budgetHours": { +"description": "Budget in hours for AutoML training.", +"format": "double", +"type": "number" +}, +"calculatePValues": { +"description": "Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.", +"type": "boolean" +}, +"categoryEncodingMethod": { +"description": "Categorical feature encoding method.", +"enum": [ +"ENCODING_METHOD_UNSPECIFIED", +"ONE_HOT_ENCODING", +"LABEL_ENCODING", +"DUMMY_ENCODING" +], +"enumDescriptions": [ +"Unspecified encoding method.", +"Applies one-hot encoding.", +"Applies label encoding.", +"Applies dummy encoding." +], +"type": "string" +}, +"cleanSpikesAndDips": { +"description": "If true, clean spikes and dips in the input time series.", +"type": "boolean" +}, +"colorSpace": { +"description": "Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.", +"enum": [ +"COLOR_SPACE_UNSPECIFIED", +"RGB", +"HSV", +"YIQ", +"YUV", +"GRAYSCALE" +], +"enumDescriptions": [ +"Unspecified color space", +"RGB", +"HSV", +"YIQ", +"YUV", +"GRAYSCALE" +], +"type": "string" +}, +"colsampleBylevel": { +"description": "Subsample ratio of columns for each level for boosted tree models.", +"format": "double", +"type": "number" +}, +"colsampleBynode": { +"description": "Subsample ratio of columns for each node(split) for boosted tree models.", +"format": "double", +"type": "number" +}, +"colsampleBytree": { +"description": "Subsample ratio of columns when constructing each tree for boosted tree models.", +"format": "double", +"type": "number" +}, +"contributionMetric": { +"description": "The contribution metric. Applies to contribution analysis models. Allowed formats supported are for summable and summable ratio contribution metrics. These include expressions such as `SUM(x)` or `SUM(x)/SUM(y)`, where x and y are column names from the base table.", +"type": "string" +}, +"dartNormalizeType": { +"description": "Type of normalization algorithm for boosted tree models using dart booster.", +"enum": [ +"DART_NORMALIZE_TYPE_UNSPECIFIED", +"TREE", +"FOREST" +], +"enumDescriptions": [ +"Unspecified dart normalize type.", +"New trees have the same weight of each of dropped trees.", +"New trees have the same weight of sum of dropped trees." +], +"type": "string" +}, +"dataFrequency": { +"description": "The data frequency of a time series.", +"enum": [ +"DATA_FREQUENCY_UNSPECIFIED", +"AUTO_FREQUENCY", +"YEARLY", +"QUARTERLY", +"MONTHLY", +"WEEKLY", +"DAILY", +"HOURLY", +"PER_MINUTE" +], +"enumDescriptions": [ +"Default value.", +"Automatically inferred from timestamps.", +"Yearly data.", +"Quarterly data.", +"Monthly data.", +"Weekly data.", +"Daily data.", +"Hourly data.", +"Per-minute data." +], +"type": "string" +}, +"dataSplitColumn": { +"description": "The column to split data with. This column won't be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data_type_properties", +"type": "string" +}, +"dataSplitEvalFraction": { +"description": "The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.", +"format": "double", +"type": "number" +}, +"dataSplitMethod": { +"description": "The data split type for training and evaluation, e.g. RANDOM.", +"enum": [ +"DATA_SPLIT_METHOD_UNSPECIFIED", +"RANDOM", +"CUSTOM", +"SEQUENTIAL", +"NO_SPLIT", +"AUTO_SPLIT" +], +"enumDescriptions": [ +"Default value.", +"Splits data randomly.", +"Splits data with the user provided tags.", +"Splits data sequentially.", +"Data split will be skipped.", +"Splits data automatically: Uses NO_SPLIT if the data size is small. Otherwise uses RANDOM." +], +"type": "string" +}, +"decomposeTimeSeries": { +"description": "If true, perform decompose time series and save the results.", +"type": "boolean" +}, +"dimensionIdColumns": { +"description": "Optional. Names of the columns to slice on. Applies to contribution analysis models.", +"items": { +"type": "string" +}, +"type": "array" +}, +"distanceType": { +"description": "Distance type for clustering models.", +"enum": [ +"DISTANCE_TYPE_UNSPECIFIED", +"EUCLIDEAN", +"COSINE" +], +"enumDescriptions": [ +"Default value.", +"Eculidean distance.", +"Cosine distance." +], +"type": "string" +}, +"dropout": { +"description": "Dropout probability for dnn models.", +"format": "double", +"type": "number" +}, +"earlyStop": { +"description": "Whether to stop early when the loss doesn't improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.", +"type": "boolean" +}, +"enableGlobalExplain": { +"description": "If true, enable global explanation during training.", +"type": "boolean" +}, +"feedbackType": { +"description": "Feedback type that specifies which algorithm to run for matrix factorization.", +"enum": [ +"FEEDBACK_TYPE_UNSPECIFIED", +"IMPLICIT", +"EXPLICIT" +], +"enumDescriptions": [ +"Default value.", +"Use weighted-als for implicit feedback problems.", +"Use nonweighted-als for explicit feedback problems." +], +"type": "string" +}, +"fitIntercept": { +"description": "Whether the model should include intercept during model training.", +"type": "boolean" +}, +"hiddenUnits": { +"description": "Hidden units for dnn models.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"holidayRegion": { +"description": "The geographical region based on which the holidays are considered in time series modeling. If a valid value is specified, then holiday effects modeling is enabled.", +"enum": [ +"HOLIDAY_REGION_UNSPECIFIED", +"GLOBAL", +"NA", +"JAPAC", +"EMEA", +"LAC", +"AE", +"AR", +"AT", +"AU", +"BE", +"BR", +"CA", +"CH", +"CL", +"CN", +"CO", +"CS", +"CZ", +"DE", +"DK", +"DZ", +"EC", +"EE", +"EG", +"ES", +"FI", +"FR", +"GB", +"GR", +"HK", +"HU", +"ID", +"IE", +"IL", +"IN", +"IR", +"IT", +"JP", +"KR", +"LV", +"MA", +"MX", +"MY", +"NG", +"NL", +"NO", +"NZ", +"PE", +"PH", +"PK", +"PL", +"PT", +"RO", +"RS", +"RU", +"SA", +"SE", +"SG", +"SI", +"SK", +"TH", +"TR", +"TW", +"UA", +"US", +"VE", +"VN", +"ZA" +], +"enumDescriptions": [ +"Holiday region unspecified.", +"Global.", +"North America.", +"Japan and Asia Pacific: Korea, Greater China, India, Australia, and New Zealand.", +"Europe, the Middle East and Africa.", +"Latin America and the Caribbean.", +"United Arab Emirates", +"Argentina", +"Austria", +"Australia", +"Belgium", +"Brazil", +"Canada", +"Switzerland", +"Chile", +"China", +"Colombia", +"Czechoslovakia", +"Czech Republic", +"Germany", +"Denmark", +"Algeria", +"Ecuador", +"Estonia", +"Egypt", +"Spain", +"Finland", +"France", +"Great Britain (United Kingdom)", +"Greece", +"Hong Kong", +"Hungary", +"Indonesia", +"Ireland", +"Israel", +"India", +"Iran", +"Italy", +"Japan", +"Korea (South)", +"Latvia", +"Morocco", +"Mexico", +"Malaysia", +"Nigeria", +"Netherlands", +"Norway", +"New Zealand", +"Peru", +"Philippines", +"Pakistan", +"Poland", +"Portugal", +"Romania", +"Serbia", +"Russian Federation", +"Saudi Arabia", +"Sweden", +"Singapore", +"Slovenia", +"Slovakia", +"Thailand", +"Turkey", +"Taiwan", +"Ukraine", +"United States", +"Venezuela", +"Viet Nam", +"South Africa" +], +"type": "string" +}, +"holidayRegions": { +"description": "A list of geographical regions that are used for time series modeling.", +"items": { +"enum": [ +"HOLIDAY_REGION_UNSPECIFIED", +"GLOBAL", +"NA", +"JAPAC", +"EMEA", +"LAC", +"AE", +"AR", +"AT", +"AU", +"BE", +"BR", +"CA", +"CH", +"CL", +"CN", +"CO", +"CS", +"CZ", +"DE", +"DK", +"DZ", +"EC", +"EE", +"EG", +"ES", +"FI", +"FR", +"GB", +"GR", +"HK", +"HU", +"ID", +"IE", +"IL", +"IN", +"IR", +"IT", +"JP", +"KR", +"LV", +"MA", +"MX", +"MY", +"NG", +"NL", +"NO", +"NZ", +"PE", +"PH", +"PK", +"PL", +"PT", +"RO", +"RS", +"RU", +"SA", +"SE", +"SG", +"SI", +"SK", +"TH", +"TR", +"TW", +"UA", +"US", +"VE", +"VN", +"ZA" +], +"enumDescriptions": [ +"Holiday region unspecified.", +"Global.", +"North America.", +"Japan and Asia Pacific: Korea, Greater China, India, Australia, and New Zealand.", +"Europe, the Middle East and Africa.", +"Latin America and the Caribbean.", +"United Arab Emirates", +"Argentina", +"Austria", +"Australia", +"Belgium", +"Brazil", +"Canada", +"Switzerland", +"Chile", +"China", +"Colombia", +"Czechoslovakia", +"Czech Republic", +"Germany", +"Denmark", +"Algeria", +"Ecuador", +"Estonia", +"Egypt", +"Spain", +"Finland", +"France", +"Great Britain (United Kingdom)", +"Greece", +"Hong Kong", +"Hungary", +"Indonesia", +"Ireland", +"Israel", +"India", +"Iran", +"Italy", +"Japan", +"Korea (South)", +"Latvia", +"Morocco", +"Mexico", +"Malaysia", +"Nigeria", +"Netherlands", +"Norway", +"New Zealand", +"Peru", +"Philippines", +"Pakistan", +"Poland", +"Portugal", +"Romania", +"Serbia", +"Russian Federation", +"Saudi Arabia", +"Sweden", +"Singapore", +"Slovenia", +"Slovakia", +"Thailand", +"Turkey", +"Taiwan", +"Ukraine", +"United States", +"Venezuela", +"Viet Nam", +"South Africa" +], +"type": "string" +}, +"type": "array" +}, +"horizon": { +"description": "The number of periods ahead that need to be forecasted.", +"format": "int64", +"type": "string" +}, +"hparamTuningObjectives": { +"description": "The target evaluation metrics to optimize the hyperparameters for.", +"items": { +"enum": [ +"HPARAM_TUNING_OBJECTIVE_UNSPECIFIED", +"MEAN_ABSOLUTE_ERROR", +"MEAN_SQUARED_ERROR", +"MEAN_SQUARED_LOG_ERROR", +"MEDIAN_ABSOLUTE_ERROR", +"R_SQUARED", +"EXPLAINED_VARIANCE", +"PRECISION", +"RECALL", +"ACCURACY", +"F1_SCORE", +"LOG_LOSS", +"ROC_AUC", +"DAVIES_BOULDIN_INDEX", +"MEAN_AVERAGE_PRECISION", +"NORMALIZED_DISCOUNTED_CUMULATIVE_GAIN", +"AVERAGE_RANK" +], +"enumDescriptions": [ +"Unspecified evaluation metric.", +"Mean absolute error. mean_absolute_error = AVG(ABS(label - predicted))", +"Mean squared error. mean_squared_error = AVG(POW(label - predicted, 2))", +"Mean squared log error. mean_squared_log_error = AVG(POW(LN(1 + label) - LN(1 + predicted), 2))", +"Mean absolute error. median_absolute_error = APPROX_QUANTILES(absolute_error, 2)[OFFSET(1)]", +"R^2 score. This corresponds to r2_score in ML.EVALUATE. r_squared = 1 - SUM(squared_error)/(COUNT(label)*VAR_POP(label))", +"Explained variance. explained_variance = 1 - VAR_POP(label_error)/VAR_POP(label)", +"Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.", +"Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.", +"Accuracy is the fraction of predictions given the correct label. For multiclass this is a globally micro-averaged metric.", +"The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.", +"Logorithmic Loss. For multiclass this is a macro-averaged metric.", +"Area Under an ROC Curve. For multiclass this is a macro-averaged metric.", +"Davies-Bouldin Index.", +"Mean Average Precision.", +"Normalized Discounted Cumulative Gain.", +"Average Rank." +], +"type": "string" +}, +"type": "array" +}, +"includeDrift": { +"description": "Include drift when fitting an ARIMA model.", +"type": "boolean" +}, +"initialLearnRate": { +"description": "Specifies the initial learning rate for the line search learn rate strategy.", +"format": "double", +"type": "number" +}, +"inputLabelColumns": { +"description": "Name of input label columns in training data.", +"items": { +"type": "string" +}, +"type": "array" +}, +"instanceWeightColumn": { +"description": "Name of the instance weight column for training data. This column isn't be used as a feature.", +"type": "string" +}, +"integratedGradientsNumSteps": { +"description": "Number of integral steps for the integrated gradients explain method.", +"format": "int64", +"type": "string" +}, +"isTestColumn": { +"description": "Name of the column used to determine the rows corresponding to control and test. Applies to contribution analysis models.", +"type": "string" +}, +"itemColumn": { +"description": "Item column specified for matrix factorization models.", +"type": "string" +}, +"kmeansInitializationColumn": { +"description": "The column used to provide the initial centroids for kmeans algorithm when kmeans_initialization_method is CUSTOM.", +"type": "string" +}, +"kmeansInitializationMethod": { +"description": "The method used to initialize the centroids for kmeans algorithm.", +"enum": [ +"KMEANS_INITIALIZATION_METHOD_UNSPECIFIED", +"RANDOM", +"CUSTOM", +"KMEANS_PLUS_PLUS" +], +"enumDescriptions": [ +"Unspecified initialization method.", +"Initializes the centroids randomly.", +"Initializes the centroids using data specified in kmeans_initialization_column.", +"Initializes with kmeans++." +], +"type": "string" +}, +"l1RegActivation": { +"description": "L1 regularization coefficient to activations.", +"format": "double", +"type": "number" +}, +"l1Regularization": { +"description": "L1 regularization coefficient.", +"format": "double", +"type": "number" +}, +"l2Regularization": { +"description": "L2 regularization coefficient.", +"format": "double", +"type": "number" +}, +"labelClassWeights": { +"additionalProperties": { +"format": "double", +"type": "number" +}, +"description": "Weights associated with each label class, for rebalancing the training data. Only applicable for classification models.", +"type": "object" +}, +"learnRate": { +"description": "Learning rate in training. Used only for iterative training algorithms.", +"format": "double", +"type": "number" +}, +"learnRateStrategy": { +"description": "The strategy to determine learn rate for the current iteration.", +"enum": [ +"LEARN_RATE_STRATEGY_UNSPECIFIED", +"LINE_SEARCH", +"CONSTANT" +], +"enumDescriptions": [ +"Default value.", +"Use line search to determine learning rate.", +"Use a constant learning rate." +], +"type": "string" +}, +"lossType": { +"description": "Type of loss function used during training run.", +"enum": [ +"LOSS_TYPE_UNSPECIFIED", +"MEAN_SQUARED_LOSS", +"MEAN_LOG_LOSS" +], +"enumDescriptions": [ +"Default value.", +"Mean squared loss, used for linear regression.", +"Mean log loss, used for logistic regression." +], +"type": "string" +}, +"maxIterations": { +"description": "The maximum number of iterations in training. Used only for iterative training algorithms.", +"format": "int64", +"type": "string" +}, +"maxParallelTrials": { +"description": "Maximum number of trials to run in parallel.", +"format": "int64", +"type": "string" +}, +"maxTimeSeriesLength": { +"description": "The maximum number of time points in a time series that can be used in modeling the trend component of the time series. Don't use this option with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options.", +"format": "int64", +"type": "string" +}, +"maxTreeDepth": { +"description": "Maximum depth of a tree for boosted tree models.", +"format": "int64", +"type": "string" +}, +"minAprioriSupport": { +"description": "The apriori support minimum. Applies to contribution analysis models.", +"format": "double", +"type": "number" +}, +"minRelativeProgress": { +"description": "When early_stop is true, stops training when accuracy improvement is less than 'min_relative_progress'. Used only for iterative training algorithms.", +"format": "double", +"type": "number" +}, +"minSplitLoss": { +"description": "Minimum split loss for boosted tree models.", +"format": "double", +"type": "number" +}, +"minTimeSeriesLength": { +"description": "The minimum number of time points in a time series that are used in modeling the trend component of the time series. If you use this option you must also set the `timeSeriesLengthFraction` option. This training option ensures that enough time points are available when you use `timeSeriesLengthFraction` in trend modeling. This is particularly important when forecasting multiple time series in a single query using `timeSeriesIdColumn`. If the total number of time points is less than the `minTimeSeriesLength` value, then the query uses all available time points.", +"format": "int64", +"type": "string" +}, +"minTreeChildWeight": { +"description": "Minimum sum of instance weight needed in a child for boosted tree models.", +"format": "int64", +"type": "string" +}, +"modelRegistry": { +"description": "The model registry.", +"enum": [ +"MODEL_REGISTRY_UNSPECIFIED", +"VERTEX_AI" +], +"enumDescriptions": [ +"Default value.", +"Vertex AI." +], +"type": "string" +}, +"modelUri": { +"description": "Google Cloud Storage URI from which the model was imported. Only applicable for imported models.", +"type": "string" +}, +"nonSeasonalOrder": { +"$ref": "ArimaOrder", +"description": "A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the degree of differencing, and the MA order." +}, +"numClusters": { +"description": "Number of clusters for clustering models.", +"format": "int64", +"type": "string" +}, +"numFactors": { +"description": "Num factors specified for matrix factorization models.", +"format": "int64", +"type": "string" +}, +"numParallelTree": { +"description": "Number of parallel trees constructed during each iteration for boosted tree models.", +"format": "int64", +"type": "string" +}, +"numPrincipalComponents": { +"description": "Number of principal components to keep in the PCA model. Must be <= the number of features.", +"format": "int64", +"type": "string" +}, +"numTrials": { +"description": "Number of trials to run this hyperparameter tuning job.", +"format": "int64", +"type": "string" +}, +"optimizationStrategy": { +"description": "Optimization strategy for training linear regression models.", +"enum": [ +"OPTIMIZATION_STRATEGY_UNSPECIFIED", +"BATCH_GRADIENT_DESCENT", +"NORMAL_EQUATION" +], +"enumDescriptions": [ +"Default value.", +"Uses an iterative batch gradient descent algorithm.", +"Uses a normal equation to solve linear regression problem." +], +"type": "string" +}, +"optimizer": { +"description": "Optimizer used for training the neural nets.", +"type": "string" +}, +"pcaExplainedVarianceRatio": { +"description": "The minimum ratio of cumulative explained variance that needs to be given by the PCA model.", +"format": "double", +"type": "number" +}, +"pcaSolver": { +"description": "The solver for PCA.", +"enum": [ +"UNSPECIFIED", +"FULL", +"RANDOMIZED", +"AUTO" +], +"enumDescriptions": [ +"Default value.", +"Full eigen-decoposition.", +"Randomized SVD.", +"Auto." +], +"type": "string" +}, +"sampledShapleyNumPaths": { +"description": "Number of paths for the sampled Shapley explain method.", +"format": "int64", +"type": "string" +}, +"scaleFeatures": { +"description": "If true, scale the feature values by dividing the feature standard deviation. Currently only apply to PCA.", +"type": "boolean" +}, +"standardizeFeatures": { +"description": "Whether to standardize numerical features. Default to true.", +"type": "boolean" +}, +"subsample": { +"description": "Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.", +"format": "double", +"type": "number" +}, +"tfVersion": { +"description": "Based on the selected TF version, the corresponding docker image is used to train external models.", +"type": "string" +}, +"timeSeriesDataColumn": { +"description": "Column to be designated as time series data for ARIMA model.", +"type": "string" +}, +"timeSeriesIdColumn": { +"description": "The time series id column that was used during ARIMA model training.", +"type": "string" +}, +"timeSeriesIdColumns": { +"description": "The time series id columns that were used during ARIMA model training.", +"items": { +"type": "string" +}, +"type": "array" +}, +"timeSeriesLengthFraction": { +"description": "The fraction of the interpolated length of the time series that's used to model the time series trend component. All of the time points of the time series are used to model the non-trend component. This training option accelerates modeling training without sacrificing much forecasting accuracy. You can use this option with `minTimeSeriesLength` but not with `maxTimeSeriesLength`.", +"format": "double", +"type": "number" +}, +"timeSeriesTimestampColumn": { +"description": "Column to be designated as time series timestamp for ARIMA model.", +"type": "string" +}, +"treeMethod": { +"description": "Tree construction algorithm for boosted tree models.", +"enum": [ +"TREE_METHOD_UNSPECIFIED", +"AUTO", +"EXACT", +"APPROX", +"HIST" +], +"enumDescriptions": [ +"Unspecified tree method.", +"Use heuristic to choose the fastest method.", +"Exact greedy algorithm.", +"Approximate greedy algorithm using quantile sketch and gradient histogram.", +"Fast histogram optimized approximate greedy algorithm." +], +"type": "string" +}, +"trendSmoothingWindowSize": { +"description": "Smoothing window size for the trend component. When a positive value is specified, a center moving average smoothing is applied on the history trend. When the smoothing window is out of the boundary at the beginning or the end of the trend, the first element or the last element is padded to fill the smoothing window before the average is applied.", +"format": "int64", +"type": "string" +}, +"userColumn": { +"description": "User column specified for matrix factorization models.", +"type": "string" +}, +"vertexAiModelVersionAliases": { +"description": "The version aliases to apply in Vertex AI model registry. Always overwrite if the version aliases exists in a existing model.", +"items": { +"type": "string" +}, +"type": "array" +}, +"walsAlpha": { +"description": "Hyperparameter for matrix factoration when implicit feedback type is specified.", +"format": "double", +"type": "number" +}, +"warmStart": { +"description": "Whether to train a model from the last checkpoint.", +"type": "boolean" +}, +"xgboostVersion": { +"description": "User-selected XGBoost versions for training of XGBoost models.", +"type": "string" +} +}, +"type": "object" +}, +"TrainingRun": { +"description": "Information about a single training query run for the model.", +"id": "TrainingRun", +"properties": { +"classLevelGlobalExplanations": { +"description": "Output only. Global explanation contains the explanation of top features on the class level. Applies to classification models only.", +"items": { +"$ref": "GlobalExplanation" +}, +"readOnly": true, +"type": "array" +}, +"dataSplitResult": { +"$ref": "DataSplitResult", +"description": "Output only. Data split result of the training run. Only set when the input data is actually split.", +"readOnly": true +}, +"evaluationMetrics": { +"$ref": "EvaluationMetrics", +"description": "Output only. The evaluation metrics over training/eval data that were computed at the end of training.", +"readOnly": true +}, +"modelLevelGlobalExplanation": { +"$ref": "GlobalExplanation", +"description": "Output only. Global explanation contains the explanation of top features on the model level. Applies to both regression and classification models.", +"readOnly": true +}, +"results": { +"description": "Output only. Output of each iteration run, results.size() <= max_iterations.", +"items": { +"$ref": "IterationResult" +}, +"readOnly": true, +"type": "array" +}, +"startTime": { +"description": "Output only. The start time of this training run.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"trainingOptions": { +"$ref": "TrainingOptions", +"description": "Output only. Options that were used for this training run, includes user specified and default options that were used.", +"readOnly": true +}, +"trainingStartTime": { +"deprecated": true, +"description": "Output only. The start time of this training run, in milliseconds since epoch.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"vertexAiModelId": { +"description": "The model id in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.", +"type": "string" +}, +"vertexAiModelVersion": { +"description": "Output only. The model version in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TransactionInfo": { +"description": "[Alpha] Information of a multi-statement transaction.", +"id": "TransactionInfo", +"properties": { +"transactionId": { +"description": "Output only. [Alpha] Id of the transaction.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TransformColumn": { +"description": "Information about a single transform column.", +"id": "TransformColumn", +"properties": { +"name": { +"description": "Output only. Name of the column.", +"readOnly": true, +"type": "string" +}, +"transformSql": { +"description": "Output only. The SQL expression used in the column transform.", +"readOnly": true, +"type": "string" +}, +"type": { +"$ref": "StandardSqlDataType", +"description": "Output only. Data type of the column after the transform.", +"readOnly": true +} +}, +"type": "object" +}, +"UndeleteDatasetRequest": { +"description": "Request format for undeleting a dataset.", +"id": "UndeleteDatasetRequest", +"properties": { +"deletionTime": { +"description": "Optional. The exact time when the dataset was deleted. If not specified, the most recently deleted version is undeleted. Undeleting a dataset using deletion time is not supported.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UserDefinedFunctionResource": { +"description": " This is used for defining User Defined Function (UDF) resources only when using legacy SQL. Users of GoogleSQL should leverage either DDL (e.g. CREATE [TEMPORARY] FUNCTION ... ) or the Routines API to define UDF resources. For additional information on migrating, see: https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions", +"id": "UserDefinedFunctionResource", +"properties": { +"inlineCode": { +"description": "[Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.", +"type": "string" +}, +"resourceUri": { +"description": "[Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).", +"type": "string" +} +}, +"type": "object" +}, +"VectorSearchStatistics": { +"description": "Statistics for a vector search query. Populated as part of JobStatistics2.", +"id": "VectorSearchStatistics", +"properties": { +"indexUnusedReasons": { +"description": "When `indexUsageMode` is `UNUSED` or `PARTIALLY_USED`, this field explains why indexes were not used in all or part of the vector search query. If `indexUsageMode` is `FULLY_USED`, this field is not populated.", +"items": { +"$ref": "IndexUnusedReason" +}, +"type": "array" +}, +"indexUsageMode": { +"description": "Specifies the index usage mode for the query.", +"enum": [ +"INDEX_USAGE_MODE_UNSPECIFIED", +"UNUSED", +"PARTIALLY_USED", +"FULLY_USED" +], +"enumDescriptions": [ +"Index usage mode not specified.", +"No vector indexes were used in the vector search query. See [`indexUnusedReasons`] (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for detailed reasons.", +"Part of the vector search query used vector indexes. See [`indexUnusedReasons`] (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for why other parts of the query did not use vector indexes.", +"The entire vector search query used vector indexes." +], +"type": "string" +} +}, +"type": "object" +}, +"ViewDefinition": { +"description": "Describes the definition of a logical view.", +"id": "ViewDefinition", +"properties": { +"foreignDefinitions": { +"description": "Optional. Foreign view representations.", +"items": { +"$ref": "ForeignViewDefinition" +}, +"type": "array" +}, +"privacyPolicy": { +"$ref": "PrivacyPolicy", +"description": "Optional. Specifices the privacy policy for the view." +}, +"query": { +"description": "Required. A query that BigQuery executes when the view is referenced.", +"type": "string" +}, +"useExplicitColumnNames": { +"description": "True if the column names are explicitly specified. For example by using the 'CREATE VIEW v(c1, c2) AS ...' syntax. Can only be set for GoogleSQL views.", +"type": "boolean" +}, +"useLegacySql": { +"description": "Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value. A wrapper is used here because the default value is True.", +"type": "boolean" +}, +"userDefinedFunctionResources": { +"description": "Describes user-defined function resources used in the query.", +"items": { +"$ref": "UserDefinedFunctionResource" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "bigquery/v2/", +"title": "BigQuery API", +"version": "v2" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..fdc2533ca082f9e84506a67e71503cdb1b5dd366 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json @@ -0,0 +1,725 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/bigquery": { +"description": "View and manage your data in Google BigQuery and see the email address for your Google Account" +}, +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://bigqueryconnection.googleapis.com/", +"batchPath": "batch", +"canonicalName": "BigQuery Connection Service", +"description": "Allows users to manage BigQuery connections to external data sources.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/bigquery/docs/connections-api-intro", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "bigqueryconnection:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://bigqueryconnection.mtls.googleapis.com/", +"name": "bigqueryconnection", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"connections": { +"methods": { +"create": { +"description": "Creates a new connection.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections", +"httpMethod": "POST", +"id": "bigqueryconnection.projects.locations.connections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"connectionId": { +"description": "Optional. Connection id that should be assigned to the created connection.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. Must be in the format `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/connections", +"request": { +"$ref": "Connection" +}, +"response": { +"$ref": "Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes connection and associated credential.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "DELETE", +"id": "bigqueryconnection.projects.locations.connections.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the deleted connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns specified connection.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "GET", +"id": "bigqueryconnection.projects.locations.connections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the requested connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:getIamPolicy", +"httpMethod": "POST", +"id": "bigqueryconnection.projects.locations.connections.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of connections in the given project.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections", +"httpMethod": "GET", +"id": "bigqueryconnection.projects.locations.connections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"maxResults": { +"description": "Required. Maximum number of results per page.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name. Must be in the form: `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/connections", +"response": { +"$ref": "ListConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the specified connection. For security reasons, also resets credential if connection properties are in the update field mask.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", +"httpMethod": "PATCH", +"id": "bigqueryconnection.projects.locations.connections.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the connection to update, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Update mask for the connection fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Connection" +}, +"response": { +"$ref": "Connection" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:setIamPolicy", +"httpMethod": "POST", +"id": "bigqueryconnection.projects.locations.connections.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:testIamPermissions", +"httpMethod": "POST", +"id": "bigqueryconnection.projects.locations.connections.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateCredential": { +"description": "Sets the credential for the specified connection.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/credential", +"httpMethod": "PATCH", +"id": "bigqueryconnection.projects.locations.connections.updateCredential", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}/credential`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/credential$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "ConnectionCredential" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20240623", +"rootUrl": "https://bigqueryconnection.googleapis.com/", +"schemas": { +"AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CloudSqlCredential": { +"description": "Credential info for the Cloud SQL.", +"id": "CloudSqlCredential", +"properties": { +"password": { +"description": "The password for the credential.", +"type": "string" +}, +"username": { +"description": "The username for the credential.", +"type": "string" +} +}, +"type": "object" +}, +"CloudSqlProperties": { +"description": "Connection properties specific to the Cloud SQL.", +"id": "CloudSqlProperties", +"properties": { +"credential": { +"$ref": "CloudSqlCredential", +"description": "Input only. Cloud SQL credential." +}, +"database": { +"description": "Database name.", +"type": "string" +}, +"instanceId": { +"description": "Cloud SQL instance ID in the form `project:location:instance`.", +"type": "string" +}, +"serviceAccountId": { +"description": "Output only. The account ID of the service used for the purpose of this connection. When the connection is used in the context of an operation in BigQuery, this service account will serve as the identity being used for connecting to the CloudSQL instance specified in this connection.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Type of the Cloud SQL database.", +"enum": [ +"DATABASE_TYPE_UNSPECIFIED", +"POSTGRES", +"MYSQL" +], +"enumDescriptions": [ +"Unspecified database type.", +"Cloud SQL for PostgreSQL.", +"Cloud SQL for MySQL." +], +"type": "string" +} +}, +"type": "object" +}, +"Connection": { +"description": "Configuration parameters to establish connection with an external data source, except the credential attributes.", +"id": "Connection", +"properties": { +"cloudSql": { +"$ref": "CloudSqlProperties", +"description": "Cloud SQL properties." +}, +"creationTime": { +"description": "Output only. The creation timestamp of the connection.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User provided description.", +"type": "string" +}, +"friendlyName": { +"description": "User provided display name for the connection.", +"type": "string" +}, +"hasCredential": { +"description": "Output only. True, if credential is configured for this connection.", +"readOnly": true, +"type": "boolean" +}, +"lastModifiedTime": { +"description": "Output only. The last update timestamp of the connection.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The resource name of the connection in the form of: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", +"type": "string" +} +}, +"type": "object" +}, +"ConnectionCredential": { +"description": "Credential to use with a connection.", +"id": "ConnectionCredential", +"properties": { +"cloudSql": { +"$ref": "CloudSqlCredential", +"description": "Credential for Cloud SQL database." +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListConnectionsResponse": { +"description": "The response for ConnectionService.ListConnections.", +"id": "ListConnectionsResponse", +"properties": { +"connections": { +"description": "List of connections.", +"items": { +"$ref": "Connection" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Next page token.", +"type": "string" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "BigQuery Connection API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigquerydatatransfer.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigquerydatatransfer.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..e11b4ff46e7af479a26baa88a4a672d3dd489680 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/bigquerydatatransfer.v1.json @@ -0,0 +1,2339 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/bigquery": { +"description": "View and manage your data in Google BigQuery and see the email address for your Google Account" +}, +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/cloud-platform.read-only": { +"description": "View your data across Google Cloud services and see the email address of your Google Account" +} +} +} +}, +"basePath": "", +"baseUrl": "https://bigquerydatatransfer.googleapis.com/", +"batchPath": "batch", +"canonicalName": "BigQuery Data Transfer", +"description": "Schedule queries or transfer external data from SaaS applications to Google BigQuery on a regular basis.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/bigquery-transfer/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://bigquerydatatransfer.us-west8.rep.googleapis.com/", +"location": "us-west8" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "bigquerydatatransfer:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://bigquerydatatransfer.mtls.googleapis.com/", +"name": "bigquerydatatransfer", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"methods": { +"enrollDataSources": { +"description": "Enroll data sources in a user project. This allows users to create transfer configurations for these data sources. They will also appear in the ListDataSources RPC and as such, will appear in the [BigQuery UI](https://console.cloud.google.com/bigquery), and the documents can be found in the public guide for [BigQuery Web UI](https://cloud.google.com/bigquery/bigquery-web-ui) and [Data Transfer Service](https://cloud.google.com/bigquery/docs/working-with-transfers).", +"flatPath": "v1/projects/{projectsId}:enrollDataSources", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.enrollDataSources", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the project resource in the form: `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:enrollDataSources", +"request": { +"$ref": "EnrollDataSourcesRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"dataSources": { +"methods": { +"checkValidCreds": { +"description": "Returns true if valid credentials exist for the given data source and requesting user.", +"flatPath": "v1/projects/{projectsId}/dataSources/{dataSourcesId}:checkValidCreds", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.dataSources.checkValidCreds", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The data source in the form: `projects/{project_id}/dataSources/{data_source_id}` or `projects/{project_id}/locations/{location_id}/dataSources/{data_source_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/dataSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:checkValidCreds", +"request": { +"$ref": "CheckValidCredsRequest" +}, +"response": { +"$ref": "CheckValidCredsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"get": { +"description": "Retrieves a supported data source and returns its settings.", +"flatPath": "v1/projects/{projectsId}/dataSources/{dataSourcesId}", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.dataSources.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/dataSources/{data_source_id}` or `projects/{project_id}/locations/{location_id}/dataSources/{data_source_id}`", +"location": "path", +"pattern": "^projects/[^/]+/dataSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists supported data sources and returns their settings.", +"flatPath": "v1/projects/{projectsId}/dataSources", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.dataSources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Page size. The default page size is the maximum value of 1000 results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token, which can be used to request a specific page of `ListDataSourcesRequest` list results. For multiple-page results, `ListDataSourcesResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The BigQuery project id for which data sources should be returned. Must be in the form: `projects/{project_id}` or `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dataSources", +"response": { +"$ref": "ListDataSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"locations": { +"methods": { +"enrollDataSources": { +"description": "Enroll data sources in a user project. This allows users to create transfer configurations for these data sources. They will also appear in the ListDataSources RPC and as such, will appear in the [BigQuery UI](https://console.cloud.google.com/bigquery), and the documents can be found in the public guide for [BigQuery Web UI](https://cloud.google.com/bigquery/bigquery-web-ui) and [Data Transfer Service](https://cloud.google.com/bigquery/docs/working-with-transfers).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}:enrollDataSources", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.locations.enrollDataSources", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the project resource in the form: `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:enrollDataSources", +"request": { +"$ref": "EnrollDataSourcesRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"unenrollDataSources": { +"description": "Unenroll data sources in a user project. This allows users to remove transfer configurations for these data sources. They will no longer appear in the ListDataSources RPC and will also no longer appear in the [BigQuery UI](https://console.cloud.google.com/bigquery). Data transfers configurations of unenrolled data sources will not be scheduled.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}:unenrollDataSources", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.locations.unenrollDataSources", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the project resource in the form: `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:unenrollDataSources", +"request": { +"$ref": "UnenrollDataSourcesRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"dataSources": { +"methods": { +"checkValidCreds": { +"description": "Returns true if valid credentials exist for the given data source and requesting user.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}:checkValidCreds", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.locations.dataSources.checkValidCreds", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The data source in the form: `projects/{project_id}/dataSources/{data_source_id}` or `projects/{project_id}/locations/{location_id}/dataSources/{data_source_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:checkValidCreds", +"request": { +"$ref": "CheckValidCredsRequest" +}, +"response": { +"$ref": "CheckValidCredsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"get": { +"description": "Retrieves a supported data source and returns its settings.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.locations.dataSources.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/dataSources/{data_source_id}` or `projects/{project_id}/locations/{location_id}/dataSources/{data_source_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists supported data sources and returns their settings.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.locations.dataSources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Page size. The default page size is the maximum value of 1000 results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token, which can be used to request a specific page of `ListDataSourcesRequest` list results. For multiple-page results, `ListDataSourcesResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The BigQuery project id for which data sources should be returned. Must be in the form: `projects/{project_id}` or `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dataSources", +"response": { +"$ref": "ListDataSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"transferConfigs": { +"methods": { +"create": { +"description": "Creates a new data transfer configuration.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"authorizationCode": { +"deprecated": true, +"description": "Deprecated: Authorization code was required when `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used in any data sources. Use `version_info` instead. Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The BigQuery project id where the transfer configuration should be created. Must be in the format projects/{project_id}/locations/{location_id} or projects/{project_id}. If specified location and location of the destination bigquery dataset do not match - the request will fail.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"serviceAccountName": { +"description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", +"location": "query", +"type": "string" +}, +"versionInfo": { +"description": "Optional version info. This parameter replaces `authorization_code` which is no longer used in any data sources. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/transferConfigs", +"request": { +"$ref": "TransferConfig" +}, +"response": { +"$ref": "TransferConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a data transfer configuration, including any associated transfer runs and logs.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}", +"httpMethod": "DELETE", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns information about a data transfer config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "TransferConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Returns information about all transfer configs owned by a project in the specified location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataSourceIds": { +"description": "When specified, only configurations of requested data sources are returned.", +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Page size. The default page size is the maximum value of 1000 results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token, which can be used to request a specific page of `ListTransfersRequest` list results. For multiple-page results, `ListTransfersResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The BigQuery project id for which transfer configs should be returned: `projects/{project_id}` or `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/transferConfigs", +"response": { +"$ref": "ListTransferConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a data transfer configuration. All fields must be set, even if they are not updated.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}", +"httpMethod": "PATCH", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"authorizationCode": { +"deprecated": true, +"description": "Deprecated: Authorization code was required when `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used in any data sources. Use `version_info` instead. Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"serviceAccountName": { +"description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Required list of fields to be updated in this request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"versionInfo": { +"description": "Optional version info. This parameter replaces `authorization_code` which is no longer used in any data sources. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "TransferConfig" +}, +"response": { +"$ref": "TransferConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"scheduleRuns": { +"deprecated": true, +"description": "Creates transfer runs for a time range [start_time, end_time]. For each date - or whatever granularity the data source supports - in the range, one transfer run is created. Note that runs are created per UTC time in the time range. DEPRECATED: use StartManualTransferRuns instead.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}:scheduleRuns", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.scheduleRuns", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Transfer configuration name in the form: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:scheduleRuns", +"request": { +"$ref": "ScheduleTransferRunsRequest" +}, +"response": { +"$ref": "ScheduleTransferRunsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"startManualRuns": { +"description": "Start manual transfer runs to be executed now with schedule_time equal to current time. The transfer runs can be created for a time range where the run_time is between start_time (inclusive) and end_time (exclusive), or for a specific run_time.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}:startManualRuns", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.startManualRuns", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Transfer configuration name in the form: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:startManualRuns", +"request": { +"$ref": "StartManualTransferRunsRequest" +}, +"response": { +"$ref": "StartManualTransferRunsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"runs": { +"methods": { +"delete": { +"description": "Deletes the specified transfer run.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", +"httpMethod": "DELETE", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns information about the particular transfer run.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "TransferRun" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Returns information about running and completed transfer runs.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Page size. The default page size is the maximum value of 1000 results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token, which can be used to request a specific page of `ListTransferRunsRequest` list results. For multiple-page results, `ListTransferRunsResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of transfer configuration for which transfer runs should be retrieved. Format of transfer configuration resource name is: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"runAttempt": { +"description": "Indicates how run attempts are to be pulled.", +"enum": [ +"RUN_ATTEMPT_UNSPECIFIED", +"LATEST" +], +"enumDescriptions": [ +"All runs should be returned.", +"Only latest run per day should be returned." +], +"location": "query", +"type": "string" +}, +"states": { +"description": "When specified, only transfer runs with requested states are returned.", +"enum": [ +"TRANSFER_STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"State placeholder (0).", +"Data transfer is scheduled and is waiting to be picked up by data transfer backend (2).", +"Data transfer is in progress (3).", +"Data transfer completed successfully (4).", +"Data transfer failed (5).", +"Data transfer is cancelled (6)." +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/{+parent}/runs", +"response": { +"$ref": "ListTransferRunsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"transferLogs": { +"methods": { +"list": { +"description": "Returns log messages for the transfer run.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.transferLogs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"messageTypes": { +"description": "Message types to return. If not populated - INFO, WARNING and ERROR messages are returned.", +"enum": [ +"MESSAGE_SEVERITY_UNSPECIFIED", +"INFO", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"No severity specified.", +"Informational message.", +"Warning message.", +"Error message." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Page size. The default page size is the maximum value of 1000 results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token, which can be used to request a specific page of `ListTransferLogsRequest` list results. For multiple-page results, `ListTransferLogsResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Transfer run name in the form: `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/transferLogs", +"response": { +"$ref": "ListTransferLogsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +} +} +} +} +} +} +}, +"transferConfigs": { +"methods": { +"create": { +"description": "Creates a new data transfer configuration.", +"flatPath": "v1/projects/{projectsId}/transferConfigs", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.transferConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"authorizationCode": { +"deprecated": true, +"description": "Deprecated: Authorization code was required when `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used in any data sources. Use `version_info` instead. Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The BigQuery project id where the transfer configuration should be created. Must be in the format projects/{project_id}/locations/{location_id} or projects/{project_id}. If specified location and location of the destination bigquery dataset do not match - the request will fail.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"serviceAccountName": { +"description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", +"location": "query", +"type": "string" +}, +"versionInfo": { +"description": "Optional version info. This parameter replaces `authorization_code` which is no longer used in any data sources. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/transferConfigs", +"request": { +"$ref": "TransferConfig" +}, +"response": { +"$ref": "TransferConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a data transfer configuration, including any associated transfer runs and logs.", +"flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}", +"httpMethod": "DELETE", +"id": "bigquerydatatransfer.projects.transferConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns information about a data transfer config.", +"flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.transferConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "TransferConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Returns information about all transfer configs owned by a project in the specified location.", +"flatPath": "v1/projects/{projectsId}/transferConfigs", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.transferConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataSourceIds": { +"description": "When specified, only configurations of requested data sources are returned.", +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Page size. The default page size is the maximum value of 1000 results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token, which can be used to request a specific page of `ListTransfersRequest` list results. For multiple-page results, `ListTransfersResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The BigQuery project id for which transfer configs should be returned: `projects/{project_id}` or `projects/{project_id}/locations/{location_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/transferConfigs", +"response": { +"$ref": "ListTransferConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a data transfer configuration. All fields must be set, even if they are not updated.", +"flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}", +"httpMethod": "PATCH", +"id": "bigquerydatatransfer.projects.transferConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"authorizationCode": { +"deprecated": true, +"description": "Deprecated: Authorization code was required when `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used in any data sources. Use `version_info` instead. Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", +"location": "path", +"pattern": "^projects/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"serviceAccountName": { +"description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Required list of fields to be updated in this request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"versionInfo": { +"description": "Optional version info. This parameter replaces `authorization_code` which is no longer used in any data sources. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "TransferConfig" +}, +"response": { +"$ref": "TransferConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"scheduleRuns": { +"deprecated": true, +"description": "Creates transfer runs for a time range [start_time, end_time]. For each date - or whatever granularity the data source supports - in the range, one transfer run is created. Note that runs are created per UTC time in the time range. DEPRECATED: use StartManualTransferRuns instead.", +"flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}:scheduleRuns", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.transferConfigs.scheduleRuns", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Transfer configuration name in the form: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:scheduleRuns", +"request": { +"$ref": "ScheduleTransferRunsRequest" +}, +"response": { +"$ref": "ScheduleTransferRunsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"startManualRuns": { +"description": "Start manual transfer runs to be executed now with schedule_time equal to current time. The transfer runs can be created for a time range where the run_time is between start_time (inclusive) and end_time (exclusive), or for a specific run_time.", +"flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}:startManualRuns", +"httpMethod": "POST", +"id": "bigquerydatatransfer.projects.transferConfigs.startManualRuns", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Transfer configuration name in the form: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:startManualRuns", +"request": { +"$ref": "StartManualTransferRunsRequest" +}, +"response": { +"$ref": "StartManualTransferRunsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"runs": { +"methods": { +"delete": { +"description": "Deletes the specified transfer run.", +"flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", +"httpMethod": "DELETE", +"id": "bigquerydatatransfer.projects.transferConfigs.runs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`", +"location": "path", +"pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns information about the particular transfer run.", +"flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.transferConfigs.runs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The field will contain name of the resource requested, for example: `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`", +"location": "path", +"pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "TransferRun" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Returns information about running and completed transfer runs.", +"flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.transferConfigs.runs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Page size. The default page size is the maximum value of 1000 results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token, which can be used to request a specific page of `ListTransferRunsRequest` list results. For multiple-page results, `ListTransferRunsResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of transfer configuration for which transfer runs should be retrieved. Format of transfer configuration resource name is: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/transferConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"runAttempt": { +"description": "Indicates how run attempts are to be pulled.", +"enum": [ +"RUN_ATTEMPT_UNSPECIFIED", +"LATEST" +], +"enumDescriptions": [ +"All runs should be returned.", +"Only latest run per day should be returned." +], +"location": "query", +"type": "string" +}, +"states": { +"description": "When specified, only transfer runs with requested states are returned.", +"enum": [ +"TRANSFER_STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"State placeholder (0).", +"Data transfer is scheduled and is waiting to be picked up by data transfer backend (2).", +"Data transfer is in progress (3).", +"Data transfer completed successfully (4).", +"Data transfer failed (5).", +"Data transfer is cancelled (6)." +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/{+parent}/runs", +"response": { +"$ref": "ListTransferRunsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +}, +"resources": { +"transferLogs": { +"methods": { +"list": { +"description": "Returns log messages for the transfer run.", +"flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs", +"httpMethod": "GET", +"id": "bigquerydatatransfer.projects.transferConfigs.runs.transferLogs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"messageTypes": { +"description": "Message types to return. If not populated - INFO, WARNING and ERROR messages are returned.", +"enum": [ +"MESSAGE_SEVERITY_UNSPECIFIED", +"INFO", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"No severity specified.", +"Informational message.", +"Warning message.", +"Error message." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Page size. The default page size is the maximum value of 1000 results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token, which can be used to request a specific page of `ListTransferLogsRequest` list results. For multiple-page results, `ListTransferLogsResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Transfer run name in the form: `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`", +"location": "path", +"pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/transferLogs", +"response": { +"$ref": "ListTransferLogsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/bigquery", +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20240922", +"rootUrl": "https://bigquerydatatransfer.googleapis.com/", +"schemas": { +"CheckValidCredsRequest": { +"description": "A request to determine whether the user has valid credentials. This method is used to limit the number of OAuth popups in the user interface. The user id is inferred from the API call context. If the data source has the Google+ authorization type, this method returns false, as it cannot be determined whether the credentials are already valid merely based on the user id.", +"id": "CheckValidCredsRequest", +"properties": {}, +"type": "object" +}, +"CheckValidCredsResponse": { +"description": "A response indicating whether the credentials exist and are valid.", +"id": "CheckValidCredsResponse", +"properties": { +"hasValidCreds": { +"description": "If set to `true`, the credentials exist and are valid.", +"type": "boolean" +} +}, +"type": "object" +}, +"DataSource": { +"description": "Defines the properties and custom parameters for a data source.", +"id": "DataSource", +"properties": { +"authorizationType": { +"description": "Indicates the type of authorization.", +"enum": [ +"AUTHORIZATION_TYPE_UNSPECIFIED", +"AUTHORIZATION_CODE", +"GOOGLE_PLUS_AUTHORIZATION_CODE", +"FIRST_PARTY_OAUTH" +], +"enumDescriptions": [ +"Type unspecified.", +"Use OAuth 2 authorization codes that can be exchanged for a refresh token on the backend.", +"Return an authorization code for a given Google+ page that can then be exchanged for a refresh token on the backend.", +"Use First Party OAuth." +], +"type": "string" +}, +"clientId": { +"description": "Data source client id which should be used to receive refresh token.", +"type": "string" +}, +"dataRefreshType": { +"description": "Specifies whether the data source supports automatic data refresh for the past few days, and how it's supported. For some data sources, data might not be complete until a few days later, so it's useful to refresh data automatically.", +"enum": [ +"DATA_REFRESH_TYPE_UNSPECIFIED", +"SLIDING_WINDOW", +"CUSTOM_SLIDING_WINDOW" +], +"enumDescriptions": [ +"The data source won't support data auto refresh, which is default value.", +"The data source supports data auto refresh, and runs will be scheduled for the past few days. Does not allow custom values to be set for each transfer config.", +"The data source supports data auto refresh, and runs will be scheduled for the past few days. Allows custom values to be set for each transfer config." +], +"type": "string" +}, +"dataSourceId": { +"description": "Data source id.", +"type": "string" +}, +"defaultDataRefreshWindowDays": { +"description": "Default data refresh window on days. Only meaningful when `data_refresh_type` = `SLIDING_WINDOW`.", +"format": "int32", +"type": "integer" +}, +"defaultSchedule": { +"description": "Default data transfer schedule. Examples of valid schedules include: `1st,3rd monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first sunday of quarter 00:00`.", +"type": "string" +}, +"description": { +"description": "User friendly data source description string.", +"type": "string" +}, +"displayName": { +"description": "User friendly data source name.", +"type": "string" +}, +"helpUrl": { +"description": "Url for the help document for this data source.", +"type": "string" +}, +"manualRunsDisabled": { +"description": "Disables backfilling and manual run scheduling for the data source.", +"type": "boolean" +}, +"minimumScheduleInterval": { +"description": "The minimum interval for scheduler to schedule runs.", +"format": "google-duration", +"type": "string" +}, +"name": { +"description": "Output only. Data source resource name.", +"readOnly": true, +"type": "string" +}, +"parameters": { +"description": "Data source parameters.", +"items": { +"$ref": "DataSourceParameter" +}, +"type": "array" +}, +"scopes": { +"description": "Api auth scopes for which refresh token needs to be obtained. These are scopes needed by a data source to prepare data and ingest them into BigQuery, e.g., https://www.googleapis.com/auth/bigquery", +"items": { +"type": "string" +}, +"type": "array" +}, +"supportsCustomSchedule": { +"description": "Specifies whether the data source supports a user defined schedule, or operates on the default schedule. When set to `true`, user can override default schedule.", +"type": "boolean" +}, +"supportsMultipleTransfers": { +"deprecated": true, +"description": "Deprecated. This field has no effect.", +"type": "boolean" +}, +"transferType": { +"deprecated": true, +"description": "Deprecated. This field has no effect.", +"enum": [ +"TRANSFER_TYPE_UNSPECIFIED", +"BATCH", +"STREAMING" +], +"enumDescriptions": [ +"Invalid or Unknown transfer type placeholder.", +"Batch data transfer.", +"Streaming data transfer. Streaming data source currently doesn't support multiple transfer configs per project." +], +"type": "string" +}, +"updateDeadlineSeconds": { +"description": "The number of seconds to wait for an update from the data source before the Data Transfer Service marks the transfer as FAILED.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DataSourceParameter": { +"description": "A parameter used to define custom fields in a data source definition.", +"id": "DataSourceParameter", +"properties": { +"allowedValues": { +"description": "All possible values for the parameter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"deprecated": { +"description": "If true, it should not be used in new transfers, and it should not be visible to users.", +"type": "boolean" +}, +"description": { +"description": "Parameter description.", +"type": "string" +}, +"displayName": { +"description": "Parameter display name in the user interface.", +"type": "string" +}, +"fields": { +"description": "Deprecated. This field has no effect.", +"items": { +"$ref": "DataSourceParameter" +}, +"type": "array" +}, +"immutable": { +"description": "Cannot be changed after initial creation.", +"type": "boolean" +}, +"maxValue": { +"description": "For integer and double values specifies maximum allowed value.", +"format": "double", +"type": "number" +}, +"minValue": { +"description": "For integer and double values specifies minimum allowed value.", +"format": "double", +"type": "number" +}, +"paramId": { +"description": "Parameter identifier.", +"type": "string" +}, +"recurse": { +"description": "Deprecated. This field has no effect.", +"type": "boolean" +}, +"repeated": { +"description": "Deprecated. This field has no effect.", +"type": "boolean" +}, +"required": { +"description": "Is parameter required.", +"type": "boolean" +}, +"type": { +"description": "Parameter type.", +"enum": [ +"TYPE_UNSPECIFIED", +"STRING", +"INTEGER", +"DOUBLE", +"BOOLEAN", +"RECORD", +"PLUS_PAGE", +"LIST" +], +"enumDescriptions": [ +"Type unspecified.", +"String parameter.", +"Integer parameter (64-bits). Will be serialized to json as string.", +"Double precision floating point parameter.", +"Boolean parameter.", +"Deprecated. This field has no effect.", +"Page ID for a Google+ Page.", +"List of strings parameter." +], +"type": "string" +}, +"validationDescription": { +"description": "Description of the requirements for this field, in case the user input does not fulfill the regex pattern or min/max values.", +"type": "string" +}, +"validationHelpUrl": { +"description": "URL to a help document to further explain the naming requirements.", +"type": "string" +}, +"validationRegex": { +"description": "Regular expression which can be used for parameter validation.", +"type": "string" +} +}, +"type": "object" +}, +"EmailPreferences": { +"description": "Represents preferences for sending email notifications for transfer run events.", +"id": "EmailPreferences", +"properties": { +"enableFailureEmail": { +"description": "If true, email notifications will be sent on transfer run failures.", +"type": "boolean" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EncryptionConfiguration": { +"description": "Represents the encryption configuration for a transfer.", +"id": "EncryptionConfiguration", +"properties": { +"kmsKeyName": { +"description": "The name of the KMS key used for encrypting BigQuery data.", +"type": "string" +} +}, +"type": "object" +}, +"EnrollDataSourcesRequest": { +"description": "A request to enroll a set of data sources so they are visible in the BigQuery UI's `Transfer` tab.", +"id": "EnrollDataSourcesRequest", +"properties": { +"dataSourceIds": { +"description": "Data sources that are enrolled. It is required to provide at least one data source id.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EventDrivenSchedule": { +"description": "Options customizing EventDriven transfers schedule.", +"id": "EventDrivenSchedule", +"properties": { +"pubsubSubscription": { +"description": "Pub/Sub subscription name used to receive events. Only Google Cloud Storage data source support this option. Format: projects/{project}/subscriptions/{subscription}", +"type": "string" +} +}, +"type": "object" +}, +"ListDataSourcesResponse": { +"description": "Returns list of supported data sources and their metadata.", +"id": "ListDataSourcesResponse", +"properties": { +"dataSources": { +"description": "List of supported data sources and their transfer settings.", +"items": { +"$ref": "DataSource" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Output only. The next-pagination token. For multiple-page list results, this token can be used as the `ListDataSourcesRequest.page_token` to request the next page of list results.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListTransferConfigsResponse": { +"description": "The returned list of pipelines in the project.", +"id": "ListTransferConfigsResponse", +"properties": { +"nextPageToken": { +"description": "Output only. The next-pagination token. For multiple-page list results, this token can be used as the `ListTransferConfigsRequest.page_token` to request the next page of list results.", +"readOnly": true, +"type": "string" +}, +"transferConfigs": { +"description": "Output only. The stored pipeline transfer configurations.", +"items": { +"$ref": "TransferConfig" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ListTransferLogsResponse": { +"description": "The returned list transfer run messages.", +"id": "ListTransferLogsResponse", +"properties": { +"nextPageToken": { +"description": "Output only. The next-pagination token. For multiple-page list results, this token can be used as the `GetTransferRunLogRequest.page_token` to request the next page of list results.", +"readOnly": true, +"type": "string" +}, +"transferMessages": { +"description": "Output only. The stored pipeline transfer messages.", +"items": { +"$ref": "TransferMessage" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ListTransferRunsResponse": { +"description": "The returned list of pipelines in the project.", +"id": "ListTransferRunsResponse", +"properties": { +"nextPageToken": { +"description": "Output only. The next-pagination token. For multiple-page list results, this token can be used as the `ListTransferRunsRequest.page_token` to request the next page of list results.", +"readOnly": true, +"type": "string" +}, +"transferRuns": { +"description": "Output only. The stored pipeline transfer runs.", +"items": { +"$ref": "TransferRun" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"ManualSchedule": { +"description": "Options customizing manual transfers schedule.", +"id": "ManualSchedule", +"properties": {}, +"type": "object" +}, +"ScheduleOptions": { +"description": "Options customizing the data transfer schedule.", +"id": "ScheduleOptions", +"properties": { +"disableAutoScheduling": { +"description": "If true, automatic scheduling of data transfer runs for this configuration will be disabled. The runs can be started on ad-hoc basis using StartManualTransferRuns API. When automatic scheduling is disabled, the TransferConfig.schedule field will be ignored.", +"type": "boolean" +}, +"endTime": { +"description": "Defines time to stop scheduling transfer runs. A transfer run cannot be scheduled at or after the end time. The end time can be changed at any moment. The time when a data transfer can be triggered manually is not limited by this option.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Specifies time to start scheduling transfer runs. The first run will be scheduled at or after the start time according to a recurrence pattern defined in the schedule string. The start time can be changed at any moment. The time when a data transfer can be triggered manually is not limited by this option.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ScheduleOptionsV2": { +"description": "V2 options customizing different types of data transfer schedule. This field supports existing time-based and manual transfer schedule. Also supports Event-Driven transfer schedule. ScheduleOptionsV2 cannot be used together with ScheduleOptions/Schedule.", +"id": "ScheduleOptionsV2", +"properties": { +"eventDrivenSchedule": { +"$ref": "EventDrivenSchedule", +"description": "Event driven transfer schedule options. If set, the transfer will be scheduled upon events arrial." +}, +"manualSchedule": { +"$ref": "ManualSchedule", +"description": "Manual transfer schedule. If set, the transfer run will not be auto-scheduled by the system, unless the client invokes StartManualTransferRuns. This is equivalent to disable_auto_scheduling = true." +}, +"timeBasedSchedule": { +"$ref": "TimeBasedSchedule", +"description": "Time based transfer schedule options. This is the default schedule option." +} +}, +"type": "object" +}, +"ScheduleTransferRunsRequest": { +"description": "A request to schedule transfer runs for a time range.", +"id": "ScheduleTransferRunsRequest", +"properties": { +"endTime": { +"description": "Required. End time of the range of transfer runs. For example, `\"2017-05-30T00:00:00+00:00\"`.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Required. Start time of the range of transfer runs. For example, `\"2017-05-25T00:00:00+00:00\"`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ScheduleTransferRunsResponse": { +"description": "A response to schedule transfer runs for a time range.", +"id": "ScheduleTransferRunsResponse", +"properties": { +"runs": { +"description": "The transfer runs that were scheduled.", +"items": { +"$ref": "TransferRun" +}, +"type": "array" +} +}, +"type": "object" +}, +"StartManualTransferRunsRequest": { +"description": "A request to start manual transfer runs.", +"id": "StartManualTransferRunsRequest", +"properties": { +"requestedRunTime": { +"description": "A run_time timestamp for historical data files or reports that are scheduled to be transferred by the scheduled transfer run. requested_run_time must be a past time and cannot include future time values.", +"format": "google-datetime", +"type": "string" +}, +"requestedTimeRange": { +"$ref": "TimeRange", +"description": "A time_range start and end timestamp for historical data files or reports that are scheduled to be transferred by the scheduled transfer run. requested_time_range must be a past time and cannot include future time values." +} +}, +"type": "object" +}, +"StartManualTransferRunsResponse": { +"description": "A response to start manual transfer runs.", +"id": "StartManualTransferRunsResponse", +"properties": { +"runs": { +"description": "The transfer runs that were created.", +"items": { +"$ref": "TransferRun" +}, +"type": "array" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TimeBasedSchedule": { +"description": "Options customizing the time based transfer schedule. Options are migrated from the original ScheduleOptions message.", +"id": "TimeBasedSchedule", +"properties": { +"endTime": { +"description": "Defines time to stop scheduling transfer runs. A transfer run cannot be scheduled at or after the end time. The end time can be changed at any moment.", +"format": "google-datetime", +"type": "string" +}, +"schedule": { +"description": "Data transfer schedule. If the data source does not support a custom schedule, this should be empty. If it is empty, the default value for the data source will be used. The specified times are in UTC. Examples of valid format: `1st,3rd monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first sunday of quarter 00:00`. See more explanation about the format here: https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format NOTE: The minimum interval time between recurring transfers depends on the data source; refer to the documentation for your data source.", +"type": "string" +}, +"startTime": { +"description": "Specifies time to start scheduling transfer runs. The first run will be scheduled at or after the start time according to a recurrence pattern defined in the schedule string. The start time can be changed at any moment.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"TimeRange": { +"description": "A specification for a time range, this will request transfer runs with run_time between start_time (inclusive) and end_time (exclusive).", +"id": "TimeRange", +"properties": { +"endTime": { +"description": "End time of the range of transfer runs. For example, `\"2017-05-30T00:00:00+00:00\"`. The end_time must not be in the future. Creates transfer runs where run_time is in the range between start_time (inclusive) and end_time (exclusive).", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Start time of the range of transfer runs. For example, `\"2017-05-25T00:00:00+00:00\"`. The start_time must be strictly less than the end_time. Creates transfer runs where run_time is in the range between start_time (inclusive) and end_time (exclusive).", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"TransferConfig": { +"description": "Represents a data transfer configuration. A transfer configuration contains all metadata needed to perform a data transfer. For example, `destination_dataset_id` specifies where data should be stored. When a new transfer configuration is created, the specified `destination_dataset_id` is created when needed and shared with the appropriate data source service account.", +"id": "TransferConfig", +"properties": { +"dataRefreshWindowDays": { +"description": "The number of days to look back to automatically refresh the data. For example, if `data_refresh_window_days = 10`, then every day BigQuery reingests data for [today-10, today-1], rather than ingesting data for just [today-1]. Only valid if the data source supports the feature. Set the value to 0 to use the default value.", +"format": "int32", +"type": "integer" +}, +"dataSourceId": { +"description": "Data source ID. This cannot be changed once data transfer is created. The full list of available data source IDs can be returned through an API call: https://cloud.google.com/bigquery-transfer/docs/reference/datatransfer/rest/v1/projects.locations.dataSources/list", +"type": "string" +}, +"datasetRegion": { +"description": "Output only. Region in which BigQuery dataset is located.", +"readOnly": true, +"type": "string" +}, +"destinationDatasetId": { +"description": "The BigQuery target dataset id.", +"type": "string" +}, +"disabled": { +"description": "Is this config disabled. When set to true, no runs will be scheduled for this transfer config.", +"type": "boolean" +}, +"displayName": { +"description": "User specified display name for the data transfer.", +"type": "string" +}, +"emailPreferences": { +"$ref": "EmailPreferences", +"description": "Email notifications will be sent according to these preferences to the email address of the user who owns this transfer config." +}, +"encryptionConfiguration": { +"$ref": "EncryptionConfiguration", +"description": "The encryption configuration part. Currently, it is only used for the optional KMS key name. The BigQuery service account of your project must be granted permissions to use the key. Read methods will return the key name applied in effect. Write methods will apply the key if it is present, or otherwise try to apply project default keys if it is absent." +}, +"error": { +"$ref": "Status", +"description": "Output only. Error code with detailed information about reason of the latest config failure.", +"readOnly": true +}, +"name": { +"description": "Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", +"type": "string" +}, +"nextRunTime": { +"description": "Output only. Next time when data transfer will run.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"notificationPubsubTopic": { +"description": "Pub/Sub topic where notifications will be sent after transfer runs associated with this transfer config finish. The format for specifying a pubsub topic is: `projects/{project_id}/topics/{topic_id}`", +"type": "string" +}, +"ownerInfo": { +"$ref": "UserInfo", +"description": "Output only. Information about the user whose credentials are used to transfer data. Populated only for `transferConfigs.get` requests. In case the user information is not available, this field will not be populated.", +"readOnly": true +}, +"params": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Parameters specific to each data source. For more information see the bq tab in the 'Setting up a data transfer' section for each data source. For example the parameters for Cloud Storage transfers are listed here: https://cloud.google.com/bigquery-transfer/docs/cloud-storage-transfer#bq", +"type": "object" +}, +"schedule": { +"description": "Data transfer schedule. If the data source does not support a custom schedule, this should be empty. If it is empty, the default value for the data source will be used. The specified times are in UTC. Examples of valid format: `1st,3rd monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first sunday of quarter 00:00`. See more explanation about the format here: https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format NOTE: The minimum interval time between recurring transfers depends on the data source; refer to the documentation for your data source.", +"type": "string" +}, +"scheduleOptions": { +"$ref": "ScheduleOptions", +"description": "Options customizing the data transfer schedule." +}, +"scheduleOptionsV2": { +"$ref": "ScheduleOptionsV2", +"description": "Options customizing different types of data transfer schedule. This field replaces \"schedule\" and \"schedule_options\" fields. ScheduleOptionsV2 cannot be used together with ScheduleOptions/Schedule." +}, +"state": { +"description": "Output only. State of the most recently updated transfer run.", +"enum": [ +"TRANSFER_STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"State placeholder (0).", +"Data transfer is scheduled and is waiting to be picked up by data transfer backend (2).", +"Data transfer is in progress (3).", +"Data transfer completed successfully (4).", +"Data transfer failed (5).", +"Data transfer is cancelled (6)." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Data transfer modification time. Ignored by server on input.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"userId": { +"description": "Deprecated. Unique ID of the user on whose behalf transfer is done.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"TransferMessage": { +"description": "Represents a user facing message for a particular data transfer run.", +"id": "TransferMessage", +"properties": { +"messageText": { +"description": "Message text.", +"type": "string" +}, +"messageTime": { +"description": "Time when message was logged.", +"format": "google-datetime", +"type": "string" +}, +"severity": { +"description": "Message severity.", +"enum": [ +"MESSAGE_SEVERITY_UNSPECIFIED", +"INFO", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"No severity specified.", +"Informational message.", +"Warning message.", +"Error message." +], +"type": "string" +} +}, +"type": "object" +}, +"TransferRun": { +"description": "Represents a data transfer run.", +"id": "TransferRun", +"properties": { +"dataSourceId": { +"description": "Output only. Data source id.", +"readOnly": true, +"type": "string" +}, +"destinationDatasetId": { +"description": "Output only. The BigQuery target dataset id.", +"readOnly": true, +"type": "string" +}, +"emailPreferences": { +"$ref": "EmailPreferences", +"description": "Output only. Email notifications will be sent according to these preferences to the email address of the user who owns the transfer config this run was derived from.", +"readOnly": true +}, +"endTime": { +"description": "Output only. Time when transfer run ended. Parameter ignored by server for input requests.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"errorStatus": { +"$ref": "Status", +"description": "Status of the transfer run." +}, +"name": { +"description": "Identifier. The resource name of the transfer run. Transfer run names have the form `projects/{project_id}/locations/{location}/transferConfigs/{config_id}/runs/{run_id}`. The name is ignored when creating a transfer run.", +"type": "string" +}, +"notificationPubsubTopic": { +"description": "Output only. Pub/Sub topic where a notification will be sent after this transfer run finishes. The format for specifying a pubsub topic is: `projects/{project_id}/topics/{topic_id}`", +"readOnly": true, +"type": "string" +}, +"params": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Output only. Parameters specific to each data source. For more information see the bq tab in the 'Setting up a data transfer' section for each data source. For example the parameters for Cloud Storage transfers are listed here: https://cloud.google.com/bigquery-transfer/docs/cloud-storage-transfer#bq", +"readOnly": true, +"type": "object" +}, +"runTime": { +"description": "For batch transfer runs, specifies the date and time of the data should be ingested.", +"format": "google-datetime", +"type": "string" +}, +"schedule": { +"description": "Output only. Describes the schedule of this transfer run if it was created as part of a regular schedule. For batch transfer runs that are scheduled manually, this is empty. NOTE: the system might choose to delay the schedule depending on the current load, so `schedule_time` doesn't always match this.", +"readOnly": true, +"type": "string" +}, +"scheduleTime": { +"description": "Minimum time after which a transfer run can be started.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Output only. Time when transfer run was started. Parameter ignored by server for input requests.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Data transfer run state. Ignored for input requests.", +"enum": [ +"TRANSFER_STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"State placeholder (0).", +"Data transfer is scheduled and is waiting to be picked up by data transfer backend (2).", +"Data transfer is in progress (3).", +"Data transfer completed successfully (4).", +"Data transfer failed (5).", +"Data transfer is cancelled (6)." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. Last time the data transfer run state was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"userId": { +"description": "Deprecated. Unique ID of the user on whose behalf transfer is done.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"UnenrollDataSourcesRequest": { +"description": "A request to unenroll a set of data sources so they are no longer visible in the BigQuery UI's `Transfer` tab.", +"id": "UnenrollDataSourcesRequest", +"properties": { +"dataSourceIds": { +"description": "Data sources that are unenrolled. It is required to provide at least one data source id.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UserInfo": { +"description": "Information about a user.", +"id": "UserInfo", +"properties": { +"email": { +"description": "E-mail address of the user.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "BigQuery Data Transfer API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/calendar.v3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/calendar.v3.json new file mode 100644 index 0000000000000000000000000000000000000000..7ae9da61737829e247f370f04589a0fd624c0b9e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/calendar.v3.json @@ -0,0 +1,3147 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/calendar": { +"description": "See, edit, share, and permanently delete all the calendars you can access using Google Calendar" +}, +"https://www.googleapis.com/auth/calendar.events": { +"description": "View and edit events on all your calendars" +}, +"https://www.googleapis.com/auth/calendar.events.readonly": { +"description": "View events on all your calendars" +}, +"https://www.googleapis.com/auth/calendar.readonly": { +"description": "See and download any calendar you can access using your Google Calendar" +}, +"https://www.googleapis.com/auth/calendar.settings.readonly": { +"description": "View your Calendar settings" +} +} +} +}, +"basePath": "/calendar/v3/", +"baseUrl": "https://www.googleapis.com/calendar/v3/", +"batchPath": "batch/calendar/v3", +"description": "Manipulates events and other calendar data.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/google-apps/calendar/firstapp", +"icons": { +"x16": "http://fonts.gstatic.com/s/i/productlogos/calendar_2020q4/v8/web-16dp/logo_calendar_2020q4_color_1x_web_16dp.png", +"x32": "http://fonts.gstatic.com/s/i/productlogos/calendar_2020q4/v8/web-32dp/logo_calendar_2020q4_color_1x_web_32dp.png" +}, +"id": "calendar:v3", +"kind": "discovery#restDescription", +"name": "calendar", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"alt": { +"default": "json", +"description": "Data format for the response.", +"enum": [ +"json" +], +"enumDescriptions": [ +"Responses with Content-Type of application/json" +], +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.", +"location": "query", +"type": "string" +}, +"userIp": { +"description": "Deprecated. Please use quotaUser instead.", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"acl": { +"methods": { +"delete": { +"description": "Deletes an access control rule.", +"httpMethod": "DELETE", +"id": "calendar.acl.delete", +"parameterOrder": [ +"calendarId", +"ruleId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"ruleId": { +"description": "ACL rule identifier.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "calendars/{calendarId}/acl/{ruleId}", +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"get": { +"description": "Returns an access control rule.", +"httpMethod": "GET", +"id": "calendar.acl.get", +"parameterOrder": [ +"calendarId", +"ruleId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"ruleId": { +"description": "ACL rule identifier.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "calendars/{calendarId}/acl/{ruleId}", +"response": { +"$ref": "AclRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly" +] +}, +"insert": { +"description": "Creates an access control rule.", +"httpMethod": "POST", +"id": "calendar.acl.insert", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"sendNotifications": { +"description": "Whether to send notifications about the calendar sharing change. Optional. The default is True.", +"location": "query", +"type": "boolean" +} +}, +"path": "calendars/{calendarId}/acl", +"request": { +"$ref": "AclRule" +}, +"response": { +"$ref": "AclRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"list": { +"description": "Returns the rules in the access control list for the calendar.", +"httpMethod": "GET", +"id": "calendar.acl.list", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"pageToken": { +"description": "Token specifying which result page to return. Optional.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provided. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"syncToken": { +"description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All entries deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", +"location": "query", +"type": "string" +} +}, +"path": "calendars/{calendarId}/acl", +"response": { +"$ref": "Acl" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +], +"supportsSubscription": true +}, +"patch": { +"description": "Updates an access control rule. This method supports patch semantics.", +"httpMethod": "PATCH", +"id": "calendar.acl.patch", +"parameterOrder": [ +"calendarId", +"ruleId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"ruleId": { +"description": "ACL rule identifier.", +"location": "path", +"required": true, +"type": "string" +}, +"sendNotifications": { +"description": "Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.", +"location": "query", +"type": "boolean" +} +}, +"path": "calendars/{calendarId}/acl/{ruleId}", +"request": { +"$ref": "AclRule" +}, +"response": { +"$ref": "AclRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"update": { +"description": "Updates an access control rule.", +"httpMethod": "PUT", +"id": "calendar.acl.update", +"parameterOrder": [ +"calendarId", +"ruleId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"ruleId": { +"description": "ACL rule identifier.", +"location": "path", +"required": true, +"type": "string" +}, +"sendNotifications": { +"description": "Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.", +"location": "query", +"type": "boolean" +} +}, +"path": "calendars/{calendarId}/acl/{ruleId}", +"request": { +"$ref": "AclRule" +}, +"response": { +"$ref": "AclRule" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"watch": { +"description": "Watch for changes to ACL resources.", +"httpMethod": "POST", +"id": "calendar.acl.watch", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"pageToken": { +"description": "Token specifying which result page to return. Optional.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provided. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"syncToken": { +"description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All entries deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", +"location": "query", +"type": "string" +} +}, +"path": "calendars/{calendarId}/acl/watch", +"request": { +"$ref": "Channel", +"parameterName": "resource" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +], +"supportsSubscription": true +} +} +}, +"calendarList": { +"methods": { +"delete": { +"description": "Removes a calendar from the user's calendar list.", +"httpMethod": "DELETE", +"id": "calendar.calendarList.delete", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "users/me/calendarList/{calendarId}", +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"get": { +"description": "Returns a calendar from the user's calendar list.", +"httpMethod": "GET", +"id": "calendar.calendarList.get", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "users/me/calendarList/{calendarId}", +"response": { +"$ref": "CalendarListEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly" +] +}, +"insert": { +"description": "Inserts an existing calendar into the user's calendar list.", +"httpMethod": "POST", +"id": "calendar.calendarList.insert", +"parameters": { +"colorRgbFormat": { +"description": "Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.", +"location": "query", +"type": "boolean" +} +}, +"path": "users/me/calendarList", +"request": { +"$ref": "CalendarListEntry" +}, +"response": { +"$ref": "CalendarListEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"list": { +"description": "Returns the calendars on the user's calendar list.", +"httpMethod": "GET", +"id": "calendar.calendarList.list", +"parameters": { +"maxResults": { +"description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"minAccessRole": { +"description": "The minimum access role for the user in the returned entries. Optional. The default is no restriction.", +"enum": [ +"freeBusyReader", +"owner", +"reader", +"writer" +], +"enumDescriptions": [ +"The user can read free/busy information.", +"The user can read and modify events and access control lists.", +"The user can read events that are not private.", +"The user can read and modify events." +], +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Token specifying which result page to return. Optional.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Whether to include deleted calendar list entries in the result. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"showHidden": { +"description": "Whether to show hidden entries. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"syncToken": { +"description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If only read-only fields such as calendar properties or ACLs have changed, the entry won't be returned. All entries deleted and hidden since the previous list request will always be in the result set and it is not allowed to set showDeleted neither showHidden to False.\nTo ensure client state consistency minAccessRole query parameter cannot be specified together with nextSyncToken.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", +"location": "query", +"type": "string" +} +}, +"path": "users/me/calendarList", +"response": { +"$ref": "CalendarList" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly" +], +"supportsSubscription": true +}, +"patch": { +"description": "Updates an existing calendar on the user's calendar list. This method supports patch semantics.", +"httpMethod": "PATCH", +"id": "calendar.calendarList.patch", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"colorRgbFormat": { +"description": "Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.", +"location": "query", +"type": "boolean" +} +}, +"path": "users/me/calendarList/{calendarId}", +"request": { +"$ref": "CalendarListEntry" +}, +"response": { +"$ref": "CalendarListEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"update": { +"description": "Updates an existing calendar on the user's calendar list.", +"httpMethod": "PUT", +"id": "calendar.calendarList.update", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"colorRgbFormat": { +"description": "Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.", +"location": "query", +"type": "boolean" +} +}, +"path": "users/me/calendarList/{calendarId}", +"request": { +"$ref": "CalendarListEntry" +}, +"response": { +"$ref": "CalendarListEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"watch": { +"description": "Watch for changes to CalendarList resources.", +"httpMethod": "POST", +"id": "calendar.calendarList.watch", +"parameters": { +"maxResults": { +"description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"minAccessRole": { +"description": "The minimum access role for the user in the returned entries. Optional. The default is no restriction.", +"enum": [ +"freeBusyReader", +"owner", +"reader", +"writer" +], +"enumDescriptions": [ +"The user can read free/busy information.", +"The user can read and modify events and access control lists.", +"The user can read events that are not private.", +"The user can read and modify events." +], +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Token specifying which result page to return. Optional.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Whether to include deleted calendar list entries in the result. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"showHidden": { +"description": "Whether to show hidden entries. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"syncToken": { +"description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If only read-only fields such as calendar properties or ACLs have changed, the entry won't be returned. All entries deleted and hidden since the previous list request will always be in the result set and it is not allowed to set showDeleted neither showHidden to False.\nTo ensure client state consistency minAccessRole query parameter cannot be specified together with nextSyncToken.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", +"location": "query", +"type": "string" +} +}, +"path": "users/me/calendarList/watch", +"request": { +"$ref": "Channel", +"parameterName": "resource" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly" +], +"supportsSubscription": true +} +} +}, +"calendars": { +"methods": { +"clear": { +"description": "Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.", +"httpMethod": "POST", +"id": "calendar.calendars.clear", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "calendars/{calendarId}/clear", +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"delete": { +"description": "Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars.", +"httpMethod": "DELETE", +"id": "calendar.calendars.delete", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "calendars/{calendarId}", +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"get": { +"description": "Returns metadata for a calendar.", +"httpMethod": "GET", +"id": "calendar.calendars.get", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "calendars/{calendarId}", +"response": { +"$ref": "Calendar" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly" +] +}, +"insert": { +"description": "Creates a secondary calendar.", +"httpMethod": "POST", +"id": "calendar.calendars.insert", +"path": "calendars", +"request": { +"$ref": "Calendar" +}, +"response": { +"$ref": "Calendar" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"patch": { +"description": "Updates metadata for a calendar. This method supports patch semantics.", +"httpMethod": "PATCH", +"id": "calendar.calendars.patch", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "calendars/{calendarId}", +"request": { +"$ref": "Calendar" +}, +"response": { +"$ref": "Calendar" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +}, +"update": { +"description": "Updates metadata for a calendar.", +"httpMethod": "PUT", +"id": "calendar.calendars.update", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "calendars/{calendarId}", +"request": { +"$ref": "Calendar" +}, +"response": { +"$ref": "Calendar" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar" +] +} +} +}, +"channels": { +"methods": { +"stop": { +"description": "Stop watching resources through this channel", +"httpMethod": "POST", +"id": "calendar.channels.stop", +"path": "channels/stop", +"request": { +"$ref": "Channel", +"parameterName": "resource" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events", +"https://www.googleapis.com/auth/calendar.events.readonly", +"https://www.googleapis.com/auth/calendar.readonly", +"https://www.googleapis.com/auth/calendar.settings.readonly" +] +} +} +}, +"colors": { +"methods": { +"get": { +"description": "Returns the color definitions for calendars and events.", +"httpMethod": "GET", +"id": "calendar.colors.get", +"path": "colors", +"response": { +"$ref": "Colors" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly" +] +} +} +}, +"events": { +"methods": { +"delete": { +"description": "Deletes an event.", +"httpMethod": "DELETE", +"id": "calendar.events.delete", +"parameterOrder": [ +"calendarId", +"eventId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"eventId": { +"description": "Event identifier.", +"location": "path", +"required": true, +"type": "string" +}, +"sendNotifications": { +"description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the deletion of the event. Note that some emails might still be sent even if you set the value to false. The default is false.", +"location": "query", +"type": "boolean" +}, +"sendUpdates": { +"description": "Guests who should receive notifications about the deletion of the event.", +"enum": [ +"all", +"externalOnly", +"none" +], +"enumDescriptions": [ +"Notifications are sent to all guests.", +"Notifications are sent to non-Google Calendar guests only.", +"No notifications are sent. For calendar migration tasks, consider using the Events.import method instead." +], +"location": "query", +"type": "string" +} +}, +"path": "calendars/{calendarId}/events/{eventId}", +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events" +] +}, +"get": { +"description": "Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter.", +"httpMethod": "GET", +"id": "calendar.events.get", +"parameterOrder": [ +"calendarId", +"eventId" +], +"parameters": { +"alwaysIncludeEmail": { +"description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).", +"location": "query", +"type": "boolean" +}, +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"eventId": { +"description": "Event identifier.", +"location": "path", +"required": true, +"type": "string" +}, +"maxAttendees": { +"description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"timeZone": { +"description": "Time zone used in the response. Optional. The default is the time zone of the calendar.", +"location": "query", +"type": "string" +} +}, +"path": "calendars/{calendarId}/events/{eventId}", +"response": { +"$ref": "Event" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events", +"https://www.googleapis.com/auth/calendar.events.readonly", +"https://www.googleapis.com/auth/calendar.readonly" +] +}, +"import": { +"description": "Imports an event. This operation is used to add a private copy of an existing event to a calendar. Only events with an eventType of default may be imported.\nDeprecated behavior: If a non-default event is imported, its type will be changed to default and any event-type-specific properties it may have will be dropped.", +"httpMethod": "POST", +"id": "calendar.events.import", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"conferenceDataVersion": { +"description": "Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.", +"format": "int32", +"location": "query", +"maximum": "1", +"minimum": "0", +"type": "integer" +}, +"supportsAttachments": { +"description": "Whether API client performing operation supports event attachments. Optional. The default is False.", +"location": "query", +"type": "boolean" +} +}, +"path": "calendars/{calendarId}/events/import", +"request": { +"$ref": "Event" +}, +"response": { +"$ref": "Event" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events" +] +}, +"insert": { +"description": "Creates an event.", +"httpMethod": "POST", +"id": "calendar.events.insert", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"conferenceDataVersion": { +"description": "Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.", +"format": "int32", +"location": "query", +"maximum": "1", +"minimum": "0", +"type": "integer" +}, +"maxAttendees": { +"description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"sendNotifications": { +"description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the creation of the new event. Note that some emails might still be sent even if you set the value to false. The default is false.", +"location": "query", +"type": "boolean" +}, +"sendUpdates": { +"description": "Whether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is false.", +"enum": [ +"all", +"externalOnly", +"none" +], +"enumDescriptions": [ +"Notifications are sent to all guests.", +"Notifications are sent to non-Google Calendar guests only.", +"No notifications are sent. Warning: Using the value none can have significant adverse effects, including events not syncing to external calendars or events being lost altogether for some users. For calendar migration tasks, consider using the events.import method instead." +], +"location": "query", +"type": "string" +}, +"supportsAttachments": { +"description": "Whether API client performing operation supports event attachments. Optional. The default is False.", +"location": "query", +"type": "boolean" +} +}, +"path": "calendars/{calendarId}/events", +"request": { +"$ref": "Event" +}, +"response": { +"$ref": "Event" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events" +] +}, +"instances": { +"description": "Returns instances of the specified recurring event.", +"httpMethod": "GET", +"id": "calendar.events.instances", +"parameterOrder": [ +"calendarId", +"eventId" +], +"parameters": { +"alwaysIncludeEmail": { +"description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).", +"location": "query", +"type": "boolean" +}, +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"eventId": { +"description": "Recurring event identifier.", +"location": "path", +"required": true, +"type": "string" +}, +"maxAttendees": { +"description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"maxResults": { +"description": "Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"originalStart": { +"description": "The original start time of the instance in the result. Optional.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Token specifying which result page to return. Optional.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events will still be included if singleEvents is False. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"timeMax": { +"description": "Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset.", +"format": "date-time", +"location": "query", +"type": "string" +}, +"timeMin": { +"description": "Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset.", +"format": "date-time", +"location": "query", +"type": "string" +}, +"timeZone": { +"description": "Time zone used in the response. Optional. The default is the time zone of the calendar.", +"location": "query", +"type": "string" +} +}, +"path": "calendars/{calendarId}/events/{eventId}/instances", +"response": { +"$ref": "Events" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events", +"https://www.googleapis.com/auth/calendar.events.readonly", +"https://www.googleapis.com/auth/calendar.readonly" +], +"supportsSubscription": true +}, +"list": { +"description": "Returns events on the specified calendar.", +"httpMethod": "GET", +"id": "calendar.events.list", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"alwaysIncludeEmail": { +"description": "Deprecated and ignored.", +"location": "query", +"type": "boolean" +}, +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"eventTypes": { +"description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.", +"enum": [ +"birthday", +"default", +"focusTime", +"fromGmail", +"outOfOffice", +"workingLocation" +], +"enumDescriptions": [ +"Special all-day events with an annual recurrence.", +"Regular events.", +"Focus time events.", +"Events from Gmail.", +"Out of office events.", +"Working location events." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"iCalUID": { +"description": "Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID.", +"location": "query", +"type": "string" +}, +"maxAttendees": { +"description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"maxResults": { +"default": "250", +"description": "Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"orderBy": { +"description": "The order of the events returned in the result. Optional. The default is an unspecified, stable order.", +"enum": [ +"startTime", +"updated" +], +"enumDescriptions": [ +"Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True)", +"Order by last modification time (ascending)." +], +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Token specifying which result page to return. Optional.", +"location": "query", +"type": "string" +}, +"privateExtendedProperty": { +"description": "Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints.", +"location": "query", +"repeated": true, +"type": "string" +}, +"q": { +"description": "Free text search terms to find events that match these terms in the following fields:\n\n- summary \n- description \n- location \n- attendee's displayName \n- attendee's email \n- organizer's displayName \n- organizer's email \n- workingLocationProperties.officeLocation.buildingId \n- workingLocationProperties.officeLocation.deskId \n- workingLocationProperties.officeLocation.label \n- workingLocationProperties.customLocation.label \nThese search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.", +"location": "query", +"type": "string" +}, +"sharedExtendedProperty": { +"description": "Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints.", +"location": "query", +"repeated": true, +"type": "string" +}, +"showDeleted": { +"description": "Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"showHiddenInvitations": { +"description": "Whether to include hidden invitations in the result. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"singleEvents": { +"description": "Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"syncToken": { +"description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin All other query parameters should be the same as for the initial synchronization to avoid undefined behavior. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", +"location": "query", +"type": "string" +}, +"timeMax": { +"description": "Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMin is set, timeMax must be greater than timeMin.", +"format": "date-time", +"location": "query", +"type": "string" +}, +"timeMin": { +"description": "Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMax is set, timeMin must be smaller than timeMax.", +"format": "date-time", +"location": "query", +"type": "string" +}, +"timeZone": { +"description": "Time zone used in the response. Optional. The default is the time zone of the calendar.", +"location": "query", +"type": "string" +}, +"updatedMin": { +"description": "Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted. Optional. The default is not to filter by last modification time.", +"format": "date-time", +"location": "query", +"type": "string" +} +}, +"path": "calendars/{calendarId}/events", +"response": { +"$ref": "Events" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events", +"https://www.googleapis.com/auth/calendar.events.readonly", +"https://www.googleapis.com/auth/calendar.readonly" +], +"supportsSubscription": true +}, +"move": { +"description": "Moves an event to another calendar, i.e. changes an event's organizer. Note that only default events can be moved; birthday, focusTime, fromGmail, outOfOffice and workingLocation events cannot be moved.", +"httpMethod": "POST", +"id": "calendar.events.move", +"parameterOrder": [ +"calendarId", +"eventId", +"destination" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier of the source calendar where the event currently is on.", +"location": "path", +"required": true, +"type": "string" +}, +"destination": { +"description": "Calendar identifier of the target calendar where the event is to be moved to.", +"location": "query", +"required": true, +"type": "string" +}, +"eventId": { +"description": "Event identifier.", +"location": "path", +"required": true, +"type": "string" +}, +"sendNotifications": { +"description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the change of the event's organizer. Note that some emails might still be sent even if you set the value to false. The default is false.", +"location": "query", +"type": "boolean" +}, +"sendUpdates": { +"description": "Guests who should receive notifications about the change of the event's organizer.", +"enum": [ +"all", +"externalOnly", +"none" +], +"enumDescriptions": [ +"Notifications are sent to all guests.", +"Notifications are sent to non-Google Calendar guests only.", +"No notifications are sent. For calendar migration tasks, consider using the Events.import method instead." +], +"location": "query", +"type": "string" +} +}, +"path": "calendars/{calendarId}/events/{eventId}/move", +"response": { +"$ref": "Event" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events" +] +}, +"patch": { +"description": "Updates an event. This method supports patch semantics.", +"httpMethod": "PATCH", +"id": "calendar.events.patch", +"parameterOrder": [ +"calendarId", +"eventId" +], +"parameters": { +"alwaysIncludeEmail": { +"description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).", +"location": "query", +"type": "boolean" +}, +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"conferenceDataVersion": { +"description": "Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.", +"format": "int32", +"location": "query", +"maximum": "1", +"minimum": "0", +"type": "integer" +}, +"eventId": { +"description": "Event identifier.", +"location": "path", +"required": true, +"type": "string" +}, +"maxAttendees": { +"description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"sendNotifications": { +"description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the event update (for example, description changes, etc.). Note that some emails might still be sent even if you set the value to false. The default is false.", +"location": "query", +"type": "boolean" +}, +"sendUpdates": { +"description": "Guests who should receive notifications about the event update (for example, title changes, etc.).", +"enum": [ +"all", +"externalOnly", +"none" +], +"enumDescriptions": [ +"Notifications are sent to all guests.", +"Notifications are sent to non-Google Calendar guests only.", +"No notifications are sent. For calendar migration tasks, consider using the Events.import method instead." +], +"location": "query", +"type": "string" +}, +"supportsAttachments": { +"description": "Whether API client performing operation supports event attachments. Optional. The default is False.", +"location": "query", +"type": "boolean" +} +}, +"path": "calendars/{calendarId}/events/{eventId}", +"request": { +"$ref": "Event" +}, +"response": { +"$ref": "Event" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events" +] +}, +"quickAdd": { +"description": "Creates an event based on a simple text string.", +"httpMethod": "POST", +"id": "calendar.events.quickAdd", +"parameterOrder": [ +"calendarId", +"text" +], +"parameters": { +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"sendNotifications": { +"description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the creation of the event. Note that some emails might still be sent even if you set the value to false. The default is false.", +"location": "query", +"type": "boolean" +}, +"sendUpdates": { +"description": "Guests who should receive notifications about the creation of the new event.", +"enum": [ +"all", +"externalOnly", +"none" +], +"enumDescriptions": [ +"Notifications are sent to all guests.", +"Notifications are sent to non-Google Calendar guests only.", +"No notifications are sent. For calendar migration tasks, consider using the Events.import method instead." +], +"location": "query", +"type": "string" +}, +"text": { +"description": "The text describing the event to be created.", +"location": "query", +"required": true, +"type": "string" +} +}, +"path": "calendars/{calendarId}/events/quickAdd", +"response": { +"$ref": "Event" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events" +] +}, +"update": { +"description": "Updates an event.", +"httpMethod": "PUT", +"id": "calendar.events.update", +"parameterOrder": [ +"calendarId", +"eventId" +], +"parameters": { +"alwaysIncludeEmail": { +"description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).", +"location": "query", +"type": "boolean" +}, +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"conferenceDataVersion": { +"description": "Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.", +"format": "int32", +"location": "query", +"maximum": "1", +"minimum": "0", +"type": "integer" +}, +"eventId": { +"description": "Event identifier.", +"location": "path", +"required": true, +"type": "string" +}, +"maxAttendees": { +"description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"sendNotifications": { +"description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the event update (for example, description changes, etc.). Note that some emails might still be sent even if you set the value to false. The default is false.", +"location": "query", +"type": "boolean" +}, +"sendUpdates": { +"description": "Guests who should receive notifications about the event update (for example, title changes, etc.).", +"enum": [ +"all", +"externalOnly", +"none" +], +"enumDescriptions": [ +"Notifications are sent to all guests.", +"Notifications are sent to non-Google Calendar guests only.", +"No notifications are sent. For calendar migration tasks, consider using the Events.import method instead." +], +"location": "query", +"type": "string" +}, +"supportsAttachments": { +"description": "Whether API client performing operation supports event attachments. Optional. The default is False.", +"location": "query", +"type": "boolean" +} +}, +"path": "calendars/{calendarId}/events/{eventId}", +"request": { +"$ref": "Event" +}, +"response": { +"$ref": "Event" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events" +] +}, +"watch": { +"description": "Watch for changes to Events resources.", +"httpMethod": "POST", +"id": "calendar.events.watch", +"parameterOrder": [ +"calendarId" +], +"parameters": { +"alwaysIncludeEmail": { +"description": "Deprecated and ignored.", +"location": "query", +"type": "boolean" +}, +"calendarId": { +"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", +"location": "path", +"required": true, +"type": "string" +}, +"eventTypes": { +"description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.", +"enum": [ +"birthday", +"default", +"focusTime", +"fromGmail", +"outOfOffice", +"workingLocation" +], +"enumDescriptions": [ +"Special all-day events with an annual recurrence.", +"Regular events.", +"Focus time events.", +"Events from Gmail.", +"Out of office events.", +"Working location events." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"iCalUID": { +"description": "Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID.", +"location": "query", +"type": "string" +}, +"maxAttendees": { +"description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"maxResults": { +"default": "250", +"description": "Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"orderBy": { +"description": "The order of the events returned in the result. Optional. The default is an unspecified, stable order.", +"enum": [ +"startTime", +"updated" +], +"enumDescriptions": [ +"Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True)", +"Order by last modification time (ascending)." +], +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Token specifying which result page to return. Optional.", +"location": "query", +"type": "string" +}, +"privateExtendedProperty": { +"description": "Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints.", +"location": "query", +"repeated": true, +"type": "string" +}, +"q": { +"description": "Free text search terms to find events that match these terms in the following fields:\n\n- summary \n- description \n- location \n- attendee's displayName \n- attendee's email \n- organizer's displayName \n- organizer's email \n- workingLocationProperties.officeLocation.buildingId \n- workingLocationProperties.officeLocation.deskId \n- workingLocationProperties.officeLocation.label \n- workingLocationProperties.customLocation.label \nThese search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.", +"location": "query", +"type": "string" +}, +"sharedExtendedProperty": { +"description": "Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints.", +"location": "query", +"repeated": true, +"type": "string" +}, +"showDeleted": { +"description": "Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"showHiddenInvitations": { +"description": "Whether to include hidden invitations in the result. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"singleEvents": { +"description": "Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.", +"location": "query", +"type": "boolean" +}, +"syncToken": { +"description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin All other query parameters should be the same as for the initial synchronization to avoid undefined behavior. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", +"location": "query", +"type": "string" +}, +"timeMax": { +"description": "Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMin is set, timeMax must be greater than timeMin.", +"format": "date-time", +"location": "query", +"type": "string" +}, +"timeMin": { +"description": "Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMax is set, timeMin must be smaller than timeMax.", +"format": "date-time", +"location": "query", +"type": "string" +}, +"timeZone": { +"description": "Time zone used in the response. Optional. The default is the time zone of the calendar.", +"location": "query", +"type": "string" +}, +"updatedMin": { +"description": "Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted. Optional. The default is not to filter by last modification time.", +"format": "date-time", +"location": "query", +"type": "string" +} +}, +"path": "calendars/{calendarId}/events/watch", +"request": { +"$ref": "Channel", +"parameterName": "resource" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.events", +"https://www.googleapis.com/auth/calendar.events.readonly", +"https://www.googleapis.com/auth/calendar.readonly" +], +"supportsSubscription": true +} +} +}, +"freebusy": { +"methods": { +"query": { +"description": "Returns free/busy information for a set of calendars.", +"httpMethod": "POST", +"id": "calendar.freebusy.query", +"path": "freeBusy", +"request": { +"$ref": "FreeBusyRequest" +}, +"response": { +"$ref": "FreeBusyResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly" +] +} +} +}, +"settings": { +"methods": { +"get": { +"description": "Returns a single user setting.", +"httpMethod": "GET", +"id": "calendar.settings.get", +"parameterOrder": [ +"setting" +], +"parameters": { +"setting": { +"description": "The id of the user setting.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "users/me/settings/{setting}", +"response": { +"$ref": "Setting" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly", +"https://www.googleapis.com/auth/calendar.settings.readonly" +] +}, +"list": { +"description": "Returns all user settings for the authenticated user.", +"httpMethod": "GET", +"id": "calendar.settings.list", +"parameters": { +"maxResults": { +"description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"pageToken": { +"description": "Token specifying which result page to return. Optional.", +"location": "query", +"type": "string" +}, +"syncToken": { +"description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", +"location": "query", +"type": "string" +} +}, +"path": "users/me/settings", +"response": { +"$ref": "Settings" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly", +"https://www.googleapis.com/auth/calendar.settings.readonly" +], +"supportsSubscription": true +}, +"watch": { +"description": "Watch for changes to Settings resources.", +"httpMethod": "POST", +"id": "calendar.settings.watch", +"parameters": { +"maxResults": { +"description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", +"format": "int32", +"location": "query", +"minimum": "1", +"type": "integer" +}, +"pageToken": { +"description": "Token specifying which result page to return. Optional.", +"location": "query", +"type": "string" +}, +"syncToken": { +"description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", +"location": "query", +"type": "string" +} +}, +"path": "users/me/settings/watch", +"request": { +"$ref": "Channel", +"parameterName": "resource" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/calendar", +"https://www.googleapis.com/auth/calendar.readonly", +"https://www.googleapis.com/auth/calendar.settings.readonly" +], +"supportsSubscription": true +} +} +} +}, +"revision": "20241101", +"rootUrl": "https://www.googleapis.com/", +"schemas": { +"Acl": { +"id": "Acl", +"properties": { +"etag": { +"description": "ETag of the collection.", +"type": "string" +}, +"items": { +"description": "List of rules on the access control list.", +"items": { +"$ref": "AclRule" +}, +"type": "array" +}, +"kind": { +"default": "calendar#acl", +"description": "Type of the collection (\"calendar#acl\").", +"type": "string" +}, +"nextPageToken": { +"description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.", +"type": "string" +}, +"nextSyncToken": { +"description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.", +"type": "string" +} +}, +"type": "object" +}, +"AclRule": { +"id": "AclRule", +"properties": { +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"id": { +"description": "Identifier of the Access Control List (ACL) rule. See Sharing calendars.", +"type": "string" +}, +"kind": { +"default": "calendar#aclRule", +"description": "Type of the resource (\"calendar#aclRule\").", +"type": "string" +}, +"role": { +"annotations": { +"required": [ +"calendar.acl.insert" +] +}, +"description": "The role assigned to the scope. Possible values are: \n- \"none\" - Provides no access. \n- \"freeBusyReader\" - Provides read access to free/busy information. \n- \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.", +"type": "string" +}, +"scope": { +"annotations": { +"required": [ +"calendar.acl.insert", +"calendar.acl.update" +] +}, +"description": "The extent to which calendar access is granted by this ACL rule.", +"properties": { +"type": { +"annotations": { +"required": [ +"calendar.acl.insert", +"calendar.acl.update" +] +}, +"description": "The type of the scope. Possible values are: \n- \"default\" - The public scope. This is the default value. \n- \"user\" - Limits the scope to a single user. \n- \"group\" - Limits the scope to a group. \n- \"domain\" - Limits the scope to a domain. Note: The permissions granted to the \"default\", or public, scope apply to any user, authenticated or not.", +"type": "string" +}, +"value": { +"description": "The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type \"default\".", +"type": "string" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"Calendar": { +"id": "Calendar", +"properties": { +"conferenceProperties": { +"$ref": "ConferenceProperties", +"description": "Conferencing properties for this calendar, for example what types of conferences are allowed." +}, +"description": { +"description": "Description of the calendar. Optional.", +"type": "string" +}, +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"id": { +"description": "Identifier of the calendar. To retrieve IDs call the calendarList.list() method.", +"type": "string" +}, +"kind": { +"default": "calendar#calendar", +"description": "Type of the resource (\"calendar#calendar\").", +"type": "string" +}, +"location": { +"description": "Geographic location of the calendar as free-form text. Optional.", +"type": "string" +}, +"summary": { +"annotations": { +"required": [ +"calendar.calendars.insert" +] +}, +"description": "Title of the calendar.", +"type": "string" +}, +"timeZone": { +"description": "The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) Optional.", +"type": "string" +} +}, +"type": "object" +}, +"CalendarList": { +"id": "CalendarList", +"properties": { +"etag": { +"description": "ETag of the collection.", +"type": "string" +}, +"items": { +"description": "Calendars that are present on the user's calendar list.", +"items": { +"$ref": "CalendarListEntry" +}, +"type": "array" +}, +"kind": { +"default": "calendar#calendarList", +"description": "Type of the collection (\"calendar#calendarList\").", +"type": "string" +}, +"nextPageToken": { +"description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.", +"type": "string" +}, +"nextSyncToken": { +"description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.", +"type": "string" +} +}, +"type": "object" +}, +"CalendarListEntry": { +"id": "CalendarListEntry", +"properties": { +"accessRole": { +"description": "The effective access role that the authenticated user has on the calendar. Read-only. Possible values are: \n- \"freeBusyReader\" - Provides read access to free/busy information. \n- \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.", +"type": "string" +}, +"backgroundColor": { +"description": "The main color of the calendar in the hexadecimal format \"#0088aa\". This property supersedes the index-based colorId property. To set or change this property, you need to specify colorRgbFormat=true in the parameters of the insert, update and patch methods. Optional.", +"type": "string" +}, +"colorId": { +"description": "The color of the calendar. This is an ID referring to an entry in the calendar section of the colors definition (see the colors endpoint). This property is superseded by the backgroundColor and foregroundColor properties and can be ignored when using these properties. Optional.", +"type": "string" +}, +"conferenceProperties": { +"$ref": "ConferenceProperties", +"description": "Conferencing properties for this calendar, for example what types of conferences are allowed." +}, +"defaultReminders": { +"description": "The default reminders that the authenticated user has for this calendar.", +"items": { +"$ref": "EventReminder" +}, +"type": "array" +}, +"deleted": { +"default": "false", +"description": "Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.", +"type": "boolean" +}, +"description": { +"description": "Description of the calendar. Optional. Read-only.", +"type": "string" +}, +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"foregroundColor": { +"description": "The foreground color of the calendar in the hexadecimal format \"#ffffff\". This property supersedes the index-based colorId property. To set or change this property, you need to specify colorRgbFormat=true in the parameters of the insert, update and patch methods. Optional.", +"type": "string" +}, +"hidden": { +"default": "false", +"description": "Whether the calendar has been hidden from the list. Optional. The attribute is only returned when the calendar is hidden, in which case the value is true.", +"type": "boolean" +}, +"id": { +"annotations": { +"required": [ +"calendar.calendarList.insert" +] +}, +"description": "Identifier of the calendar.", +"type": "string" +}, +"kind": { +"default": "calendar#calendarListEntry", +"description": "Type of the resource (\"calendar#calendarListEntry\").", +"type": "string" +}, +"location": { +"description": "Geographic location of the calendar as free-form text. Optional. Read-only.", +"type": "string" +}, +"notificationSettings": { +"description": "The notifications that the authenticated user is receiving for this calendar.", +"properties": { +"notifications": { +"description": "The list of notifications set for this calendar.", +"items": { +"$ref": "CalendarNotification" +}, +"type": "array" +} +}, +"type": "object" +}, +"primary": { +"default": "false", +"description": "Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.", +"type": "boolean" +}, +"selected": { +"default": "false", +"description": "Whether the calendar content shows up in the calendar UI. Optional. The default is False.", +"type": "boolean" +}, +"summary": { +"description": "Title of the calendar. Read-only.", +"type": "string" +}, +"summaryOverride": { +"description": "The summary that the authenticated user has set for this calendar. Optional.", +"type": "string" +}, +"timeZone": { +"description": "The time zone of the calendar. Optional. Read-only.", +"type": "string" +} +}, +"type": "object" +}, +"CalendarNotification": { +"id": "CalendarNotification", +"properties": { +"method": { +"description": "The method used to deliver the notification. The possible value is: \n- \"email\" - Notifications are sent via email. \nRequired when adding a notification.", +"type": "string" +}, +"type": { +"description": "The type of notification. Possible values are: \n- \"eventCreation\" - Notification sent when a new event is put on the calendar. \n- \"eventChange\" - Notification sent when an event is changed. \n- \"eventCancellation\" - Notification sent when an event is cancelled. \n- \"eventResponse\" - Notification sent when an attendee responds to the event invitation. \n- \"agenda\" - An agenda with the events of the day (sent out in the morning). \nRequired when adding a notification.", +"type": "string" +} +}, +"type": "object" +}, +"Channel": { +"id": "Channel", +"properties": { +"address": { +"description": "The address where notifications are delivered for this channel.", +"type": "string" +}, +"expiration": { +"description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.", +"format": "int64", +"type": "string" +}, +"id": { +"description": "A UUID or similar unique string that identifies this channel.", +"type": "string" +}, +"kind": { +"default": "api#channel", +"description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".", +"type": "string" +}, +"params": { +"additionalProperties": { +"description": "Declares a new parameter by name.", +"type": "string" +}, +"description": "Additional parameters controlling delivery channel behavior. Optional.", +"type": "object" +}, +"payload": { +"description": "A Boolean value to indicate whether payload is wanted. Optional.", +"type": "boolean" +}, +"resourceId": { +"description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.", +"type": "string" +}, +"resourceUri": { +"description": "A version-specific identifier for the watched resource.", +"type": "string" +}, +"token": { +"description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.", +"type": "string" +}, +"type": { +"description": "The type of delivery mechanism used for this channel. Valid values are \"web_hook\" (or \"webhook\"). Both values refer to a channel where Http requests are used to deliver messages.", +"type": "string" +} +}, +"type": "object" +}, +"ColorDefinition": { +"id": "ColorDefinition", +"properties": { +"background": { +"description": "The background color associated with this color definition.", +"type": "string" +}, +"foreground": { +"description": "The foreground color that can be used to write on top of a background with 'background' color.", +"type": "string" +} +}, +"type": "object" +}, +"Colors": { +"id": "Colors", +"properties": { +"calendar": { +"additionalProperties": { +"$ref": "ColorDefinition", +"description": "A calendar color definition." +}, +"description": "A global palette of calendar colors, mapping from the color ID to its definition. A calendarListEntry resource refers to one of these color IDs in its colorId field. Read-only.", +"type": "object" +}, +"event": { +"additionalProperties": { +"$ref": "ColorDefinition", +"description": "An event color definition." +}, +"description": "A global palette of event colors, mapping from the color ID to its definition. An event resource may refer to one of these color IDs in its colorId field. Read-only.", +"type": "object" +}, +"kind": { +"default": "calendar#colors", +"description": "Type of the resource (\"calendar#colors\").", +"type": "string" +}, +"updated": { +"description": "Last modification time of the color palette (as a RFC3339 timestamp). Read-only.", +"format": "date-time", +"type": "string" +} +}, +"type": "object" +}, +"ConferenceData": { +"id": "ConferenceData", +"properties": { +"conferenceId": { +"description": "The ID of the conference.\nCan be used by developers to keep track of conferences, should not be displayed to users.\nThe ID value is formed differently for each conference solution type: \n- eventHangout: ID is not set. (This conference type is deprecated.)\n- eventNamedHangout: ID is the name of the Hangout. (This conference type is deprecated.)\n- hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.\n- addOn: ID is defined by the third-party provider. Optional.", +"type": "string" +}, +"conferenceSolution": { +"$ref": "ConferenceSolution", +"description": "The conference solution, such as Google Meet.\nUnset for a conference with a failed create request.\nEither conferenceSolution and at least one entryPoint, or createRequest is required." +}, +"createRequest": { +"$ref": "CreateConferenceRequest", +"description": "A request to generate a new conference and attach it to the event. The data is generated asynchronously. To see whether the data is present check the status field.\nEither conferenceSolution and at least one entryPoint, or createRequest is required." +}, +"entryPoints": { +"description": "Information about individual conference entry points, such as URLs or phone numbers.\nAll of them must belong to the same conference.\nEither conferenceSolution and at least one entryPoint, or createRequest is required.", +"items": { +"$ref": "EntryPoint" +}, +"type": "array" +}, +"notes": { +"description": "Additional notes (such as instructions from the domain administrator, legal notices) to display to the user. Can contain HTML. The maximum length is 2048 characters. Optional.", +"type": "string" +}, +"parameters": { +"$ref": "ConferenceParameters", +"description": "Additional properties related to a conference. An example would be a solution-specific setting for enabling video streaming." +}, +"signature": { +"description": "The signature of the conference data.\nGenerated on server side.\nUnset for a conference with a failed create request.\nOptional for a conference with a pending create request.", +"type": "string" +} +}, +"type": "object" +}, +"ConferenceParameters": { +"id": "ConferenceParameters", +"properties": { +"addOnParameters": { +"$ref": "ConferenceParametersAddOnParameters", +"description": "Additional add-on specific data." +} +}, +"type": "object" +}, +"ConferenceParametersAddOnParameters": { +"id": "ConferenceParametersAddOnParameters", +"properties": { +"parameters": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +} +}, +"type": "object" +}, +"ConferenceProperties": { +"id": "ConferenceProperties", +"properties": { +"allowedConferenceSolutionTypes": { +"description": "The types of conference solutions that are supported for this calendar.\nThe possible values are: \n- \"eventHangout\" \n- \"eventNamedHangout\" \n- \"hangoutsMeet\" Optional.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ConferenceRequestStatus": { +"id": "ConferenceRequestStatus", +"properties": { +"statusCode": { +"description": "The current status of the conference create request. Read-only.\nThe possible values are: \n- \"pending\": the conference create request is still being processed.\n- \"success\": the conference create request succeeded, the entry points are populated.\n- \"failure\": the conference create request failed, there are no entry points.", +"type": "string" +} +}, +"type": "object" +}, +"ConferenceSolution": { +"id": "ConferenceSolution", +"properties": { +"iconUri": { +"description": "The user-visible icon for this solution.", +"type": "string" +}, +"key": { +"$ref": "ConferenceSolutionKey", +"description": "The key which can uniquely identify the conference solution for this event." +}, +"name": { +"description": "The user-visible name of this solution. Not localized.", +"type": "string" +} +}, +"type": "object" +}, +"ConferenceSolutionKey": { +"id": "ConferenceSolutionKey", +"properties": { +"type": { +"description": "The conference solution type.\nIf a client encounters an unfamiliar or empty type, it should still be able to display the entry points. However, it should disallow modifications.\nThe possible values are: \n- \"eventHangout\" for Hangouts for consumers (deprecated; existing events may show this conference solution type but new conferences cannot be created)\n- \"eventNamedHangout\" for classic Hangouts for Google Workspace users (deprecated; existing events may show this conference solution type but new conferences cannot be created)\n- \"hangoutsMeet\" for Google Meet (http://meet.google.com)\n- \"addOn\" for 3P conference providers", +"type": "string" +} +}, +"type": "object" +}, +"CreateConferenceRequest": { +"id": "CreateConferenceRequest", +"properties": { +"conferenceSolutionKey": { +"$ref": "ConferenceSolutionKey", +"description": "The conference solution, such as Hangouts or Google Meet." +}, +"requestId": { +"description": "The client-generated unique ID for this request.\nClients should regenerate this ID for every new request. If an ID provided is the same as for the previous request, the request is ignored.", +"type": "string" +}, +"status": { +"$ref": "ConferenceRequestStatus", +"description": "The status of the conference create request." +} +}, +"type": "object" +}, +"EntryPoint": { +"id": "EntryPoint", +"properties": { +"accessCode": { +"description": "The access code to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.\nOptional.", +"type": "string" +}, +"entryPointFeatures": { +"description": "Features of the entry point, such as being toll or toll-free. One entry point can have multiple features. However, toll and toll-free cannot be both set on the same entry point.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entryPointType": { +"description": "The type of the conference entry point.\nPossible values are: \n- \"video\" - joining a conference over HTTP. A conference can have zero or one video entry point.\n- \"phone\" - joining a conference by dialing a phone number. A conference can have zero or more phone entry points.\n- \"sip\" - joining a conference over SIP. A conference can have zero or one sip entry point.\n- \"more\" - further conference joining instructions, for example additional phone numbers. A conference can have zero or one more entry point. A conference with only a more entry point is not a valid conference.", +"type": "string" +}, +"label": { +"description": "The label for the URI. Visible to end users. Not localized. The maximum length is 512 characters.\nExamples: \n- for video: meet.google.com/aaa-bbbb-ccc\n- for phone: +1 123 268 2601\n- for sip: 12345678@altostrat.com\n- for more: should not be filled \nOptional.", +"type": "string" +}, +"meetingCode": { +"description": "The meeting code to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.\nOptional.", +"type": "string" +}, +"passcode": { +"description": "The passcode to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.", +"type": "string" +}, +"password": { +"description": "The password to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.\nOptional.", +"type": "string" +}, +"pin": { +"description": "The PIN to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.\nOptional.", +"type": "string" +}, +"regionCode": { +"description": "The CLDR/ISO 3166 region code for the country associated with this phone access. Example: \"SE\" for Sweden.\nCalendar backend will populate this field only for EntryPointType.PHONE.", +"type": "string" +}, +"uri": { +"description": "The URI of the entry point. The maximum length is 1300 characters.\nFormat: \n- for video, http: or https: schema is required.\n- for phone, tel: schema is required. The URI should include the entire dial sequence (e.g., tel:+12345678900,,,123456789;1234).\n- for sip, sip: schema is required, e.g., sip:12345678@myprovider.com.\n- for more, http: or https: schema is required.", +"type": "string" +} +}, +"type": "object" +}, +"Error": { +"id": "Error", +"properties": { +"domain": { +"description": "Domain, or broad category, of the error.", +"type": "string" +}, +"reason": { +"description": "Specific reason for the error. Some of the possible values are: \n- \"groupTooBig\" - The group of users requested is too large for a single query. \n- \"tooManyCalendarsRequested\" - The number of calendars requested is too large for a single query. \n- \"notFound\" - The requested resource was not found. \n- \"internalError\" - The API service has encountered an internal error. Additional error types may be added in the future, so clients should gracefully handle additional error statuses not included in this list.", +"type": "string" +} +}, +"type": "object" +}, +"Event": { +"id": "Event", +"properties": { +"anyoneCanAddSelf": { +"default": "false", +"description": "Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.", +"type": "boolean" +}, +"attachments": { +"description": "File attachments for the event.\nIn order to modify attachments the supportsAttachments request parameter should be set to true.\nThere can be at most 25 attachments per event,", +"items": { +"$ref": "EventAttachment" +}, +"type": "array" +}, +"attendees": { +"description": "The attendees of the event. See the Events with attendees guide for more information on scheduling events with other calendar users. Service accounts need to use domain-wide delegation of authority to populate the attendee list.", +"items": { +"$ref": "EventAttendee" +}, +"type": "array" +}, +"attendeesOmitted": { +"default": "false", +"description": "Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.", +"type": "boolean" +}, +"birthdayProperties": { +"$ref": "EventBirthdayProperties", +"description": "Birthday or special event data. Used if eventType is \"birthday\". Immutable." +}, +"colorId": { +"description": "The color of the event. This is an ID referring to an entry in the event section of the colors definition (see the colors endpoint). Optional.", +"type": "string" +}, +"conferenceData": { +"$ref": "ConferenceData", +"description": "The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests." +}, +"created": { +"description": "Creation time of the event (as a RFC3339 timestamp). Read-only.", +"format": "date-time", +"type": "string" +}, +"creator": { +"description": "The creator of the event. Read-only.", +"properties": { +"displayName": { +"description": "The creator's name, if available.", +"type": "string" +}, +"email": { +"description": "The creator's email address, if available.", +"type": "string" +}, +"id": { +"description": "The creator's Profile ID, if available.", +"type": "string" +}, +"self": { +"default": "false", +"description": "Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.", +"type": "boolean" +} +}, +"type": "object" +}, +"description": { +"description": "Description of the event. Can contain HTML. Optional.", +"type": "string" +}, +"end": { +"$ref": "EventDateTime", +"annotations": { +"required": [ +"calendar.events.import", +"calendar.events.insert", +"calendar.events.update" +] +}, +"description": "The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance." +}, +"endTimeUnspecified": { +"default": "false", +"description": "Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.", +"type": "boolean" +}, +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"eventType": { +"default": "default", +"description": "Specific type of the event. This cannot be modified after the event is created. Possible values are: \n- \"birthday\" - A special all-day event with an annual recurrence. \n- \"default\" - A regular event or not further specified. \n- \"focusTime\" - A focus-time event. \n- \"fromGmail\" - An event from Gmail. This type of event cannot be created. \n- \"outOfOffice\" - An out-of-office event. \n- \"workingLocation\" - A working location event.", +"type": "string" +}, +"extendedProperties": { +"description": "Extended properties of the event.", +"properties": { +"private": { +"additionalProperties": { +"description": "The name of the private property and the corresponding value.", +"type": "string" +}, +"description": "Properties that are private to the copy of the event that appears on this calendar.", +"type": "object" +}, +"shared": { +"additionalProperties": { +"description": "The name of the shared property and the corresponding value.", +"type": "string" +}, +"description": "Properties that are shared between copies of the event on other attendees' calendars.", +"type": "object" +} +}, +"type": "object" +}, +"focusTimeProperties": { +"$ref": "EventFocusTimeProperties", +"description": "Focus Time event data. Used if eventType is focusTime." +}, +"gadget": { +"description": "A gadget that extends this event. Gadgets are deprecated; this structure is instead only used for returning birthday calendar metadata.", +"properties": { +"display": { +"description": "The gadget's display mode. Deprecated. Possible values are: \n- \"icon\" - The gadget displays next to the event's title in the calendar view. \n- \"chip\" - The gadget displays when the event is clicked.", +"type": "string" +}, +"height": { +"description": "The gadget's height in pixels. The height must be an integer greater than 0. Optional. Deprecated.", +"format": "int32", +"type": "integer" +}, +"iconLink": { +"description": "The gadget's icon URL. The URL scheme must be HTTPS. Deprecated.", +"type": "string" +}, +"link": { +"description": "The gadget's URL. The URL scheme must be HTTPS. Deprecated.", +"type": "string" +}, +"preferences": { +"additionalProperties": { +"description": "The preference name and corresponding value.", +"type": "string" +}, +"description": "Preferences.", +"type": "object" +}, +"title": { +"description": "The gadget's title. Deprecated.", +"type": "string" +}, +"type": { +"description": "The gadget's type. Deprecated.", +"type": "string" +}, +"width": { +"description": "The gadget's width in pixels. The width must be an integer greater than 0. Optional. Deprecated.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"guestsCanInviteOthers": { +"default": "true", +"description": "Whether attendees other than the organizer can invite others to the event. Optional. The default is True.", +"type": "boolean" +}, +"guestsCanModify": { +"default": "false", +"description": "Whether attendees other than the organizer can modify the event. Optional. The default is False.", +"type": "boolean" +}, +"guestsCanSeeOtherGuests": { +"default": "true", +"description": "Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.", +"type": "boolean" +}, +"hangoutLink": { +"description": "An absolute link to the Google Hangout associated with this event. Read-only.", +"type": "string" +}, +"htmlLink": { +"description": "An absolute link to this event in the Google Calendar Web UI. Read-only.", +"type": "string" +}, +"iCalUID": { +"annotations": { +"required": [ +"calendar.events.import" +] +}, +"description": "Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.\nNote that the iCalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same iCalUIDs. To retrieve an event using its iCalUID, call the events.list method using the iCalUID parameter. To retrieve an event using its id, call the events.get method.", +"type": "string" +}, +"id": { +"description": "Opaque identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules: \n- characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938 \n- the length of the ID must be between 5 and 1024 characters \n- the ID must be unique per calendar Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.\nIf you do not specify an ID, it will be automatically generated by the server.\nNote that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.", +"type": "string" +}, +"kind": { +"default": "calendar#event", +"description": "Type of the resource (\"calendar#event\").", +"type": "string" +}, +"location": { +"description": "Geographic location of the event as free-form text. Optional.", +"type": "string" +}, +"locked": { +"default": "false", +"description": "Whether this is a locked event copy where no changes can be made to the main event fields \"summary\", \"description\", \"location\", \"start\", \"end\" or \"recurrence\". The default is False. Read-Only.", +"type": "boolean" +}, +"organizer": { +"description": "The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.", +"properties": { +"displayName": { +"description": "The organizer's name, if available.", +"type": "string" +}, +"email": { +"description": "The organizer's email address, if available. It must be a valid email address as per RFC5322.", +"type": "string" +}, +"id": { +"description": "The organizer's Profile ID, if available.", +"type": "string" +}, +"self": { +"default": "false", +"description": "Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.", +"type": "boolean" +} +}, +"type": "object" +}, +"originalStartTime": { +"$ref": "EventDateTime", +"description": "For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable." +}, +"outOfOfficeProperties": { +"$ref": "EventOutOfOfficeProperties", +"description": "Out of office event data. Used if eventType is outOfOffice." +}, +"privateCopy": { +"default": "false", +"description": "If set to True, Event propagation is disabled. Note that it is not the same thing as Private event properties. Optional. Immutable. The default is False.", +"type": "boolean" +}, +"recurrence": { +"description": "List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. Note that DTSTART and DTEND lines are not allowed in this field; event start and end times are specified in the start and end fields. This field is omitted for single events or instances of recurring events.", +"items": { +"type": "string" +}, +"type": "array" +}, +"recurringEventId": { +"description": "For an instance of a recurring event, this is the id of the recurring event to which this instance belongs. Immutable.", +"type": "string" +}, +"reminders": { +"description": "Information about the event's reminders for the authenticated user. Note that changing reminders does not also change the updated property of the enclosing event.", +"properties": { +"overrides": { +"description": "If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event. The maximum number of override reminders is 5.", +"items": { +"$ref": "EventReminder" +}, +"type": "array" +}, +"useDefault": { +"description": "Whether the default reminders of the calendar apply to the event.", +"type": "boolean" +} +}, +"type": "object" +}, +"sequence": { +"description": "Sequence number as per iCalendar.", +"format": "int32", +"type": "integer" +}, +"source": { +"description": "Source from which the event was created. For example, a web page, an email message or any document identifiable by an URL with HTTP or HTTPS scheme. Can only be seen or modified by the creator of the event.", +"properties": { +"title": { +"description": "Title of the source; for example a title of a web page or an email subject.", +"type": "string" +}, +"url": { +"description": "URL of the source pointing to a resource. The URL scheme must be HTTP or HTTPS.", +"type": "string" +} +}, +"type": "object" +}, +"start": { +"$ref": "EventDateTime", +"annotations": { +"required": [ +"calendar.events.import", +"calendar.events.insert", +"calendar.events.update" +] +}, +"description": "The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance." +}, +"status": { +"description": "Status of the event. Optional. Possible values are: \n- \"confirmed\" - The event is confirmed. This is the default status. \n- \"tentative\" - The event is tentatively confirmed. \n- \"cancelled\" - The event is cancelled (deleted). The list method returns cancelled events only on incremental sync (when syncToken or updatedMin are specified) or if the showDeleted flag is set to true. The get method always returns them.\nA cancelled status represents two different states depending on the event type: \n- Cancelled exceptions of an uncancelled recurring event indicate that this instance should no longer be presented to the user. Clients should store these events for the lifetime of the parent recurring event.\nCancelled exceptions are only guaranteed to have values for the id, recurringEventId and originalStartTime fields populated. The other fields might be empty. \n- All other cancelled events represent deleted events. Clients should remove their locally synced copies. Such cancelled events will eventually disappear, so do not rely on them being available indefinitely.\nDeleted events are only guaranteed to have the id field populated. On the organizer's calendar, cancelled events continue to expose event details (summary, location, etc.) so that they can be restored (undeleted). Similarly, the events to which the user was invited and that they manually removed continue to provide details. However, incremental sync requests with showDeleted set to false will not return these details.\nIf an event changes its organizer (for example via the move operation) and the original organizer is not on the attendee list, it will leave behind a cancelled event where only the id field is guaranteed to be populated.", +"type": "string" +}, +"summary": { +"description": "Title of the event.", +"type": "string" +}, +"transparency": { +"default": "opaque", +"description": "Whether the event blocks time on the calendar. Optional. Possible values are: \n- \"opaque\" - Default value. The event does block time on the calendar. This is equivalent to setting Show me as to Busy in the Calendar UI. \n- \"transparent\" - The event does not block time on the calendar. This is equivalent to setting Show me as to Available in the Calendar UI.", +"type": "string" +}, +"updated": { +"description": "Last modification time of the main event data (as a RFC3339 timestamp). Updating event reminders will not cause this to change. Read-only.", +"format": "date-time", +"type": "string" +}, +"visibility": { +"default": "default", +"description": "Visibility of the event. Optional. Possible values are: \n- \"default\" - Uses the default visibility for events on the calendar. This is the default value. \n- \"public\" - The event is public and event details are visible to all readers of the calendar. \n- \"private\" - The event is private and only event attendees may view event details. \n- \"confidential\" - The event is private. This value is provided for compatibility reasons.", +"type": "string" +}, +"workingLocationProperties": { +"$ref": "EventWorkingLocationProperties", +"description": "Working location event data." +} +}, +"type": "object" +}, +"EventAttachment": { +"id": "EventAttachment", +"properties": { +"fileId": { +"description": "ID of the attached file. Read-only.\nFor Google Drive files, this is the ID of the corresponding Files resource entry in the Drive API.", +"type": "string" +}, +"fileUrl": { +"description": "URL link to the attachment.\nFor adding Google Drive file attachments use the same format as in alternateLink property of the Files resource in the Drive API.\nRequired when adding an attachment.", +"type": "string" +}, +"iconLink": { +"description": "URL link to the attachment's icon. This field can only be modified for custom third-party attachments.", +"type": "string" +}, +"mimeType": { +"description": "Internet media type (MIME type) of the attachment.", +"type": "string" +}, +"title": { +"description": "Attachment title.", +"type": "string" +} +}, +"type": "object" +}, +"EventAttendee": { +"id": "EventAttendee", +"properties": { +"additionalGuests": { +"default": "0", +"description": "Number of additional guests. Optional. The default is 0.", +"format": "int32", +"type": "integer" +}, +"comment": { +"description": "The attendee's response comment. Optional.", +"type": "string" +}, +"displayName": { +"description": "The attendee's name, if available. Optional.", +"type": "string" +}, +"email": { +"description": "The attendee's email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.\nRequired when adding an attendee.", +"type": "string" +}, +"id": { +"description": "The attendee's Profile ID, if available.", +"type": "string" +}, +"optional": { +"default": "false", +"description": "Whether this is an optional attendee. Optional. The default is False.", +"type": "boolean" +}, +"organizer": { +"description": "Whether the attendee is the organizer of the event. Read-only. The default is False.", +"type": "boolean" +}, +"resource": { +"default": "false", +"description": "Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.", +"type": "boolean" +}, +"responseStatus": { +"description": "The attendee's response status. Possible values are: \n- \"needsAction\" - The attendee has not responded to the invitation (recommended for new events). \n- \"declined\" - The attendee has declined the invitation. \n- \"tentative\" - The attendee has tentatively accepted the invitation. \n- \"accepted\" - The attendee has accepted the invitation. Warning: If you add an event using the values declined, tentative, or accepted, attendees with the \"Add invitations to my calendar\" setting set to \"When I respond to invitation in email\" or \"Only if the sender is known\" might have their response reset to needsAction and won't see an event in their calendar unless they change their response in the event invitation email. Furthermore, if more than 200 guests are invited to the event, response status is not propagated to the guests.", +"type": "string" +}, +"self": { +"default": "false", +"description": "Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.", +"type": "boolean" +} +}, +"type": "object" +}, +"EventBirthdayProperties": { +"id": "EventBirthdayProperties", +"properties": { +"contact": { +"description": "Resource name of the contact this birthday event is linked to. This can be used to fetch contact details from People API. Format: \"people/c12345\". Read-only.", +"type": "string" +}, +"customTypeName": { +"description": "Custom type label specified for this event. This is populated if birthdayProperties.type is set to \"custom\". Read-only.", +"type": "string" +}, +"type": { +"default": "birthday", +"description": "Type of birthday or special event. Possible values are: \n- \"anniversary\" - An anniversary other than birthday. Always has a contact. \n- \"birthday\" - A birthday event. This is the default value. \n- \"custom\" - A special date whose label is further specified in the customTypeName field. Always has a contact. \n- \"other\" - A special date which does not fall into the other categories, and does not have a custom label. Always has a contact. \n- \"self\" - Calendar owner's own birthday. Cannot have a contact. The Calendar API only supports creating events with the type \"birthday\". The type cannot be changed after the event is created.", +"type": "string" +} +}, +"type": "object" +}, +"EventDateTime": { +"id": "EventDateTime", +"properties": { +"date": { +"description": "The date, in the format \"yyyy-mm-dd\", if this is an all-day event.", +"format": "date", +"type": "string" +}, +"dateTime": { +"description": "The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.", +"format": "date-time", +"type": "string" +}, +"timeZone": { +"description": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.", +"type": "string" +} +}, +"type": "object" +}, +"EventFocusTimeProperties": { +"id": "EventFocusTimeProperties", +"properties": { +"autoDeclineMode": { +"description": "Whether to decline meeting invitations which overlap Focus Time events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Focus Time event is present are to be declined.", +"type": "string" +}, +"chatStatus": { +"description": "The status to mark the user in Chat and related products. This can be available or doNotDisturb.", +"type": "string" +}, +"declineMessage": { +"description": "Response message to set if an existing event or new invitation is automatically declined by Calendar.", +"type": "string" +} +}, +"type": "object" +}, +"EventOutOfOfficeProperties": { +"id": "EventOutOfOfficeProperties", +"properties": { +"autoDeclineMode": { +"description": "Whether to decline meeting invitations which overlap Out of office events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Out of office event is present are to be declined.", +"type": "string" +}, +"declineMessage": { +"description": "Response message to set if an existing event or new invitation is automatically declined by Calendar.", +"type": "string" +} +}, +"type": "object" +}, +"EventReminder": { +"id": "EventReminder", +"properties": { +"method": { +"description": "The method used by this reminder. Possible values are: \n- \"email\" - Reminders are sent via email. \n- \"popup\" - Reminders are sent via a UI popup. \nRequired when adding a reminder.", +"type": "string" +}, +"minutes": { +"description": "Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).\nRequired when adding a reminder.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"EventWorkingLocationProperties": { +"id": "EventWorkingLocationProperties", +"properties": { +"customLocation": { +"description": "If present, specifies that the user is working from a custom location.", +"properties": { +"label": { +"description": "An optional extra label for additional information.", +"type": "string" +} +}, +"type": "object" +}, +"homeOffice": { +"description": "If present, specifies that the user is working at home.", +"type": "any" +}, +"officeLocation": { +"description": "If present, specifies that the user is working from an office.", +"properties": { +"buildingId": { +"description": "An optional building identifier. This should reference a building ID in the organization's Resources database.", +"type": "string" +}, +"deskId": { +"description": "An optional desk identifier.", +"type": "string" +}, +"floorId": { +"description": "An optional floor identifier.", +"type": "string" +}, +"floorSectionId": { +"description": "An optional floor section identifier.", +"type": "string" +}, +"label": { +"description": "The office name that's displayed in Calendar Web and Mobile clients. We recommend you reference a building name in the organization's Resources database.", +"type": "string" +} +}, +"type": "object" +}, +"type": { +"description": "Type of the working location. Possible values are: \n- \"homeOffice\" - The user is working at home. \n- \"officeLocation\" - The user is working from an office. \n- \"customLocation\" - The user is working from a custom location. Any details are specified in a sub-field of the specified name, but this field may be missing if empty. Any other fields are ignored.\nRequired when adding working location properties.", +"type": "string" +} +}, +"type": "object" +}, +"Events": { +"id": "Events", +"properties": { +"accessRole": { +"description": "The user's access role for this calendar. Read-only. Possible values are: \n- \"none\" - The user has no access. \n- \"freeBusyReader\" - The user has read access to free/busy information. \n- \"reader\" - The user has read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writer\" - The user has read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - The user has ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.", +"type": "string" +}, +"defaultReminders": { +"description": "The default reminders on the calendar for the authenticated user. These reminders apply to all events on this calendar that do not explicitly override them (i.e. do not have reminders.useDefault set to True).", +"items": { +"$ref": "EventReminder" +}, +"type": "array" +}, +"description": { +"description": "Description of the calendar. Read-only.", +"type": "string" +}, +"etag": { +"description": "ETag of the collection.", +"type": "string" +}, +"items": { +"description": "List of events on the calendar.", +"items": { +"$ref": "Event" +}, +"type": "array" +}, +"kind": { +"default": "calendar#events", +"description": "Type of the collection (\"calendar#events\").", +"type": "string" +}, +"nextPageToken": { +"description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.", +"type": "string" +}, +"nextSyncToken": { +"description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.", +"type": "string" +}, +"summary": { +"description": "Title of the calendar. Read-only.", +"type": "string" +}, +"timeZone": { +"description": "The time zone of the calendar. Read-only.", +"type": "string" +}, +"updated": { +"description": "Last modification time of the calendar (as a RFC3339 timestamp). Read-only.", +"format": "date-time", +"type": "string" +} +}, +"type": "object" +}, +"FreeBusyCalendar": { +"id": "FreeBusyCalendar", +"properties": { +"busy": { +"description": "List of time ranges during which this calendar should be regarded as busy.", +"items": { +"$ref": "TimePeriod" +}, +"type": "array" +}, +"errors": { +"description": "Optional error(s) (if computation for the calendar failed).", +"items": { +"$ref": "Error" +}, +"type": "array" +} +}, +"type": "object" +}, +"FreeBusyGroup": { +"id": "FreeBusyGroup", +"properties": { +"calendars": { +"description": "List of calendars' identifiers within a group.", +"items": { +"type": "string" +}, +"type": "array" +}, +"errors": { +"description": "Optional error(s) (if computation for the group failed).", +"items": { +"$ref": "Error" +}, +"type": "array" +} +}, +"type": "object" +}, +"FreeBusyRequest": { +"id": "FreeBusyRequest", +"properties": { +"calendarExpansionMax": { +"description": "Maximal number of calendars for which FreeBusy information is to be provided. Optional. Maximum value is 50.", +"format": "int32", +"type": "integer" +}, +"groupExpansionMax": { +"description": "Maximal number of calendar identifiers to be provided for a single group. Optional. An error is returned for a group with more members than this value. Maximum value is 100.", +"format": "int32", +"type": "integer" +}, +"items": { +"description": "List of calendars and/or groups to query.", +"items": { +"$ref": "FreeBusyRequestItem" +}, +"type": "array" +}, +"timeMax": { +"description": "The end of the interval for the query formatted as per RFC3339.", +"format": "date-time", +"type": "string" +}, +"timeMin": { +"description": "The start of the interval for the query formatted as per RFC3339.", +"format": "date-time", +"type": "string" +}, +"timeZone": { +"default": "UTC", +"description": "Time zone used in the response. Optional. The default is UTC.", +"type": "string" +} +}, +"type": "object" +}, +"FreeBusyRequestItem": { +"id": "FreeBusyRequestItem", +"properties": { +"id": { +"description": "The identifier of a calendar or a group.", +"type": "string" +} +}, +"type": "object" +}, +"FreeBusyResponse": { +"id": "FreeBusyResponse", +"properties": { +"calendars": { +"additionalProperties": { +"$ref": "FreeBusyCalendar", +"description": "Free/busy expansions for a single calendar." +}, +"description": "List of free/busy information for calendars.", +"type": "object" +}, +"groups": { +"additionalProperties": { +"$ref": "FreeBusyGroup", +"description": "List of calendars that are members of this group." +}, +"description": "Expansion of groups.", +"type": "object" +}, +"kind": { +"default": "calendar#freeBusy", +"description": "Type of the resource (\"calendar#freeBusy\").", +"type": "string" +}, +"timeMax": { +"description": "The end of the interval.", +"format": "date-time", +"type": "string" +}, +"timeMin": { +"description": "The start of the interval.", +"format": "date-time", +"type": "string" +} +}, +"type": "object" +}, +"Setting": { +"id": "Setting", +"properties": { +"etag": { +"description": "ETag of the resource.", +"type": "string" +}, +"id": { +"description": "The id of the user setting.", +"type": "string" +}, +"kind": { +"default": "calendar#setting", +"description": "Type of the resource (\"calendar#setting\").", +"type": "string" +}, +"value": { +"description": "Value of the user setting. The format of the value depends on the ID of the setting. It must always be a UTF-8 string of length up to 1024 characters.", +"type": "string" +} +}, +"type": "object" +}, +"Settings": { +"id": "Settings", +"properties": { +"etag": { +"description": "Etag of the collection.", +"type": "string" +}, +"items": { +"description": "List of user settings.", +"items": { +"$ref": "Setting" +}, +"type": "array" +}, +"kind": { +"default": "calendar#settings", +"description": "Type of the collection (\"calendar#settings\").", +"type": "string" +}, +"nextPageToken": { +"description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.", +"type": "string" +}, +"nextSyncToken": { +"description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.", +"type": "string" +} +}, +"type": "object" +}, +"TimePeriod": { +"id": "TimePeriod", +"properties": { +"end": { +"description": "The (exclusive) end of the time period.", +"format": "date-time", +"type": "string" +}, +"start": { +"description": "The (inclusive) start of the time period.", +"format": "date-time", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "calendar/v3/", +"title": "Calendar API", +"version": "v3" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/civicinfo.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/civicinfo.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..3a7f164d540565a7463f9da4d766a39d5035b4a9 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/civicinfo.v2.json @@ -0,0 +1,1408 @@ +{ +"basePath": "", +"baseUrl": "https://civicinfo.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Civic Info", +"description": "Provides polling places, early vote locations, contest data, election officials, and government representatives for U.S. residential addresses.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/civic-information/", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "civicinfo:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://civicinfo.mtls.googleapis.com/", +"name": "civicinfo", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"divisions": { +"methods": { +"queryDivisionByAddress": { +"description": "Lookup OCDIDs and names for divisions related to an address.", +"flatPath": "civicinfo/v2/divisionsByAddress", +"httpMethod": "GET", +"id": "civicinfo.divisions.queryDivisionByAddress", +"parameterOrder": [], +"parameters": { +"address": { +"location": "query", +"type": "string" +} +}, +"path": "civicinfo/v2/divisionsByAddress", +"response": { +"$ref": "DivisionByAddressResponse" +} +}, +"search": { +"description": "Searches for political divisions by their natural name or OCD ID.", +"flatPath": "civicinfo/v2/divisions", +"httpMethod": "GET", +"id": "civicinfo.divisions.search", +"parameterOrder": [], +"parameters": { +"query": { +"description": "The search query. Queries can cover any parts of a OCD ID or a human readable division name. All words given in the query are treated as required patterns. In addition to that, most query operators of the Apache Lucene library are supported. See http://lucene.apache.org/core/2_9_4/queryparsersyntax.html", +"location": "query", +"type": "string" +} +}, +"path": "civicinfo/v2/divisions", +"response": { +"$ref": "DivisionSearchResponse" +} +} +} +}, +"elections": { +"methods": { +"electionQuery": { +"description": "List of available elections to query.", +"flatPath": "civicinfo/v2/elections", +"httpMethod": "GET", +"id": "civicinfo.elections.electionQuery", +"parameterOrder": [], +"parameters": { +"productionDataOnly": { +"default": "true", +"description": "Whether to include data that has not been allowlisted yet", +"location": "query", +"type": "boolean" +} +}, +"path": "civicinfo/v2/elections", +"response": { +"$ref": "ElectionsQueryResponse" +} +}, +"voterInfoQuery": { +"description": "Looks up information relevant to a voter based on the voter's registered address.", +"flatPath": "civicinfo/v2/voterinfo", +"httpMethod": "GET", +"id": "civicinfo.elections.voterInfoQuery", +"parameterOrder": [], +"parameters": { +"address": { +"description": "The registered address of the voter to look up.", +"location": "query", +"type": "string" +}, +"electionId": { +"default": "0", +"description": "The unique ID of the election to look up. A list of election IDs can be obtained at https://www.googleapis.com/civicinfo/{version}/elections. If no election ID is specified in the query and there is more than one election with data for the given voter, the additional elections are provided in the otherElections response field.", +"format": "int64", +"location": "query", +"type": "string" +}, +"officialOnly": { +"default": "false", +"description": "If set to true, only data from official state sources will be returned.", +"location": "query", +"type": "boolean" +}, +"productionDataOnly": { +"default": "true", +"description": "Whether to include data that has not been vetted yet. Should only be made available to internal IPs or trusted partners. This is a non-discoverable parameter in the One Platform API config.", +"location": "query", +"type": "boolean" +}, +"returnAllAvailableData": { +"default": "false", +"description": "If set to true, the query will return the success code and include any partial information when it is unable to determine a matching address or unable to determine the election for electionId=0 queries.", +"location": "query", +"type": "boolean" +} +}, +"path": "civicinfo/v2/voterinfo", +"response": { +"$ref": "VoterInfoResponse" +} +} +} +}, +"representatives": { +"methods": { +"representativeInfoByAddress": { +"description": "Looks up political geography and representative information for a single address.", +"flatPath": "civicinfo/v2/representatives", +"httpMethod": "GET", +"id": "civicinfo.representatives.representativeInfoByAddress", +"parameterOrder": [], +"parameters": { +"address": { +"description": "The address to look up. May only be specified if the field ocdId is not given in the URL", +"location": "query", +"type": "string" +}, +"includeOffices": { +"default": "true", +"description": "Whether to return information about offices and officials. If false, only the top-level district information will be returned.", +"location": "query", +"type": "boolean" +}, +"levels": { +"description": "A list of office levels to filter by. Only offices that serve at least one of these levels will be returned. Divisions that don't contain a matching office will not be returned.", +"enum": [ +"international", +"country", +"administrativeArea1", +"regional", +"administrativeArea2", +"locality", +"subLocality1", +"subLocality2", +"special" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"location": "query", +"repeated": true, +"type": "string" +}, +"roles": { +"description": "A list of office roles to filter by. Only offices fulfilling one of these roles will be returned. Divisions that don't contain a matching office will not be returned.", +"enum": [ +"headOfState", +"headOfGovernment", +"deputyHeadOfGovernment", +"governmentOfficer", +"executiveCouncil", +"legislatorUpperBody", +"legislatorLowerBody", +"highestCourtJudge", +"judge", +"schoolBoard", +"specialPurposeOfficer", +"otherRole" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "civicinfo/v2/representatives", +"response": { +"$ref": "RepresentativeInfoResponse" +} +}, +"representativeInfoByDivision": { +"description": "Looks up representative information for a single geographic division.", +"flatPath": "civicinfo/v2/representatives/{ocdId}", +"httpMethod": "GET", +"id": "civicinfo.representatives.representativeInfoByDivision", +"parameterOrder": [ +"ocdId" +], +"parameters": { +"levels": { +"description": "A list of office levels to filter by. Only offices that serve at least one of these levels will be returned. Divisions that don't contain a matching office will not be returned.", +"enum": [ +"international", +"country", +"administrativeArea1", +"regional", +"administrativeArea2", +"locality", +"subLocality1", +"subLocality2", +"special" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"location": "query", +"repeated": true, +"type": "string" +}, +"ocdId": { +"description": "The Open Civic Data division identifier of the division to look up.", +"location": "path", +"required": true, +"type": "string" +}, +"recursive": { +"description": "If true, information about all divisions contained in the division requested will be included as well. For example, if querying ocd-division/country:us/district:dc, this would also return all DC's wards and ANCs.", +"location": "query", +"type": "boolean" +}, +"roles": { +"description": "A list of office roles to filter by. Only offices fulfilling one of these roles will be returned. Divisions that don't contain a matching office will not be returned.", +"enum": [ +"headOfState", +"headOfGovernment", +"deputyHeadOfGovernment", +"governmentOfficer", +"executiveCouncil", +"legislatorUpperBody", +"legislatorLowerBody", +"highestCourtJudge", +"judge", +"schoolBoard", +"specialPurposeOfficer", +"otherRole" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "civicinfo/v2/representatives/{ocdId}", +"response": { +"$ref": "RepresentativeInfoData" +} +} +} +} +}, +"revision": "20240910", +"rootUrl": "https://civicinfo.googleapis.com/", +"schemas": { +"AdministrationRegion": { +"description": "Describes information about a regional election administrative area.", +"id": "AdministrationRegion", +"properties": { +"electionAdministrationBody": { +"$ref": "AdministrativeBody", +"description": "The election administration body for this area." +}, +"local_jurisdiction": { +"$ref": "AdministrationRegion", +"description": "The city or county that provides election information for this voter. This object can have the same elements as state." +}, +"name": { +"description": "The name of the jurisdiction.", +"type": "string" +}, +"sources": { +"description": "A list of sources for this area. If multiple sources are listed the data has been aggregated from those sources.", +"items": { +"$ref": "Source" +}, +"type": "array" +} +}, +"type": "object" +}, +"AdministrativeBody": { +"description": "Information about an election administrative body (e.g. County Board of Elections).", +"id": "AdministrativeBody", +"properties": { +"absenteeVotingInfoUrl": { +"description": "A URL provided by this administrative body for information on absentee voting.", +"type": "string" +}, +"ballotInfoUrl": { +"description": "A URL provided by this administrative body to give contest information to the voter.", +"type": "string" +}, +"correspondenceAddress": { +"$ref": "SimpleAddressType", +"description": "The mailing address of this administrative body." +}, +"electionInfoUrl": { +"description": "A URL provided by this administrative body for looking up general election information.", +"type": "string" +}, +"electionNoticeText": { +"description": "A last minute or emergency notification text provided by this administrative body.", +"type": "string" +}, +"electionNoticeUrl": { +"description": "A URL provided by this administrative body for additional information related to the last minute or emergency notification.", +"type": "string" +}, +"electionOfficials": { +"description": "The election officials for this election administrative body.", +"items": { +"$ref": "ElectionOfficial" +}, +"type": "array" +}, +"electionRegistrationConfirmationUrl": { +"description": "A URL provided by this administrative body for confirming that the voter is registered to vote.", +"type": "string" +}, +"electionRegistrationUrl": { +"description": "A URL provided by this administrative body for looking up how to register to vote.", +"type": "string" +}, +"electionRulesUrl": { +"description": "A URL provided by this administrative body describing election rules to the voter.", +"type": "string" +}, +"hoursOfOperation": { +"description": "A description of the hours of operation for this administrative body.", +"type": "string" +}, +"name": { +"description": "The name of this election administrative body.", +"type": "string" +}, +"physicalAddress": { +"$ref": "SimpleAddressType", +"description": "The physical address of this administrative body." +}, +"voter_services": { +"description": "A description of the services this administrative body may provide.", +"items": { +"type": "string" +}, +"type": "array" +}, +"votingLocationFinderUrl": { +"description": "A URL provided by this administrative body for looking up where to vote.", +"type": "string" +} +}, +"type": "object" +}, +"Candidate": { +"description": "Information about a candidate running for elected office.", +"id": "Candidate", +"properties": { +"candidateUrl": { +"description": "The URL for the candidate's campaign web site.", +"type": "string" +}, +"channels": { +"description": "A list of known (social) media channels for this candidate.", +"items": { +"$ref": "Channel" +}, +"type": "array" +}, +"email": { +"description": "The email address for the candidate's campaign.", +"type": "string" +}, +"name": { +"description": "The candidate's name. If this is a joint ticket it will indicate the name of the candidate at the top of a ticket followed by a / and that name of candidate at the bottom of the ticket. e.g. \"Mitt Romney / Paul Ryan\"", +"type": "string" +}, +"orderOnBallot": { +"description": "The order the candidate appears on the ballot for this contest.", +"format": "int64", +"type": "string" +}, +"party": { +"description": "The full name of the party the candidate is a member of.", +"type": "string" +}, +"phone": { +"description": "The voice phone number for the candidate's campaign office.", +"type": "string" +}, +"photoUrl": { +"description": "A URL for a photo of the candidate.", +"type": "string" +} +}, +"type": "object" +}, +"Channel": { +"description": "A social media or web channel for a candidate.", +"id": "Channel", +"properties": { +"id": { +"description": "The unique public identifier for the candidate's channel.", +"type": "string" +}, +"type": { +"description": "The type of channel. The following is a list of types of channels, but is not exhaustive. More channel types may be added at a later time. One of: GooglePlus, YouTube, Facebook, Twitter", +"type": "string" +} +}, +"type": "object" +}, +"Contest": { +"description": "Information about a contest that appears on a voter's ballot.", +"id": "Contest", +"properties": { +"ballotPlacement": { +"description": "A number specifying the position of this contest on the voter's ballot.", +"format": "int64", +"type": "string" +}, +"ballotTitle": { +"description": "The official title on the ballot for this contest, only where available.", +"type": "string" +}, +"candidates": { +"description": "The candidate choices for this contest.", +"items": { +"$ref": "Candidate" +}, +"type": "array" +}, +"district": { +"$ref": "ElectoralDistrict", +"description": "Information about the electoral district that this contest is in." +}, +"electorateSpecifications": { +"description": "A description of any additional eligibility requirements for voting in this contest.", +"type": "string" +}, +"level": { +"description": "The levels of government of the office for this contest. There may be more than one in cases where a jurisdiction effectively acts at two different levels of government; for example, the mayor of the District of Columbia acts at \"locality\" level, but also effectively at both \"administrative-area-2\" and \"administrative-area-1\".", +"items": { +"enum": [ +"international", +"country", +"administrativeArea1", +"regional", +"administrativeArea2", +"locality", +"subLocality1", +"subLocality2", +"special" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"numberElected": { +"description": "The number of candidates that will be elected to office in this contest.", +"format": "int64", +"type": "string" +}, +"numberVotingFor": { +"description": "The number of candidates that a voter may vote for in this contest.", +"format": "int64", +"type": "string" +}, +"office": { +"description": "The name of the office for this contest.", +"type": "string" +}, +"primaryParties": { +"description": "If this is a partisan election, the name of the party/parties it is for.", +"items": { +"type": "string" +}, +"type": "array" +}, +"referendumBallotResponses": { +"description": "The set of ballot responses for the referendum. A ballot response represents a line on the ballot. Common examples might include \"yes\" or \"no\" for referenda. This field is only populated for contests of type 'Referendum'.", +"items": { +"type": "string" +}, +"type": "array" +}, +"referendumBrief": { +"description": "Specifies a short summary of the referendum that is typically on the ballot below the title but above the text. This field is only populated for contests of type 'Referendum'.", +"type": "string" +}, +"referendumConStatement": { +"description": "A statement in opposition to the referendum. It does not necessarily appear on the ballot. This field is only populated for contests of type 'Referendum'.", +"type": "string" +}, +"referendumEffectOfAbstain": { +"description": "Specifies what effect abstaining (not voting) on the proposition will have (i.e. whether abstaining is considered a vote against it). This field is only populated for contests of type 'Referendum'.", +"type": "string" +}, +"referendumPassageThreshold": { +"description": "The threshold of votes that the referendum needs in order to pass, e.g. \"two-thirds\". This field is only populated for contests of type 'Referendum'.", +"type": "string" +}, +"referendumProStatement": { +"description": "A statement in favor of the referendum. It does not necessarily appear on the ballot. This field is only populated for contests of type 'Referendum'.", +"type": "string" +}, +"referendumSubtitle": { +"description": "A brief description of the referendum. This field is only populated for contests of type 'Referendum'.", +"type": "string" +}, +"referendumText": { +"description": "The full text of the referendum. This field is only populated for contests of type 'Referendum'.", +"type": "string" +}, +"referendumTitle": { +"description": "The title of the referendum (e.g. 'Proposition 42'). This field is only populated for contests of type 'Referendum'.", +"type": "string" +}, +"referendumUrl": { +"description": "A link to the referendum. This field is only populated for contests of type 'Referendum'.", +"type": "string" +}, +"roles": { +"description": "The roles which this office fulfills.", +"items": { +"enum": [ +"headOfState", +"headOfGovernment", +"deputyHeadOfGovernment", +"governmentOfficer", +"executiveCouncil", +"legislatorUpperBody", +"legislatorLowerBody", +"highestCourtJudge", +"judge", +"schoolBoard", +"specialPurposeOfficer", +"otherRole" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"sources": { +"description": "A list of sources for this contest. If multiple sources are listed, the data has been aggregated from those sources.", +"items": { +"$ref": "Source" +}, +"type": "array" +}, +"special": { +"description": "\"Yes\" or \"No\" depending on whether this a contest being held outside the normal election cycle.", +"type": "string" +}, +"type": { +"description": "The type of contest. Usually this will be 'General', 'Primary', or 'Run-off' for contests with candidates. For referenda this will be 'Referendum'. For Retention contests this will typically be 'Retention'.", +"type": "string" +} +}, +"type": "object" +}, +"DivisionByAddressResponse": { +"id": "DivisionByAddressResponse", +"properties": { +"divisions": { +"additionalProperties": { +"$ref": "GeographicDivision" +}, +"type": "object" +}, +"normalizedInput": { +"$ref": "SimpleAddressType", +"description": "The normalized version of the requested address." +} +}, +"type": "object" +}, +"DivisionSearchResponse": { +"description": "The result of a division search query.", +"id": "DivisionSearchResponse", +"properties": { +"kind": { +"default": "civicinfo#divisionSearchResponse", +"description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#divisionSearchResponse\".", +"type": "string" +}, +"results": { +"items": { +"$ref": "DivisionSearchResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"DivisionSearchResult": { +"description": "Represents a political geographic division that matches the requested query.", +"id": "DivisionSearchResult", +"properties": { +"aliases": { +"description": "Other Open Civic Data identifiers that refer to the same division -- for example, those that refer to other political divisions whose boundaries are defined to be coterminous with this one. For example, ocd-division/country:us/state:wy will include an alias of ocd-division/country:us/state:wy/cd:1, since Wyoming has only one Congressional district.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the division.", +"type": "string" +}, +"ocdId": { +"description": "The unique Open Civic Data identifier for this division", +"type": "string" +} +}, +"type": "object" +}, +"Election": { +"description": "Information about the election that was queried.", +"id": "Election", +"properties": { +"electionDay": { +"description": "Day of the election in YYYY-MM-DD format.", +"type": "string" +}, +"id": { +"description": "The unique ID of this election.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "A displayable name for the election.", +"type": "string" +}, +"ocdDivisionId": { +"description": "The political division of the election. Represented as an OCD Division ID. Voters within these political jurisdictions are covered by this election. This is typically a state such as ocd-division/country:us/state:ca or for the midterms or general election the entire US (i.e. ocd-division/country:us).", +"type": "string" +}, +"shapeLookupBehavior": { +"enum": [ +"shapeLookupDefault", +"shapeLookupDisabled", +"shapeLookupEnabled" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"ElectionOfficial": { +"description": "Information about individual election officials.", +"id": "ElectionOfficial", +"properties": { +"emailAddress": { +"description": "The email address of the election official.", +"type": "string" +}, +"faxNumber": { +"description": "The fax number of the election official.", +"type": "string" +}, +"name": { +"description": "The full name of the election official.", +"type": "string" +}, +"officePhoneNumber": { +"description": "The office phone number of the election official.", +"type": "string" +}, +"title": { +"description": "The title of the election official.", +"type": "string" +} +}, +"type": "object" +}, +"ElectionsQueryResponse": { +"description": "The list of elections available for this version of the API.", +"id": "ElectionsQueryResponse", +"properties": { +"elections": { +"description": "A list of available elections", +"items": { +"$ref": "Election" +}, +"type": "array" +}, +"kind": { +"default": "civicinfo#electionsQueryResponse", +"description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#electionsQueryResponse\".", +"type": "string" +} +}, +"type": "object" +}, +"ElectoralDistrict": { +"description": "Describes the geographic scope of a contest.", +"id": "ElectoralDistrict", +"properties": { +"id": { +"description": "An identifier for this district, relative to its scope. For example, the 34th State Senate district would have id \"34\" and a scope of stateUpper.", +"type": "string" +}, +"name": { +"description": "The name of the district.", +"type": "string" +}, +"scope": { +"description": "The geographic scope of this district. If unspecified the district's geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special", +"enum": [ +"statewide", +"congressional", +"stateUpper", +"stateLower", +"countywide", +"judicial", +"schoolBoard", +"citywide", +"special", +"countyCouncil", +"township", +"ward", +"cityCouncil", +"national" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"GeographicDivision": { +"description": "Describes a political geography.", +"id": "GeographicDivision", +"properties": { +"alsoKnownAs": { +"description": "Any other valid OCD IDs that refer to the same division.\\n\\nBecause OCD IDs are meant to be human-readable and at least somewhat predictable, there are occasionally several identifiers for a single division. These identifiers are defined to be equivalent to one another, and one is always indicated as the primary identifier. The primary identifier will be returned in ocd_id above, and any other equivalent valid identifiers will be returned in this list.\\n\\nFor example, if this division's OCD ID is ocd-division/country:us/district:dc, this will contain ocd-division/country:us/state:dc.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the division.", +"type": "string" +}, +"officeIndices": { +"description": "List of indices in the offices array, one for each office elected from this division. Will only be present if includeOffices was true (or absent) in the request.", +"items": { +"format": "uint32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"Office": { +"description": "Information about an Office held by one or more Officials.", +"id": "Office", +"properties": { +"divisionId": { +"description": "The OCD ID of the division with which this office is associated.", +"type": "string" +}, +"levels": { +"description": "The levels of government of which this office is part. There may be more than one in cases where a jurisdiction effectively acts at two different levels of government; for example, the mayor of the District of Columbia acts at \"locality\" level, but also effectively at both \"administrative-area-2\" and \"administrative-area-1\".", +"items": { +"enum": [ +"international", +"country", +"administrativeArea1", +"regional", +"administrativeArea2", +"locality", +"subLocality1", +"subLocality2", +"special" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The human-readable name of the office.", +"type": "string" +}, +"officialIndices": { +"description": "List of indices in the officials array of people who presently hold this office.", +"items": { +"format": "uint32", +"type": "integer" +}, +"type": "array" +}, +"roles": { +"description": "The roles which this office fulfills. Roles are not meant to be exhaustive, or to exactly specify the entire set of responsibilities of a given office, but are meant to be rough categories that are useful for general selection from or sorting of a list of offices.", +"items": { +"enum": [ +"headOfState", +"headOfGovernment", +"deputyHeadOfGovernment", +"governmentOfficer", +"executiveCouncil", +"legislatorUpperBody", +"legislatorLowerBody", +"highestCourtJudge", +"judge", +"schoolBoard", +"specialPurposeOfficer", +"otherRole" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"sources": { +"description": "A list of sources for this office. If multiple sources are listed, the data has been aggregated from those sources.", +"items": { +"$ref": "Source" +}, +"type": "array" +} +}, +"type": "object" +}, +"Official": { +"description": "Information about a person holding an elected office.", +"id": "Official", +"properties": { +"address": { +"description": "Addresses at which to contact the official.", +"items": { +"$ref": "SimpleAddressType" +}, +"type": "array" +}, +"channels": { +"description": "A list of known (social) media channels for this official.", +"items": { +"$ref": "Channel" +}, +"type": "array" +}, +"emails": { +"description": "The direct email addresses for the official.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The official's name.", +"type": "string" +}, +"party": { +"description": "The full name of the party the official belongs to.", +"type": "string" +}, +"phones": { +"description": "The official's public contact phone numbers.", +"items": { +"type": "string" +}, +"type": "array" +}, +"photoUrl": { +"description": "A URL for a photo of the official.", +"type": "string" +}, +"urls": { +"description": "The official's public website URLs.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PollingLocation": { +"description": "A location where a voter can vote. This may be an early vote site, an election day voting location, or a drop off location for a completed ballot.", +"id": "PollingLocation", +"properties": { +"address": { +"$ref": "SimpleAddressType", +"description": "The address of the location." +}, +"endDate": { +"description": "The last date that this early vote site or drop off location may be used. This field is not populated for polling locations.", +"type": "string" +}, +"latitude": { +"description": "Latitude of the location, in degrees north of the equator. Note this field may not be available for some locations.", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "Longitude of the location, in degrees east of the Prime Meridian. Note this field may not be available for some locations.", +"format": "double", +"type": "number" +}, +"name": { +"description": "The name of the early vote site or drop off location. This field is not populated for polling locations.", +"type": "string" +}, +"notes": { +"description": "Notes about this location (e.g. accessibility ramp or entrance to use).", +"type": "string" +}, +"pollingHours": { +"description": "A description of when this location is open.", +"type": "string" +}, +"sources": { +"description": "A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.", +"items": { +"$ref": "Source" +}, +"type": "array" +}, +"startDate": { +"description": "The first date that this early vote site or drop off location may be used. This field is not populated for polling locations.", +"type": "string" +}, +"voterServices": { +"description": "The services provided by this early vote site or drop off location. This field is not populated for polling locations.", +"type": "string" +} +}, +"type": "object" +}, +"Precinct": { +"id": "Precinct", +"properties": { +"administrationRegionId": { +"description": "ID of the AdministrationRegion message for this precinct. Corresponds to LocalityId xml tag.", +"type": "string" +}, +"contestId": { +"description": "ID(s) of the Contest message(s) for this precinct.", +"items": { +"type": "string" +}, +"type": "array" +}, +"datasetId": { +"description": "Required. Dataset ID. What datasets our Precincts come from.", +"format": "int64", +"type": "string" +}, +"earlyVoteSiteId": { +"description": "ID(s) of the PollingLocation message(s) for this precinct.", +"items": { +"type": "string" +}, +"type": "array" +}, +"electoralDistrictId": { +"description": "ID(s) of the ElectoralDistrict message(s) for this precinct.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Required. A unique identifier for this precinct.", +"type": "string" +}, +"mailOnly": { +"description": "Specifies if the precinct runs mail-only elections.", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the precinct.", +"type": "string" +}, +"number": { +"description": "The number of the precinct.", +"type": "string" +}, +"ocdId": { +"description": "Encouraged. The OCD ID of the precinct", +"items": { +"type": "string" +}, +"type": "array" +}, +"pollingLocationId": { +"description": "ID(s) of the PollingLocation message(s) for this precinct.", +"items": { +"type": "string" +}, +"type": "array" +}, +"spatialBoundaryId": { +"description": "ID(s) of the SpatialBoundary message(s) for this precinct. Used to specify a geometrical boundary of the precinct.", +"items": { +"type": "string" +}, +"type": "array" +}, +"splitName": { +"description": "If present, this proto corresponds to one portion of split precinct. Other portions of this precinct are guaranteed to have the same `name`. If not present, this proto represents a full precicnt.", +"type": "string" +}, +"ward": { +"description": "Specifies the ward the precinct is contained within.", +"type": "string" +} +}, +"type": "object" +}, +"RepresentativeInfoData": { +"id": "RepresentativeInfoData", +"properties": { +"divisions": { +"additionalProperties": { +"$ref": "GeographicDivision" +}, +"description": "A map of political geographic divisions that contain the requested address, keyed by the unique Open Civic Data identifier for this division.", +"type": "object" +}, +"offices": { +"description": "Elected offices referenced by the divisions listed above. Will only be present if includeOffices was true in the request.", +"items": { +"$ref": "Office" +}, +"type": "array" +}, +"officials": { +"description": "Officials holding the offices listed above. Will only be present if includeOffices was true in the request.", +"items": { +"$ref": "Official" +}, +"type": "array" +} +}, +"type": "object" +}, +"RepresentativeInfoResponse": { +"description": "The result of a representative info lookup query.", +"id": "RepresentativeInfoResponse", +"properties": { +"divisions": { +"additionalProperties": { +"$ref": "GeographicDivision" +}, +"description": "A map of political geographic divisions that contain the requested address, keyed by the unique Open Civic Data identifier for this division.", +"type": "object" +}, +"kind": { +"default": "civicinfo#representativeInfoResponse", +"description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#representativeInfoResponse\".", +"type": "string" +}, +"normalizedInput": { +"$ref": "SimpleAddressType", +"description": "The normalized version of the requested address" +}, +"offices": { +"description": "Elected offices referenced by the divisions listed above. Will only be present if includeOffices was true in the request.", +"items": { +"$ref": "Office" +}, +"type": "array" +}, +"officials": { +"description": "Officials holding the offices listed above. Will only be present if includeOffices was true in the request.", +"items": { +"$ref": "Official" +}, +"type": "array" +} +}, +"type": "object" +}, +"SimpleAddressType": { +"description": "A simple representation of an address.", +"id": "SimpleAddressType", +"properties": { +"city": { +"description": "The city or town for the address.", +"type": "string" +}, +"line1": { +"description": "The street name and number of this address.", +"type": "string" +}, +"line2": { +"description": "The second line the address, if needed.", +"type": "string" +}, +"line3": { +"description": "The third line of the address, if needed.", +"type": "string" +}, +"locationName": { +"description": "The name of the location.", +"type": "string" +}, +"state": { +"description": "The US two letter state abbreviation of the address.", +"type": "string" +}, +"zip": { +"description": "The US Postal Zip Code of the address.", +"type": "string" +} +}, +"type": "object" +}, +"Source": { +"description": "Contains information about the data source for the element containing it.", +"id": "Source", +"properties": { +"name": { +"description": "The name of the data source.", +"type": "string" +}, +"official": { +"description": "Whether this data comes from an official government source.", +"type": "boolean" +} +}, +"type": "object" +}, +"VoterInfoResponse": { +"description": "The result of a voter info lookup query.", +"id": "VoterInfoResponse", +"properties": { +"contests": { +"description": "Contests that will appear on the voter's ballot.", +"items": { +"$ref": "Contest" +}, +"type": "array" +}, +"dropOffLocations": { +"description": "Locations where a voter is eligible to drop off a completed ballot. The voter must have received and completed a ballot prior to arriving at the location. The location may not have ballots available on the premises. These locations could be open on or before election day as indicated in the pollingHours field.", +"items": { +"$ref": "PollingLocation" +}, +"type": "array" +}, +"earlyVoteSites": { +"description": "Locations where the voter is eligible to vote early, prior to election day.", +"items": { +"$ref": "PollingLocation" +}, +"type": "array" +}, +"election": { +"$ref": "Election", +"description": "The election that was queried." +}, +"kind": { +"default": "civicinfo#voterInfoResponse", +"description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#voterInfoResponse\".", +"type": "string" +}, +"mailOnly": { +"description": "Specifies whether voters in the precinct vote only by mailing their ballots (with the possible option of dropping off their ballots as well).", +"type": "boolean" +}, +"normalizedInput": { +"$ref": "SimpleAddressType", +"description": "The normalized version of the requested address" +}, +"otherElections": { +"description": "When there are multiple elections for a voter address, the otherElections field is populated in the API response and there are two possibilities: 1. If the earliest election is not the intended election, specify the election ID of the desired election in a second API request using the electionId field. 2. If these elections occur on the same day, the API doesn?t return any polling location, contest, or election official information to ensure that an additional query is made. For user-facing applications, we recommend displaying these elections to the user to disambiguate. A second API request using the electionId field should be made for the election that is relevant to the user.", +"items": { +"$ref": "Election" +}, +"type": "array" +}, +"pollingLocations": { +"description": "Locations where the voter is eligible to vote on election day.", +"items": { +"$ref": "PollingLocation" +}, +"type": "array" +}, +"precinctId": { +"type": "string" +}, +"precincts": { +"description": "The precincts that match this voter's address. Will only be returned for project IDs which have been allowlisted as \"partner projects\".", +"items": { +"$ref": "Precinct" +}, +"type": "array" +}, +"state": { +"description": "Local Election Information for the state that the voter votes in. For the US, there will only be one element in this array.", +"items": { +"$ref": "AdministrationRegion" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Civic Information API", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudbuild.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudbuild.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..a8f7e3ed60dd4a6973aed15e8d75b1207a117f1c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudbuild.v1.json @@ -0,0 +1,5762 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudbuild.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Build", +"description": "Creates and manages builds on Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/cloud-build/docs/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.africa-south1.rep.googleapis.com/", +"location": "africa-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-east1.rep.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-east2.rep.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-northeast1.rep.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-northeast2.rep.googleapis.com/", +"location": "asia-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-northeast3.rep.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-south1.rep.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-south2.rep.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-southeast1.rep.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.asia-southeast2.rep.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.australia-southeast1.rep.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.australia-southeast2.rep.googleapis.com/", +"location": "australia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-central2.rep.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-north1.rep.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-southwest1.rep.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west10.rep.googleapis.com/", +"location": "europe-west10" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west12.rep.googleapis.com/", +"location": "europe-west12" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.me-central1.rep.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.northamerica-northeast1.rep.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.northamerica-northeast2.rep.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.northamerica-south1.rep.googleapis.com/", +"location": "northamerica-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.southamerica-east1.rep.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.southamerica-west1.rep.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://cloudbuild.us-west8.rep.googleapis.com/", +"location": "us-west8" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudbuild:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudbuild.mtls.googleapis.com/", +"name": "cloudbuild", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"githubDotComWebhook": { +"methods": { +"receive": { +"description": "ReceiveGitHubDotComWebhook is called when the API receives a github.com webhook.", +"flatPath": "v1/githubDotComWebhook:receive", +"httpMethod": "POST", +"id": "cloudbuild.githubDotComWebhook.receive", +"parameterOrder": [], +"parameters": { +"webhookKey": { +"description": "For GitHub Enterprise webhooks, this key is used to associate the webhook request with the GitHubEnterpriseConfig to use for validation.", +"location": "query", +"type": "string" +} +}, +"path": "v1/githubDotComWebhook:receive", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "Empty" +} +} +} +}, +"locations": { +"methods": { +"regionalWebhook": { +"description": "ReceiveRegionalWebhook is called when the API receives a regional GitHub webhook.", +"flatPath": "v1/locations/{locationsId}/regionalWebhook", +"httpMethod": "POST", +"id": "cloudbuild.locations.regionalWebhook", +"parameterOrder": [ +"location" +], +"parameters": { +"location": { +"description": "Required. The location where the webhook should be sent.", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +}, +"webhookKey": { +"description": "For GitHub Enterprise webhooks, this key is used to associate the webhook request with the GitHubEnterpriseConfig to use for validation.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+location}/regionalWebhook", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "Empty" +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "cloudbuild.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "GET", +"id": "cloudbuild.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projects": { +"resources": { +"builds": { +"methods": { +"approve": { +"description": "Approves or rejects a pending build. If approved, the returned LRO will be analogous to the LRO returned from a CreateBuild call. If rejected, the returned LRO will be immediately done.", +"flatPath": "v1/projects/{projectsId}/builds/{buildsId}:approve", +"httpMethod": "POST", +"id": "cloudbuild.projects.builds.approve", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the target build. For example: \"projects/{$project_id}/builds/{$build_id}\"", +"location": "path", +"pattern": "^projects/[^/]+/builds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:approve", +"request": { +"$ref": "ApproveBuildRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"cancel": { +"description": "Cancels a build in progress.", +"flatPath": "v1/projects/{projectId}/builds/{id}:cancel", +"httpMethod": "POST", +"id": "cloudbuild.projects.builds.cancel", +"parameterOrder": [ +"projectId", +"id" +], +"parameters": { +"id": { +"description": "Required. ID of the build.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/builds/{id}:cancel", +"request": { +"$ref": "CancelBuildRequest" +}, +"response": { +"$ref": "Build" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Starts a build with the specified configuration. This method returns a long-running `Operation`, which includes the build ID. Pass the build ID to `GetBuild` to determine the build status (such as `SUCCESS` or `FAILURE`).", +"flatPath": "v1/projects/{projectId}/builds", +"httpMethod": "POST", +"id": "cloudbuild.projects.builds.create", +"parameterOrder": [ +"projectId" +], +"parameters": { +"parent": { +"description": "The parent resource where this build will be created. Format: `projects/{project}/locations/{location}`", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/builds", +"request": { +"$ref": "Build" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns information about a previously requested build. The `Build` that is returned includes its status (such as `SUCCESS`, `FAILURE`, or `WORKING`), and timing information.", +"flatPath": "v1/projects/{projectId}/builds/{id}", +"httpMethod": "GET", +"id": "cloudbuild.projects.builds.get", +"parameterOrder": [ +"projectId", +"id" +], +"parameters": { +"id": { +"description": "Required. ID of the build.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "The name of the `Build` to retrieve. Format: `projects/{project}/locations/{location}/builds/{build}`", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/builds/{id}", +"response": { +"$ref": "Build" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists previously requested builds. Previously requested builds may still be in-progress, or may have finished successfully or unsuccessfully.", +"flatPath": "v1/projects/{projectId}/builds", +"httpMethod": "GET", +"id": "cloudbuild.projects.builds.list", +"parameterOrder": [ +"projectId" +], +"parameters": { +"filter": { +"description": "The raw filter text to constrain the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Number of results to return in the list.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token for the next page of Builds. If unspecified, the first page of results is returned. If the token is rejected for any reason, INVALID_ARGUMENT will be thrown. In this case, the token should be discarded, and pagination should be restarted from the first page of results. See https://google.aip.dev/158 for more.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The parent of the collection of `Builds`. Format: `projects/{project}/locations/{location}`", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/builds", +"response": { +"$ref": "ListBuildsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retry": { +"description": "Creates a new build based on the specified build. This method creates a new build using the original build request, which may or may not result in an identical build. For triggered builds: * Triggered builds resolve to a precise revision; therefore a retry of a triggered build will result in a build that uses the same revision. For non-triggered builds that specify `RepoSource`: * If the original build built from the tip of a branch, the retried build will build from the tip of that branch, which may not be the same revision as the original build. * If the original build specified a commit sha or revision ID, the retried build will use the identical source. For builds that specify `StorageSource`: * If the original build pulled source from Cloud Storage without specifying the generation of the object, the new build will use the current object, which may be different from the original build source. * If the original build pulled source from Cloud Storage and specified the generation of the object, the new build will attempt to use the same object, which may or may not be available depending on the bucket's lifecycle management settings.", +"flatPath": "v1/projects/{projectId}/builds/{id}:retry", +"httpMethod": "POST", +"id": "cloudbuild.projects.builds.retry", +"parameterOrder": [ +"projectId", +"id" +], +"parameters": { +"id": { +"description": "Required. Build ID of the original build.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/builds/{id}:retry", +"request": { +"$ref": "RetryBuildRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"githubEnterpriseConfigs": { +"methods": { +"create": { +"description": "Create an association between a GCP project and a GitHub Enterprise server.", +"flatPath": "v1/projects/{projectsId}/githubEnterpriseConfigs", +"httpMethod": "POST", +"id": "cloudbuild.projects.githubEnterpriseConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"gheConfigId": { +"description": "Optional. The ID to use for the GithubEnterpriseConfig, which will become the final component of the GithubEnterpriseConfig's resource name. ghe_config_id must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Name of the parent project. For example: projects/{$project_number} or projects/{$project_id}", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "ID of the project.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/githubEnterpriseConfigs", +"request": { +"$ref": "GitHubEnterpriseConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete an association between a GCP project and a GitHub Enterprise server.", +"flatPath": "v1/projects/{projectsId}/githubEnterpriseConfigs/{githubEnterpriseConfigsId}", +"httpMethod": "DELETE", +"id": "cloudbuild.projects.githubEnterpriseConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"configId": { +"deprecated": true, +"description": "Unique identifier of the `GitHubEnterpriseConfig`", +"location": "query", +"type": "string" +}, +"name": { +"description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", +"location": "path", +"pattern": "^projects/[^/]+/githubEnterpriseConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "ID of the project", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve a GitHubEnterpriseConfig.", +"flatPath": "v1/projects/{projectsId}/githubEnterpriseConfigs/{githubEnterpriseConfigsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.githubEnterpriseConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"configId": { +"deprecated": true, +"description": "Unique identifier of the `GitHubEnterpriseConfig`", +"location": "query", +"type": "string" +}, +"name": { +"description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", +"location": "path", +"pattern": "^projects/[^/]+/githubEnterpriseConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "ID of the project", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GitHubEnterpriseConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List all GitHubEnterpriseConfigs for a given project.", +"flatPath": "v1/projects/{projectsId}/githubEnterpriseConfigs", +"httpMethod": "GET", +"id": "cloudbuild.projects.githubEnterpriseConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Name of the parent project. For example: projects/{$project_number} or projects/{$project_id}", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "ID of the project", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/githubEnterpriseConfigs", +"response": { +"$ref": "ListGithubEnterpriseConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an association between a GCP project and a GitHub Enterprise server.", +"flatPath": "v1/projects/{projectsId}/githubEnterpriseConfigs/{githubEnterpriseConfigsId}", +"httpMethod": "PATCH", +"id": "cloudbuild.projects.githubEnterpriseConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The full resource name for the GitHubEnterpriseConfig For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", +"location": "path", +"pattern": "^projects/[^/]+/githubEnterpriseConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Update mask for the resource. If this is set, the server will only update the fields specified in the field mask. Otherwise, a full update of the mutable resource fields will be performed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GitHubEnterpriseConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"methods": { +"getDefaultServiceAccount": { +"description": "Returns the `DefaultServiceAccount` used by the project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/defaultServiceAccount", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.getDefaultServiceAccount", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `DefaultServiceAccount` to retrieve. Format: `projects/{project}/locations/{location}/defaultServiceAccount`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/defaultServiceAccount$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DefaultServiceAccount" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"bitbucketServerConfigs": { +"methods": { +"create": { +"description": "Creates a new `BitbucketServerConfig`. This API is experimental.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.bitbucketServerConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"bitbucketServerConfigId": { +"description": "Optional. The ID to use for the BitbucketServerConfig, which will become the final component of the BitbucketServerConfig's resource name. bitbucket_server_config_id must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bitbucketServerConfigs", +"request": { +"$ref": "BitbucketServerConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a `BitbucketServerConfig`. This API is experimental.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs/{bitbucketServerConfigsId}", +"httpMethod": "DELETE", +"id": "cloudbuild.projects.locations.bitbucketServerConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The config resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bitbucketServerConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve a `BitbucketServerConfig`. This API is experimental.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs/{bitbucketServerConfigsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.bitbucketServerConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The config resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bitbucketServerConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BitbucketServerConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List all `BitbucketServerConfigs` for a given project. This API is experimental.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.bitbucketServerConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 50 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListBitbucketServerConfigsRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBitbucketServerConfigsRequest` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bitbucketServerConfigs", +"response": { +"$ref": "ListBitbucketServerConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing `BitbucketServerConfig`. This API is experimental.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs/{bitbucketServerConfigsId}", +"httpMethod": "PATCH", +"id": "cloudbuild.projects.locations.bitbucketServerConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name for the config.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bitbucketServerConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Update mask for the resource. If this is set, the server will only update the fields specified in the field mask. Otherwise, a full update of the mutable resource fields will be performed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "BitbucketServerConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeBitbucketServerConnectedRepository": { +"description": "Remove a Bitbucket Server repository from a given BitbucketServerConfig's connected repositories. This API is experimental.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs/{bitbucketServerConfigsId}:removeBitbucketServerConnectedRepository", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.bitbucketServerConfigs.removeBitbucketServerConnectedRepository", +"parameterOrder": [ +"config" +], +"parameters": { +"config": { +"description": "Required. The name of the `BitbucketServerConfig` to remove a connected repository. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{config}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bitbucketServerConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+config}:removeBitbucketServerConnectedRepository", +"request": { +"$ref": "RemoveBitbucketServerConnectedRepositoryRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"connectedRepositories": { +"methods": { +"batchCreate": { +"description": "Batch connecting Bitbucket Server repositories to Cloud Build.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs/{bitbucketServerConfigsId}/connectedRepositories:batchCreate", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.bitbucketServerConfigs.connectedRepositories.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The name of the `BitbucketServerConfig` that added connected repository. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{config}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bitbucketServerConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/connectedRepositories:batchCreate", +"request": { +"$ref": "BatchCreateBitbucketServerConnectedRepositoriesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"repos": { +"methods": { +"list": { +"description": "List all repositories for a given `BitbucketServerConfig`. This API is experimental.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs/{bitbucketServerConfigsId}/repos", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.bitbucketServerConfigs.repos.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of configs to return. The service may return fewer than this value. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListBitbucketServerRepositoriesRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBitbucketServerConfigsRequest` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bitbucketServerConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/repos", +"response": { +"$ref": "ListBitbucketServerRepositoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"builds": { +"methods": { +"approve": { +"description": "Approves or rejects a pending build. If approved, the returned LRO will be analogous to the LRO returned from a CreateBuild call. If rejected, the returned LRO will be immediately done.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/builds/{buildsId}:approve", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.builds.approve", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the target build. For example: \"projects/{$project_id}/builds/{$build_id}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/builds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:approve", +"request": { +"$ref": "ApproveBuildRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"cancel": { +"description": "Cancels a build in progress.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/builds/{buildsId}:cancel", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.builds.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the `Build` to cancel. Format: `projects/{project}/locations/{location}/builds/{build}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/builds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelBuildRequest" +}, +"response": { +"$ref": "Build" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Starts a build with the specified configuration. This method returns a long-running `Operation`, which includes the build ID. Pass the build ID to `GetBuild` to determine the build status (such as `SUCCESS` or `FAILURE`).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/builds", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.builds.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The parent resource where this build will be created. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/builds", +"request": { +"$ref": "Build" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns information about a previously requested build. The `Build` that is returned includes its status (such as `SUCCESS`, `FAILURE`, or `WORKING`), and timing information.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/builds/{buildsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.builds.get", +"parameterOrder": [ +"name" +], +"parameters": { +"id": { +"description": "Required. ID of the build.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the `Build` to retrieve. Format: `projects/{project}/locations/{location}/builds/{build}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/builds/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Build" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists previously requested builds. Previously requested builds may still be in-progress, or may have finished successfully or unsuccessfully.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/builds", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.builds.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The raw filter text to constrain the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Number of results to return in the list.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token for the next page of Builds. If unspecified, the first page of results is returned. If the token is rejected for any reason, INVALID_ARGUMENT will be thrown. In this case, the token should be discarded, and pagination should be restarted from the first page of results. See https://google.aip.dev/158 for more.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The parent of the collection of `Builds`. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/builds", +"response": { +"$ref": "ListBuildsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retry": { +"description": "Creates a new build based on the specified build. This method creates a new build using the original build request, which may or may not result in an identical build. For triggered builds: * Triggered builds resolve to a precise revision; therefore a retry of a triggered build will result in a build that uses the same revision. For non-triggered builds that specify `RepoSource`: * If the original build built from the tip of a branch, the retried build will build from the tip of that branch, which may not be the same revision as the original build. * If the original build specified a commit sha or revision ID, the retried build will use the identical source. For builds that specify `StorageSource`: * If the original build pulled source from Cloud Storage without specifying the generation of the object, the new build will use the current object, which may be different from the original build source. * If the original build pulled source from Cloud Storage and specified the generation of the object, the new build will attempt to use the same object, which may or may not be available depending on the bucket's lifecycle management settings.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/builds/{buildsId}:retry", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.builds.retry", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the `Build` to retry. Format: `projects/{project}/locations/{location}/builds/{build}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/builds/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:retry", +"request": { +"$ref": "RetryBuildRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"gitLabConfigs": { +"methods": { +"create": { +"description": "Creates a new `GitLabConfig`. This API is experimental", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.gitLabConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"gitlabConfigId": { +"description": "Optional. The ID to use for the GitLabConfig, which will become the final component of the GitLabConfig\u2019s resource name. gitlab_config_id must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/gitLabConfigs", +"request": { +"$ref": "GitLabConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a `GitLabConfig`. This API is experimental", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}", +"httpMethod": "DELETE", +"id": "cloudbuild.projects.locations.gitLabConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The config resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a `GitLabConfig`. This API is experimental", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.gitLabConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The config resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GitLabConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List all `GitLabConfigs` for a given project. This API is experimental", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.gitLabConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 50 configs will be returned. The maximum value is 1000;, values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous \u2018ListGitlabConfigsRequest\u2019 call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to \u2018ListGitlabConfigsRequest\u2019 must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent resource", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/gitLabConfigs", +"response": { +"$ref": "ListGitLabConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing `GitLabConfig`. This API is experimental", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}", +"httpMethod": "PATCH", +"id": "cloudbuild.projects.locations.gitLabConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name for the config.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Update mask for the resource. If this is set, the server will only update the fields specified in the field mask. Otherwise, a full update of the mutable resource fields will be performed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GitLabConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeGitLabConnectedRepository": { +"description": "Remove a GitLab repository from a given GitLabConfig's connected repositories. This API is experimental.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}:removeGitLabConnectedRepository", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.gitLabConfigs.removeGitLabConnectedRepository", +"parameterOrder": [ +"config" +], +"parameters": { +"config": { +"description": "Required. The name of the `GitLabConfig` to remove a connected repository. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+config}:removeGitLabConnectedRepository", +"request": { +"$ref": "RemoveGitLabConnectedRepositoryRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"connectedRepositories": { +"methods": { +"batchCreate": { +"description": "Batch connecting GitLab repositories to Cloud Build. This API is experimental.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}/connectedRepositories:batchCreate", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.gitLabConfigs.connectedRepositories.batchCreate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The name of the `GitLabConfig` that adds connected repositories. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/connectedRepositories:batchCreate", +"request": { +"$ref": "BatchCreateGitLabConnectedRepositoriesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"repos": { +"methods": { +"list": { +"description": "List all repositories for a given `GitLabConfig`. This API is experimental", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}/repos", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.gitLabConfigs.repos.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of repositories to return. The service may return fewer than this value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous ListGitLabRepositoriesRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListGitLabRepositoriesRequest` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/repos", +"response": { +"$ref": "ListGitLabRepositoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"githubEnterpriseConfigs": { +"methods": { +"create": { +"description": "Create an association between a GCP project and a GitHub Enterprise server.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/githubEnterpriseConfigs", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.githubEnterpriseConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"gheConfigId": { +"description": "Optional. The ID to use for the GithubEnterpriseConfig, which will become the final component of the GithubEnterpriseConfig's resource name. ghe_config_id must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Name of the parent project. For example: projects/{$project_number} or projects/{$project_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "ID of the project.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/githubEnterpriseConfigs", +"request": { +"$ref": "GitHubEnterpriseConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete an association between a GCP project and a GitHub Enterprise server.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/githubEnterpriseConfigs/{githubEnterpriseConfigsId}", +"httpMethod": "DELETE", +"id": "cloudbuild.projects.locations.githubEnterpriseConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"configId": { +"deprecated": true, +"description": "Unique identifier of the `GitHubEnterpriseConfig`", +"location": "query", +"type": "string" +}, +"name": { +"description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/githubEnterpriseConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "ID of the project", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve a GitHubEnterpriseConfig.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/githubEnterpriseConfigs/{githubEnterpriseConfigsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.githubEnterpriseConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"configId": { +"deprecated": true, +"description": "Unique identifier of the `GitHubEnterpriseConfig`", +"location": "query", +"type": "string" +}, +"name": { +"description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/githubEnterpriseConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "ID of the project", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GitHubEnterpriseConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List all GitHubEnterpriseConfigs for a given project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/githubEnterpriseConfigs", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.githubEnterpriseConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Name of the parent project. For example: projects/{$project_number} or projects/{$project_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "ID of the project", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/githubEnterpriseConfigs", +"response": { +"$ref": "ListGithubEnterpriseConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an association between a GCP project and a GitHub Enterprise server.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/githubEnterpriseConfigs/{githubEnterpriseConfigsId}", +"httpMethod": "PATCH", +"id": "cloudbuild.projects.locations.githubEnterpriseConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The full resource name for the GitHubEnterpriseConfig For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/githubEnterpriseConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Update mask for the resource. If this is set, the server will only update the fields specified in the field mask. Otherwise, a full update of the mutable resource fields will be performed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GitHubEnterpriseConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"triggers": { +"methods": { +"create": { +"description": "Creates a new `BuildTrigger`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.triggers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The parent resource where this trigger will be created. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project for which to configure automatic builds.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/triggers", +"request": { +"$ref": "BuildTrigger" +}, +"response": { +"$ref": "BuildTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `BuildTrigger` by its project ID and trigger ID.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers/{triggersId}", +"httpMethod": "DELETE", +"id": "cloudbuild.projects.locations.triggers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the `Trigger` to delete. Format: `projects/{project}/locations/{location}/triggers/{trigger}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/triggers/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project that owns the trigger.", +"location": "query", +"type": "string" +}, +"triggerId": { +"description": "Required. ID of the `BuildTrigger` to delete.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns information about a `BuildTrigger`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers/{triggersId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.triggers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the `Trigger` to retrieve. Format: `projects/{project}/locations/{location}/triggers/{trigger}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/triggers/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project that owns the trigger.", +"location": "query", +"type": "string" +}, +"triggerId": { +"description": "Required. Identifier (`id` or `name`) of the `BuildTrigger` to get.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BuildTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists existing `BuildTrigger`s.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.triggers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Number of results to return in the list.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token to provide to skip to a particular spot in the list.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The parent of the collection of `Triggers`. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project for which to list BuildTriggers.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/triggers", +"response": { +"$ref": "ListBuildTriggersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a `BuildTrigger` by its project ID and trigger ID.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers/{triggersId}", +"httpMethod": "PATCH", +"id": "cloudbuild.projects.locations.triggers.patch", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"projectId": { +"description": "Required. ID of the project that owns the trigger.", +"location": "query", +"type": "string" +}, +"resourceName": { +"description": "The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/triggers/[^/]+$", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. ID of the `BuildTrigger` to update.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Update mask for the resource. If this is set, the server will only update the fields specified in the field mask. Otherwise, a full update of the mutable resource fields will be performed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+resourceName}", +"request": { +"$ref": "BuildTrigger" +}, +"response": { +"$ref": "BuildTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"run": { +"description": "Runs a `BuildTrigger` at a particular source revision. To run a regional or global trigger, use the POST request that includes the location endpoint in the path (ex. v1/projects/{projectId}/locations/{region}/triggers/{triggerId}:run). The POST request that does not include the location endpoint in the path can only be used when running global triggers.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers/{triggersId}:run", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.triggers.run", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the `Trigger` to run. Format: `projects/{project}/locations/{location}/triggers/{trigger}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/triggers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:run", +"request": { +"$ref": "RunBuildTriggerRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"webhook": { +"description": "ReceiveTriggerWebhook [Experimental] is called when the API receives a webhook request targeted at a specific trigger.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers/{triggersId}:webhook", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.triggers.webhook", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the `ReceiveTriggerWebhook` to retrieve. Format: `projects/{project}/locations/{location}/triggers/{trigger}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/triggers/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Project in which the specified trigger lives", +"location": "query", +"type": "string" +}, +"secret": { +"description": "Secret token used for authorization if an OAuth token isn't provided.", +"location": "query", +"type": "string" +}, +"trigger": { +"description": "Name of the trigger to run the payload against", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:webhook", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "ReceiveTriggerWebhookResponse" +} +} +} +}, +"workerPools": { +"methods": { +"create": { +"description": "Creates a `WorkerPool`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workerPools", +"httpMethod": "POST", +"id": "cloudbuild.projects.locations.workerPools.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this worker pool will be created. Format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, validate the request and preview the response, but do not actually post it.", +"location": "query", +"type": "boolean" +}, +"workerPoolId": { +"description": "Required. Immutable. The ID to use for the `WorkerPool`, which will become the final component of the resource name. This value should be 1-63 characters, and valid characters are /a-z-/.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/workerPools", +"request": { +"$ref": "WorkerPool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `WorkerPool`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workerPools/{workerPoolsId}", +"httpMethod": "DELETE", +"id": "cloudbuild.projects.locations.workerPools.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the `WorkerPool` is not found, the request will succeed but no action will be taken on the server.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "Optional. If provided, it must match the server's etag on the workerpool for the request to be processed.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the `WorkerPool` to delete. Format: `projects/{project}/locations/{location}/workerPools/{workerPool}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workerPools/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, validate the request and preview the response, but do not actually post it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns details of a `WorkerPool`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workerPools/{workerPoolsId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.workerPools.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `WorkerPool` to retrieve. Format: `projects/{project}/locations/{location}/workerPools/{workerPool}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workerPools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "WorkerPool" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `WorkerPool`s.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workerPools", +"httpMethod": "GET", +"id": "cloudbuild.projects.locations.workerPools.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of `WorkerPool`s to return. The service may return fewer than this value. If omitted, the server will use a sensible default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkerPools` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of the collection of `WorkerPools`. Format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/workerPools", +"response": { +"$ref": "ListWorkerPoolsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a `WorkerPool`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workerPools/{workerPoolsId}", +"httpMethod": "PATCH", +"id": "cloudbuild.projects.locations.workerPools.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the `WorkerPool`, with format `projects/{project}/locations/{location}/workerPools/{worker_pool}`. The value of `{worker_pool}` is provided by `worker_pool_id` in `CreateWorkerPool` request and the value of `{location}` is determined by the endpoint accessed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workerPools/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. A mask specifying which fields in `worker_pool` to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "If set, validate the request and preview the response, but do not actually post it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "WorkerPool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"triggers": { +"methods": { +"create": { +"description": "Creates a new `BuildTrigger`.", +"flatPath": "v1/projects/{projectId}/triggers", +"httpMethod": "POST", +"id": "cloudbuild.projects.triggers.create", +"parameterOrder": [ +"projectId" +], +"parameters": { +"parent": { +"description": "The parent resource where this trigger will be created. Format: `projects/{project}/locations/{location}`", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project for which to configure automatic builds.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/triggers", +"request": { +"$ref": "BuildTrigger" +}, +"response": { +"$ref": "BuildTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `BuildTrigger` by its project ID and trigger ID.", +"flatPath": "v1/projects/{projectId}/triggers/{triggerId}", +"httpMethod": "DELETE", +"id": "cloudbuild.projects.triggers.delete", +"parameterOrder": [ +"projectId", +"triggerId" +], +"parameters": { +"name": { +"description": "The name of the `Trigger` to delete. Format: `projects/{project}/locations/{location}/triggers/{trigger}`", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project that owns the trigger.", +"location": "path", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. ID of the `BuildTrigger` to delete.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/triggers/{triggerId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns information about a `BuildTrigger`.", +"flatPath": "v1/projects/{projectId}/triggers/{triggerId}", +"httpMethod": "GET", +"id": "cloudbuild.projects.triggers.get", +"parameterOrder": [ +"projectId", +"triggerId" +], +"parameters": { +"name": { +"description": "The name of the `Trigger` to retrieve. Format: `projects/{project}/locations/{location}/triggers/{trigger}`", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project that owns the trigger.", +"location": "path", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. Identifier (`id` or `name`) of the `BuildTrigger` to get.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/triggers/{triggerId}", +"response": { +"$ref": "BuildTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists existing `BuildTrigger`s.", +"flatPath": "v1/projects/{projectId}/triggers", +"httpMethod": "GET", +"id": "cloudbuild.projects.triggers.list", +"parameterOrder": [ +"projectId" +], +"parameters": { +"pageSize": { +"description": "Number of results to return in the list.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token to provide to skip to a particular spot in the list.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The parent of the collection of `Triggers`. Format: `projects/{project}/locations/{location}`", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project for which to list BuildTriggers.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/triggers", +"response": { +"$ref": "ListBuildTriggersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a `BuildTrigger` by its project ID and trigger ID.", +"flatPath": "v1/projects/{projectId}/triggers/{triggerId}", +"httpMethod": "PATCH", +"id": "cloudbuild.projects.triggers.patch", +"parameterOrder": [ +"projectId", +"triggerId" +], +"parameters": { +"projectId": { +"description": "Required. ID of the project that owns the trigger.", +"location": "path", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. ID of the `BuildTrigger` to update.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Update mask for the resource. If this is set, the server will only update the fields specified in the field mask. Otherwise, a full update of the mutable resource fields will be performed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/projects/{projectId}/triggers/{triggerId}", +"request": { +"$ref": "BuildTrigger" +}, +"response": { +"$ref": "BuildTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"run": { +"description": "Runs a `BuildTrigger` at a particular source revision. To run a regional or global trigger, use the POST request that includes the location endpoint in the path (ex. v1/projects/{projectId}/locations/{region}/triggers/{triggerId}:run). The POST request that does not include the location endpoint in the path can only be used when running global triggers.", +"flatPath": "v1/projects/{projectId}/triggers/{triggerId}:run", +"httpMethod": "POST", +"id": "cloudbuild.projects.triggers.run", +"parameterOrder": [ +"projectId", +"triggerId" +], +"parameters": { +"name": { +"description": "The name of the `Trigger` to run. Format: `projects/{project}/locations/{location}/triggers/{trigger}`", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"location": "path", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. ID of the trigger.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/triggers/{triggerId}:run", +"request": { +"$ref": "RepoSource" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"webhook": { +"description": "ReceiveTriggerWebhook [Experimental] is called when the API receives a webhook request targeted at a specific trigger.", +"flatPath": "v1/projects/{projectId}/triggers/{trigger}:webhook", +"httpMethod": "POST", +"id": "cloudbuild.projects.triggers.webhook", +"parameterOrder": [ +"projectId", +"trigger" +], +"parameters": { +"name": { +"description": "The name of the `ReceiveTriggerWebhook` to retrieve. Format: `projects/{project}/locations/{location}/triggers/{trigger}`", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Project in which the specified trigger lives", +"location": "path", +"required": true, +"type": "string" +}, +"secret": { +"description": "Secret token used for authorization if an OAuth token isn't provided.", +"location": "query", +"type": "string" +}, +"trigger": { +"description": "Name of the trigger to run the payload against", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/triggers/{trigger}:webhook", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "ReceiveTriggerWebhookResponse" +} +} +} +} +} +}, +"v1": { +"methods": { +"webhook": { +"description": "ReceiveWebhook is called when the API receives a GitHub webhook.", +"flatPath": "v1/webhook", +"httpMethod": "POST", +"id": "cloudbuild.webhook", +"parameterOrder": [], +"parameters": { +"webhookKey": { +"description": "For GitHub Enterprise webhooks, this key is used to associate the webhook request with the GitHubEnterpriseConfig to use for validation.", +"location": "query", +"type": "string" +} +}, +"path": "v1/webhook", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "Empty" +} +} +} +} +}, +"revision": "20250102", +"rootUrl": "https://cloudbuild.googleapis.com/", +"schemas": { +"ApprovalConfig": { +"description": "ApprovalConfig describes configuration for manual approval of a build.", +"id": "ApprovalConfig", +"properties": { +"approvalRequired": { +"description": "Whether or not approval is needed. If this is set on a build, it will become pending when created, and will need to be explicitly approved to start.", +"type": "boolean" +} +}, +"type": "object" +}, +"ApprovalResult": { +"description": "ApprovalResult describes the decision and associated metadata of a manual approval of a build.", +"id": "ApprovalResult", +"properties": { +"approvalTime": { +"description": "Output only. The time when the approval decision was made.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"approverAccount": { +"description": "Output only. Email of the user that called the ApproveBuild API to approve or reject a build at the time that the API was called.", +"readOnly": true, +"type": "string" +}, +"comment": { +"description": "Optional. An optional comment for this manual approval result.", +"type": "string" +}, +"decision": { +"description": "Required. The decision of this manual approval.", +"enum": [ +"DECISION_UNSPECIFIED", +"APPROVED", +"REJECTED" +], +"enumDescriptions": [ +"Default enum type. This should not be used.", +"Build is approved.", +"Build is rejected." +], +"type": "string" +}, +"url": { +"description": "Optional. An optional URL tied to this manual approval result. This field is essentially the same as comment, except that it will be rendered by the UI differently. An example use case is a link to an external job that approved this Build.", +"type": "string" +} +}, +"type": "object" +}, +"ApproveBuildRequest": { +"description": "Request to approve or reject a pending build.", +"id": "ApproveBuildRequest", +"properties": { +"approvalResult": { +"$ref": "ApprovalResult", +"description": "Approval decision and metadata." +} +}, +"type": "object" +}, +"ArtifactObjects": { +"description": "Files in the workspace to upload to Cloud Storage upon successful completion of all build steps.", +"id": "ArtifactObjects", +"properties": { +"location": { +"description": "Cloud Storage bucket and optional object path, in the form \"gs://bucket/path/to/somewhere/\". (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Files in the workspace matching any path pattern will be uploaded to Cloud Storage with this location as a prefix.", +"type": "string" +}, +"paths": { +"description": "Path globs used to match files in the build's workspace.", +"items": { +"type": "string" +}, +"type": "array" +}, +"timing": { +"$ref": "TimeSpan", +"description": "Output only. Stores timing information for pushing all artifact objects.", +"readOnly": true +} +}, +"type": "object" +}, +"ArtifactResult": { +"description": "An artifact that was uploaded during a build. This is a single record in the artifact manifest JSON file.", +"id": "ArtifactResult", +"properties": { +"fileHash": { +"description": "The file hash of the artifact.", +"items": { +"$ref": "FileHashes" +}, +"type": "array" +}, +"location": { +"description": "The path of an artifact in a Cloud Storage bucket, with the generation number. For example, `gs://mybucket/path/to/output.jar#generation`.", +"type": "string" +} +}, +"type": "object" +}, +"Artifacts": { +"description": "Artifacts produced by a build that should be uploaded upon successful completion of all build steps.", +"id": "Artifacts", +"properties": { +"images": { +"description": "A list of images to be pushed upon the successful completion of all build steps. The images will be pushed using the builder service account's credentials. The digests of the pushed images will be stored in the Build resource's results field. If any of the images fail to be pushed, the build is marked FAILURE.", +"items": { +"type": "string" +}, +"type": "array" +}, +"mavenArtifacts": { +"description": "A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE.", +"items": { +"$ref": "MavenArtifact" +}, +"type": "array" +}, +"npmPackages": { +"description": "A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE.", +"items": { +"$ref": "NpmPackage" +}, +"type": "array" +}, +"objects": { +"$ref": "ArtifactObjects", +"description": "A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE." +}, +"pythonPackages": { +"description": "A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE.", +"items": { +"$ref": "PythonPackage" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateBitbucketServerConnectedRepositoriesRequest": { +"description": "RPC request object accepted by BatchCreateBitbucketServerConnectedRepositories RPC method.", +"id": "BatchCreateBitbucketServerConnectedRepositoriesRequest", +"properties": { +"requests": { +"description": "Required. Requests to connect Bitbucket Server repositories.", +"items": { +"$ref": "CreateBitbucketServerConnectedRepositoryRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateBitbucketServerConnectedRepositoriesResponse": { +"description": "Response of BatchCreateBitbucketServerConnectedRepositories RPC method including all successfully connected Bitbucket Server repositories.", +"id": "BatchCreateBitbucketServerConnectedRepositoriesResponse", +"properties": { +"bitbucketServerConnectedRepositories": { +"description": "The connected Bitbucket Server repositories.", +"items": { +"$ref": "BitbucketServerConnectedRepository" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateBitbucketServerConnectedRepositoriesResponseMetadata": { +"description": "Metadata for `BatchCreateBitbucketServerConnectedRepositories` operation.", +"id": "BatchCreateBitbucketServerConnectedRepositoriesResponseMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"config": { +"description": "The name of the `BitbucketServerConfig` that added connected repositories. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{config}`", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"BatchCreateGitLabConnectedRepositoriesRequest": { +"description": "RPC request object accepted by BatchCreateGitLabConnectedRepositories RPC method.", +"id": "BatchCreateGitLabConnectedRepositoriesRequest", +"properties": { +"requests": { +"description": "Required. Requests to connect GitLab repositories.", +"items": { +"$ref": "CreateGitLabConnectedRepositoryRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateGitLabConnectedRepositoriesResponse": { +"description": "Response of BatchCreateGitLabConnectedRepositories RPC method.", +"id": "BatchCreateGitLabConnectedRepositoriesResponse", +"properties": { +"gitlabConnectedRepositories": { +"description": "The GitLab connected repository requests' responses.", +"items": { +"$ref": "GitLabConnectedRepository" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateGitLabConnectedRepositoriesResponseMetadata": { +"description": "Metadata for `BatchCreateGitLabConnectedRepositories` operation.", +"id": "BatchCreateGitLabConnectedRepositoriesResponseMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"config": { +"description": "The name of the `GitLabConfig` that added connected repositories. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"BitbucketServerConfig": { +"description": "BitbucketServerConfig represents the configuration for a Bitbucket Server.", +"id": "BitbucketServerConfig", +"properties": { +"apiKey": { +"description": "Required. Immutable. API Key that will be attached to webhook. Once this field has been set, it cannot be changed. If you need to change it, please create another BitbucketServerConfig.", +"type": "string" +}, +"connectedRepositories": { +"description": "Output only. Connected Bitbucket Server repositories for this config.", +"items": { +"$ref": "BitbucketServerRepositoryId" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Time when the config was created.", +"format": "google-datetime", +"type": "string" +}, +"hostUri": { +"description": "Required. Immutable. The URI of the Bitbucket Server host. Once this field has been set, it cannot be changed. If you need to change it, please create another BitbucketServerConfig.", +"type": "string" +}, +"name": { +"description": "The resource name for the config.", +"type": "string" +}, +"peeredNetwork": { +"description": "Optional. The network to be used when reaching out to the Bitbucket Server instance. The VPC network must be enabled for private service connection. This should be set if the Bitbucket Server instance is hosted on-premises and not reachable by public internet. If this field is left empty, no network peering will occur and calls to the Bitbucket Server instance will be made over the public internet. Must be in the format `projects/{project}/global/networks/{network}`, where {project} is a project number or id and {network} is the name of a VPC network in the project.", +"type": "string" +}, +"peeredNetworkIpRange": { +"description": "Immutable. IP range within the peered network. This is specified in CIDR notation with a slash and the subnet prefix size. You can optionally specify an IP address before the subnet prefix value. e.g. `192.168.0.0/29` would specify an IP range starting at 192.168.0.0 with a 29 bit prefix size. `/16` would specify a prefix size of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. The field only has an effect if peered_network is set.", +"type": "string" +}, +"secrets": { +"$ref": "BitbucketServerSecrets", +"description": "Required. Secret Manager secrets needed by the config." +}, +"sslCa": { +"description": "Optional. SSL certificate to use for requests to Bitbucket Server. The format should be PEM format but the extension can be one of .pem, .cer, or .crt.", +"type": "string" +}, +"username": { +"description": "Username of the account Cloud Build will use on Bitbucket Server.", +"type": "string" +}, +"webhookKey": { +"description": "Output only. UUID included in webhook requests. The UUID is used to look up the corresponding config.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BitbucketServerConnectedRepository": { +"description": "/ BitbucketServerConnectedRepository represents a connected Bitbucket Server / repository.", +"id": "BitbucketServerConnectedRepository", +"properties": { +"parent": { +"description": "The name of the `BitbucketServerConfig` that added connected repository. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{config}`", +"type": "string" +}, +"repo": { +"$ref": "BitbucketServerRepositoryId", +"description": "The Bitbucket Server repositories to connect." +}, +"status": { +"$ref": "Status", +"description": "Output only. The status of the repo connection request.", +"readOnly": true +} +}, +"type": "object" +}, +"BitbucketServerRepository": { +"description": "BitbucketServerRepository represents a repository hosted on a Bitbucket Server.", +"id": "BitbucketServerRepository", +"properties": { +"browseUri": { +"description": "Link to the browse repo page on the Bitbucket Server instance.", +"type": "string" +}, +"description": { +"description": "Description of the repository.", +"type": "string" +}, +"displayName": { +"description": "Display name of the repository.", +"type": "string" +}, +"name": { +"description": "The resource name of the repository.", +"type": "string" +}, +"repoId": { +"$ref": "BitbucketServerRepositoryId", +"description": "Identifier for a repository hosted on a Bitbucket Server." +} +}, +"type": "object" +}, +"BitbucketServerRepositoryId": { +"description": "BitbucketServerRepositoryId identifies a specific repository hosted on a Bitbucket Server.", +"id": "BitbucketServerRepositoryId", +"properties": { +"projectKey": { +"description": "Required. Identifier for the project storing the repository.", +"type": "string" +}, +"repoSlug": { +"description": "Required. Identifier for the repository.", +"type": "string" +}, +"webhookId": { +"description": "Output only. The ID of the webhook that was created for receiving events from this repo. We only create and manage a single webhook for each repo.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"BitbucketServerSecrets": { +"description": "BitbucketServerSecrets represents the secrets in Secret Manager for a Bitbucket Server.", +"id": "BitbucketServerSecrets", +"properties": { +"adminAccessTokenVersionName": { +"description": "Required. The resource name for the admin access token's secret version.", +"type": "string" +}, +"readAccessTokenVersionName": { +"description": "Required. The resource name for the read access token's secret version.", +"type": "string" +}, +"webhookSecretVersionName": { +"description": "Required. Immutable. The resource name for the webhook secret's secret version. Once this field has been set, it cannot be changed. If you need to change it, please create another BitbucketServerConfig.", +"type": "string" +} +}, +"type": "object" +}, +"BitbucketServerTriggerConfig": { +"description": "BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received.", +"id": "BitbucketServerTriggerConfig", +"properties": { +"bitbucketServerConfig": { +"$ref": "BitbucketServerConfig", +"description": "Output only. The BitbucketServerConfig specified in the bitbucket_server_config_resource field.", +"readOnly": true +}, +"bitbucketServerConfigResource": { +"description": "Required. The Bitbucket server config resource that this trigger config maps to.", +"type": "string" +}, +"projectKey": { +"description": "Required. Key of the project that the repo is in. For example: The key for https://mybitbucket.server/projects/TEST/repos/test-repo is \"TEST\".", +"type": "string" +}, +"pullRequest": { +"$ref": "PullRequestFilter", +"description": "Filter to match changes in pull requests." +}, +"push": { +"$ref": "PushFilter", +"description": "Filter to match changes in refs like branches, tags." +}, +"repoSlug": { +"description": "Required. Slug of the repository. A repository slug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL. For example, if the repository name is 'test repo', in the URL it would become 'test-repo' as in https://mybitbucket.server/projects/TEST/repos/test-repo.", +"type": "string" +} +}, +"type": "object" +}, +"Build": { +"description": "A build resource in the Cloud Build API. At a high level, a `Build` describes where to find source code, how to build it (for example, the builder image to run on the source), and where to store the built artifacts. Fields can include the following variables, which will be expanded when the build is created: - $PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the autogenerated ID of the build. - $REPO_NAME: the source repository name specified by RepoSource. - $BRANCH_NAME: the branch name specified by RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.", +"id": "Build", +"properties": { +"approval": { +"$ref": "BuildApproval", +"description": "Output only. Describes this build's approval configuration, status, and result.", +"readOnly": true +}, +"artifacts": { +"$ref": "Artifacts", +"description": "Artifacts produced by the build that should be uploaded upon successful completion of all build steps." +}, +"availableSecrets": { +"$ref": "Secrets", +"description": "Secrets and secret environment variables." +}, +"buildTriggerId": { +"description": "Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. Time at which the request to create the build was received.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"failureInfo": { +"$ref": "FailureInfo", +"description": "Output only. Contains information about the build when status=FAILURE.", +"readOnly": true +}, +"finishTime": { +"description": "Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"gitConfig": { +"$ref": "GitConfig", +"description": "Optional. Configuration for git operations." +}, +"id": { +"description": "Output only. Unique identifier of the build.", +"readOnly": true, +"type": "string" +}, +"images": { +"description": "A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logUrl": { +"description": "Output only. URL to logs for this build in Google Cloud Console.", +"readOnly": true, +"type": "string" +}, +"logsBucket": { +"description": "Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", +"type": "string" +}, +"name": { +"description": "Output only. The 'Build' name with format: `projects/{project}/locations/{location}/builds/{build}`, where {build} is a unique identifier generated by the service.", +"readOnly": true, +"type": "string" +}, +"options": { +"$ref": "BuildOptions", +"description": "Special options for this build." +}, +"projectId": { +"description": "Output only. ID of the project.", +"readOnly": true, +"type": "string" +}, +"queueTtl": { +"description": "TTL in queue for this build. If provided and the build is enqueued longer than this value, the build will expire and the build status will be `EXPIRED`. The TTL starts ticking from create_time.", +"format": "google-duration", +"type": "string" +}, +"results": { +"$ref": "Results", +"description": "Output only. Results of the build.", +"readOnly": true +}, +"secrets": { +"description": "Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is the recommended technique for managing sensitive data with Cloud Build. Use `available_secrets` to configure builds to access secrets from Secret Manager. For instructions, see: https://cloud.google.com/cloud-build/docs/securing-builds/use-secrets", +"items": { +"$ref": "Secret" +}, +"type": "array" +}, +"serviceAccount": { +"description": "IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. ", +"type": "string" +}, +"source": { +"$ref": "Source", +"description": "Optional. The location of the source files to build." +}, +"sourceProvenance": { +"$ref": "SourceProvenance", +"description": "Output only. A permanent fixed identifier for source.", +"readOnly": true +}, +"startTime": { +"description": "Output only. Time at which execution of the build was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. Status of the build.", +"enum": [ +"STATUS_UNKNOWN", +"PENDING", +"QUEUED", +"WORKING", +"SUCCESS", +"FAILURE", +"INTERNAL_ERROR", +"TIMEOUT", +"CANCELLED", +"EXPIRED" +], +"enumDescriptions": [ +"Status of the build is unknown.", +"Build has been created and is pending execution and queuing. It has not been queued.", +"Build or step is queued; work has not yet begun.", +"Build or step is being executed.", +"Build or step finished successfully.", +"Build or step failed to complete successfully.", +"Build or step failed due to an internal cause.", +"Build or step took longer than was allowed.", +"Build or step was canceled by a user.", +"Build was enqueued for longer than the value of `queue_ttl`." +], +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Customer-readable message about the current status.", +"readOnly": true, +"type": "string" +}, +"steps": { +"description": "Required. The operations to be performed on the workspace.", +"items": { +"$ref": "BuildStep" +}, +"type": "array" +}, +"substitutions": { +"additionalProperties": { +"type": "string" +}, +"description": "Substitutions data for `Build` resource.", +"type": "object" +}, +"tags": { +"description": "Tags for annotation of a `Build`. These are not docker tags.", +"items": { +"type": "string" +}, +"type": "array" +}, +"timeout": { +"description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", +"format": "google-duration", +"type": "string" +}, +"timing": { +"additionalProperties": { +"$ref": "TimeSpan" +}, +"description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", +"readOnly": true, +"type": "object" +}, +"warnings": { +"description": "Output only. Non-fatal problems encountered during the execution of the build.", +"items": { +"$ref": "Warning" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"BuildApproval": { +"description": "BuildApproval describes a build's approval configuration, state, and result.", +"id": "BuildApproval", +"properties": { +"config": { +"$ref": "ApprovalConfig", +"description": "Output only. Configuration for manual approval of this build.", +"readOnly": true +}, +"result": { +"$ref": "ApprovalResult", +"description": "Output only. Result of manual approval for this Build.", +"readOnly": true +}, +"state": { +"description": "Output only. The state of this build's approval.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"APPROVED", +"REJECTED", +"CANCELLED" +], +"enumDescriptions": [ +"Default enum type. This should not be used.", +"Build approval is pending.", +"Build approval has been approved.", +"Build approval has been rejected.", +"Build was cancelled while it was still pending approval." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BuildOperationMetadata": { +"description": "Metadata for build operations.", +"id": "BuildOperationMetadata", +"properties": { +"build": { +"$ref": "Build", +"description": "The build that the operation is tracking." +} +}, +"type": "object" +}, +"BuildOptions": { +"description": "Optional arguments to enable specific features of builds.", +"id": "BuildOptions", +"properties": { +"automapSubstitutions": { +"description": "Option to include built-in and custom substitutions as env variables for all build steps.", +"type": "boolean" +}, +"defaultLogsBucketBehavior": { +"description": "Optional. Option to specify how default logs buckets are setup.", +"enum": [ +"DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED", +"REGIONAL_USER_OWNED_BUCKET", +"LEGACY_BUCKET" +], +"enumDescriptions": [ +"Unspecified.", +"Bucket is located in user-owned project in the same region as the build. The builder service account must have access to create and write to Cloud Storage buckets in the build project.", +"Bucket is located in a Google-owned project and is not regionalized." +], +"type": "string" +}, +"diskSizeGb": { +"description": "Requested disk size for the VM that runs the build. Note that this is *NOT* \"disk free\"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 4000GB; builds that request more than the maximum are rejected with an error.", +"format": "int64", +"type": "string" +}, +"dynamicSubstitutions": { +"description": "Option to specify whether or not to apply bash style string operations to the substitutions. NOTE: this is always enabled for triggered builds and cannot be overridden in the build configuration file.", +"type": "boolean" +}, +"env": { +"description": "A list of global environment variable definitions that will exist for all build steps in this build. If a variable is defined in both globally and in a build step, the variable will use the build step value. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"logStreamingOption": { +"description": "Option to define build log streaming behavior to Cloud Storage.", +"enum": [ +"STREAM_DEFAULT", +"STREAM_ON", +"STREAM_OFF" +], +"enumDescriptions": [ +"Service may automatically determine build log streaming behavior.", +"Build logs should be streamed to Cloud Storage.", +"Build logs should not be streamed to Cloud Storage; they will be written when the build is completed." +], +"type": "string" +}, +"logging": { +"description": "Option to specify the logging mode, which determines if and where build logs are stored.", +"enum": [ +"LOGGING_UNSPECIFIED", +"LEGACY", +"GCS_ONLY", +"STACKDRIVER_ONLY", +"CLOUD_LOGGING_ONLY", +"NONE" +], +"enumDeprecated": [ +false, +false, +false, +true, +false, +false +], +"enumDescriptions": [ +"The service determines the logging mode. The default is `LEGACY`. Do not rely on the default logging behavior as it may change in the future.", +"Build logs are stored in Cloud Logging and Cloud Storage.", +"Build logs are stored in Cloud Storage.", +"This option is the same as CLOUD_LOGGING_ONLY.", +"Build logs are stored in Cloud Logging. Selecting this option will not allow [logs streaming](https://cloud.google.com/sdk/gcloud/reference/builds/log).", +"Turn off all logging. No build logs will be captured." +], +"type": "string" +}, +"machineType": { +"description": "Compute Engine machine type on which to run the build.", +"enum": [ +"UNSPECIFIED", +"N1_HIGHCPU_8", +"N1_HIGHCPU_32", +"E2_HIGHCPU_8", +"E2_HIGHCPU_32", +"E2_MEDIUM" +], +"enumDeprecated": [ +false, +true, +true, +false, +false, +false +], +"enumDescriptions": [ +"Standard machine type.", +"Highcpu machine with 8 CPUs.", +"Highcpu machine with 32 CPUs.", +"Highcpu e2 machine with 8 CPUs.", +"Highcpu e2 machine with 32 CPUs.", +"E2 machine with 1 CPU." +], +"type": "string" +}, +"pool": { +"$ref": "PoolOption", +"description": "Optional. Specification for execution on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information." +}, +"requestedVerifyOption": { +"description": "Requested verifiability options.", +"enum": [ +"NOT_VERIFIED", +"VERIFIED" +], +"enumDescriptions": [ +"Not a verifiable build (the default).", +"Build must be verified." +], +"type": "string" +}, +"secretEnv": { +"description": "A list of global environment variables, which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`. These variables will be available to all build steps in this build.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sourceProvenanceHash": { +"description": "Requested hash for SourceProvenance.", +"items": { +"enum": [ +"NONE", +"SHA256", +"MD5", +"SHA512" +], +"enumDescriptions": [ +"No hash requested.", +"Use a sha256 hash.", +"Use a md5 hash.", +"Use a sha512 hash." +], +"type": "string" +}, +"type": "array" +}, +"substitutionOption": { +"description": "Option to specify behavior when there is an error in the substitution checks. NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden in the build configuration file.", +"enum": [ +"MUST_MATCH", +"ALLOW_LOOSE" +], +"enumDescriptions": [ +"Fails the build if error in substitutions checks, like missing a substitution in the template or in the map.", +"Do not fail the build if error in substitutions checks." +], +"type": "string" +}, +"volumes": { +"description": "Global list of volumes to mount for ALL build steps Each volume is created as an empty volume prior to starting the build process. Upon completion of the build, volumes and their contents are discarded. Global volume names and paths cannot conflict with the volumes defined a build step. Using a global volume in a build with only one step is not valid as it is indicative of a build request with an incorrect configuration.", +"items": { +"$ref": "Volume" +}, +"type": "array" +}, +"workerPool": { +"deprecated": true, +"description": "This field deprecated; please use `pool.name` instead.", +"type": "string" +} +}, +"type": "object" +}, +"BuildStep": { +"description": "A step in the build pipeline.", +"id": "BuildStep", +"properties": { +"allowExitCodes": { +"description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"allowFailure": { +"description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", +"type": "boolean" +}, +"args": { +"description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", +"items": { +"type": "string" +}, +"type": "array" +}, +"automapSubstitutions": { +"description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", +"type": "boolean" +}, +"dir": { +"description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", +"type": "string" +}, +"entrypoint": { +"description": "Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used.", +"type": "string" +}, +"env": { +"description": "A list of environment variable definitions to be used when running a step. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"exitCode": { +"description": "Output only. Return code from running the step.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"id": { +"description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", +"type": "string" +}, +"name": { +"description": "Required. The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like \"ubuntu\", \"debian\", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step.", +"type": "string" +}, +"pullTiming": { +"$ref": "TimeSpan", +"description": "Output only. Stores timing information for pulling this build step's builder image only.", +"readOnly": true +}, +"script": { +"description": "A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args.", +"type": "string" +}, +"secretEnv": { +"description": "A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Output only. Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses.", +"enum": [ +"STATUS_UNKNOWN", +"PENDING", +"QUEUED", +"WORKING", +"SUCCESS", +"FAILURE", +"INTERNAL_ERROR", +"TIMEOUT", +"CANCELLED", +"EXPIRED" +], +"enumDescriptions": [ +"Status of the build is unknown.", +"Build has been created and is pending execution and queuing. It has not been queued.", +"Build or step is queued; work has not yet begun.", +"Build or step is being executed.", +"Build or step finished successfully.", +"Build or step failed to complete successfully.", +"Build or step failed due to an internal cause.", +"Build or step took longer than was allowed.", +"Build or step was canceled by a user.", +"Build was enqueued for longer than the value of `queue_ttl`." +], +"readOnly": true, +"type": "string" +}, +"timeout": { +"description": "Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out.", +"format": "google-duration", +"type": "string" +}, +"timing": { +"$ref": "TimeSpan", +"description": "Output only. Stores timing information for executing this build step.", +"readOnly": true +}, +"volumes": { +"description": "List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration.", +"items": { +"$ref": "Volume" +}, +"type": "array" +}, +"waitFor": { +"description": "The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BuildTrigger": { +"description": "Configuration for an automated build in response to source repository changes.", +"id": "BuildTrigger", +"properties": { +"approvalConfig": { +"$ref": "ApprovalConfig", +"description": "Configuration for manual approval to start a build invocation of this BuildTrigger." +}, +"autodetect": { +"description": "Autodetect build configuration. The following precedence is used (case insensitive): 1. cloudbuild.yaml 2. cloudbuild.yml 3. cloudbuild.json 4. Dockerfile Currently only available for GitHub App Triggers.", +"type": "boolean" +}, +"bitbucketServerTriggerConfig": { +"$ref": "BitbucketServerTriggerConfig", +"description": "BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received." +}, +"build": { +"$ref": "Build", +"description": "Contents of the build template." +}, +"createTime": { +"description": "Output only. Time when the trigger was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Human-readable description of this trigger.", +"type": "string" +}, +"disabled": { +"description": "If true, the trigger will never automatically execute a build.", +"type": "boolean" +}, +"eventType": { +"description": "EventType allows the user to explicitly set the type of event to which this BuildTrigger should respond. This field will be validated against the rest of the configuration if it is set.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"REPO", +"WEBHOOK", +"PUBSUB", +"MANUAL" +], +"enumDescriptions": [ +"EVENT_TYPE_UNSPECIFIED event_types are ignored.", +"REPO corresponds to the supported VCS integrations.", +"WEBHOOK corresponds to webhook triggers.", +"PUBSUB corresponds to pubsub triggers.", +"MANUAL corresponds to manual-only invoked triggers." +], +"type": "string" +}, +"filename": { +"description": "Path, from the source root, to the build configuration file (i.e. cloudbuild.yaml).", +"type": "string" +}, +"filter": { +"description": "A Common Expression Language string.", +"type": "string" +}, +"gitFileSource": { +"$ref": "GitFileSource", +"description": "The file source describing the local or remote Build template." +}, +"github": { +"$ref": "GitHubEventsConfig", +"description": "GitHubEventsConfig describes the configuration of a trigger that creates a build whenever a GitHub event is received. Mutually exclusive with `trigger_template`." +}, +"gitlabEnterpriseEventsConfig": { +"$ref": "GitLabEventsConfig", +"description": "GitLabEnterpriseEventsConfig describes the configuration of a trigger that creates a build whenever a GitLab Enterprise event is received." +}, +"id": { +"description": "Output only. Unique identifier of the trigger.", +"readOnly": true, +"type": "string" +}, +"ignoredFiles": { +"description": "ignored_files and included_files are file glob matches using https://golang.org/pkg/path/filepath/#Match extended with support for \"**\". If ignored_files and changed files are both empty, then they are not used to determine whether or not to trigger a build. If ignored_files is not empty, then we ignore any files that match any of the ignored_file globs. If the change has no files that are outside of the ignored_files globs, then we do not trigger a build.", +"items": { +"type": "string" +}, +"type": "array" +}, +"includeBuildLogs": { +"description": "If set to INCLUDE_BUILD_LOGS_WITH_STATUS, log url will be shown on GitHub page when build status is final. Setting this field to INCLUDE_BUILD_LOGS_WITH_STATUS for non GitHub triggers results in INVALID_ARGUMENT error.", +"enum": [ +"INCLUDE_BUILD_LOGS_UNSPECIFIED", +"INCLUDE_BUILD_LOGS_WITH_STATUS" +], +"enumDescriptions": [ +"Build logs will not be shown on GitHub.", +"Build logs will be shown on GitHub." +], +"type": "string" +}, +"includedFiles": { +"description": "If any of the files altered in the commit pass the ignored_files filter and included_files is empty, then as far as this filter is concerned, we should trigger the build. If any of the files altered in the commit pass the ignored_files filter and included_files is not empty, then we make sure that at least one of those files matches a included_files glob. If not, then we do not trigger a build.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "User-assigned name of the trigger. Must be unique within the project. Trigger names must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character.", +"type": "string" +}, +"pubsubConfig": { +"$ref": "PubsubConfig", +"description": "PubsubConfig describes the configuration of a trigger that creates a build whenever a Pub/Sub message is published." +}, +"repositoryEventConfig": { +"$ref": "RepositoryEventConfig", +"description": "The configuration of a trigger that creates a build whenever an event from Repo API is received." +}, +"resourceName": { +"description": "The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service.", +"type": "string" +}, +"serviceAccount": { +"description": "The service account used for all user-controlled operations including UpdateBuildTrigger, RunBuildTrigger, CreateBuild, and CancelBuild. If no service account is set and the legacy Cloud Build service account ([PROJECT_NUM]@cloudbuild.gserviceaccount.com) is the default for the project then it will be used instead. Format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_ID_OR_EMAIL}`", +"type": "string" +}, +"sourceToBuild": { +"$ref": "GitRepoSource", +"description": "The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers." +}, +"substitutions": { +"additionalProperties": { +"type": "string" +}, +"description": "Substitutions for Build resource. The keys must match the following regular expression: `^_[A-Z0-9_]+$`.", +"type": "object" +}, +"tags": { +"description": "Tags for annotation of a `BuildTrigger`", +"items": { +"type": "string" +}, +"type": "array" +}, +"triggerTemplate": { +"$ref": "RepoSource", +"description": "Template describing the types of source changes to trigger a build. Branch and tag names in trigger templates are interpreted as regular expressions. Any branch or tag change that matches that regular expression will trigger a build. Mutually exclusive with `github`." +}, +"webhookConfig": { +"$ref": "WebhookConfig", +"description": "WebhookConfig describes the configuration of a trigger that creates a build whenever a webhook is sent to a trigger's webhook URL." +} +}, +"type": "object" +}, +"BuiltImage": { +"description": "An image built by the pipeline.", +"id": "BuiltImage", +"properties": { +"digest": { +"description": "Docker Registry 2.0 digest.", +"type": "string" +}, +"name": { +"description": "Name used to push the container image to Google Container Registry, as presented to `docker push`.", +"type": "string" +}, +"pushTiming": { +"$ref": "TimeSpan", +"description": "Output only. Stores timing information for pushing the specified image.", +"readOnly": true +} +}, +"type": "object" +}, +"CancelBuildRequest": { +"description": "Request to cancel an ongoing build.", +"id": "CancelBuildRequest", +"properties": { +"id": { +"description": "Required. ID of the build.", +"type": "string" +}, +"name": { +"description": "The name of the `Build` to cancel. Format: `projects/{project}/locations/{location}/builds/{build}`", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ConnectedRepository": { +"description": "Location of the source in a 2nd-gen Google Cloud Build repository resource.", +"id": "ConnectedRepository", +"properties": { +"dir": { +"description": "Optional. Directory, relative to the source root, in which to run the build.", +"type": "string" +}, +"repository": { +"description": "Required. Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`.", +"type": "string" +}, +"revision": { +"description": "Required. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", +"type": "string" +} +}, +"type": "object" +}, +"CreateBitbucketServerConfigOperationMetadata": { +"description": "Metadata for `CreateBitbucketServerConfig` operation.", +"id": "CreateBitbucketServerConfigOperationMetadata", +"properties": { +"bitbucketServerConfig": { +"description": "The resource name of the BitbucketServerConfig to be created. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{id}`.", +"type": "string" +}, +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"CreateBitbucketServerConnectedRepositoryRequest": { +"description": "Request to connect a repository from a connected Bitbucket Server host.", +"id": "CreateBitbucketServerConnectedRepositoryRequest", +"properties": { +"bitbucketServerConnectedRepository": { +"$ref": "BitbucketServerConnectedRepository", +"description": "Required. The Bitbucket Server repository to connect." +}, +"parent": { +"description": "Required. The name of the `BitbucketServerConfig` that added connected repository. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{config}`", +"type": "string" +} +}, +"type": "object" +}, +"CreateGitHubEnterpriseConfigOperationMetadata": { +"description": "Metadata for `CreateGithubEnterpriseConfig` operation.", +"id": "CreateGitHubEnterpriseConfigOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"githubEnterpriseConfig": { +"description": "The resource name of the GitHubEnterprise to be created. Format: `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`.", +"type": "string" +} +}, +"type": "object" +}, +"CreateGitLabConfigOperationMetadata": { +"description": "Metadata for `CreateGitLabConfig` operation.", +"id": "CreateGitLabConfigOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"gitlabConfig": { +"description": "The resource name of the GitLabConfig to be created. Format: `projects/{project}/locations/{location}/gitlabConfigs/{id}`.", +"type": "string" +} +}, +"type": "object" +}, +"CreateGitLabConnectedRepositoryRequest": { +"description": "Request to connect a repository from a connected GitLab host.", +"id": "CreateGitLabConnectedRepositoryRequest", +"properties": { +"gitlabConnectedRepository": { +"$ref": "GitLabConnectedRepository", +"description": "Required. The GitLab repository to connect." +}, +"parent": { +"description": "Required. The name of the `GitLabConfig` that adds connected repository. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", +"type": "string" +} +}, +"type": "object" +}, +"CreateWorkerPoolOperationMetadata": { +"description": "Metadata for the `CreateWorkerPool` operation.", +"id": "CreateWorkerPoolOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"workerPool": { +"description": "The resource name of the `WorkerPool` to create. Format: `projects/{project}/locations/{location}/workerPools/{worker_pool}`.", +"type": "string" +} +}, +"type": "object" +}, +"DefaultServiceAccount": { +"description": "The default service account used for `Builds`.", +"id": "DefaultServiceAccount", +"properties": { +"name": { +"description": "Identifier. Format: `projects/{project}/locations/{location}/defaultServiceAccount", +"type": "string" +}, +"serviceAccountEmail": { +"description": "Output only. The email address of the service account identity that will be used for a build by default. This is returned in the format `projects/{project}/serviceAccounts/{service_account}` where `{service_account}` could be the legacy Cloud Build SA, in the format [PROJECT_NUMBER]@cloudbuild.gserviceaccount.com or the Compute SA, in the format [PROJECT_NUMBER]-compute@developer.gserviceaccount.com. If no service account will be used by default, this will be empty.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DeleteBitbucketServerConfigOperationMetadata": { +"description": "Metadata for `DeleteBitbucketServerConfig` operation.", +"id": "DeleteBitbucketServerConfigOperationMetadata", +"properties": { +"bitbucketServerConfig": { +"description": "The resource name of the BitbucketServerConfig to be deleted. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{id}`.", +"type": "string" +}, +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"DeleteGitHubEnterpriseConfigOperationMetadata": { +"description": "Metadata for `DeleteGitHubEnterpriseConfig` operation.", +"id": "DeleteGitHubEnterpriseConfigOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"githubEnterpriseConfig": { +"description": "The resource name of the GitHubEnterprise to be deleted. Format: `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteGitLabConfigOperationMetadata": { +"description": "Metadata for `DeleteGitLabConfig` operation.", +"id": "DeleteGitLabConfigOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"gitlabConfig": { +"description": "The resource name of the GitLabConfig to be created. Format: `projects/{project}/locations/{location}/gitlabConfigs/{id}`.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteWorkerPoolOperationMetadata": { +"description": "Metadata for the `DeleteWorkerPool` operation.", +"id": "DeleteWorkerPoolOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"workerPool": { +"description": "The resource name of the `WorkerPool` being deleted. Format: `projects/{project}/locations/{location}/workerPools/{worker_pool}`.", +"type": "string" +} +}, +"type": "object" +}, +"DeveloperConnectConfig": { +"description": "This config defines the location of a source through Developer Connect.", +"id": "DeveloperConnectConfig", +"properties": { +"dir": { +"description": "Required. Directory, relative to the source root, in which to run the build.", +"type": "string" +}, +"gitRepositoryLink": { +"description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`.", +"type": "string" +}, +"revision": { +"description": "Required. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", +"type": "string" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"FailureInfo": { +"description": "A fatal problem encountered during the execution of the build.", +"id": "FailureInfo", +"properties": { +"detail": { +"description": "Explains the failure issue in more detail using hard-coded text.", +"type": "string" +}, +"type": { +"description": "The name of the failure.", +"enum": [ +"FAILURE_TYPE_UNSPECIFIED", +"PUSH_FAILED", +"PUSH_IMAGE_NOT_FOUND", +"PUSH_NOT_AUTHORIZED", +"LOGGING_FAILURE", +"USER_BUILD_STEP", +"FETCH_SOURCE_FAILED" +], +"enumDescriptions": [ +"Type unspecified", +"Unable to push the image to the repository.", +"Final image not found.", +"Unauthorized push of the final image.", +"Backend logging failures. Should retry.", +"A build step has failed.", +"The source fetching has failed." +], +"type": "string" +} +}, +"type": "object" +}, +"FileHashes": { +"description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", +"id": "FileHashes", +"properties": { +"fileHash": { +"description": "Collection of file hashes.", +"items": { +"$ref": "Hash" +}, +"type": "array" +} +}, +"type": "object" +}, +"GitConfig": { +"description": "GitConfig is a configuration for git operations.", +"id": "GitConfig", +"properties": { +"http": { +"$ref": "HttpConfig", +"description": "Configuration for HTTP related git operations." +} +}, +"type": "object" +}, +"GitFileSource": { +"description": "GitFileSource describes a file within a (possibly remote) code repository.", +"id": "GitFileSource", +"properties": { +"bitbucketServerConfig": { +"description": "The full resource name of the bitbucket server config. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{id}`.", +"type": "string" +}, +"githubEnterpriseConfig": { +"description": "The full resource name of the github enterprise config. Format: `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`. `projects/{project}/githubEnterpriseConfigs/{id}`.", +"type": "string" +}, +"path": { +"description": "The path of the file, with the repo root as the root of the path.", +"type": "string" +}, +"repoType": { +"description": "See RepoType above.", +"enum": [ +"UNKNOWN", +"CLOUD_SOURCE_REPOSITORIES", +"GITHUB", +"BITBUCKET_SERVER", +"GITLAB", +"BITBUCKET_CLOUD" +], +"enumDescriptions": [ +"The default, unknown repo type. Don't use it, instead use one of the other repo types.", +"A Google Cloud Source Repositories-hosted repo.", +"A GitHub-hosted repo not necessarily on \"github.com\" (i.e. GitHub Enterprise).", +"A Bitbucket Server-hosted repo.", +"A GitLab-hosted repo.", +"A Bitbucket Cloud-hosted repo." +], +"type": "string" +}, +"repository": { +"description": "The fully qualified resource name of the Repos API repository. Either URI or repository can be specified. If unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path.", +"type": "string" +}, +"revision": { +"description": "The branch, tag, arbitrary ref, or SHA version of the repo to use when resolving the filename (optional). This field respects the same syntax/resolution as described here: https://git-scm.com/docs/gitrevisions If unspecified, the revision from which the trigger invocation originated is assumed to be the revision from which to read the specified path.", +"type": "string" +}, +"uri": { +"description": "The URI of the repo. Either uri or repository can be specified. If unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path.", +"type": "string" +} +}, +"type": "object" +}, +"GitHubEnterpriseConfig": { +"description": "GitHubEnterpriseConfig represents a configuration for a GitHub Enterprise server.", +"id": "GitHubEnterpriseConfig", +"properties": { +"appId": { +"description": "Required. The GitHub app id of the Cloud Build app on the GitHub Enterprise server.", +"format": "int64", +"type": "string" +}, +"createTime": { +"description": "Output only. Time when the installation was associated with the project.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. Name to display for this config.", +"type": "string" +}, +"hostUrl": { +"description": "The URL of the github enterprise host the configuration is for.", +"type": "string" +}, +"name": { +"description": "The full resource name for the GitHubEnterpriseConfig For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", +"type": "string" +}, +"peeredNetwork": { +"description": "Optional. The network to be used when reaching out to the GitHub Enterprise server. The VPC network must be enabled for private service connection. This should be set if the GitHub Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, no network peering will occur and calls to the GitHub Enterprise server will be made over the public internet. Must be in the format `projects/{project}/global/networks/{network}`, where {project} is a project number or id and {network} is the name of a VPC network in the project.", +"type": "string" +}, +"secrets": { +"$ref": "GitHubEnterpriseSecrets", +"description": "Optional. Names of secrets in Secret Manager." +}, +"sslCa": { +"description": "Optional. SSL certificate to use for requests to GitHub Enterprise.", +"type": "string" +}, +"webhookKey": { +"description": "The key that should be attached to webhook calls to the ReceiveWebhook endpoint.", +"type": "string" +} +}, +"type": "object" +}, +"GitHubEnterpriseSecrets": { +"description": "GitHubEnterpriseSecrets represents the names of all necessary secrets in Secret Manager for a GitHub Enterprise server. Format is: projects//secrets/.", +"id": "GitHubEnterpriseSecrets", +"properties": { +"oauthClientIdName": { +"deprecated": true, +"description": "The resource name for the OAuth client ID secret in Secret Manager.", +"type": "string" +}, +"oauthClientIdVersionName": { +"description": "The resource name for the OAuth client ID secret version in Secret Manager.", +"type": "string" +}, +"oauthSecretName": { +"deprecated": true, +"description": "The resource name for the OAuth secret in Secret Manager.", +"type": "string" +}, +"oauthSecretVersionName": { +"description": "The resource name for the OAuth secret secret version in Secret Manager.", +"type": "string" +}, +"privateKeyName": { +"deprecated": true, +"description": "The resource name for the private key secret.", +"type": "string" +}, +"privateKeyVersionName": { +"description": "The resource name for the private key secret version.", +"type": "string" +}, +"webhookSecretName": { +"deprecated": true, +"description": "The resource name for the webhook secret in Secret Manager.", +"type": "string" +}, +"webhookSecretVersionName": { +"description": "The resource name for the webhook secret secret version in Secret Manager.", +"type": "string" +} +}, +"type": "object" +}, +"GitHubEventsConfig": { +"description": "GitHubEventsConfig describes the configuration of a trigger that creates a build whenever a GitHub event is received.", +"id": "GitHubEventsConfig", +"properties": { +"enterpriseConfigResourceName": { +"description": "The resource name of the github enterprise config that should be applied to this installation. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", +"type": "string" +}, +"installationId": { +"deprecated": true, +"description": "The installationID that emits the GitHub event.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Name of the repository. For example: The name for https://github.com/googlecloudplatform/cloud-builders is \"cloud-builders\".", +"type": "string" +}, +"owner": { +"description": "Owner of the repository. For example: The owner for https://github.com/googlecloudplatform/cloud-builders is \"googlecloudplatform\".", +"type": "string" +}, +"pullRequest": { +"$ref": "PullRequestFilter", +"description": "filter to match changes in pull requests." +}, +"push": { +"$ref": "PushFilter", +"description": "filter to match changes in refs like branches, tags." +} +}, +"type": "object" +}, +"GitLabConfig": { +"description": "GitLabConfig represents the configuration for a GitLab integration.", +"id": "GitLabConfig", +"properties": { +"connectedRepositories": { +"description": "Connected GitLab.com or GitLabEnterprise repositories for this config.", +"items": { +"$ref": "GitLabRepositoryId" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. Time when the config was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"enterpriseConfig": { +"$ref": "GitLabEnterpriseConfig", +"description": "Optional. GitLabEnterprise config." +}, +"name": { +"description": "The resource name for the config.", +"type": "string" +}, +"secrets": { +"$ref": "GitLabSecrets", +"description": "Required. Secret Manager secrets needed by the config." +}, +"username": { +"description": "Username of the GitLab.com or GitLab Enterprise account Cloud Build will use.", +"type": "string" +}, +"webhookKey": { +"description": "Output only. UUID included in webhook requests. The UUID is used to look up the corresponding config.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GitLabConnectedRepository": { +"description": "GitLabConnectedRepository represents a GitLab connected repository request response.", +"id": "GitLabConnectedRepository", +"properties": { +"parent": { +"description": "The name of the `GitLabConfig` that added connected repository. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", +"type": "string" +}, +"repo": { +"$ref": "GitLabRepositoryId", +"description": "The GitLab repositories to connect." +}, +"status": { +"$ref": "Status", +"description": "Output only. The status of the repo connection request.", +"readOnly": true +} +}, +"type": "object" +}, +"GitLabEnterpriseConfig": { +"description": "GitLabEnterpriseConfig represents the configuration for a GitLabEnterprise integration.", +"id": "GitLabEnterpriseConfig", +"properties": { +"hostUri": { +"description": "Immutable. The URI of the GitlabEnterprise host.", +"type": "string" +}, +"serviceDirectoryConfig": { +"$ref": "ServiceDirectoryConfig", +"description": "The Service Directory configuration to be used when reaching out to the GitLab Enterprise instance." +}, +"sslCa": { +"description": "The SSL certificate to use in requests to GitLab Enterprise instances.", +"type": "string" +} +}, +"type": "object" +}, +"GitLabEventsConfig": { +"description": "GitLabEventsConfig describes the configuration of a trigger that creates a build whenever a GitLab event is received.", +"id": "GitLabEventsConfig", +"properties": { +"gitlabConfig": { +"$ref": "GitLabConfig", +"description": "Output only. The GitLabConfig specified in the gitlab_config_resource field.", +"readOnly": true +}, +"gitlabConfigResource": { +"description": "The GitLab config resource that this trigger config maps to.", +"type": "string" +}, +"projectNamespace": { +"description": "Namespace of the GitLab project.", +"type": "string" +}, +"pullRequest": { +"$ref": "PullRequestFilter", +"description": "Filter to match changes in pull requests." +}, +"push": { +"$ref": "PushFilter", +"description": "Filter to match changes in refs like branches, tags." +} +}, +"type": "object" +}, +"GitLabRepository": { +"description": "Proto Representing a GitLabRepository", +"id": "GitLabRepository", +"properties": { +"browseUri": { +"description": "Link to the browse repo page on the GitLab instance", +"type": "string" +}, +"description": { +"description": "Description of the repository", +"type": "string" +}, +"displayName": { +"description": "Display name of the repository", +"type": "string" +}, +"name": { +"description": "The resource name of the repository", +"type": "string" +}, +"repositoryId": { +"$ref": "GitLabRepositoryId", +"description": "Identifier for a repository" +} +}, +"type": "object" +}, +"GitLabRepositoryId": { +"description": "GitLabRepositoryId identifies a specific repository hosted on GitLab.com or GitLabEnterprise", +"id": "GitLabRepositoryId", +"properties": { +"id": { +"description": "Required. Identifier for the repository. example: \"namespace/project-slug\", namespace is usually the username or group ID", +"type": "string" +}, +"webhookId": { +"description": "Output only. The ID of the webhook that was created for receiving events from this repo. We only create and manage a single webhook for each repo.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GitLabSecrets": { +"description": "GitLabSecrets represents the secrets in Secret Manager for a GitLab integration.", +"id": "GitLabSecrets", +"properties": { +"apiAccessTokenVersion": { +"description": "Required. The resource name for the api access token\u2019s secret version", +"type": "string" +}, +"apiKeyVersion": { +"description": "Required. Immutable. API Key that will be attached to webhook requests from GitLab to Cloud Build.", +"type": "string" +}, +"readAccessTokenVersion": { +"description": "Required. The resource name for the read access token\u2019s secret version", +"type": "string" +}, +"webhookSecretVersion": { +"description": "Required. Immutable. The resource name for the webhook secret\u2019s secret version. Once this field has been set, it cannot be changed. If you need to change it, please create another GitLabConfig.", +"type": "string" +} +}, +"type": "object" +}, +"GitRepoSource": { +"description": "GitRepoSource describes a repo and ref of a code repository.", +"id": "GitRepoSource", +"properties": { +"bitbucketServerConfig": { +"description": "The full resource name of the bitbucket server config. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{id}`.", +"type": "string" +}, +"githubEnterpriseConfig": { +"description": "The full resource name of the github enterprise config. Format: `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`. `projects/{project}/githubEnterpriseConfigs/{id}`.", +"type": "string" +}, +"ref": { +"description": "The branch or tag to use. Must start with \"refs/\" (required).", +"type": "string" +}, +"repoType": { +"description": "See RepoType below.", +"enum": [ +"UNKNOWN", +"CLOUD_SOURCE_REPOSITORIES", +"GITHUB", +"BITBUCKET_SERVER", +"GITLAB", +"BITBUCKET_CLOUD" +], +"enumDescriptions": [ +"The default, unknown repo type. Don't use it, instead use one of the other repo types.", +"A Google Cloud Source Repositories-hosted repo.", +"A GitHub-hosted repo not necessarily on \"github.com\" (i.e. GitHub Enterprise).", +"A Bitbucket Server-hosted repo.", +"A GitLab-hosted repo.", +"A Bitbucket Cloud-hosted repo." +], +"type": "string" +}, +"repository": { +"description": "The connected repository resource name, in the format `projects/*/locations/*/connections/*/repositories/*`. Either `uri` or `repository` can be specified and is required.", +"type": "string" +}, +"uri": { +"description": "The URI of the repo (e.g. https://github.com/user/repo.git). Either `uri` or `repository` can be specified and is required.", +"type": "string" +} +}, +"type": "object" +}, +"GitSource": { +"description": "Location of the source in any accessible Git repository.", +"id": "GitSource", +"properties": { +"dir": { +"description": "Optional. Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", +"type": "string" +}, +"revision": { +"description": "Optional. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch.", +"type": "string" +}, +"url": { +"description": "Required. Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote.", +"type": "string" +} +}, +"type": "object" +}, +"Hash": { +"description": "Container message for hash values.", +"id": "Hash", +"properties": { +"type": { +"description": "The type of hash that was performed.", +"enum": [ +"NONE", +"SHA256", +"MD5", +"SHA512" +], +"enumDescriptions": [ +"No hash requested.", +"Use a sha256 hash.", +"Use a md5 hash.", +"Use a sha512 hash." +], +"type": "string" +}, +"value": { +"description": "The hash value.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"HttpBody": { +"description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", +"id": "HttpBody", +"properties": { +"contentType": { +"description": "The HTTP Content-Type header value specifying the content type of the body.", +"type": "string" +}, +"data": { +"description": "The HTTP request/response body as raw binary.", +"format": "byte", +"type": "string" +}, +"extensions": { +"description": "Application specific response metadata. Must be set in the first response for streaming APIs.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"HttpConfig": { +"description": "HttpConfig is a configuration for HTTP related git operations.", +"id": "HttpConfig", +"properties": { +"proxySecretVersionName": { +"description": "SecretVersion resource of the HTTP proxy URL. The Service Account used in the build (either the default Service Account or user-specified Service Account) should have `secretmanager.versions.access` permissions on this secret. The proxy URL should be in format `protocol://@]proxyhost[:port]`.", +"type": "string" +} +}, +"type": "object" +}, +"InlineSecret": { +"description": "Pairs a set of secret environment variables mapped to encrypted values with the Cloud KMS key to use to decrypt the value.", +"id": "InlineSecret", +"properties": { +"envMap": { +"additionalProperties": { +"format": "byte", +"type": "string" +}, +"description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", +"type": "object" +}, +"kmsKeyName": { +"description": "Resource name of Cloud KMS crypto key to decrypt the encrypted value. In format: projects/*/locations/*/keyRings/*/cryptoKeys/*", +"type": "string" +} +}, +"type": "object" +}, +"ListBitbucketServerConfigsResponse": { +"description": "RPC response object returned by ListBitbucketServerConfigs RPC method.", +"id": "ListBitbucketServerConfigsResponse", +"properties": { +"bitbucketServerConfigs": { +"description": "A list of BitbucketServerConfigs", +"items": { +"$ref": "BitbucketServerConfig" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListBitbucketServerRepositoriesResponse": { +"description": "RPC response object returned by the ListBitbucketServerRepositories RPC method.", +"id": "ListBitbucketServerRepositoriesResponse", +"properties": { +"bitbucketServerRepositories": { +"description": "List of Bitbucket Server repositories.", +"items": { +"$ref": "BitbucketServerRepository" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListBuildTriggersResponse": { +"description": "Response containing existing `BuildTriggers`.", +"id": "ListBuildTriggersResponse", +"properties": { +"nextPageToken": { +"description": "Token to receive the next page of results.", +"type": "string" +}, +"triggers": { +"description": "`BuildTriggers` for the project, sorted by `create_time` descending.", +"items": { +"$ref": "BuildTrigger" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListBuildsResponse": { +"description": "Response including listed builds.", +"id": "ListBuildsResponse", +"properties": { +"builds": { +"description": "Builds will be sorted by `create_time`, descending.", +"items": { +"$ref": "Build" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to receive the next page of results. This will be absent if the end of the response list has been reached.", +"type": "string" +} +}, +"type": "object" +}, +"ListGitLabConfigsResponse": { +"description": "RPC response object returned by ListGitLabConfigs RPC method.", +"id": "ListGitLabConfigsResponse", +"properties": { +"gitlabConfigs": { +"description": "A list of GitLabConfigs", +"items": { +"$ref": "GitLabConfig" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListGitLabRepositoriesResponse": { +"description": "RPC response object returned by the ListGitLabRepositories RPC method.", +"id": "ListGitLabRepositoriesResponse", +"properties": { +"gitlabRepositories": { +"description": "List of GitLab repositories", +"items": { +"$ref": "GitLabRepository" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListGithubEnterpriseConfigsResponse": { +"description": "RPC response object returned by ListGithubEnterpriseConfigs RPC method.", +"id": "ListGithubEnterpriseConfigsResponse", +"properties": { +"configs": { +"description": "A list of GitHubEnterpriseConfigs", +"items": { +"$ref": "GitHubEnterpriseConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkerPoolsResponse": { +"description": "Response containing existing `WorkerPools`.", +"id": "ListWorkerPoolsResponse", +"properties": { +"nextPageToken": { +"description": "Continuation token used to page through large result sets. Provide this value in a subsequent ListWorkerPoolsRequest to return the next page of results.", +"type": "string" +}, +"workerPools": { +"description": "`WorkerPools` for the specified project.", +"items": { +"$ref": "WorkerPool" +}, +"type": "array" +} +}, +"type": "object" +}, +"MavenArtifact": { +"description": "A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.", +"id": "MavenArtifact", +"properties": { +"artifactId": { +"description": "Maven `artifactId` value used when uploading the artifact to Artifact Registry.", +"type": "string" +}, +"groupId": { +"description": "Maven `groupId` value used when uploading the artifact to Artifact Registry.", +"type": "string" +}, +"path": { +"description": "Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.", +"type": "string" +}, +"repository": { +"description": "Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.", +"type": "string" +}, +"version": { +"description": "Maven `version` value used when uploading the artifact to Artifact Registry.", +"type": "string" +} +}, +"type": "object" +}, +"NetworkConfig": { +"description": "Defines the network configuration for the pool.", +"id": "NetworkConfig", +"properties": { +"egressOption": { +"description": "Option to configure network egress for the workers.", +"enum": [ +"EGRESS_OPTION_UNSPECIFIED", +"NO_PUBLIC_EGRESS", +"PUBLIC_EGRESS" +], +"enumDescriptions": [ +"If set, defaults to PUBLIC_EGRESS.", +"If set, workers are created without any public address, which prevents network egress to public IPs unless a network proxy is configured.", +"If set, workers are created with a public address which allows for public internet egress." +], +"type": "string" +}, +"peeredNetwork": { +"description": "Required. Immutable. The network definition that the workers are peered to. If this section is left empty, the workers will be peered to `WorkerPool.project_id` on the service producer network. Must be in the format `projects/{project}/global/networks/{network}`, where `{project}` is a project number, such as `12345`, and `{network}` is the name of a VPC network in the project. See [Understanding network configuration options](https://cloud.google.com/build/docs/private-pools/set-up-private-pool-environment)", +"type": "string" +}, +"peeredNetworkIpRange": { +"description": "Immutable. Subnet IP range within the peered network. This is specified in CIDR notation with a slash and the subnet prefix size. You can optionally specify an IP address before the subnet prefix value. e.g. `192.168.0.0/29` would specify an IP range starting at 192.168.0.0 with a prefix size of 29 bits. `/16` would specify a prefix size of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used.", +"type": "string" +} +}, +"type": "object" +}, +"NpmPackage": { +"description": "Npm package to upload to Artifact Registry upon successful completion of all build steps.", +"id": "NpmPackage", +"properties": { +"packagePath": { +"description": "Path to the package.json. e.g. workspace/path/to/package", +"type": "string" +}, +"repository": { +"description": "Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"cancelRequested": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PoolOption": { +"description": "Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information.", +"id": "PoolOption", +"properties": { +"name": { +"description": "The `WorkerPool` resource to execute the build on. You must have `cloudbuild.workerpools.use` on the project hosting the WorkerPool. Format projects/{project}/locations/{location}/workerPools/{workerPoolId}", +"type": "string" +} +}, +"type": "object" +}, +"PrivatePoolV1Config": { +"description": "Configuration for a V1 `PrivatePool`.", +"id": "PrivatePoolV1Config", +"properties": { +"networkConfig": { +"$ref": "NetworkConfig", +"description": "Network configuration for the pool." +}, +"privateServiceConnect": { +"$ref": "PrivateServiceConnect", +"description": "Immutable. Private Service Connect(PSC) Network configuration for the pool." +}, +"workerConfig": { +"$ref": "WorkerConfig", +"description": "Machine configuration for the workers in the pool." +} +}, +"type": "object" +}, +"PrivateServiceConnect": { +"description": "Defines the Private Service Connect network configuration for the pool.", +"id": "PrivateServiceConnect", +"properties": { +"networkAttachment": { +"description": "Required. Immutable. The network attachment that the worker network interface is peered to. Must be in the format `projects/{project}/regions/{region}/networkAttachments/{networkAttachment}`. The region of network attachment must be the same as the worker pool. See [Network Attachments](https://cloud.google.com/vpc/docs/about-network-attachments)", +"type": "string" +}, +"publicIpAddressDisabled": { +"description": "Required. Immutable. Disable public IP on the primary network interface. If true, workers are created without any public address, which prevents network egress to public IPs unless a network proxy is configured. If false, workers are created with a public address which allows for public internet egress. The public address only applies to traffic through the primary network interface. If `route_all_traffic` is set to true, all traffic will go through the non-primary network interface, this boolean has no effect.", +"type": "boolean" +}, +"routeAllTraffic": { +"description": "Immutable. Route all traffic through PSC interface. Enable this if you want full control of traffic in the private pool. Configure Cloud NAT for the subnet of network attachment if you need to access public Internet. If false, Only route private IPs, e.g. 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 through PSC interface.", +"type": "boolean" +} +}, +"type": "object" +}, +"ProcessAppManifestCallbackOperationMetadata": { +"description": "Metadata for `ProcessAppManifestCallback` operation.", +"id": "ProcessAppManifestCallbackOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"githubEnterpriseConfig": { +"description": "The resource name of the GitHubEnterprise to be created. Format: `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`.", +"type": "string" +} +}, +"type": "object" +}, +"PubsubConfig": { +"description": "PubsubConfig describes the configuration of a trigger that creates a build whenever a Pub/Sub message is published.", +"id": "PubsubConfig", +"properties": { +"serviceAccountEmail": { +"description": "Service account that will make the push request.", +"type": "string" +}, +"state": { +"description": "Potential issues with the underlying Pub/Sub subscription configuration. Only populated on get requests.", +"enum": [ +"STATE_UNSPECIFIED", +"OK", +"SUBSCRIPTION_DELETED", +"TOPIC_DELETED", +"SUBSCRIPTION_MISCONFIGURED" +], +"enumDescriptions": [ +"The subscription configuration has not been checked.", +"The Pub/Sub subscription is properly configured.", +"The subscription has been deleted.", +"The topic has been deleted.", +"Some of the subscription's field are misconfigured." +], +"type": "string" +}, +"subscription": { +"description": "Output only. Name of the subscription. Format is `projects/{project}/subscriptions/{subscription}`.", +"readOnly": true, +"type": "string" +}, +"topic": { +"description": "Optional. The name of the topic from which this subscription is receiving messages. Format is `projects/{project}/topics/{topic}`.", +"type": "string" +} +}, +"type": "object" +}, +"PullRequestFilter": { +"description": "PullRequestFilter contains filter properties for matching GitHub Pull Requests.", +"id": "PullRequestFilter", +"properties": { +"branch": { +"description": "Regex of branches to match. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", +"type": "string" +}, +"commentControl": { +"description": "If CommentControl is enabled, depending on the setting, builds may not fire until a repository writer comments `/gcbrun` on a pull request or `/gcbrun` is in the pull request description. Only PR comments that contain `/gcbrun` will trigger builds. If CommentControl is set to disabled, comments with `/gcbrun` from a user with repository write permission or above will still trigger builds to run.", +"enum": [ +"COMMENTS_DISABLED", +"COMMENTS_ENABLED", +"COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY" +], +"enumDescriptions": [ +"Do not require `/gcbrun` comments from a user with repository write permission or above on pull requests before builds are triggered. Comments that contain `/gcbrun` will still fire builds so this should be thought of as comments not required.", +"Builds will only fire in response to pull requests if: 1. The pull request author has repository write permission or above and `/gcbrun` is in the PR description. 2. A user with repository writer permissions or above comments `/gcbrun` on a pull request authored by any user.", +"Builds will only fire in response to pull requests if: 1. The pull request author is a repository writer or above. 2. If the author does not have write permissions, a user with write permissions or above must comment `/gcbrun` in order to fire a build." +], +"type": "string" +}, +"invertRegex": { +"description": "If true, branches that do NOT match the git_ref will trigger a build.", +"type": "boolean" +} +}, +"type": "object" +}, +"PushFilter": { +"description": "Push contains filter properties for matching GitHub git pushes.", +"id": "PushFilter", +"properties": { +"branch": { +"description": "Regexes matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", +"type": "string" +}, +"invertRegex": { +"description": "When true, only trigger a build if the revision regex does NOT match the git_ref regex.", +"type": "boolean" +}, +"tag": { +"description": "Regexes matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", +"type": "string" +} +}, +"type": "object" +}, +"PythonPackage": { +"description": "Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.", +"id": "PythonPackage", +"properties": { +"paths": { +"description": "Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file.", +"items": { +"type": "string" +}, +"type": "array" +}, +"repository": { +"description": "Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.", +"type": "string" +} +}, +"type": "object" +}, +"ReceiveTriggerWebhookResponse": { +"description": "ReceiveTriggerWebhookResponse [Experimental] is the response object for the ReceiveTriggerWebhook method.", +"id": "ReceiveTriggerWebhookResponse", +"properties": {}, +"type": "object" +}, +"RemoveBitbucketServerConnectedRepositoryRequest": { +"description": "RPC request object accepted by RemoveBitbucketServerConnectedRepository RPC method.", +"id": "RemoveBitbucketServerConnectedRepositoryRequest", +"properties": { +"connectedRepository": { +"$ref": "BitbucketServerRepositoryId", +"description": "The connected repository to remove." +} +}, +"type": "object" +}, +"RemoveGitLabConnectedRepositoryRequest": { +"description": "RPC request object accepted by RemoveGitLabConnectedRepository RPC method.", +"id": "RemoveGitLabConnectedRepositoryRequest", +"properties": { +"connectedRepository": { +"$ref": "GitLabRepositoryId", +"description": "The connected repository to remove." +} +}, +"type": "object" +}, +"RepoSource": { +"description": "Location of the source in a Google Cloud Source Repository.", +"id": "RepoSource", +"properties": { +"branchName": { +"description": "Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", +"type": "string" +}, +"commitSha": { +"description": "Explicit commit SHA to build.", +"type": "string" +}, +"dir": { +"description": "Optional. Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", +"type": "string" +}, +"invertRegex": { +"description": "Optional. Only trigger a build if the revision regex does NOT match the revision regex.", +"type": "boolean" +}, +"projectId": { +"description": "Optional. ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed.", +"type": "string" +}, +"repoName": { +"description": "Required. Name of the Cloud Source Repository.", +"type": "string" +}, +"substitutions": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Substitutions to use in a triggered build. Should only be used with RunBuildTrigger", +"type": "object" +}, +"tagName": { +"description": "Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", +"type": "string" +} +}, +"type": "object" +}, +"RepositoryEventConfig": { +"description": "The configuration of a trigger that creates a build whenever an event from Repo API is received.", +"id": "RepositoryEventConfig", +"properties": { +"pullRequest": { +"$ref": "PullRequestFilter", +"description": "Filter to match changes in pull requests." +}, +"push": { +"$ref": "PushFilter", +"description": "Filter to match changes in refs like branches, tags." +}, +"repository": { +"description": "The resource name of the Repo API resource.", +"type": "string" +}, +"repositoryType": { +"description": "Output only. The type of the SCM vendor the repository points to.", +"enum": [ +"REPOSITORY_TYPE_UNSPECIFIED", +"GITHUB", +"GITHUB_ENTERPRISE", +"GITLAB_ENTERPRISE", +"BITBUCKET_DATA_CENTER", +"BITBUCKET_CLOUD" +], +"enumDescriptions": [ +"If unspecified, RepositoryType defaults to GITHUB.", +"The SCM repo is GITHUB.", +"The SCM repo is GITHUB Enterprise.", +"The SCM repo is GITLAB Enterprise.", +"The SCM repo is BITBUCKET Data Center.", +"The SCM repo is BITBUCKET Cloud." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Results": { +"description": "Artifacts created by the build pipeline.", +"id": "Results", +"properties": { +"artifactManifest": { +"description": "Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", +"type": "string" +}, +"artifactTiming": { +"$ref": "TimeSpan", +"description": "Time to push all non-container artifacts to Cloud Storage." +}, +"buildStepImages": { +"description": "List of build step digests, in the order corresponding to build step indices.", +"items": { +"type": "string" +}, +"type": "array" +}, +"buildStepOutputs": { +"description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored. Note that the `$BUILDER_OUTPUT` variable is read-only and can't be substituted.", +"items": { +"format": "byte", +"type": "string" +}, +"type": "array" +}, +"images": { +"description": "Container images that were built as a part of the build.", +"items": { +"$ref": "BuiltImage" +}, +"type": "array" +}, +"mavenArtifacts": { +"description": "Maven artifacts uploaded to Artifact Registry at the end of the build.", +"items": { +"$ref": "UploadedMavenArtifact" +}, +"type": "array" +}, +"npmPackages": { +"description": "Npm packages uploaded to Artifact Registry at the end of the build.", +"items": { +"$ref": "UploadedNpmPackage" +}, +"type": "array" +}, +"numArtifacts": { +"description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", +"format": "int64", +"type": "string" +}, +"pythonPackages": { +"description": "Python artifacts uploaded to Artifact Registry at the end of the build.", +"items": { +"$ref": "UploadedPythonPackage" +}, +"type": "array" +} +}, +"type": "object" +}, +"RetryBuildRequest": { +"description": "Specifies a build to retry.", +"id": "RetryBuildRequest", +"properties": { +"id": { +"description": "Required. Build ID of the original build.", +"type": "string" +}, +"name": { +"description": "The name of the `Build` to retry. Format: `projects/{project}/locations/{location}/builds/{build}`", +"type": "string" +}, +"projectId": { +"description": "Required. ID of the project.", +"type": "string" +} +}, +"type": "object" +}, +"RunBuildTriggerRequest": { +"description": "Specifies a build trigger to run and the source to use.", +"id": "RunBuildTriggerRequest", +"properties": { +"projectId": { +"description": "Required. ID of the project.", +"type": "string" +}, +"source": { +"$ref": "RepoSource", +"description": "Source to build against this trigger. Branch and tag names cannot consist of regular expressions." +}, +"triggerId": { +"description": "Required. ID of the trigger.", +"type": "string" +} +}, +"type": "object" +}, +"Secret": { +"description": "Pairs a set of secret environment variables containing encrypted values with the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `available_secrets` instead of using `kmsKeyName` with `secret`. For instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/use-encrypted-credentials.", +"id": "Secret", +"properties": { +"kmsKeyName": { +"description": "Cloud KMS key name to use to decrypt these envs.", +"type": "string" +}, +"secretEnv": { +"additionalProperties": { +"format": "byte", +"type": "string" +}, +"description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", +"type": "object" +} +}, +"type": "object" +}, +"SecretManagerSecret": { +"description": "Pairs a secret environment variable with a SecretVersion in Secret Manager.", +"id": "SecretManagerSecret", +"properties": { +"env": { +"description": "Environment variable name to associate with the secret. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step.", +"type": "string" +}, +"versionName": { +"description": "Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*", +"type": "string" +} +}, +"type": "object" +}, +"Secrets": { +"description": "Secrets and secret environment variables.", +"id": "Secrets", +"properties": { +"inline": { +"description": "Secrets encrypted with KMS key and the associated secret environment variable.", +"items": { +"$ref": "InlineSecret" +}, +"type": "array" +}, +"secretManager": { +"description": "Secrets in Secret Manager and associated secret environment variable.", +"items": { +"$ref": "SecretManagerSecret" +}, +"type": "array" +} +}, +"type": "object" +}, +"ServiceDirectoryConfig": { +"description": "ServiceDirectoryConfig represents Service Directory configuration for a SCM host connection.", +"id": "ServiceDirectoryConfig", +"properties": { +"service": { +"description": "The Service Directory service name. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.", +"type": "string" +} +}, +"type": "object" +}, +"Source": { +"description": "Location of the source in a supported storage service.", +"id": "Source", +"properties": { +"connectedRepository": { +"$ref": "ConnectedRepository", +"description": "Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource." +}, +"developerConnectConfig": { +"$ref": "DeveloperConnectConfig", +"description": "If provided, get the source from this Developer Connect config." +}, +"gitSource": { +"$ref": "GitSource", +"description": "If provided, get the source from this Git repository." +}, +"repoSource": { +"$ref": "RepoSource", +"description": "If provided, get the source from this location in a Cloud Source Repository." +}, +"storageSource": { +"$ref": "StorageSource", +"description": "If provided, get the source from this location in Cloud Storage." +}, +"storageSourceManifest": { +"$ref": "StorageSourceManifest", +"description": "If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." +} +}, +"type": "object" +}, +"SourceProvenance": { +"description": "Provenance of the source. Ways to find the original source, or verify that some source was used for this build.", +"id": "SourceProvenance", +"properties": { +"fileHashes": { +"additionalProperties": { +"$ref": "FileHashes" +}, +"description": "Output only. Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. Note that `FileHashes` will only be populated if `BuildOptions` has requested a `SourceProvenanceHash`. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (`.tar.gz`), the `FileHash` will be for the single path to that file.", +"readOnly": true, +"type": "object" +}, +"resolvedConnectedRepository": { +"$ref": "ConnectedRepository", +"description": "Output only. A copy of the build's `source.connected_repository`, if exists, with any revisions resolved.", +"readOnly": true +}, +"resolvedGitSource": { +"$ref": "GitSource", +"description": "Output only. A copy of the build's `source.git_source`, if exists, with any revisions resolved.", +"readOnly": true +}, +"resolvedRepoSource": { +"$ref": "RepoSource", +"description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." +}, +"resolvedStorageSource": { +"$ref": "StorageSource", +"description": "A copy of the build's `source.storage_source`, if exists, with any generations resolved." +}, +"resolvedStorageSourceManifest": { +"$ref": "StorageSourceManifest", +"description": "A copy of the build's `source.storage_source_manifest`, if exists, with any revisions resolved. This feature is in Preview." +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StorageSource": { +"description": "Location of the source in an archive file in Cloud Storage.", +"id": "StorageSource", +"properties": { +"bucket": { +"description": "Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", +"type": "string" +}, +"generation": { +"description": "Optional. Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Required. Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", +"type": "string" +}, +"sourceFetcher": { +"description": "Optional. Option to specify the tool to fetch the source file for the build.", +"enum": [ +"SOURCE_FETCHER_UNSPECIFIED", +"GSUTIL", +"GCS_FETCHER" +], +"enumDescriptions": [ +"Unspecified defaults to GSUTIL.", +"Use the \"gsutil\" tool to download the source file.", +"Use the Cloud Storage Fetcher tool to download the source file." +], +"type": "string" +} +}, +"type": "object" +}, +"StorageSourceManifest": { +"description": "Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", +"id": "StorageSourceManifest", +"properties": { +"bucket": { +"description": "Required. Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", +"type": "string" +}, +"generation": { +"description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Required. Cloud Storage object containing the source manifest. This object must be a JSON file.", +"type": "string" +} +}, +"type": "object" +}, +"TimeSpan": { +"description": "Start and end times for a build execution phase.", +"id": "TimeSpan", +"properties": { +"endTime": { +"description": "End of time span.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Start of time span.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpdateBitbucketServerConfigOperationMetadata": { +"description": "Metadata for `UpdateBitbucketServerConfig` operation.", +"id": "UpdateBitbucketServerConfigOperationMetadata", +"properties": { +"bitbucketServerConfig": { +"description": "The resource name of the BitbucketServerConfig to be updated. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{id}`.", +"type": "string" +}, +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpdateGitHubEnterpriseConfigOperationMetadata": { +"description": "Metadata for `UpdateGitHubEnterpriseConfig` operation.", +"id": "UpdateGitHubEnterpriseConfigOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"githubEnterpriseConfig": { +"description": "The resource name of the GitHubEnterprise to be updated. Format: `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`.", +"type": "string" +} +}, +"type": "object" +}, +"UpdateGitLabConfigOperationMetadata": { +"description": "Metadata for `UpdateGitLabConfig` operation.", +"id": "UpdateGitLabConfigOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"gitlabConfig": { +"description": "The resource name of the GitLabConfig to be created. Format: `projects/{project}/locations/{location}/gitlabConfigs/{id}`.", +"type": "string" +} +}, +"type": "object" +}, +"UpdateWorkerPoolOperationMetadata": { +"description": "Metadata for the `UpdateWorkerPool` operation.", +"id": "UpdateWorkerPoolOperationMetadata", +"properties": { +"completeTime": { +"description": "Time the operation was completed.", +"format": "google-datetime", +"type": "string" +}, +"createTime": { +"description": "Time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"workerPool": { +"description": "The resource name of the `WorkerPool` being updated. Format: `projects/{project}/locations/{location}/workerPools/{worker_pool}`.", +"type": "string" +} +}, +"type": "object" +}, +"UploadedMavenArtifact": { +"description": "A Maven artifact uploaded using the MavenArtifact directive.", +"id": "UploadedMavenArtifact", +"properties": { +"fileHashes": { +"$ref": "FileHashes", +"description": "Hash types and values of the Maven Artifact." +}, +"pushTiming": { +"$ref": "TimeSpan", +"description": "Output only. Stores timing information for pushing the specified artifact.", +"readOnly": true +}, +"uri": { +"description": "URI of the uploaded artifact.", +"type": "string" +} +}, +"type": "object" +}, +"UploadedNpmPackage": { +"description": "An npm package uploaded to Artifact Registry using the NpmPackage directive.", +"id": "UploadedNpmPackage", +"properties": { +"fileHashes": { +"$ref": "FileHashes", +"description": "Hash types and values of the npm package." +}, +"pushTiming": { +"$ref": "TimeSpan", +"description": "Output only. Stores timing information for pushing the specified artifact.", +"readOnly": true +}, +"uri": { +"description": "URI of the uploaded npm package.", +"type": "string" +} +}, +"type": "object" +}, +"UploadedPythonPackage": { +"description": "Artifact uploaded using the PythonPackage directive.", +"id": "UploadedPythonPackage", +"properties": { +"fileHashes": { +"$ref": "FileHashes", +"description": "Hash types and values of the Python Artifact." +}, +"pushTiming": { +"$ref": "TimeSpan", +"description": "Output only. Stores timing information for pushing the specified artifact.", +"readOnly": true +}, +"uri": { +"description": "URI of the uploaded artifact.", +"type": "string" +} +}, +"type": "object" +}, +"Volume": { +"description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution.", +"id": "Volume", +"properties": { +"name": { +"description": "Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps.", +"type": "string" +}, +"path": { +"description": "Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths.", +"type": "string" +} +}, +"type": "object" +}, +"Warning": { +"description": "A non-fatal problem encountered during the execution of the build.", +"id": "Warning", +"properties": { +"priority": { +"description": "The priority for this warning.", +"enum": [ +"PRIORITY_UNSPECIFIED", +"INFO", +"WARNING", +"ALERT" +], +"enumDescriptions": [ +"Should not be used.", +"e.g. deprecation warnings and alternative feature highlights.", +"e.g. automated detection of possible issues with the build.", +"e.g. alerts that a feature used in the build is pending removal" +], +"type": "string" +}, +"text": { +"description": "Explanation of the warning generated.", +"type": "string" +} +}, +"type": "object" +}, +"WebhookConfig": { +"description": "WebhookConfig describes the configuration of a trigger that creates a build whenever a webhook is sent to a trigger's webhook URL.", +"id": "WebhookConfig", +"properties": { +"secret": { +"description": "Required. Resource name for the secret required as a URL parameter.", +"type": "string" +}, +"state": { +"description": "Potential issues with the underlying Pub/Sub subscription configuration. Only populated on get requests.", +"enum": [ +"STATE_UNSPECIFIED", +"OK", +"SECRET_DELETED" +], +"enumDescriptions": [ +"The webhook auth configuration not been checked.", +"The auth configuration is properly setup.", +"The secret provided in auth_method has been deleted." +], +"type": "string" +} +}, +"type": "object" +}, +"WorkerConfig": { +"description": "Defines the configuration to be used for creating workers in the pool.", +"id": "WorkerConfig", +"properties": { +"diskSizeGb": { +"description": "Size of the disk attached to the worker, in GB. See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). Specify a value of up to 2000. If `0` is specified, Cloud Build will use a standard disk size.", +"format": "int64", +"type": "string" +}, +"machineType": { +"description": "Optional. Machine type of a worker, such as `e2-medium`. See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). If left blank, Cloud Build will use a sensible default.", +"type": "string" +} +}, +"type": "object" +}, +"WorkerPool": { +"description": "Configuration for a `WorkerPool`. Cloud Build owns and maintains a pool of workers for general use and have no access to a project's private network. By default, builds submitted to Cloud Build will use a worker from this pool. If your build needs access to resources on a private network, create and use a `WorkerPool` to run your builds. Private `WorkerPool`s give your builds access to any single VPC network that you administer, including any on-prem resources connected to that VPC network. For an overview of private pools, see [Private pools overview](https://cloud.google.com/build/docs/private-pools/private-pools-overview).", +"id": "WorkerPool", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "User specified annotations. See https://google.aip.dev/128#annotations for more details such as format and size limitations.", +"type": "object" +}, +"createTime": { +"description": "Output only. Time at which the request to create the `WorkerPool` was received.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. Time at which the request to delete the `WorkerPool` was received.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "A user-specified, human-readable name for the `WorkerPool`. If provided, this value must be 1-63 characters.", +"type": "string" +}, +"etag": { +"description": "Output only. Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the `WorkerPool`, with format `projects/{project}/locations/{location}/workerPools/{worker_pool}`. The value of `{worker_pool}` is provided by `worker_pool_id` in `CreateWorkerPool` request and the value of `{location}` is determined by the endpoint accessed.", +"readOnly": true, +"type": "string" +}, +"privatePoolV1Config": { +"$ref": "PrivatePoolV1Config", +"description": "Legacy Private Pool configuration." +}, +"state": { +"description": "Output only. `WorkerPool` state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"RUNNING", +"DELETING", +"DELETED", +"UPDATING" +], +"enumDescriptions": [ +"State of the `WorkerPool` is unknown.", +"`WorkerPool` is being created.", +"`WorkerPool` is running.", +"`WorkerPool` is being deleted: cancelling builds and draining workers.", +"`WorkerPool` is deleted.", +"`WorkerPool` is being updated; new builds cannot be run." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. A unique identifier for the `WorkerPool`.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Time at which the request to update the `WorkerPool` was received.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Build API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudshell.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudshell.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..529edf2bcae871601724fb7a18e0a691966e7d1b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudshell.v1.json @@ -0,0 +1,694 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudshell.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Shell", +"description": "Allows users to start, configure, and connect to interactive shell sessions running in the cloud. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/shell/docs/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudshell:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudshell.mtls.googleapis.com/", +"name": "cloudshell", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "cloudshell.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "cloudshell.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "GET", +"id": "cloudshell.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/operations", +"httpMethod": "GET", +"id": "cloudshell.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^operations$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"users": { +"resources": { +"environments": { +"methods": { +"addPublicKey": { +"description": "Adds a public SSH key to an environment, allowing clients with the corresponding private key to connect to that environment via SSH. If a key with the same content already exists, this will error with ALREADY_EXISTS.", +"flatPath": "v1/users/{usersId}/environments/{environmentsId}:addPublicKey", +"httpMethod": "POST", +"id": "cloudshell.users.environments.addPublicKey", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "Environment this key should be added to, e.g. `users/me/environments/default`.", +"location": "path", +"pattern": "^users/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:addPublicKey", +"request": { +"$ref": "AddPublicKeyRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"authorize": { +"description": "Sends OAuth credentials to a running environment on behalf of a user. When this completes, the environment will be authorized to run various Google Cloud command line tools without requiring the user to manually authenticate.", +"flatPath": "v1/users/{usersId}/environments/{environmentsId}:authorize", +"httpMethod": "POST", +"id": "cloudshell.users.environments.authorize", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the resource that should receive the credentials, for example `users/me/environments/default` or `users/someone@example.com/environments/default`.", +"location": "path", +"pattern": "^users/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:authorize", +"request": { +"$ref": "AuthorizeEnvironmentRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an environment. Returns NOT_FOUND if the environment does not exist.", +"flatPath": "v1/users/{usersId}/environments/{environmentsId}", +"httpMethod": "GET", +"id": "cloudshell.users.environments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the requested resource, for example `users/me/environments/default` or `users/someone@example.com/environments/default`.", +"location": "path", +"pattern": "^users/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removePublicKey": { +"description": "Removes a public SSH key from an environment. Clients will no longer be able to connect to the environment using the corresponding private key. If a key with the same content is not present, this will error with NOT_FOUND.", +"flatPath": "v1/users/{usersId}/environments/{environmentsId}:removePublicKey", +"httpMethod": "POST", +"id": "cloudshell.users.environments.removePublicKey", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "Environment this key should be removed from, e.g. `users/me/environments/default`.", +"location": "path", +"pattern": "^users/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+environment}:removePublicKey", +"request": { +"$ref": "RemovePublicKeyRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"start": { +"description": "Starts an existing environment, allowing clients to connect to it. The returned operation will contain an instance of StartEnvironmentMetadata in its metadata field. Users can wait for the environment to start by polling this operation via GetOperation. Once the environment has finished starting and is ready to accept connections, the operation will contain a StartEnvironmentResponse in its response field.", +"flatPath": "v1/users/{usersId}/environments/{environmentsId}:start", +"httpMethod": "POST", +"id": "cloudshell.users.environments.start", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Name of the resource that should be started, for example `users/me/environments/default` or `users/someone@example.com/environments/default`.", +"location": "path", +"pattern": "^users/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:start", +"request": { +"$ref": "StartEnvironmentRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20241118", +"rootUrl": "https://cloudshell.googleapis.com/", +"schemas": { +"AddPublicKeyMetadata": { +"description": "Message included in the metadata field of operations returned from AddPublicKey.", +"id": "AddPublicKeyMetadata", +"properties": {}, +"type": "object" +}, +"AddPublicKeyRequest": { +"description": "Request message for AddPublicKey.", +"id": "AddPublicKeyRequest", +"properties": { +"key": { +"description": "Key that should be added to the environment. Supported formats are `ssh-dss` (see RFC4253), `ssh-rsa` (see RFC4253), `ecdsa-sha2-nistp256` (see RFC5656), `ecdsa-sha2-nistp384` (see RFC5656) and `ecdsa-sha2-nistp521` (see RFC5656). It should be structured as , where part is encoded with Base64.", +"type": "string" +} +}, +"type": "object" +}, +"AddPublicKeyResponse": { +"description": "Response message for AddPublicKey.", +"id": "AddPublicKeyResponse", +"properties": { +"key": { +"description": "Key that was added to the environment.", +"type": "string" +} +}, +"type": "object" +}, +"AuthorizeEnvironmentMetadata": { +"description": "Message included in the metadata field of operations returned from AuthorizeEnvironment.", +"id": "AuthorizeEnvironmentMetadata", +"properties": {}, +"type": "object" +}, +"AuthorizeEnvironmentRequest": { +"description": "Request message for AuthorizeEnvironment.", +"id": "AuthorizeEnvironmentRequest", +"properties": { +"accessToken": { +"description": "The OAuth access token that should be sent to the environment.", +"type": "string" +}, +"expireTime": { +"description": "The time when the credentials expire. If not set, defaults to one hour from when the server received the request.", +"format": "google-datetime", +"type": "string" +}, +"idToken": { +"description": "The OAuth ID token that should be sent to the environment.", +"type": "string" +} +}, +"type": "object" +}, +"AuthorizeEnvironmentResponse": { +"description": "Response message for AuthorizeEnvironment.", +"id": "AuthorizeEnvironmentResponse", +"properties": {}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CreateEnvironmentMetadata": { +"description": "Message included in the metadata field of operations returned from CreateEnvironment.", +"id": "CreateEnvironmentMetadata", +"properties": {}, +"type": "object" +}, +"DeleteEnvironmentMetadata": { +"description": "Message included in the metadata field of operations returned from DeleteEnvironment.", +"id": "DeleteEnvironmentMetadata", +"properties": {}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Environment": { +"description": "A Cloud Shell environment, which is defined as the combination of a Docker image specifying what is installed on the environment and a home directory containing the user's data that will remain across sessions. Each user has at least an environment with the ID \"default\".", +"id": "Environment", +"properties": { +"dockerImage": { +"description": "Required. Immutable. Full path to the Docker image used to run this environment, e.g. \"gcr.io/dev-con/cloud-devshell:latest\".", +"type": "string" +}, +"id": { +"description": "Output only. The environment's identifier, unique among the user's environments.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. Full name of this resource, in the format `users/{owner_email}/environments/{environment_id}`. `{owner_email}` is the email address of the user to whom this environment belongs, and `{environment_id}` is the identifier of this environment. For example, `users/someone@example.com/environments/default`.", +"type": "string" +}, +"publicKeys": { +"description": "Output only. Public keys associated with the environment. Clients can connect to this environment via SSH only if they possess a private key corresponding to at least one of these public keys. Keys can be added to or removed from the environment using the AddPublicKey and RemovePublicKey methods.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"sshHost": { +"description": "Output only. Host to which clients can connect to initiate SSH sessions with the environment.", +"readOnly": true, +"type": "string" +}, +"sshPort": { +"description": "Output only. Port to which clients can connect to initiate SSH sessions with the environment.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"sshUsername": { +"description": "Output only. Username that clients should use when initiating SSH sessions with the environment.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Current execution state of this environment.", +"enum": [ +"STATE_UNSPECIFIED", +"SUSPENDED", +"PENDING", +"RUNNING", +"DELETING" +], +"enumDescriptions": [ +"The environment's states is unknown.", +"The environment is not running and can't be connected to. Starting the environment will transition it to the PENDING state.", +"The environment is being started but is not yet ready to accept connections.", +"The environment is running and ready to accept connections. It will automatically transition back to DISABLED after a period of inactivity or if another environment is started.", +"The environment is being deleted and can't be connected to." +], +"readOnly": true, +"type": "string" +}, +"webHost": { +"description": "Output only. Host to which clients can connect to initiate HTTPS or WSS connections with the environment.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"RemovePublicKeyMetadata": { +"description": "Message included in the metadata field of operations returned from RemovePublicKey.", +"id": "RemovePublicKeyMetadata", +"properties": {}, +"type": "object" +}, +"RemovePublicKeyRequest": { +"description": "Request message for RemovePublicKey.", +"id": "RemovePublicKeyRequest", +"properties": { +"key": { +"description": "Key that should be removed from the environment.", +"type": "string" +} +}, +"type": "object" +}, +"RemovePublicKeyResponse": { +"description": "Response message for RemovePublicKey.", +"id": "RemovePublicKeyResponse", +"properties": {}, +"type": "object" +}, +"StartEnvironmentMetadata": { +"description": "Message included in the metadata field of operations returned from StartEnvironment.", +"id": "StartEnvironmentMetadata", +"properties": { +"state": { +"description": "Current state of the environment being started.", +"enum": [ +"STATE_UNSPECIFIED", +"STARTING", +"UNARCHIVING_DISK", +"AWAITING_COMPUTE_RESOURCES", +"FINISHED" +], +"enumDescriptions": [ +"The environment's start state is unknown.", +"The environment is in the process of being started, but no additional details are available.", +"Startup is waiting for the user's disk to be unarchived. This can happen when the user returns to Cloud Shell after not having used it for a while, and suggests that startup will take longer than normal.", +"Startup is waiting for compute resources to be assigned to the environment. This should normally happen very quickly, but an environment might stay in this state for an extended period of time if the system is experiencing heavy load.", +"Startup has completed. If the start operation was successful, the user should be able to establish an SSH connection to their environment. Otherwise, the operation will contain details of the failure." +], +"type": "string" +} +}, +"type": "object" +}, +"StartEnvironmentRequest": { +"description": "Request message for StartEnvironment.", +"id": "StartEnvironmentRequest", +"properties": { +"accessToken": { +"description": "The initial access token passed to the environment. If this is present and valid, the environment will be pre-authenticated with gcloud so that the user can run gcloud commands in Cloud Shell without having to log in. This code can be updated later by calling AuthorizeEnvironment.", +"type": "string" +}, +"publicKeys": { +"description": "Public keys that should be added to the environment before it is started.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"StartEnvironmentResponse": { +"description": "Message included in the response field of operations returned from StartEnvironment once the operation is complete.", +"id": "StartEnvironmentResponse", +"properties": { +"environment": { +"$ref": "Environment", +"description": "Environment that was started." +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Shell API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtasks.v2beta2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtasks.v2beta2.json new file mode 100644 index 0000000000000000000000000000000000000000..8a3d9cd1209a9e55d697a5344423f4c4321ca53b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtasks.v2beta2.json @@ -0,0 +1,2051 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://cloudtasks.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Tasks", +"description": "Manages the execution of large numbers of distributed requests.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/tasks/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "cloudtasks:v2beta2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudtasks.mtls.googleapis.com/", +"name": "cloudtasks", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"api": { +"resources": { +"queue": { +"methods": { +"update": { +"description": "Update queue list by uploading a queue.yaml file. The queue.yaml file is supplied in the request body as a YAML encoded string. This method was added to support gcloud clients versions before 322.0.0. New clients should use CreateQueue instead of this method.", +"flatPath": "api/queue/update", +"httpMethod": "POST", +"id": "cloudtasks.api.queue.update", +"parameterOrder": [], +"parameters": { +"appId": { +"description": "Required. The App ID is supplied as an HTTP parameter. Unlike internal usage of App ID, it does not include a region prefix. Rather, the App ID represents the Project ID against which to make the request.", +"location": "query", +"type": "string" +} +}, +"path": "api/queue/update", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "cloudtasks.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getCmekConfig": { +"description": "Gets the CMEK config. Gets the Customer Managed Encryption Key configured with the Cloud Tasks lcoation. By default there is no kms_key configured.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/cmekConfig", +"httpMethod": "GET", +"id": "cloudtasks.projects.locations.getCmekConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The config. For example: projects/PROJECT_ID/locations/LOCATION_ID/CmekConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/cmekConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}", +"response": { +"$ref": "CmekConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v2beta2/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "cloudtasks.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta2/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateCmekConfig": { +"description": "Creates or Updates a CMEK config. Updates the Customer Managed Encryption Key assotiated with the Cloud Tasks location (Creates if the key does not already exist). All new tasks created in the location will be encrypted at-rest with the KMS-key provided in the config.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/cmekConfig", +"httpMethod": "PATCH", +"id": "cloudtasks.projects.locations.updateCmekConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The config resource name which includes the project and location and must end in 'cmekConfig', in the format projects/PROJECT_ID/locations/LOCATION_ID/cmekConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/cmekConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated in this request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta2/{+name}", +"request": { +"$ref": "CmekConfig" +}, +"response": { +"$ref": "CmekConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"queues": { +"methods": { +"create": { +"description": "Creates a queue. Queues created with this method allow tasks to live for a maximum of 31 days. After a task is 31 days old, the task will be deleted regardless of whether it was dispatched or not. WARNING: Using this method may have unintended side effects if you are using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. Read [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) before using this method.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The location name in which the queue will be created. For example: `projects/PROJECT_ID/locations/LOCATION_ID` The list of allowed locations can be obtained by calling Cloud Tasks' implementation of ListLocations.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+parent}/queues", +"request": { +"$ref": "Queue" +}, +"response": { +"$ref": "Queue" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a queue. This command will delete the queue even if it has tasks in it. Note: If you delete a queue, you may be prevented from creating a new queue with the same name as the deleted queue for a tombstone window of up to 3 days. During this window, the CreateQueue operation may appear to recreate the queue, but this can be misleading. If you attempt to create a queue with the same name as one that is in the tombstone window, run GetQueue to confirm that the queue creation was successful. If GetQueue returns 200 response code, your queue was successfully created with the name of the previously deleted queue. Otherwise, your queue did not successfully recreate. WARNING: Using this method may have unintended side effects if you are using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. Read [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) before using this method.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", +"httpMethod": "DELETE", +"id": "cloudtasks.projects.locations.queues.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The queue name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a queue.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", +"httpMethod": "GET", +"id": "cloudtasks.projects.locations.queues.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the queue. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "Optional. Read mask is used for a more granular control over what the API returns. If the mask is not present all fields will be returned except [Queue.stats]. [Queue.stats] will be returned only if it was explicitly specified in the mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta2/{+name}", +"response": { +"$ref": "Queue" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a Queue. Returns an empty policy if the resource exists and does not have a policy set. Authorization requires the following [Google IAM](https://cloud.google.com/iam) permission on the specified resource parent: * `cloudtasks.queues.getIamPolicy`", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:getIamPolicy", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists queues. Queues are returned in lexicographical order.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues", +"httpMethod": "GET", +"id": "cloudtasks.projects.locations.queues.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "`filter` can be used to specify a subset of queues. Any Queue field can be used as a filter and several operators as supported. For example: `<=, <, >=, >, !=, =, :`. The filter syntax is the same as described in [Stackdriver's Advanced Logs Filters](https://cloud.google.com/logging/docs/view/advanced_filters). Sample filter \"app_engine_http_target: *\". Note that using filters might cause fewer queues than the requested_page size to be returned.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The maximum page size is 9800. If unspecified, the page size will be the maximum. Fewer queues than requested might be returned, even if more queues exist; use the next_page_token in the response to determine if more queues exist.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying the page of results to return. To request the first page results, page_token must be empty. To request the next page of results, page_token must be the value of next_page_token returned from the previous call to ListQueues method. It is an error to switch the value of the filter while iterating through pages.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location name. For example: `projects/PROJECT_ID/locations/LOCATION_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "Optional. Read mask is used for a more granular control over what the API returns. If the mask is not present all fields will be returned except [Queue.stats]. [Queue.stats] will be returned only if it was explicitly specified in the mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta2/{+parent}/queues", +"response": { +"$ref": "ListQueuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a queue. This method creates the queue if it does not exist and updates the queue if it does exist. Queues created with this method allow tasks to live for a maximum of 31 days. After a task is 31 days old, the task will be deleted regardless of whether it was dispatched or not. WARNING: Using this method may have unintended side effects if you are using an App Engine `queue.yaml` or `queue.xml` file to manage your queues. Read [Overview of Queue Management and queue.yaml](https://cloud.google.com/tasks/docs/queue-yaml) before using this method.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", +"httpMethod": "PATCH", +"id": "cloudtasks.projects.locations.queues.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Caller-specified and required in CreateQueue, after which it becomes output only. The queue name. The queue name must have the following format: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` * `PROJECT_ID` can contain letters ([A-Za-z]), numbers ([0-9]), hyphens (-), colons (:), or periods (.). For more information, see [Identifying projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects) * `LOCATION_ID` is the canonical ID for the queue's location. The list of available locations can be obtained by calling ListLocations. For more information, see https://cloud.google.com/about/locations/. * `QUEUE_ID` can contain letters ([A-Za-z]), numbers ([0-9]), or hyphens (-). The maximum length is 100 characters.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A mask used to specify which fields of the queue are being updated. If empty, then all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta2/{+name}", +"request": { +"$ref": "Queue" +}, +"response": { +"$ref": "Queue" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"pause": { +"description": "Pauses the queue. If a queue is paused then the system will stop dispatching tasks until the queue is resumed via ResumeQueue. Tasks can still be added when the queue is paused. A queue is paused if its state is PAUSED.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:pause", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.pause", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The queue name. For example: `projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}:pause", +"request": { +"$ref": "PauseQueueRequest" +}, +"response": { +"$ref": "Queue" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"purge": { +"description": "Purges a queue by deleting all of its tasks. All tasks created before this method is called are permanently deleted. Purge operations can take up to one minute to take effect. Tasks might be dispatched before the purge takes effect. A purge is irreversible.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:purge", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.purge", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The queue name. For example: `projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}:purge", +"request": { +"$ref": "PurgeQueueRequest" +}, +"response": { +"$ref": "Queue" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resume": { +"description": "Resume a queue. This method resumes a queue after it has been PAUSED or DISABLED. The state of a queue is stored in the queue's state; after calling this method it will be set to RUNNING. WARNING: Resuming many high-QPS queues at the same time can lead to target overloading. If you are resuming high-QPS queues, follow the 500/50/5 pattern described in [Managing Cloud Tasks Scaling Risks](https://cloud.google.com/tasks/docs/manage-cloud-task-scaling).", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:resume", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The queue name. For example: `projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}:resume", +"request": { +"$ref": "ResumeQueueRequest" +}, +"response": { +"$ref": "Queue" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy for a Queue. Replaces any existing policy. Note: The Cloud Console does not check queue-level IAM permissions yet. Project-level permissions are required to use the Cloud Console. Authorization requires the following [Google IAM](https://cloud.google.com/iam) permission on the specified resource parent: * `cloudtasks.queues.setIamPolicy`", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on a Queue. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"tasks": { +"methods": { +"acknowledge": { +"description": "Acknowledges a pull task. The worker, that is, the entity that leased this task must call this method to indicate that the work associated with the task has finished. The worker must acknowledge a task within the lease_duration or the lease will expire and the task will become available to be leased again. After the task is acknowledged, it will not be returned by a later LeaseTasks, GetTask, or ListTasks.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:acknowledge", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.tasks.acknowledge", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The task name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}:acknowledge", +"request": { +"$ref": "AcknowledgeTaskRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"buffer": { +"description": "Creates and buffers a new task without the need to explicitly define a Task message. The queue must have HTTP target. To create the task with a custom ID, use the following format and set TASK_ID to your desired ID: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID:buffer To create the task with an automatically generated ID, use the following format: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks:buffer.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{taskId}:buffer", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.tasks.buffer", +"parameterOrder": [ +"queue", +"taskId" +], +"parameters": { +"queue": { +"description": "Required. The parent queue name. For example: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` The queue must already exist.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +}, +"taskId": { +"description": "Optional. Task ID for the task being created. If not provided, a random task ID is assigned to the task.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+queue}/tasks/{taskId}:buffer", +"request": { +"$ref": "BufferTaskRequest" +}, +"response": { +"$ref": "BufferTaskResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"cancelLease": { +"description": "Cancel a pull task's lease. The worker can use this method to cancel a task's lease by setting its schedule_time to now. This will make the task available to be leased to the next caller of LeaseTasks.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:cancelLease", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.tasks.cancelLease", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The task name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}:cancelLease", +"request": { +"$ref": "CancelLeaseRequest" +}, +"response": { +"$ref": "Task" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a task and adds it to a queue. Tasks cannot be updated after creation; there is no UpdateTask command. * For App Engine queues, the maximum task size is 100KB. * For pull queues, the maximum task size is 1MB.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.tasks.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The queue name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` The queue must already exist.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+parent}/tasks", +"request": { +"$ref": "CreateTaskRequest" +}, +"response": { +"$ref": "Task" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a task. A task can be deleted if it is scheduled or dispatched. A task cannot be deleted if it has completed successfully or permanently failed.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}", +"httpMethod": "DELETE", +"id": "cloudtasks.projects.locations.queues.tasks.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The task name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a task.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}", +"httpMethod": "GET", +"id": "cloudtasks.projects.locations.queues.tasks.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The task name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +}, +"responseView": { +"description": "The response_view specifies which subset of the Task will be returned. By default response_view is BASIC; not all information is retrieved by default because some data, such as payloads, might be desirable to return only when needed because of its large size or because of the sensitivity of data that it contains. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Task resource.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Unspecified. Defaults to BASIC.", +"The basic view omits fields which can be large or can contain sensitive data. This view does not include the (payload in AppEngineHttpRequest and payload in PullMessage). These payloads are desirable to return only when needed, because they can be large and because of the sensitivity of the data that you choose to store in it.", +"All information is returned. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Queue resource." +], +"location": "query", +"type": "string" +} +}, +"path": "v2beta2/{+name}", +"response": { +"$ref": "Task" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"lease": { +"description": "Leases tasks from a pull queue for lease_duration. This method is invoked by the worker to obtain a lease. The worker must acknowledge the task via AcknowledgeTask after they have performed the work associated with the task. The payload is intended to store data that the worker needs to perform the work associated with the task. To return the payloads in the response, set response_view to FULL. A maximum of 10 qps of LeaseTasks requests are allowed per queue. RESOURCE_EXHAUSTED is returned when this limit is exceeded. RESOURCE_EXHAUSTED is also returned when max_tasks_dispatched_per_second is exceeded.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks:lease", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.tasks.lease", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The queue name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+parent}/tasks:lease", +"request": { +"$ref": "LeaseTasksRequest" +}, +"response": { +"$ref": "LeaseTasksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the tasks in a queue. By default, only the BASIC view is retrieved due to performance considerations; response_view controls the subset of information which is returned. The tasks may be returned in any order. The ordering may change at any time.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks", +"httpMethod": "GET", +"id": "cloudtasks.projects.locations.queues.tasks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum page size. Fewer tasks than requested might be returned, even if more tasks exist; use next_page_token in the response to determine if more tasks exist. The maximum page size is 1000. If unspecified, the page size will be the maximum.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying the page of results to return. To request the first page results, page_token must be empty. To request the next page of results, page_token must be the value of next_page_token returned from the previous call to ListTasks method. The page token is valid for only 2 hours.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The queue name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", +"required": true, +"type": "string" +}, +"responseView": { +"description": "The response_view specifies which subset of the Task will be returned. By default response_view is BASIC; not all information is retrieved by default because some data, such as payloads, might be desirable to return only when needed because of its large size or because of the sensitivity of data that it contains. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Task resource.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Unspecified. Defaults to BASIC.", +"The basic view omits fields which can be large or can contain sensitive data. This view does not include the (payload in AppEngineHttpRequest and payload in PullMessage). These payloads are desirable to return only when needed, because they can be large and because of the sensitivity of the data that you choose to store in it.", +"All information is returned. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Queue resource." +], +"location": "query", +"type": "string" +} +}, +"path": "v2beta2/{+parent}/tasks", +"response": { +"$ref": "ListTasksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"renewLease": { +"description": "Renew the current lease of a pull task. The worker can use this method to extend the lease by a new duration, starting from now. The new task lease will be returned in the task's schedule_time.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:renewLease", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.tasks.renewLease", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The task name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}:renewLease", +"request": { +"$ref": "RenewLeaseRequest" +}, +"response": { +"$ref": "Task" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"run": { +"description": "Forces a task to run now. When this method is called, Cloud Tasks will dispatch the task, even if the task is already running, the queue has reached its RateLimits or is PAUSED. This command is meant to be used for manual debugging. For example, RunTask can be used to retry a failed task after a fix has been made or to manually force a task to be dispatched now. The dispatched task is returned. That is, the task that is returned contains the status after the task is dispatched but before the task is received by its target. If Cloud Tasks receives a successful response from the task's target, then the task will be deleted; otherwise the task's schedule_time will be reset to the time that RunTask was called plus the retry delay specified in the queue's RetryConfig. RunTask returns NOT_FOUND when it is called on a task that has already succeeded or permanently failed. RunTask cannot be called on a pull task.", +"flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:run", +"httpMethod": "POST", +"id": "cloudtasks.projects.locations.queues.tasks.run", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The task name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta2/{+name}:run", +"request": { +"$ref": "RunTaskRequest" +}, +"response": { +"$ref": "Task" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20240808", +"rootUrl": "https://cloudtasks.googleapis.com/", +"schemas": { +"AcknowledgeTaskRequest": { +"description": "Request message for acknowledging a task using AcknowledgeTask.", +"id": "AcknowledgeTaskRequest", +"properties": { +"scheduleTime": { +"description": "Required. The task's current schedule time, available in the schedule_time returned by LeaseTasks response or RenewLease response. This restriction is to ensure that your worker currently holds the lease.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"AppEngineHttpRequest": { +"description": "App Engine HTTP request. The message defines the HTTP request that is sent to an App Engine app when the task is dispatched. This proto can only be used for tasks in a queue which has app_engine_http_target set. Using AppEngineHttpRequest requires [`appengine.applications.get`](https://cloud.google.com/appengine/docs/admin-api/access-control) Google IAM permission for the project and the following scope: `https://www.googleapis.com/auth/cloud-platform` The task will be delivered to the App Engine app which belongs to the same project as the queue. For more information, see [How Requests are Routed](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and how routing is affected by [dispatch files](https://cloud.google.com/appengine/docs/python/config/dispatchref). Traffic is encrypted during transport and never leaves Google datacenters. Because this traffic is carried over a communication mechanism internal to Google, you cannot explicitly set the protocol (for example, HTTP or HTTPS). The request to the handler, however, will appear to have used the HTTP protocol. The AppEngineRouting used to construct the URL that the task is delivered to can be set at the queue-level or task-level: * If set, app_engine_routing_override is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing. The `url` that the task will be sent to is: * `url =` host `+` relative_url Tasks can be dispatched to secure app handlers, unsecure app handlers, and URIs restricted with [`login: admin`](https://cloud.google.com/appengine/docs/standard/python/config/appref). Because tasks are not run as any user, they cannot be dispatched to URIs restricted with [`login: required`](https://cloud.google.com/appengine/docs/standard/python/config/appref) Task dispatches also do not follow redirects. The task attempt has succeeded if the app's request handler returns an HTTP response code in the range [`200` - `299`]. The task attempt has failed if the app's handler returns a non-2xx response code or Cloud Tasks does not receive response before the deadline. Failed tasks will be retried according to the retry configuration. `503` (Service Unavailable) is considered an App Engine system error instead of an application error and will cause Cloud Tasks' traffic congestion control to temporarily throttle the queue's dispatches. Unlike other types of task targets, a `429` (Too Many Requests) response from an app handler does not cause traffic congestion control to throttle the queue.", +"id": "AppEngineHttpRequest", +"properties": { +"appEngineRouting": { +"$ref": "AppEngineRouting", +"description": "Task-level setting for App Engine routing. If set, app_engine_routing_override is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing." +}, +"headers": { +"additionalProperties": { +"type": "string" +}, +"description": "HTTP request headers. This map contains the header field names and values. Headers can be set when the task is created. Repeated headers are not supported but a header value can contain commas. Cloud Tasks sets some headers to default values: * `User-Agent`: By default, this header is `\"AppEngine-Google; (+http://code.google.com/appengine)\"`. This header can be modified, but Cloud Tasks will append `\"AppEngine-Google; (+http://code.google.com/appengine)\"` to the modified `User-Agent`. If the task has a payload, Cloud Tasks sets the following headers: * `Content-Type`: By default, the `Content-Type` header is set to `\"application/octet-stream\"`. The default can be overridden by explicitly setting `Content-Type` to a particular media type when the task is created. For example, `Content-Type` can be set to `\"application/json\"`. * `Content-Length`: This is computed by Cloud Tasks. This value is output only. It cannot be changed. The headers below cannot be set or overridden: * `Host` * `X-Google-*` * `X-AppEngine-*` In addition, Cloud Tasks sets some headers when the task is dispatched, such as headers containing information about the task; see [request headers](https://cloud.google.com/appengine/docs/python/taskqueue/push/creating-handlers#reading_request_headers). These headers are set only when the task is dispatched, so they are not visible when the task is returned in a Cloud Tasks response. Although there is no specific limit for the maximum number of headers or the size, there is a limit on the maximum size of the Task. For more information, see the CreateTask documentation.", +"type": "object" +}, +"httpMethod": { +"description": "The HTTP method to use for the request. The default is POST. The app's request handler for the task's target URL must be able to handle HTTP requests with this http_method, otherwise the task attempt fails with error code 405 (Method Not Allowed). See [Writing a push task request handler](https://cloud.google.com/appengine/docs/java/taskqueue/push/creating-handlers#writing_a_push_task_request_handler) and the App Engine documentation for your runtime on [How Requests are Handled](https://cloud.google.com/appengine/docs/standard/python3/how-requests-are-handled).", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"POST", +"GET", +"HEAD", +"PUT", +"DELETE", +"PATCH", +"OPTIONS" +], +"enumDescriptions": [ +"HTTP method unspecified", +"HTTP POST", +"HTTP GET", +"HTTP HEAD", +"HTTP PUT", +"HTTP DELETE", +"HTTP PATCH", +"HTTP OPTIONS" +], +"type": "string" +}, +"payload": { +"description": "Payload. The payload will be sent as the HTTP message body. A message body, and thus a payload, is allowed only if the HTTP method is POST or PUT. It is an error to set a data payload on a task with an incompatible HttpMethod.", +"format": "byte", +"type": "string" +}, +"relativeUrl": { +"description": "The relative URL. The relative URL must begin with \"/\" and must be a valid HTTP relative URL. It can contain a path and query string arguments. If the relative URL is empty, then the root path \"/\" will be used. No spaces are allowed, and the maximum length allowed is 2083 characters.", +"type": "string" +} +}, +"type": "object" +}, +"AppEngineHttpTarget": { +"description": "App Engine HTTP target. The task will be delivered to the App Engine application hostname specified by its AppEngineHttpTarget and AppEngineHttpRequest. The documentation for AppEngineHttpRequest explains how the task's host URL is constructed. Using AppEngineHttpTarget requires [`appengine.applications.get`](https://cloud.google.com/appengine/docs/admin-api/access-control) Google IAM permission for the project and the following scope: `https://www.googleapis.com/auth/cloud-platform`", +"id": "AppEngineHttpTarget", +"properties": { +"appEngineRoutingOverride": { +"$ref": "AppEngineRouting", +"description": "Overrides for the task-level app_engine_routing. If set, `app_engine_routing_override` is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing." +} +}, +"type": "object" +}, +"AppEngineRouting": { +"description": "App Engine Routing. Defines routing characteristics specific to App Engine - service, version, and instance. For more information about services, versions, and instances see [An Overview of App Engine](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine), [Microservices Architecture on Google App Engine](https://cloud.google.com/appengine/docs/python/microservices-on-app-engine), [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed), and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed).", +"id": "AppEngineRouting", +"properties": { +"host": { +"description": "Output only. The host that the task is sent to. For more information, see [How Requests are Routed](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed). The host is constructed as: * `host = [application_domain_name]` `| [service] + '.' + [application_domain_name]` `| [version] + '.' + [application_domain_name]` `| [version_dot_service]+ '.' + [application_domain_name]` `| [instance] + '.' + [application_domain_name]` `| [instance_dot_service] + '.' + [application_domain_name]` `| [instance_dot_version] + '.' + [application_domain_name]` `| [instance_dot_version_dot_service] + '.' + [application_domain_name]` * `application_domain_name` = The domain name of the app, for example .appspot.com, which is associated with the queue's project ID. Some tasks which were created using the App Engine SDK use a custom domain name. * `service =` service * `version =` version * `version_dot_service =` version `+ '.' +` service * `instance =` instance * `instance_dot_service =` instance `+ '.' +` service * `instance_dot_version =` instance `+ '.' +` version * `instance_dot_version_dot_service =` instance `+ '.' +` version `+ '.' +` service If service is empty, then the task will be sent to the service which is the default service when the task is attempted. If version is empty, then the task will be sent to the version which is the default version when the task is attempted. If instance is empty, then the task will be sent to an instance which is available when the task is attempted. If service, version, or instance is invalid, then the task will be sent to the default version of the default service when the task is attempted.", +"type": "string" +}, +"instance": { +"description": "App instance. By default, the task is sent to an instance which is available when the task is attempted. Requests can only be sent to a specific instance if [manual scaling is used in App Engine Standard](https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine?hl=en_US#scaling_types_and_instance_classes). App Engine Flex does not support instances. For more information, see [App Engine Standard request routing](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed) and [App Engine Flex request routing](https://cloud.google.com/appengine/docs/flexible/python/how-requests-are-routed).", +"type": "string" +}, +"service": { +"description": "App service. By default, the task is sent to the service which is the default service when the task is attempted. For some queues or tasks which were created using the App Engine Task Queue API, host is not parsable into service, version, and instance. For example, some tasks which were created using the App Engine SDK use a custom domain name; custom domains are not parsed by Cloud Tasks. If host is not parsable, then service, version, and instance are the empty string.", +"type": "string" +}, +"version": { +"description": "App version. By default, the task is sent to the version which is the default version when the task is attempted. For some queues or tasks which were created using the App Engine Task Queue API, host is not parsable into service, version, and instance. For example, some tasks which were created using the App Engine SDK use a custom domain name; custom domains are not parsed by Cloud Tasks. If host is not parsable, then service, version, and instance are the empty string.", +"type": "string" +} +}, +"type": "object" +}, +"AttemptStatus": { +"description": "The status of a task attempt.", +"id": "AttemptStatus", +"properties": { +"dispatchTime": { +"description": "Output only. The time that this attempt was dispatched. `dispatch_time` will be truncated to the nearest microsecond.", +"format": "google-datetime", +"type": "string" +}, +"responseStatus": { +"$ref": "Status", +"description": "Output only. The response from the target for this attempt. If the task has not been attempted or the task is currently running then the response status is unset." +}, +"responseTime": { +"description": "Output only. The time that this attempt response was received. `response_time` will be truncated to the nearest microsecond.", +"format": "google-datetime", +"type": "string" +}, +"scheduleTime": { +"description": "Output only. The time that this attempt was scheduled. `schedule_time` will be truncated to the nearest microsecond.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"BufferTaskRequest": { +"description": "Request message for BufferTask.", +"id": "BufferTaskRequest", +"properties": { +"body": { +"$ref": "HttpBody", +"description": "Optional. Body of the HTTP request. The body can take any generic value. The value is written to the HttpRequest of the [Task]." +} +}, +"type": "object" +}, +"BufferTaskResponse": { +"description": "Response message for BufferTask.", +"id": "BufferTaskResponse", +"properties": { +"task": { +"$ref": "Task", +"description": "The created task." +} +}, +"type": "object" +}, +"CancelLeaseRequest": { +"description": "Request message for canceling a lease using CancelLease.", +"id": "CancelLeaseRequest", +"properties": { +"responseView": { +"description": "The response_view specifies which subset of the Task will be returned. By default response_view is BASIC; not all information is retrieved by default because some data, such as payloads, might be desirable to return only when needed because of its large size or because of the sensitivity of data that it contains. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Task resource.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Unspecified. Defaults to BASIC.", +"The basic view omits fields which can be large or can contain sensitive data. This view does not include the (payload in AppEngineHttpRequest and payload in PullMessage). These payloads are desirable to return only when needed, because they can be large and because of the sensitivity of the data that you choose to store in it.", +"All information is returned. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Queue resource." +], +"type": "string" +}, +"scheduleTime": { +"description": "Required. The task's current schedule time, available in the schedule_time returned by LeaseTasks response or RenewLease response. This restriction is to ensure that your worker currently holds the lease.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"CmekConfig": { +"description": "Describes the customer-managed encryption key (CMEK) configuration associated with a project and location.", +"id": "CmekConfig", +"properties": { +"kmsKey": { +"description": "Resource name of the Cloud KMS key, of the form `projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID`, that will be used to encrypt the Queues & Tasks in the region. Setting this as blank will turn off CMEK encryption.", +"type": "string" +}, +"name": { +"description": "Output only. The config resource name which includes the project and location and must end in 'cmekConfig', in the format projects/PROJECT_ID/locations/LOCATION_ID/cmekConfig`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CreateTaskRequest": { +"description": "Request message for CreateTask.", +"id": "CreateTaskRequest", +"properties": { +"responseView": { +"description": "The response_view specifies which subset of the Task will be returned. By default response_view is BASIC; not all information is retrieved by default because some data, such as payloads, might be desirable to return only when needed because of its large size or because of the sensitivity of data that it contains. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Task resource.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Unspecified. Defaults to BASIC.", +"The basic view omits fields which can be large or can contain sensitive data. This view does not include the (payload in AppEngineHttpRequest and payload in PullMessage). These payloads are desirable to return only when needed, because they can be large and because of the sensitivity of the data that you choose to store in it.", +"All information is returned. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Queue resource." +], +"type": "string" +}, +"task": { +"$ref": "Task", +"description": "Required. The task to add. Task names have the following format: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`. The user can optionally specify a task name. If a name is not specified then the system will generate a random unique task id, which will be set in the task returned in the response. If schedule_time is not set or is in the past then Cloud Tasks will set it to the current time. Task De-duplication: Explicitly specifying a task ID enables task de-duplication. If a task's ID is identical to that of an existing task or a task that was deleted or completed recently then the call will fail with ALREADY_EXISTS. The IDs of deleted tasks are not immediately available for reuse. It can take up to 4 hours (or 9 days if the task's queue was created using a queue.yaml or queue.xml) for the task ID to be released and made available again. Because there is an extra lookup cost to identify duplicate task names, these CreateTask calls have significantly increased latency. Using hashed strings for the task id or for the prefix of the task id is recommended. Choosing task ids that are sequential or have sequential prefixes, for example using a timestamp, causes an increase in latency and error rates in all task commands. The infrastructure relies on an approximately uniform distribution of task ids to store and serve tasks efficiently." +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Header": { +"description": "Defines a header message. A header can have a key and a value.", +"id": "Header", +"properties": { +"key": { +"description": "The key of the header.", +"type": "string" +}, +"value": { +"description": "The value of the header.", +"type": "string" +} +}, +"type": "object" +}, +"HeaderOverride": { +"description": "Wraps the Header object.", +"id": "HeaderOverride", +"properties": { +"header": { +"$ref": "Header", +"description": "Header embodying a key and a value. Do not put business sensitive or personally identifying data in the HTTP Header Override Configuration or other similar fields in accordance with Section 12 (Resource Fields) of the [Service Specific Terms](https://cloud.google.com/terms/service-terms)." +} +}, +"type": "object" +}, +"HttpBody": { +"description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", +"id": "HttpBody", +"properties": { +"contentType": { +"description": "The HTTP Content-Type header value specifying the content type of the body.", +"type": "string" +}, +"data": { +"description": "The HTTP request/response body as raw binary.", +"format": "byte", +"type": "string" +}, +"extensions": { +"description": "Application specific response metadata. Must be set in the first response for streaming APIs.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"HttpRequest": { +"description": "HTTP request. The task will be pushed to the worker as an HTTP request. An HTTP request embodies a url, an http method, headers, body and authorization for the http task.", +"id": "HttpRequest", +"properties": { +"body": { +"description": "HTTP request body. A request body is allowed only if the HTTP method is POST, PUT, or PATCH. It is an error to set body on a task with an incompatible HttpMethod.", +"format": "byte", +"type": "string" +}, +"headers": { +"additionalProperties": { +"type": "string" +}, +"description": "HTTP request headers. This map contains the header field names and values. Headers can be set when running the task is created or task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with \"X-CloudTasks-\" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB.", +"type": "object" +}, +"httpMethod": { +"description": "The HTTP method to use for the request. The default is POST.", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"POST", +"GET", +"HEAD", +"PUT", +"DELETE", +"PATCH", +"OPTIONS" +], +"enumDescriptions": [ +"HTTP method unspecified", +"HTTP POST", +"HTTP GET", +"HTTP HEAD", +"HTTP PUT", +"HTTP DELETE", +"HTTP PATCH", +"HTTP OPTIONS" +], +"type": "string" +}, +"oauthToken": { +"$ref": "OAuthToken", +"description": "If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com." +}, +"oidcToken": { +"$ref": "OidcToken", +"description": "If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token will be generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself." +}, +"url": { +"description": "Required. The full url path that the request will be sent to. This string must begin with either \"http://\" or \"https://\". Some examples are: `http://acme.com` and `https://acme.com/sales:8080`. Cloud Tasks will encode some characters for safety and compatibility. The maximum allowed URL length is 2083 characters after encoding. The `Location` header response from a redirect response [`300` - `399`] may be followed. The redirect is not counted as a separate attempt.", +"type": "string" +} +}, +"type": "object" +}, +"HttpTarget": { +"description": "HTTP target. When specified as a Queue, all the tasks with [HttpRequest] will be overridden according to the target.", +"id": "HttpTarget", +"properties": { +"headerOverrides": { +"description": "HTTP target headers. This map contains the header field names and values. Headers will be set when running the task is created and/or task is created. These headers represent a subset of the headers that will accompany the task's HTTP request. Some HTTP request headers will be ignored or replaced. A partial list of headers that will be ignored or replaced is: * Any header that is prefixed with \"X-CloudTasks-\" will be treated as service header. Service headers define properties of the task and are predefined in CloudTask. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. * User-Agent: This will be set to `\"Google-CloudTasks\"`. * `X-Google-*`: Google use only. * `X-AppEngine-*`: Google use only. `Content-Type` won't be set by Cloud Tasks. You can explicitly set `Content-Type` to a media type when the task is created. For example, `Content-Type` can be set to `\"application/octet-stream\"` or `\"application/json\"`. Headers which can have multiple values (according to RFC2616) can be specified using comma-separated values. The size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue. Do not put business sensitive or personally identifying data in the HTTP Header Override Configuration or other similar fields in accordance with Section 12 (Resource Fields) of the [Service Specific Terms](https://cloud.google.com/terms/service-terms).", +"items": { +"$ref": "HeaderOverride" +}, +"type": "array" +}, +"httpMethod": { +"description": "The HTTP method to use for the request. When specified, it overrides HttpRequest for the task. Note that if the value is set to HttpMethod the HttpRequest of the task will be ignored at execution time.", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"POST", +"GET", +"HEAD", +"PUT", +"DELETE", +"PATCH", +"OPTIONS" +], +"enumDescriptions": [ +"HTTP method unspecified", +"HTTP POST", +"HTTP GET", +"HTTP HEAD", +"HTTP PUT", +"HTTP DELETE", +"HTTP PATCH", +"HTTP OPTIONS" +], +"type": "string" +}, +"oauthToken": { +"$ref": "OAuthToken", +"description": "If specified, an [OAuth token](https://developers.google.com/identity/protocols/OAuth2) is generated and attached as an `Authorization` header in the HTTP request. This type of authorization should generally be used only when calling Google APIs hosted on *.googleapis.com. Note that both the service account email and the scope MUST be specified when using the queue-level authorization override." +}, +"oidcToken": { +"$ref": "OidcToken", +"description": "If specified, an [OIDC](https://developers.google.com/identity/protocols/OpenIDConnect) token is generated and attached as an `Authorization` header in the HTTP request. This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself. Note that both the service account email and the audience MUST be specified when using the queue-level authorization override." +}, +"uriOverride": { +"$ref": "UriOverride", +"description": "Uri override. When specified, overrides the execution Uri for all the tasks in the queue." +} +}, +"type": "object" +}, +"LeaseTasksRequest": { +"description": "Request message for leasing tasks using LeaseTasks.", +"id": "LeaseTasksRequest", +"properties": { +"filter": { +"description": "`filter` can be used to specify a subset of tasks to lease. When `filter` is set to `tag=` then the response will contain only tasks whose tag is equal to ``. `` must be less than 500 characters. When `filter` is set to `tag_function=oldest_tag()`, only tasks which have the same tag as the task with the oldest schedule_time will be returned. Grammar Syntax: * `filter = \"tag=\" tag | \"tag_function=\" function` * `tag = string` * `function = \"oldest_tag()\"` The `oldest_tag()` function returns tasks which have the same tag as the oldest task (ordered by schedule time). SDK compatibility: Although the SDK allows tags to be either string or [bytes](https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/taskqueue/TaskOptions.html#tag-byte:A-), only UTF-8 encoded tags can be used in Cloud Tasks. Tag which aren't UTF-8 encoded can't be used in the filter and the task's tag will be displayed as empty in Cloud Tasks.", +"type": "string" +}, +"leaseDuration": { +"description": "Required. The duration of the lease. Each task returned in the response will have its schedule_time set to the current time plus the `lease_duration`. The task is leased until its schedule_time; thus, the task will not be returned to another LeaseTasks call before its schedule_time. After the worker has successfully finished the work associated with the task, the worker must call via AcknowledgeTask before the schedule_time. Otherwise the task will be returned to a later LeaseTasks call so that another worker can retry it. The maximum lease duration is 1 week. `lease_duration` will be truncated to the nearest second.", +"format": "google-duration", +"type": "string" +}, +"maxTasks": { +"description": "The maximum number of tasks to lease. The system will make a best effort to return as close to as `max_tasks` as possible. The largest that `max_tasks` can be is 1000. The maximum total size of a lease tasks response is 32 MB. If the sum of all task sizes requested reaches this limit, fewer tasks than requested are returned.", +"format": "int32", +"type": "integer" +}, +"responseView": { +"description": "The response_view specifies which subset of the Task will be returned. By default response_view is BASIC; not all information is retrieved by default because some data, such as payloads, might be desirable to return only when needed because of its large size or because of the sensitivity of data that it contains. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Task resource.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Unspecified. Defaults to BASIC.", +"The basic view omits fields which can be large or can contain sensitive data. This view does not include the (payload in AppEngineHttpRequest and payload in PullMessage). These payloads are desirable to return only when needed, because they can be large and because of the sensitivity of the data that you choose to store in it.", +"All information is returned. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Queue resource." +], +"type": "string" +} +}, +"type": "object" +}, +"LeaseTasksResponse": { +"description": "Response message for leasing tasks using LeaseTasks.", +"id": "LeaseTasksResponse", +"properties": { +"tasks": { +"description": "The leased tasks.", +"items": { +"$ref": "Task" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListQueuesResponse": { +"description": "Response message for ListQueues.", +"id": "ListQueuesResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve next page of results. To return the next page of results, call ListQueues with this value as the page_token. If the next_page_token is empty, there are no more results. The page token is valid for only 2 hours.", +"type": "string" +}, +"queues": { +"description": "The list of queues.", +"items": { +"$ref": "Queue" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTasksResponse": { +"description": "Response message for listing tasks using ListTasks.", +"id": "ListTasksResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve next page of results. To return the next page of results, call ListTasks with this value as the page_token. If the next_page_token is empty, there are no more results.", +"type": "string" +}, +"tasks": { +"description": "The list of tasks.", +"items": { +"$ref": "Task" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"OAuthToken": { +"description": "Contains information needed for generating an [OAuth token](https://developers.google.com/identity/protocols/OAuth2). This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com.", +"id": "OAuthToken", +"properties": { +"scope": { +"description": "OAuth scope to be used for generating OAuth access token. If not specified, \"https://www.googleapis.com/auth/cloud-platform\" will be used.", +"type": "string" +}, +"serviceAccountEmail": { +"description": "[Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OAuth token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account.", +"type": "string" +} +}, +"type": "object" +}, +"OidcToken": { +"description": "Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself.", +"id": "OidcToken", +"properties": { +"audience": { +"description": "Audience to be used when generating OIDC token. If not specified, the URI specified in target will be used.", +"type": "string" +}, +"serviceAccountEmail": { +"description": "[Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OIDC token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account.", +"type": "string" +} +}, +"type": "object" +}, +"PathOverride": { +"description": "PathOverride. Path message defines path override for HTTP targets.", +"id": "PathOverride", +"properties": { +"path": { +"description": "The URI path (e.g., /users/1234). Default is an empty string.", +"type": "string" +} +}, +"type": "object" +}, +"PauseQueueRequest": { +"description": "Request message for PauseQueue.", +"id": "PauseQueueRequest", +"properties": {}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PullMessage": { +"description": "The pull message contains data that can be used by the caller of LeaseTasks to process the task. This proto can only be used for tasks in a queue which has pull_target set.", +"id": "PullMessage", +"properties": { +"payload": { +"description": "A data payload consumed by the worker to execute the task.", +"format": "byte", +"type": "string" +}, +"tag": { +"description": "The task's tag. Tags allow similar tasks to be processed in a batch. If you label tasks with a tag, your worker can lease tasks with the same tag using filter. For example, if you want to aggregate the events associated with a specific user once a day, you could tag tasks with the user ID. The task's tag can only be set when the task is created. The tag must be less than 500 characters. SDK compatibility: Although the SDK allows tags to be either string or [bytes](https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/taskqueue/TaskOptions.html#tag-byte:A-), only UTF-8 encoded tags can be used in Cloud Tasks. If a tag isn't UTF-8 encoded, the tag will be empty when the task is returned by Cloud Tasks.", +"type": "string" +} +}, +"type": "object" +}, +"PullTarget": { +"description": "Pull target.", +"id": "PullTarget", +"properties": {}, +"type": "object" +}, +"PurgeQueueRequest": { +"description": "Request message for PurgeQueue.", +"id": "PurgeQueueRequest", +"properties": {}, +"type": "object" +}, +"QueryOverride": { +"description": "QueryOverride. Query message defines query override for HTTP targets.", +"id": "QueryOverride", +"properties": { +"queryParams": { +"description": "The query parameters (e.g., qparam1=123&qparam2=456). Default is an empty string.", +"type": "string" +} +}, +"type": "object" +}, +"Queue": { +"description": "A queue is a container of related tasks. Queues are configured to manage how those tasks are dispatched. Configurable properties include rate limits, retry options, target types, and others.", +"id": "Queue", +"properties": { +"appEngineHttpTarget": { +"$ref": "AppEngineHttpTarget", +"description": "App Engine HTTP target. An App Engine queue is a queue that has an AppEngineHttpTarget." +}, +"httpTarget": { +"$ref": "HttpTarget", +"description": "An http_target is used to override the target values for HTTP tasks." +}, +"name": { +"description": "Caller-specified and required in CreateQueue, after which it becomes output only. The queue name. The queue name must have the following format: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID` * `PROJECT_ID` can contain letters ([A-Za-z]), numbers ([0-9]), hyphens (-), colons (:), or periods (.). For more information, see [Identifying projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects) * `LOCATION_ID` is the canonical ID for the queue's location. The list of available locations can be obtained by calling ListLocations. For more information, see https://cloud.google.com/about/locations/. * `QUEUE_ID` can contain letters ([A-Za-z]), numbers ([0-9]), or hyphens (-). The maximum length is 100 characters.", +"type": "string" +}, +"pullTarget": { +"$ref": "PullTarget", +"description": "Pull target. A pull queue is a queue that has a PullTarget." +}, +"purgeTime": { +"description": "Output only. The last time this queue was purged. All tasks that were created before this time were purged. A queue can be purged using PurgeQueue, the [App Engine Task Queue SDK, or the Cloud Console](https://cloud.google.com/appengine/docs/standard/python/taskqueue/push/deleting-tasks-and-queues#purging_all_tasks_from_a_queue). Purge time will be truncated to the nearest microsecond. Purge time will be unset if the queue has never been purged.", +"format": "google-datetime", +"type": "string" +}, +"rateLimits": { +"$ref": "RateLimits", +"description": "Rate limits for task dispatches. rate_limits and retry_config are related because they both control task attempts however they control how tasks are attempted in different ways: * rate_limits controls the total rate of dispatches from a queue (i.e. all traffic dispatched from the queue, regardless of whether the dispatch is from a first attempt or a retry). * retry_config controls what happens to particular a task after its first attempt fails. That is, retry_config controls task retries (the second attempt, third attempt, etc)." +}, +"retryConfig": { +"$ref": "RetryConfig", +"description": "Settings that determine the retry behavior. * For tasks created using Cloud Tasks: the queue-level retry settings apply to all tasks in the queue that were created using Cloud Tasks. Retry settings cannot be set on individual tasks. * For tasks created using the App Engine SDK: the queue-level retry settings apply to all tasks in the queue which do not have retry settings explicitly set on the task and were created by the App Engine SDK. See [App Engine documentation](https://cloud.google.com/appengine/docs/standard/python/taskqueue/push/retrying-tasks)." +}, +"state": { +"description": "Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"PAUSED", +"DISABLED" +], +"enumDescriptions": [ +"Unspecified state.", +"The queue is running. Tasks can be dispatched. If the queue was created using Cloud Tasks and the queue has had no activity (method calls or task dispatches) for 30 days, the queue may take a few minutes to re-activate. Some method calls may return NOT_FOUND and tasks may not be dispatched for a few minutes until the queue has been re-activated.", +"Tasks are paused by the user. If the queue is paused then Cloud Tasks will stop delivering tasks from it, but more tasks can still be added to it by the user. When a pull queue is paused, all LeaseTasks calls will return a FAILED_PRECONDITION.", +"The queue is disabled. A queue becomes `DISABLED` when [queue.yaml](https://cloud.google.com/appengine/docs/python/config/queueref) or [queue.xml](https://cloud.google.com/appengine/docs/standard/java/config/queueref) is uploaded which does not contain the queue. You cannot directly disable a queue. When a queue is disabled, tasks can still be added to a queue but the tasks are not dispatched and LeaseTasks calls return a `FAILED_PRECONDITION` error. To permanently delete this queue and all of its tasks, call DeleteQueue." +], +"type": "string" +}, +"stats": { +"$ref": "QueueStats", +"description": "Output only. The realtime, informational statistics for a queue. In order to receive the statistics the caller should include this field in the FieldMask.", +"readOnly": true +}, +"taskTtl": { +"description": "The maximum amount of time that a task will be retained in this queue. Queues created by Cloud Tasks have a default `task_ttl` of 31 days. After a task has lived for `task_ttl`, the task will be deleted regardless of whether it was dispatched or not. The `task_ttl` for queues created via queue.yaml/xml is equal to the maximum duration because there is a [storage quota](https://cloud.google.com/appengine/quotas#Task_Queue) for these queues. To view the maximum valid duration, see the documentation for Duration.", +"format": "google-duration", +"type": "string" +}, +"tombstoneTtl": { +"description": "The task tombstone time to live (TTL). After a task is deleted or completed, the task's tombstone is retained for the length of time specified by `tombstone_ttl`. The tombstone is used by task de-duplication; another task with the same name can't be created until the tombstone has expired. For more information about task de-duplication, see the documentation for CreateTaskRequest. Queues created by Cloud Tasks have a default `tombstone_ttl` of 1 hour.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"QueueStats": { +"description": "Statistics for a queue.", +"id": "QueueStats", +"properties": { +"concurrentDispatchesCount": { +"description": "Output only. The number of requests that the queue has dispatched but has not received a reply for yet.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"effectiveExecutionRate": { +"description": "Output only. The current maximum number of tasks per second executed by the queue. The maximum value of this variable is controlled by the RateLimits of the Queue. However, this value could be less to avoid overloading the endpoints tasks in the queue are targeting.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"executedLastMinuteCount": { +"description": "Output only. The number of tasks that the queue has dispatched and received a reply for during the last minute. This variable counts both successful and non-successful executions.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"oldestEstimatedArrivalTime": { +"description": "Output only. An estimation of the nearest time in the future where a task in the queue is scheduled to be executed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"tasksCount": { +"description": "Output only. An estimation of the number of tasks in the queue, that is, the tasks in the queue that haven't been executed, the tasks in the queue which the queue has dispatched but has not yet received a reply for, and the failed tasks that the queue is retrying.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RateLimits": { +"description": "Rate limits. This message determines the maximum rate that tasks can be dispatched by a queue, regardless of whether the dispatch is a first task attempt or a retry. Note: The debugging command, RunTask, will run a task even if the queue has reached its RateLimits.", +"id": "RateLimits", +"properties": { +"maxBurstSize": { +"description": "The max burst size. Max burst size limits how fast tasks in queue are processed when many tasks are in the queue and the rate is high. This field allows the queue to have a high rate so processing starts shortly after a task is enqueued, but still limits resource usage when many tasks are enqueued in a short period of time. The [token bucket](https://wikipedia.org/wiki/Token_Bucket) algorithm is used to control the rate of task dispatches. Each queue has a token bucket that holds tokens, up to the maximum specified by `max_burst_size`. Each time a task is dispatched, a token is removed from the bucket. Tasks will be dispatched until the queue's bucket runs out of tokens. The bucket will be continuously refilled with new tokens based on max_dispatches_per_second. The default value of `max_burst_size` is picked by Cloud Tasks based on the value of max_dispatches_per_second. The maximum value of `max_burst_size` is 500. For App Engine queues that were created or updated using `queue.yaml/xml`, `max_burst_size` is equal to [bucket_size](https://cloud.google.com/appengine/docs/standard/python/config/queueref#bucket_size). If UpdateQueue is called on a queue without explicitly setting a value for `max_burst_size`, `max_burst_size` value will get updated if UpdateQueue is updating max_dispatches_per_second. ", +"format": "int32", +"type": "integer" +}, +"maxConcurrentTasks": { +"description": "The maximum number of concurrent tasks that Cloud Tasks allows to be dispatched for this queue. After this threshold has been reached, Cloud Tasks stops dispatching tasks until the number of concurrent requests decreases. If unspecified when the queue is created, Cloud Tasks will pick the default. The maximum allowed value is 5,000. This field is output only for pull queues and always -1, which indicates no limit. No other queue types can have `max_concurrent_tasks` set to -1. This field has the same meaning as [max_concurrent_requests in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#max_concurrent_requests).", +"format": "int32", +"type": "integer" +}, +"maxTasksDispatchedPerSecond": { +"description": "The maximum rate at which tasks are dispatched from this queue. If unspecified when the queue is created, Cloud Tasks will pick the default. * For App Engine queues, the maximum allowed value is 500. * This field is output only for pull queues. In addition to the `max_tasks_dispatched_per_second` limit, a maximum of 10 QPS of LeaseTasks requests are allowed per pull queue. This field has the same meaning as [rate in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#rate).", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"RenewLeaseRequest": { +"description": "Request message for renewing a lease using RenewLease.", +"id": "RenewLeaseRequest", +"properties": { +"leaseDuration": { +"description": "Required. The desired new lease duration, starting from now. The maximum lease duration is 1 week. `lease_duration` will be truncated to the nearest second.", +"format": "google-duration", +"type": "string" +}, +"responseView": { +"description": "The response_view specifies which subset of the Task will be returned. By default response_view is BASIC; not all information is retrieved by default because some data, such as payloads, might be desirable to return only when needed because of its large size or because of the sensitivity of data that it contains. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Task resource.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Unspecified. Defaults to BASIC.", +"The basic view omits fields which can be large or can contain sensitive data. This view does not include the (payload in AppEngineHttpRequest and payload in PullMessage). These payloads are desirable to return only when needed, because they can be large and because of the sensitivity of the data that you choose to store in it.", +"All information is returned. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Queue resource." +], +"type": "string" +}, +"scheduleTime": { +"description": "Required. The task's current schedule time, available in the schedule_time returned by LeaseTasks response or RenewLease response. This restriction is to ensure that your worker currently holds the lease.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ResumeQueueRequest": { +"description": "Request message for ResumeQueue.", +"id": "ResumeQueueRequest", +"properties": {}, +"type": "object" +}, +"RetryConfig": { +"description": "Retry config. These settings determine how a failed task attempt is retried.", +"id": "RetryConfig", +"properties": { +"maxAttempts": { +"description": "The maximum number of attempts for a task. Cloud Tasks will attempt the task `max_attempts` times (that is, if the first attempt fails, then there will be `max_attempts - 1` retries). Must be > 0.", +"format": "int32", +"type": "integer" +}, +"maxBackoff": { +"description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. This field is output only for pull queues. `max_backoff` will be truncated to the nearest second. This field has the same meaning as [max_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", +"format": "google-duration", +"type": "string" +}, +"maxDoublings": { +"description": "The time between retries will double `max_doublings` times. A task's retry interval starts at min_backoff, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff up to max_attempts times. For example, if min_backoff is 10s, max_backoff is 300s, and `max_doublings` is 3, then the a task will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the task will retry at intervals of max_backoff until the task has been attempted max_attempts times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... If unspecified when the queue is created, Cloud Tasks will pick the default. This field is output only for pull queues. This field has the same meaning as [max_doublings in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", +"format": "int32", +"type": "integer" +}, +"maxRetryDuration": { +"description": "If positive, `max_retry_duration` specifies the time limit for retrying a failed task, measured from when the task was first attempted. Once `max_retry_duration` time has passed *and* the task has been attempted max_attempts times, no further attempts will be made and the task will be deleted. If zero, then the task age is unlimited. If unspecified when the queue is created, Cloud Tasks will pick the default. This field is output only for pull queues. `max_retry_duration` will be truncated to the nearest second. This field has the same meaning as [task_age_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", +"format": "google-duration", +"type": "string" +}, +"minBackoff": { +"description": "A task will be scheduled for retry between min_backoff and max_backoff duration after it fails, if the queue's RetryConfig specifies that the task should be retried. If unspecified when the queue is created, Cloud Tasks will pick the default. This field is output only for pull queues. `min_backoff` will be truncated to the nearest second. This field has the same meaning as [min_backoff_seconds in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", +"format": "google-duration", +"type": "string" +}, +"unlimitedAttempts": { +"description": "If true, then the number of attempts is unlimited.", +"type": "boolean" +} +}, +"type": "object" +}, +"RunTaskRequest": { +"description": "Request message for forcing a task to run now using RunTask.", +"id": "RunTaskRequest", +"properties": { +"responseView": { +"description": "The response_view specifies which subset of the Task will be returned. By default response_view is BASIC; not all information is retrieved by default because some data, such as payloads, might be desirable to return only when needed because of its large size or because of the sensitivity of data that it contains. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Task resource.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Unspecified. Defaults to BASIC.", +"The basic view omits fields which can be large or can contain sensitive data. This view does not include the (payload in AppEngineHttpRequest and payload in PullMessage). These payloads are desirable to return only when needed, because they can be large and because of the sensitivity of the data that you choose to store in it.", +"All information is returned. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Queue resource." +], +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Task": { +"description": "A unit of scheduled work.", +"id": "Task", +"properties": { +"appEngineHttpRequest": { +"$ref": "AppEngineHttpRequest", +"description": "App Engine HTTP request that is sent to the task's target. Can be set only if app_engine_http_target is set on the queue. An App Engine task is a task that has AppEngineHttpRequest set." +}, +"createTime": { +"description": "Output only. The time that the task was created. `create_time` will be truncated to the nearest second.", +"format": "google-datetime", +"type": "string" +}, +"httpRequest": { +"$ref": "HttpRequest", +"description": "HTTP request that is sent to the task's target. An HTTP task is a task that has HttpRequest set." +}, +"name": { +"description": "Optionally caller-specified in CreateTask. The task name. The task name must have the following format: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID` * `PROJECT_ID` can contain letters ([A-Za-z]), numbers ([0-9]), hyphens (-), colons (:), or periods (.). For more information, see [Identifying projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects) * `LOCATION_ID` is the canonical ID for the task's location. The list of available locations can be obtained by calling ListLocations. For more information, see https://cloud.google.com/about/locations/. * `QUEUE_ID` can contain letters ([A-Za-z]), numbers ([0-9]), or hyphens (-). The maximum length is 100 characters. * `TASK_ID` can contain only letters ([A-Za-z]), numbers ([0-9]), hyphens (-), or underscores (_). The maximum length is 500 characters.", +"type": "string" +}, +"pullMessage": { +"$ref": "PullMessage", +"description": "LeaseTasks to process the task. Can be set only if pull_target is set on the queue. A pull task is a task that has PullMessage set." +}, +"scheduleTime": { +"description": "The time when the task is scheduled to be attempted. For App Engine queues, this is when the task will be attempted or retried. For pull queues, this is the time when the task is available to be leased; if a task is currently leased, this is the time when the current lease expires, that is, the time that the task was leased plus the lease_duration. `schedule_time` will be truncated to the nearest microsecond.", +"format": "google-datetime", +"type": "string" +}, +"status": { +"$ref": "TaskStatus", +"description": "Output only. The task status." +}, +"view": { +"description": "Output only. The view specifies which subset of the Task has been returned.", +"enum": [ +"VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Unspecified. Defaults to BASIC.", +"The basic view omits fields which can be large or can contain sensitive data. This view does not include the (payload in AppEngineHttpRequest and payload in PullMessage). These payloads are desirable to return only when needed, because they can be large and because of the sensitivity of the data that you choose to store in it.", +"All information is returned. Authorization for FULL requires `cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/) permission on the Queue resource." +], +"type": "string" +} +}, +"type": "object" +}, +"TaskStatus": { +"description": "Status of the task.", +"id": "TaskStatus", +"properties": { +"attemptDispatchCount": { +"description": "Output only. The number of attempts dispatched. This count includes attempts which have been dispatched but haven't received a response.", +"format": "int32", +"type": "integer" +}, +"attemptResponseCount": { +"description": "Output only. The number of attempts which have received a response. This field is not calculated for pull tasks.", +"format": "int32", +"type": "integer" +}, +"firstAttemptStatus": { +"$ref": "AttemptStatus", +"description": "Output only. The status of the task's first attempt. Only dispatch_time will be set. The other AttemptStatus information is not retained by Cloud Tasks. This field is not calculated for pull tasks." +}, +"lastAttemptStatus": { +"$ref": "AttemptStatus", +"description": "Output only. The status of the task's last attempt. This field is not calculated for pull tasks." +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UriOverride": { +"description": "Uri Override. When specified, all the HTTP tasks inside the queue will be partially or fully overridden depending on the configured values.", +"id": "UriOverride", +"properties": { +"host": { +"description": "Host override. When specified, replaces the host part of the task URL. For example, if the task URL is \"https://www.google.com,\" and host value is set to \"example.net\", the overridden URI will be changed to \"https://example.net.\" Host value cannot be an empty string (INVALID_ARGUMENT).", +"type": "string" +}, +"pathOverride": { +"$ref": "PathOverride", +"description": "URI path. When specified, replaces the existing path of the task URL. Setting the path value to an empty string clears the URI path segment." +}, +"port": { +"description": "Port override. When specified, replaces the port part of the task URI. For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo. Note that the port value must be a positive integer. Setting the port to 0 (Zero) clears the URI port.", +"format": "int64", +"type": "string" +}, +"queryOverride": { +"$ref": "QueryOverride", +"description": "URI Query. When specified, replaces the query part of the task URI. Setting the query value to an empty string clears the URI query segment." +}, +"scheme": { +"description": "Scheme override. When specified, the task URI scheme is replaced by the provided value (HTTP or HTTPS).", +"enum": [ +"SCHEME_UNSPECIFIED", +"HTTP", +"HTTPS" +], +"enumDescriptions": [ +"Scheme unspecified. Defaults to HTTPS.", +"Convert the scheme to HTTP, e.g., https://www.google.ca will change to http://www.google.ca.", +"Convert the scheme to HTTPS, e.g., http://www.google.ca will change to https://www.google.ca." +], +"type": "string" +}, +"uriOverrideEnforceMode": { +"description": "URI Override Enforce Mode When specified, determines the Target UriOverride mode. If not specified, it defaults to ALWAYS.", +"enum": [ +"URI_OVERRIDE_ENFORCE_MODE_UNSPECIFIED", +"IF_NOT_EXISTS", +"ALWAYS" +], +"enumDescriptions": [ +"OverrideMode Unspecified. Defaults to ALWAYS.", +"In the IF_NOT_EXISTS mode, queue-level configuration is only applied where task-level configuration does not exist.", +"In the ALWAYS mode, queue-level configuration overrides all task-level configuration" +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Tasks API", +"version": "v2beta2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/composer.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/composer.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..9b9a8e77d13e7b2309698cb2be8b6155d0bc170f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/composer.v1beta1.json @@ -0,0 +1,2783 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://composer.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Composer", +"description": "Manages Apache Airflow environments on Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/composer/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.africa-south1.rep.googleapis.com/", +"location": "africa-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-east1.rep.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-east2.rep.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-northeast1.rep.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-northeast2.rep.googleapis.com/", +"location": "asia-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-northeast3.rep.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-south1.rep.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-south2.rep.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-southeast1.rep.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.asia-southeast2.rep.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.australia-southeast1.rep.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.australia-southeast2.rep.googleapis.com/", +"location": "australia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-central2.rep.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-north1.rep.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-north2.rep.googleapis.com/", +"location": "europe-north2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-southwest1.rep.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west10.rep.googleapis.com/", +"location": "europe-west10" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.europe-west12.rep.googleapis.com/", +"location": "europe-west12" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.me-central1.rep.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.northamerica-northeast1.rep.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.northamerica-northeast2.rep.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.northamerica-south1.rep.googleapis.com/", +"location": "northamerica-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.southamerica-east1.rep.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.southamerica-west1.rep.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://composer.us-west8.rep.googleapis.com/", +"location": "us-west8" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "composer:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://composer.mtls.googleapis.com/", +"name": "composer", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"environments": { +"methods": { +"checkUpgrade": { +"description": "Check if an upgrade operation on the environment will succeed. In case of problems detailed info can be found in the returned Operation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:checkUpgrade", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.checkUpgrade", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the environment to check upgrade for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+environment}:checkUpgrade", +"request": { +"$ref": "CheckUpgradeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Create a new environment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The parent must be of the form \"projects/{projectId}/locations/{locationId}\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/environments", +"request": { +"$ref": "Environment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"databaseFailover": { +"description": "Triggers database failover (only for highly resilient environments).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:databaseFailover", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.databaseFailover", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "Target environment: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+environment}:databaseFailover", +"request": { +"$ref": "DatabaseFailoverRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete an environment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", +"httpMethod": "DELETE", +"id": "composer.projects.locations.environments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The environment to delete, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"executeAirflowCommand": { +"description": "Executes Airflow CLI command.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:executeAirflowCommand", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.executeAirflowCommand", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+environment}:executeAirflowCommand", +"request": { +"$ref": "ExecuteAirflowCommandRequest" +}, +"response": { +"$ref": "ExecuteAirflowCommandResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchDatabaseProperties": { +"description": "Fetches database properties.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:fetchDatabaseProperties", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.fetchDatabaseProperties", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "Required. The resource name of the environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+environment}:fetchDatabaseProperties", +"response": { +"$ref": "FetchDatabasePropertiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get an existing environment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the environment to get, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List environments.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of environments to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "List environments in the given project and location, in the form: \"projects/{projectId}/locations/{locationId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/environments", +"response": { +"$ref": "ListEnvironmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"loadSnapshot": { +"description": "Loads a snapshot of a Cloud Composer environment. As a result of this operation, a snapshot of environment's specified in LoadSnapshotRequest is loaded into the environment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:loadSnapshot", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.loadSnapshot", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the target environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+environment}:loadSnapshot", +"request": { +"$ref": "LoadSnapshotRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an environment.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", +"httpMethod": "PATCH", +"id": "composer.projects.locations.environments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The relative resource name of the environment to update, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of argparse, the `updateMask` parameter would include the following two `paths` values: \"config.softwareConfig.pypiPackages.scikit-learn\" and \"config.softwareConfig.pypiPackages.argparse\". The included patch environment would specify the scikit-learn version as follows: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"scikit-learn\":\"==0.19.0\" } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and argparse will be unaffected. Only one update type may be included in a single request's `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels \"label1\" and \"label2\" while clearing \"label3\" (assuming it already exists), one can provide the paths \"labels.label1\", \"labels.label2\", and \"labels.label3\" and populate the patch environment as follows: { \"labels\":{ \"label1\":\"new-label1-value\" \"label2\":\"new-label2-value\" } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field's path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path \"config.softwareConfig.pypiPackages\", and the patch environment would be the following: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"botocore\":\"==1.7.14\" } } } } **Note:** Only the following fields can be updated: * `config.softwareConfig.pypiPackages` * Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. * `config.softwareConfig.pypiPackages.`packagename * Update the custom PyPI package *packagename*, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the `config.softwareConfig.pypiPackages` mask. * `labels` * Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. * `labels.`labelName * Set the label named *labelName*, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the `labels` mask. * `config.nodeCount` * Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerNetworkAccessControl` * Replace the environment's current WebServerNetworkAccessControl. * `config.softwareConfig.airflowConfigOverrides` * Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. * `config.softwareConfig.airflowConfigOverrides.`section-name * Override the Apache Airflow config property *name* in the section named *section*, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the `config.softwareConfig.airflowConfigOverrides` mask. * `config.softwareConfig.envVariables` * Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. * `config.softwareConfig.imageVersion` * Upgrade the version of the environment in-place. Refer to `SoftwareConfig.image_version` for information on how to format the new image version. Additionally, the new image version cannot effect a version downgrade, and must match the current image version's Composer and Airflow major versions. Consult the [Cloud Composer version list](/composer/docs/concepts/versioning/composer-versions) for valid values. * `config.softwareConfig.schedulerCount` * Horizontally scale the number of schedulers in Airflow. A positive integer not greater than the number of nodes must be provided in the `config.softwareConfig.schedulerCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*. * `config.softwareConfig.cloudDataLineageIntegration` * Configuration for Cloud Data Lineage integration. * `config.databaseConfig.machineType` * Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerConfig.machineType` * Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.maintenanceWindow` * Maintenance window during which Cloud Composer components may be under maintenance. * `config.workloadsConfig` * The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. * `config.environmentSize` * The size of the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Environment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"pollAirflowCommand": { +"description": "Polls Airflow CLI command execution and fetches logs.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:pollAirflowCommand", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.pollAirflowCommand", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+environment}:pollAirflowCommand", +"request": { +"$ref": "PollAirflowCommandRequest" +}, +"response": { +"$ref": "PollAirflowCommandResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restartWebServer": { +"description": "Restart Airflow web server.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:restartWebServer", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.restartWebServer", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the environment to restart the web server for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:restartWebServer", +"request": { +"$ref": "RestartWebServerRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"saveSnapshot": { +"description": "Creates a snapshots of a Cloud Composer environment. As a result of this operation, snapshot of environment's state is stored in a location specified in the SaveSnapshotRequest.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:saveSnapshot", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.saveSnapshot", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the source environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+environment}:saveSnapshot", +"request": { +"$ref": "SaveSnapshotRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"stopAirflowCommand": { +"description": "Stops Airflow CLI command execution.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:stopAirflowCommand", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.stopAirflowCommand", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "The resource name of the environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+environment}:stopAirflowCommand", +"request": { +"$ref": "StopAirflowCommandRequest" +}, +"response": { +"$ref": "StopAirflowCommandResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"userWorkloadsConfigMaps": { +"methods": { +"create": { +"description": "Creates a user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The environment name to create a ConfigMap for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userWorkloadsConfigMaps", +"request": { +"$ref": "UserWorkloadsConfigMap" +}, +"response": { +"$ref": "UserWorkloadsConfigMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapsId}", +"httpMethod": "DELETE", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The ConfigMap to delete, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsConfigMaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an existing user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapsId}", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ConfigMap to get, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsConfigMaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "UserWorkloadsConfigMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists user workloads ConfigMaps. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of ConfigMaps to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. List ConfigMaps in the given environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userWorkloadsConfigMaps", +"response": { +"$ref": "ListUserWorkloadsConfigMapsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates a user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapsId}", +"httpMethod": "PUT", +"id": "composer.projects.locations.environments.userWorkloadsConfigMaps.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the ConfigMap, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsConfigMaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "UserWorkloadsConfigMap" +}, +"response": { +"$ref": "UserWorkloadsConfigMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"userWorkloadsSecrets": { +"methods": { +"create": { +"description": "Creates a user workloads Secret. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets", +"httpMethod": "POST", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The environment name to create a Secret for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userWorkloadsSecrets", +"request": { +"$ref": "UserWorkloadsSecret" +}, +"response": { +"$ref": "UserWorkloadsSecret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a user workloads Secret. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets/{userWorkloadsSecretsId}", +"httpMethod": "DELETE", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Secret to delete, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsSecrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an existing user workloads Secret. Values of the \"data\" field in the response are cleared. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets/{userWorkloadsSecretsId}", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Secret to get, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsSecrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "UserWorkloadsSecret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists user workloads Secrets. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of Secrets to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. List Secrets in the given environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userWorkloadsSecrets", +"response": { +"$ref": "ListUserWorkloadsSecretsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates a user workloads Secret. This method is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets/{userWorkloadsSecretsId}", +"httpMethod": "PUT", +"id": "composer.projects.locations.environments.userWorkloadsSecrets.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the Secret, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsSecrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "UserWorkloadsSecret" +}, +"response": { +"$ref": "UserWorkloadsSecret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workloads": { +"methods": { +"list": { +"description": "Lists workloads in a Cloud Composer environment. Workload is a unit that runs a single Composer component. This method is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/workloads", +"httpMethod": "GET", +"id": "composer.projects.locations.environments.workloads.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The list filter. Currently only supports equality on the type field. The value of a field specified in the filter expression must be one ComposerWorkloadType enum option. It's possible to get multiple types using \"OR\" operator, e.g.: \"type=SCHEDULER OR type=CELERY_WORKER\". If not specified, all items are returned.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of environments to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The environment name to get workloads for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/workloads", +"response": { +"$ref": "ListWorkloadsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"imageVersions": { +"methods": { +"list": { +"description": "List ImageVersions for provided location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/imageVersions", +"httpMethod": "GET", +"id": "composer.projects.locations.imageVersions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"includePastReleases": { +"description": "Whether or not image versions from old releases should be included.", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "The maximum number of image_versions to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "List ImageVersions in the given project and location, in the form: \"projects/{projectId}/locations/{locationId}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/imageVersions", +"response": { +"$ref": "ListImageVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "composer.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "composer.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "composer.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20250108", +"rootUrl": "https://composer.googleapis.com/", +"schemas": { +"AirflowMetadataRetentionPolicyConfig": { +"description": "The policy for airflow metadata database retention.", +"id": "AirflowMetadataRetentionPolicyConfig", +"properties": { +"retentionDays": { +"description": "Optional. How many days data should be retained for.", +"format": "int32", +"type": "integer" +}, +"retentionMode": { +"description": "Optional. Retention can be either enabled or disabled.", +"enum": [ +"RETENTION_MODE_UNSPECIFIED", +"RETENTION_MODE_ENABLED", +"RETENTION_MODE_DISABLED" +], +"enumDescriptions": [ +"Default mode doesn't change environment parameters.", +"Retention policy is enabled.", +"Retention policy is disabled." +], +"type": "string" +} +}, +"type": "object" +}, +"AllowedIpRange": { +"description": "Allowed IP range with user-provided description.", +"id": "AllowedIpRange", +"properties": { +"description": { +"description": "Optional. User-provided description. It must contain at most 300 characters.", +"type": "string" +}, +"value": { +"description": "IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32` or `2001:0db8:0000:0042:0000:8a2e:0370:7334`. IP range prefixes should be properly truncated. For example, `1.2.3.4/24` should be truncated to `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` should be truncated to `2001:db8::/32`.", +"type": "string" +} +}, +"type": "object" +}, +"CheckUpgradeRequest": { +"description": "Request to check whether image upgrade will succeed.", +"id": "CheckUpgradeRequest", +"properties": { +"imageVersion": { +"description": "The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview).", +"type": "string" +} +}, +"type": "object" +}, +"CheckUpgradeResponse": { +"description": "Message containing information about the result of an upgrade check operation.", +"id": "CheckUpgradeResponse", +"properties": { +"buildLogUri": { +"description": "Output only. Url for a docker build log of an upgraded image.", +"readOnly": true, +"type": "string" +}, +"containsPypiModulesConflict": { +"description": "Output only. Whether build has succeeded or failed on modules conflicts.", +"enum": [ +"CONFLICT_RESULT_UNSPECIFIED", +"CONFLICT", +"NO_CONFLICT" +], +"enumDescriptions": [ +"It is unknown whether build had conflicts or not.", +"There were python packages conflicts.", +"There were no python packages conflicts." +], +"readOnly": true, +"type": "string" +}, +"imageVersion": { +"description": "Composer image for which the build was happening.", +"type": "string" +}, +"pypiConflictBuildLogExtract": { +"description": "Output only. Extract from a docker image build log containing information about pypi modules conflicts.", +"readOnly": true, +"type": "string" +}, +"pypiDependencies": { +"additionalProperties": { +"type": "string" +}, +"description": "Pypi dependencies specified in the environment configuration, at the time when the build was triggered.", +"type": "object" +} +}, +"type": "object" +}, +"CidrBlock": { +"description": "CIDR block with an optional name.", +"id": "CidrBlock", +"properties": { +"cidrBlock": { +"description": "CIDR block that must be specified in CIDR notation.", +"type": "string" +}, +"displayName": { +"description": "User-defined name that identifies the CIDR block.", +"type": "string" +} +}, +"type": "object" +}, +"CloudDataLineageIntegration": { +"description": "Configuration for Cloud Data Lineage integration.", +"id": "CloudDataLineageIntegration", +"properties": { +"enabled": { +"description": "Optional. Whether or not Cloud Data Lineage integration is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"ComposerWorkload": { +"description": "Information about a single workload.", +"id": "ComposerWorkload", +"properties": { +"name": { +"description": "Name of a workload.", +"type": "string" +}, +"status": { +"$ref": "ComposerWorkloadStatus", +"description": "Output only. Status of a workload.", +"readOnly": true +}, +"type": { +"description": "Type of a workload.", +"enum": [ +"COMPOSER_WORKLOAD_TYPE_UNSPECIFIED", +"CELERY_WORKER", +"KUBERNETES_WORKER", +"KUBERNETES_OPERATOR_POD", +"SCHEDULER", +"DAG_PROCESSOR", +"TRIGGERER", +"WEB_SERVER", +"REDIS" +], +"enumDescriptions": [ +"Not able to determine the type of the workload.", +"Celery worker.", +"Kubernetes worker.", +"Workload created by Kubernetes Pod Operator.", +"Airflow scheduler.", +"Airflow Dag processor.", +"Airflow triggerer.", +"Airflow web server UI.", +"Redis." +], +"type": "string" +} +}, +"type": "object" +}, +"ComposerWorkloadStatus": { +"description": "Workload status.", +"id": "ComposerWorkloadStatus", +"properties": { +"detailedStatusMessage": { +"description": "Output only. Detailed message of the status.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Workload state.", +"enum": [ +"COMPOSER_WORKLOAD_STATE_UNSPECIFIED", +"PENDING", +"OK", +"WARNING", +"ERROR", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Not able to determine the status of the workload.", +"Workload is in pending state and has not yet started.", +"Workload is running fine.", +"Workload is running but there are some non-critical problems.", +"Workload is not running due to an error.", +"Workload has finished execution with success.", +"Workload has finished execution with failure." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"description": "Output only. Text to provide more descriptive status.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DagProcessorResource": { +"description": "Configuration for resources used by Airflow DAG processors. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"id": "DagProcessorResource", +"properties": { +"count": { +"description": "Optional. The number of DAG processors. If not provided or set to 0, a single DAG processor instance will be created.", +"format": "int32", +"type": "integer" +}, +"cpu": { +"description": "Optional. CPU request and limit for a single Airflow DAG processor replica.", +"format": "float", +"type": "number" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for a single Airflow DAG processor replica.", +"format": "float", +"type": "number" +}, +"storageGb": { +"description": "Optional. Storage (GB) request and limit for a single Airflow DAG processor replica.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"DataRetentionConfig": { +"description": "The configuration setting for Airflow database data retention mechanism.", +"id": "DataRetentionConfig", +"properties": { +"airflowDatabaseRetentionDays": { +"deprecated": true, +"description": "Optional. The number of days describing for how long to store event-based records in airflow database. If the retention mechanism is enabled this value must be a positive integer otherwise, value should be set to 0.", +"format": "int32", +"type": "integer" +}, +"airflowMetadataRetentionConfig": { +"$ref": "AirflowMetadataRetentionPolicyConfig", +"description": "Optional. The retention policy for airflow metadata database." +}, +"taskLogsRetentionConfig": { +"$ref": "TaskLogsRetentionConfig", +"description": "Optional. The configuration settings for task logs retention" +} +}, +"type": "object" +}, +"DatabaseConfig": { +"description": "The configuration of Cloud SQL instance that is used by the Apache Airflow software.", +"id": "DatabaseConfig", +"properties": { +"machineType": { +"description": "Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "string" +}, +"zone": { +"description": "Optional. The Compute Engine zone where the Airflow database is created. If zone is provided, it must be in the region selected for the environment. If zone is not provided, a zone is automatically selected. The zone can only be set during environment creation. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.*.", +"type": "string" +} +}, +"type": "object" +}, +"DatabaseFailoverRequest": { +"description": "Request to trigger database failover (only for highly resilient environments).", +"id": "DatabaseFailoverRequest", +"properties": {}, +"type": "object" +}, +"DatabaseFailoverResponse": { +"description": "Response for DatabaseFailoverRequest.", +"id": "DatabaseFailoverResponse", +"properties": {}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EncryptionConfig": { +"description": "The encryption options for the Cloud Composer environment and its dependencies. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"id": "EncryptionConfig", +"properties": { +"kmsKeyName": { +"description": "Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated. If not specified, Google-managed key will be used.", +"type": "string" +} +}, +"type": "object" +}, +"Environment": { +"description": "An environment for running orchestration tasks.", +"id": "Environment", +"properties": { +"config": { +"$ref": "EnvironmentConfig", +"description": "Optional. Configuration parameters for this environment." +}, +"createTime": { +"description": "Output only. The time at which this environment was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \\p{Ll}\\p{Lo}{0,62} * Values must conform to regexp: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\" EnvironmentId must start with a lowercase letter followed by up to 63 lowercase letters, numbers, or hyphens, and cannot end with a hyphen.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "The current state of the environment.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"RUNNING", +"UPDATING", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"The state of the environment is unknown.", +"The environment is in the process of being created.", +"The environment is currently running and healthy. It is ready for use.", +"The environment is being updated. It remains usable but cannot receive additional update requests or be deleted at this time.", +"The environment is undergoing deletion. It cannot be used.", +"The environment has encountered an error and cannot be used." +], +"type": "string" +}, +"storageConfig": { +"$ref": "StorageConfig", +"description": "Optional. Storage configuration for this environment." +}, +"updateTime": { +"description": "Output only. The time at which this environment was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"uuid": { +"description": "Output only. The UUID (Universally Unique IDentifier) associated with this environment. This value is generated when the environment is created.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"EnvironmentConfig": { +"description": "Configuration information for an environment.", +"id": "EnvironmentConfig", +"properties": { +"airflowByoidUri": { +"description": "Output only. The 'bring your own identity' variant of the URI of the Apache Airflow Web UI hosted within this environment, to be accessed with external identities using workforce identity federation (see [Access environments with workforce identity federation](/composer/docs/composer-2/access-environments-with-workforce-identity-federation)).", +"readOnly": true, +"type": "string" +}, +"airflowUri": { +"description": "Output only. The URI of the Apache Airflow Web UI hosted within this environment (see [Airflow web interface](/composer/docs/how-to/accessing/airflow-web-interface)).", +"readOnly": true, +"type": "string" +}, +"dagGcsPrefix": { +"description": "Output only. The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using \"/\"-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with the given prefix.", +"readOnly": true, +"type": "string" +}, +"dataRetentionConfig": { +"$ref": "DataRetentionConfig", +"description": "Optional. The configuration setting for Airflow database data retention mechanism." +}, +"databaseConfig": { +"$ref": "DatabaseConfig", +"description": "Optional. The configuration settings for Cloud SQL instance used internally by Apache Airflow software." +}, +"encryptionConfig": { +"$ref": "EncryptionConfig", +"description": "Optional. The encryption options for the Cloud Composer environment and its dependencies. Cannot be updated." +}, +"environmentSize": { +"description": "Optional. The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"enum": [ +"ENVIRONMENT_SIZE_UNSPECIFIED", +"ENVIRONMENT_SIZE_SMALL", +"ENVIRONMENT_SIZE_MEDIUM", +"ENVIRONMENT_SIZE_LARGE" +], +"enumDescriptions": [ +"The size of the environment is unspecified.", +"The environment size is small.", +"The environment size is medium.", +"The environment size is large." +], +"type": "string" +}, +"gkeCluster": { +"description": "Output only. The Kubernetes Engine cluster used to run this environment.", +"readOnly": true, +"type": "string" +}, +"maintenanceWindow": { +"$ref": "MaintenanceWindow", +"description": "Optional. The maintenance window is the period when Cloud Composer components may undergo maintenance. It is defined so that maintenance is not executed during peak hours or critical time periods. The system will not be under maintenance for every occurrence of this window, but when maintenance is planned, it will be scheduled during the window. The maintenance window period must encompass at least 12 hours per week. This may be split into multiple chunks, each with a size of at least 4 hours. If this value is omitted, the default value for maintenance window is applied. By default, maintenance windows are from 00:00:00 to 04:00:00 (GMT) on Friday, Saturday, and Sunday every week." +}, +"masterAuthorizedNetworksConfig": { +"$ref": "MasterAuthorizedNetworksConfig", +"description": "Optional. The configuration options for GKE cluster master authorized networks. By default master authorized networks feature is: - in case of private environment: enabled with no external networks allowlisted. - in case of public environment: disabled." +}, +"nodeConfig": { +"$ref": "NodeConfig", +"description": "Optional. The configuration used for the Kubernetes Engine cluster." +}, +"nodeCount": { +"description": "The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"format": "int32", +"type": "integer" +}, +"privateEnvironmentConfig": { +"$ref": "PrivateEnvironmentConfig", +"description": "Optional. The configuration used for the Private IP Cloud Composer environment." +}, +"recoveryConfig": { +"$ref": "RecoveryConfig", +"description": "Optional. The Recovery settings configuration of an environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer." +}, +"resilienceMode": { +"description": "Optional. Resilience mode of the Cloud Composer Environment. This field is supported for Cloud Composer environments in versions composer-2.2.0-airflow-*.*.* and newer.", +"enum": [ +"RESILIENCE_MODE_UNSPECIFIED", +"HIGH_RESILIENCE" +], +"enumDescriptions": [ +"Default mode doesn't change environment parameters.", +"Enabled High Resilience mode, including Cloud SQL HA." +], +"type": "string" +}, +"softwareConfig": { +"$ref": "SoftwareConfig", +"description": "Optional. The configuration settings for software inside the environment." +}, +"webServerConfig": { +"$ref": "WebServerConfig", +"description": "Optional. The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*." +}, +"webServerNetworkAccessControl": { +"$ref": "WebServerNetworkAccessControl", +"description": "Optional. The network-level access control policy for the Airflow web server. If unspecified, no network-level access restrictions will be applied." +}, +"workloadsConfig": { +"$ref": "WorkloadsConfig", +"description": "Optional. The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. The GKE cluster runs Airflow scheduler, web server and workers workloads. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer." +} +}, +"type": "object" +}, +"ExecuteAirflowCommandRequest": { +"description": "Execute Airflow Command request.", +"id": "ExecuteAirflowCommandRequest", +"properties": { +"command": { +"description": "Airflow command.", +"type": "string" +}, +"parameters": { +"description": "Parameters for the Airflow command/subcommand as an array of arguments. It may contain positional arguments like `[\"my-dag-id\"]`, key-value parameters like `[\"--foo=bar\"]` or `[\"--foo\",\"bar\"]`, or other flags like `[\"-f\"]`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"subcommand": { +"description": "Airflow subcommand.", +"type": "string" +} +}, +"type": "object" +}, +"ExecuteAirflowCommandResponse": { +"description": "Response to ExecuteAirflowCommandRequest.", +"id": "ExecuteAirflowCommandResponse", +"properties": { +"error": { +"description": "Error message. Empty if there was no error.", +"type": "string" +}, +"executionId": { +"description": "The unique ID of the command execution for polling.", +"type": "string" +}, +"pod": { +"description": "The name of the pod where the command is executed.", +"type": "string" +}, +"podNamespace": { +"description": "The namespace of the pod where the command is executed.", +"type": "string" +} +}, +"type": "object" +}, +"ExitInfo": { +"description": "Information about how a command ended.", +"id": "ExitInfo", +"properties": { +"error": { +"description": "Error message. Empty if there was no error.", +"type": "string" +}, +"exitCode": { +"description": "The exit code from the command execution.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"FetchDatabasePropertiesResponse": { +"description": "Response for FetchDatabasePropertiesRequest.", +"id": "FetchDatabasePropertiesResponse", +"properties": { +"isFailoverReplicaAvailable": { +"description": "The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only fail over to the failover replica when the status is true.", +"type": "boolean" +}, +"primaryGceZone": { +"description": "The Compute Engine zone that the instance is currently serving from.", +"type": "string" +}, +"secondaryGceZone": { +"description": "The Compute Engine zone that the failover instance is currently serving from for a regional Cloud SQL instance.", +"type": "string" +} +}, +"type": "object" +}, +"IPAllocationPolicy": { +"description": "Configuration for controlling how IPs are allocated in the GKE cluster.", +"id": "IPAllocationPolicy", +"properties": { +"clusterIpv4CidrBlock": { +"description": "Optional. The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. Specify `cluster_secondary_range_name` or `cluster_ipv4_cidr_block` but not both.", +"type": "string" +}, +"clusterSecondaryRangeName": { +"description": "Optional. The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either `cluster_secondary_range_name` or `cluster_ipv4_cidr_block` but not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true.", +"type": "string" +}, +"servicesIpv4CidrBlock": { +"description": "Optional. The IP address range of the services IP addresses in this cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. Specify `services_secondary_range_name` or `services_ipv4_cidr_block` but not both.", +"type": "string" +}, +"servicesSecondaryRangeName": { +"description": "Optional. The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either `services_secondary_range_name` or `services_ipv4_cidr_block` but not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when `use_ip_aliases` is true.", +"type": "string" +}, +"useIpAliases": { +"description": "Optional. Whether or not to enable Alias IPs in the GKE cluster. If `true`, a VPC-native cluster is created. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use VPC-native GKE clusters.", +"type": "boolean" +} +}, +"type": "object" +}, +"ImageVersion": { +"description": "Image Version information", +"id": "ImageVersion", +"properties": { +"creationDisabled": { +"description": "Whether it is impossible to create an environment with the image version.", +"type": "boolean" +}, +"imageVersionId": { +"description": "The string identifier of the ImageVersion, in the form: \"composer-x.y.z-airflow-a.b.c\"", +"type": "string" +}, +"isDefault": { +"description": "Whether this is the default ImageVersion used by Composer during environment creation if no input ImageVersion is specified.", +"type": "boolean" +}, +"releaseDate": { +"$ref": "Date", +"description": "The date of the version release." +}, +"supportedPythonVersions": { +"description": "supported python versions", +"items": { +"type": "string" +}, +"type": "array" +}, +"upgradeDisabled": { +"description": "Whether it is impossible to upgrade an environment running with the image version.", +"type": "boolean" +} +}, +"type": "object" +}, +"Line": { +"description": "Contains information about a single line from logs.", +"id": "Line", +"properties": { +"content": { +"description": "Text content of the log line.", +"type": "string" +}, +"lineNumber": { +"description": "Number of the line.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListEnvironmentsResponse": { +"description": "The environments in a project and location.", +"id": "ListEnvironmentsResponse", +"properties": { +"environments": { +"description": "The list of environments returned by a ListEnvironmentsRequest.", +"items": { +"$ref": "Environment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +} +}, +"type": "object" +}, +"ListImageVersionsResponse": { +"description": "The ImageVersions in a project and location.", +"id": "ListImageVersionsResponse", +"properties": { +"imageVersions": { +"description": "The list of supported ImageVersions in a location.", +"items": { +"$ref": "ImageVersion" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUserWorkloadsConfigMapsResponse": { +"description": "The user workloads ConfigMaps for a given environment.", +"id": "ListUserWorkloadsConfigMapsResponse", +"properties": { +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +}, +"userWorkloadsConfigMaps": { +"description": "The list of ConfigMaps returned by a ListUserWorkloadsConfigMapsRequest.", +"items": { +"$ref": "UserWorkloadsConfigMap" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUserWorkloadsSecretsResponse": { +"description": "The user workloads Secrets for a given environment.", +"id": "ListUserWorkloadsSecretsResponse", +"properties": { +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +}, +"userWorkloadsSecrets": { +"description": "The list of Secrets returned by a ListUserWorkloadsSecretsRequest.", +"items": { +"$ref": "UserWorkloadsSecret" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkloadsResponse": { +"description": "Response to ListWorkloadsRequest.", +"id": "ListWorkloadsResponse", +"properties": { +"nextPageToken": { +"description": "The page token used to query for the next page if one exists.", +"type": "string" +}, +"workloads": { +"description": "The list of environment workloads.", +"items": { +"$ref": "ComposerWorkload" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoadSnapshotRequest": { +"description": "Request to load a snapshot into a Cloud Composer environment.", +"id": "LoadSnapshotRequest", +"properties": { +"skipAirflowOverridesSetting": { +"description": "Whether or not to skip setting Airflow overrides when loading the environment's state.", +"type": "boolean" +}, +"skipEnvironmentVariablesSetting": { +"description": "Whether or not to skip setting environment variables when loading the environment's state.", +"type": "boolean" +}, +"skipGcsDataCopying": { +"description": "Whether or not to skip copying Cloud Storage data when loading the environment's state.", +"type": "boolean" +}, +"skipPypiPackagesInstallation": { +"description": "Whether or not to skip installing Pypi packages when loading the environment's state.", +"type": "boolean" +}, +"snapshotPath": { +"description": "A Cloud Storage path to a snapshot to load, e.g.: \"gs://my-bucket/snapshots/project_location_environment_timestamp\".", +"type": "string" +} +}, +"type": "object" +}, +"LoadSnapshotResponse": { +"description": "Response to LoadSnapshotRequest.", +"id": "LoadSnapshotResponse", +"properties": {}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "The configuration settings for Cloud Composer maintenance window. The following example: ``` { \"startTime\":\"2019-08-01T01:00:00Z\" \"endTime\":\"2019-08-01T07:00:00Z\" \"recurrence\":\"FREQ=WEEKLY;BYDAY=TU,WE\" } ``` would define a maintenance window between 01 and 07 hours UTC during each Tuesday and Wednesday.", +"id": "MaintenanceWindow", +"properties": { +"endTime": { +"description": "Required. Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end_time must be in the future, relative to `start_time`.", +"format": "google-datetime", +"type": "string" +}, +"recurrence": { +"description": "Required. Maintenance window recurrence. Format is a subset of [RFC-5545](https://tools.ietf.org/html/rfc5545) `RRULE`. The only allowed values for `FREQ` field are `FREQ=DAILY` and `FREQ=WEEKLY;BYDAY=...` Example values: `FREQ=WEEKLY;BYDAY=TU,WE`, `FREQ=DAILY`.", +"type": "string" +}, +"startTime": { +"description": "Required. Start time of the first recurrence of the maintenance window.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"MasterAuthorizedNetworksConfig": { +"description": "Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.", +"id": "MasterAuthorizedNetworksConfig", +"properties": { +"cidrBlocks": { +"description": "Up to 50 external networks that could access Kubernetes master through HTTPS.", +"items": { +"$ref": "CidrBlock" +}, +"type": "array" +}, +"enabled": { +"description": "Whether or not master authorized networks feature is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"NetworkingConfig": { +"description": "Configuration options for networking connections in the Composer 2 environment.", +"id": "NetworkingConfig", +"properties": { +"connectionType": { +"description": "Optional. Indicates the user requested specifc connection type between Tenant and Customer projects. You cannot set networking connection type in public IP environment.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"VPC_PEERING", +"PRIVATE_SERVICE_CONNECT" +], +"enumDescriptions": [ +"No specific connection type was requested, so the environment uses the default value corresponding to the rest of its configuration.", +"Requests the use of VPC peerings for connecting the Customer and Tenant projects.", +"Requests the use of Private Service Connect for connecting the Customer and Tenant projects." +], +"type": "string" +} +}, +"type": "object" +}, +"NodeConfig": { +"description": "The configuration information for the Kubernetes Engine nodes running the Apache Airflow software.", +"id": "NodeConfig", +"properties": { +"composerInternalIpv4CidrBlock": { +"description": "Optional. The IP range in CIDR notation to use internally by Cloud Composer. IP addresses are not reserved - and the same range can be used by multiple Cloud Composer environments. In case of overlap, IPs from this range will not be accessible in the user's VPC network. Cannot be updated. If not specified, the default value of '100.64.128.0/20' is used. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"type": "string" +}, +"composerNetworkAttachment": { +"description": "Optional. Network Attachment that Cloud Composer environment is connected to, which provides connectivity with a user's VPC network. Takes precedence over network and subnetwork settings. If not provided, but network and subnetwork are defined during environment, it will be provisioned. If not provided and network and subnetwork are also empty, then connectivity to user's VPC network is disabled. Network attachment must be provided in format projects/{project}/regions/{region}/networkAttachments/{networkAttachment}. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"type": "string" +}, +"diskSizeGb": { +"description": "Optional. The disk size in GB used for node VMs. Minimum size is 30GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"format": "int32", +"type": "integer" +}, +"enableIpMasqAgent": { +"description": "Optional. Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent", +"type": "boolean" +}, +"ipAllocationPolicy": { +"$ref": "IPAllocationPolicy", +"description": "Optional. The IPAllocationPolicy fields for the GKE cluster." +}, +"location": { +"description": "Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which to deploy the VMs used to run the Apache Airflow software, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/zones/{zoneId}\". This `location` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.machineType` are specified, `nodeConfig.machineType` must belong to this `location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If only one field (`location` or `nodeConfig.machineType`) is specified, the location information from the specified field will be propagated to the unspecified field. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "string" +}, +"machineType": { +"description": "Optional. The Compute Engine [machine type](/compute/docs/machine-types) used for cluster instances, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}\". The `machineType` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.location` are specified, this `machineType` must belong to the `nodeConfig.location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If exactly one of this field and `nodeConfig.location` is specified, the location information from the specified field will be propagated to the unspecified field. The `machineTypeId` must not be a [shared-core machine type](/compute/docs/machine-types#sharedcore). If this field is unspecified, the `machineTypeId` defaults to \"n1-standard-1\". This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "string" +}, +"maxPodsPerNode": { +"description": "Optional. The maximum number of pods per node in the Cloud Composer GKE cluster. The value must be between 8 and 110 and it can be set only if the environment is VPC-native. The default value is 32. Values of this field will be propagated both to the `default-pool` node pool of the newly created GKE cluster, and to the default \"Maximum Pods per Node\" value which is used for newly created node pools if their value is not explicitly set during node pool creation. For more information, see [Optimizing IP address allocation] (https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr). Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"format": "int32", +"type": "integer" +}, +"network": { +"description": "Optional. The Compute Engine network to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/global/networks/{networkId}\". If unspecified, the default network in the environment's project is used. If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets) is provided, `nodeConfig.subnetwork` must also be provided. For [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see `nodeConfig.subnetwork`.", +"type": "string" +}, +"oauthScopes": { +"description": "Optional. The set of Google API scopes to be made available on all node VMs. If `oauth_scopes` is empty, defaults to [\"https://www.googleapis.com/auth/cloud-platform\"]. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceAccount": { +"description": "Optional. The Google Cloud Platform Service Account to be used by the workloads. If a service account is not specified, the \"default\" Compute Engine service account is used. Cannot be updated.", +"type": "string" +}, +"subnetwork": { +"description": "Optional. The Compute Engine subnetwork to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}\" If a subnetwork is provided, `nodeConfig.network` must also be provided, and the subnetwork must belong to the enclosing environment's project and location.", +"type": "string" +}, +"tags": { +"description": "Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Metadata describing an operation.", +"id": "OperationMetadata", +"properties": { +"createTime": { +"description": "Output only. The time the operation was submitted to the server.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "Output only. The time when the operation terminated, regardless of its success. This field is unset if the operation is still ongoing.", +"format": "google-datetime", +"type": "string" +}, +"operationType": { +"description": "Output only. The type of operation being performed.", +"enum": [ +"TYPE_UNSPECIFIED", +"CREATE", +"DELETE", +"UPDATE", +"CHECK", +"SAVE_SNAPSHOT", +"LOAD_SNAPSHOT", +"DATABASE_FAILOVER" +], +"enumDescriptions": [ +"Unused.", +"A resource creation operation.", +"A resource deletion operation.", +"A resource update operation.", +"A resource check operation.", +"Saves snapshot of the resource operation.", +"Loads snapshot of the resource operation.", +"Triggers failover of environment's Cloud SQL instance (only for highly resilient environments)." +], +"type": "string" +}, +"resource": { +"description": "Output only. The resource being operated on, as a [relative resource name]( /apis/design/resource_names#relative_resource_name).", +"type": "string" +}, +"resourceUuid": { +"description": "Output only. The UUID of the resource being operated on.", +"type": "string" +}, +"state": { +"description": "Output only. The current operation state.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCESSFUL", +"FAILED" +], +"enumDescriptions": [ +"Unused.", +"The operation has been created but is not yet started.", +"The operation is underway.", +"The operation completed successfully.", +"The operation is no longer running but did not succeed." +], +"type": "string" +} +}, +"type": "object" +}, +"PollAirflowCommandRequest": { +"description": "Poll Airflow Command request.", +"id": "PollAirflowCommandRequest", +"properties": { +"executionId": { +"description": "The unique ID of the command execution.", +"type": "string" +}, +"nextLineNumber": { +"description": "Line number from which new logs should be fetched.", +"format": "int32", +"type": "integer" +}, +"pod": { +"description": "The name of the pod where the command is executed.", +"type": "string" +}, +"podNamespace": { +"description": "The namespace of the pod where the command is executed.", +"type": "string" +} +}, +"type": "object" +}, +"PollAirflowCommandResponse": { +"description": "Response to PollAirflowCommandRequest.", +"id": "PollAirflowCommandResponse", +"properties": { +"exitInfo": { +"$ref": "ExitInfo", +"description": "The result exit status of the command." +}, +"output": { +"description": "Output from the command execution. It may not contain the full output and the caller may need to poll for more lines.", +"items": { +"$ref": "Line" +}, +"type": "array" +}, +"outputEnd": { +"description": "Whether the command execution has finished and there is no more output.", +"type": "boolean" +} +}, +"type": "object" +}, +"PrivateClusterConfig": { +"description": "Configuration options for the private GKE cluster in a Cloud Composer environment.", +"id": "PrivateClusterConfig", +"properties": { +"enablePrivateEndpoint": { +"description": "Optional. If `true`, access to the public endpoint of the GKE cluster is denied.", +"type": "boolean" +}, +"masterIpv4CidrBlock": { +"description": "Optional. The CIDR block from which IPv4 range for GKE master will be reserved. If left blank, the default value of '172.16.0.0/23' is used.", +"type": "string" +}, +"masterIpv4ReservedRange": { +"description": "Output only. The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PrivateEnvironmentConfig": { +"description": "The configuration information for configuring a Private IP Cloud Composer environment.", +"id": "PrivateEnvironmentConfig", +"properties": { +"cloudComposerConnectionSubnetwork": { +"description": "Optional. When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork.", +"type": "string" +}, +"cloudComposerNetworkIpv4CidrBlock": { +"description": "Optional. The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"type": "string" +}, +"cloudComposerNetworkIpv4ReservedRange": { +"description": "Output only. The IP range reserved for the tenant project's Cloud Composer network. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"readOnly": true, +"type": "string" +}, +"cloudSqlIpv4CidrBlock": { +"description": "Optional. The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block", +"type": "string" +}, +"enablePrivateBuildsOnly": { +"description": "Optional. If `true`, builds performed during operations that install Python packages have only private connectivity to Google services (including Artifact Registry) and VPC network (if either `NodeConfig.network` and `NodeConfig.subnetwork` fields or `NodeConfig.composer_network_attachment` field are specified). If `false`, the builds also have access to the internet. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"type": "boolean" +}, +"enablePrivateEnvironment": { +"description": "Optional. If `true`, a Private IP Cloud Composer environment is created. If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "boolean" +}, +"enablePrivatelyUsedPublicIps": { +"description": "Optional. When enabled, IPs from public (non-RFC1918) ranges can be used for `IPAllocationPolicy.cluster_ipv4_cidr_block` and `IPAllocationPolicy.service_ipv4_cidr_block`.", +"type": "boolean" +}, +"networkingConfig": { +"$ref": "NetworkingConfig", +"description": "Optional. Configuration for the network connections configuration in the environment." +}, +"privateClusterConfig": { +"$ref": "PrivateClusterConfig", +"description": "Optional. Configuration for the private GKE cluster for a Private IP Cloud Composer environment." +}, +"webServerIpv4CidrBlock": { +"description": "Optional. The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"type": "string" +}, +"webServerIpv4ReservedRange": { +"description": "Output only. The IP range reserved for the tenant project's App Engine VMs. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RecoveryConfig": { +"description": "The Recovery settings of an environment.", +"id": "RecoveryConfig", +"properties": { +"scheduledSnapshotsConfig": { +"$ref": "ScheduledSnapshotsConfig", +"description": "Optional. The configuration for scheduled snapshot creation mechanism." +} +}, +"type": "object" +}, +"RestartWebServerRequest": { +"description": "Restart Airflow web server.", +"id": "RestartWebServerRequest", +"properties": {}, +"type": "object" +}, +"SaveSnapshotRequest": { +"description": "Request to create a snapshot of a Cloud Composer environment.", +"id": "SaveSnapshotRequest", +"properties": { +"snapshotLocation": { +"description": "Location in a Cloud Storage where the snapshot is going to be stored, e.g.: \"gs://my-bucket/snapshots\".", +"type": "string" +} +}, +"type": "object" +}, +"SaveSnapshotResponse": { +"description": "Response to SaveSnapshotRequest.", +"id": "SaveSnapshotResponse", +"properties": { +"snapshotPath": { +"description": "The fully-resolved Cloud Storage path of the created snapshot, e.g.: \"gs://my-bucket/snapshots/project_location_environment_timestamp\". This field is populated only if the snapshot creation was successful.", +"type": "string" +} +}, +"type": "object" +}, +"ScheduledSnapshotsConfig": { +"description": "The configuration for scheduled snapshot creation mechanism.", +"id": "ScheduledSnapshotsConfig", +"properties": { +"enabled": { +"description": "Optional. Whether scheduled snapshots creation is enabled.", +"type": "boolean" +}, +"snapshotCreationSchedule": { +"description": "Optional. The cron expression representing the time when snapshots creation mechanism runs. This field is subject to additional validation around frequency of execution.", +"type": "string" +}, +"snapshotLocation": { +"description": "Optional. The Cloud Storage location for storing automatically created snapshots.", +"type": "string" +}, +"timeZone": { +"description": "Optional. Time zone that sets the context to interpret snapshot_creation_schedule.", +"type": "string" +} +}, +"type": "object" +}, +"SchedulerResource": { +"description": "Configuration for resources used by Airflow schedulers.", +"id": "SchedulerResource", +"properties": { +"count": { +"description": "Optional. The number of schedulers.", +"format": "int32", +"type": "integer" +}, +"cpu": { +"description": "Optional. CPU request and limit for a single Airflow scheduler replica.", +"format": "float", +"type": "number" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for a single Airflow scheduler replica.", +"format": "float", +"type": "number" +}, +"storageGb": { +"description": "Optional. Storage (GB) request and limit for a single Airflow scheduler replica.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"SoftwareConfig": { +"description": "Specifies the selection and configuration of software inside the environment.", +"id": "SoftwareConfig", +"properties": { +"airflowConfigOverrides": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example \"core-dags_are_paused_at_creation\". Section names must not contain hyphens (\"-\"), opening square brackets (\"[\"), or closing square brackets (\"]\"). The property name must not be empty and must not contain an equals sign (\"=\") or semicolon (\";\"). Section and property names must not contain a period (\".\"). Apache Airflow configuration property names must be written in [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are [blocked](/composer/docs/concepts/airflow-configurations), and cannot be overridden.", +"type": "object" +}, +"cloudDataLineageIntegration": { +"$ref": "CloudDataLineageIntegration", +"description": "Optional. The configuration for Cloud Data Lineage integration." +}, +"envVariables": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression `a-zA-Z_*`. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the following reserved names: * `AIRFLOW_HOME` * `C_FORCE_ROOT` * `CONTAINER_NAME` * `DAGS_FOLDER` * `GCP_PROJECT` * `GCS_BUCKET` * `GKE_CLUSTER_NAME` * `SQL_DATABASE` * `SQL_INSTANCE` * `SQL_PASSWORD` * `SQL_PROJECT` * `SQL_REGION` * `SQL_USER`", +"type": "object" +}, +"imageVersion": { +"description": "Optional. The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview).", +"type": "string" +}, +"pypiPackages": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as \"numpy\" and values are the lowercase extras and version specifier such as \"==1.12.0\", \"[devel,gcp_api]\", or \"[devel]>=1.8.2, <1.9.2\". To specify a package without pinning it to a version specifier, use the empty string as the value.", +"type": "object" +}, +"pythonVersion": { +"description": "Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be updated. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.", +"type": "string" +}, +"schedulerCount": { +"description": "Optional. The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.", +"format": "int32", +"type": "integer" +}, +"webServerPluginsMode": { +"description": "Optional. Whether or not the web server uses custom plugins. If unspecified, the field defaults to `PLUGINS_ENABLED`. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer.", +"enum": [ +"WEB_SERVER_PLUGINS_MODE_UNSPECIFIED", +"PLUGINS_DISABLED", +"PLUGINS_ENABLED" +], +"enumDescriptions": [ +"Default mode.", +"Web server plugins are not supported.", +"Web server plugins are supported." +], +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StopAirflowCommandRequest": { +"description": "Stop Airflow Command request.", +"id": "StopAirflowCommandRequest", +"properties": { +"executionId": { +"description": "The unique ID of the command execution.", +"type": "string" +}, +"force": { +"description": "If true, the execution is terminated forcefully (SIGKILL). If false, the execution is stopped gracefully, giving it time for cleanup.", +"type": "boolean" +}, +"pod": { +"description": "The name of the pod where the command is executed.", +"type": "string" +}, +"podNamespace": { +"description": "The namespace of the pod where the command is executed.", +"type": "string" +} +}, +"type": "object" +}, +"StopAirflowCommandResponse": { +"description": "Response to StopAirflowCommandRequest.", +"id": "StopAirflowCommandResponse", +"properties": { +"isDone": { +"description": "Whether the execution is still running.", +"type": "boolean" +}, +"output": { +"description": "Output message from stopping execution request.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"StorageConfig": { +"description": "The configuration for data storage in the environment.", +"id": "StorageConfig", +"properties": { +"bucket": { +"description": "Optional. The name of the Cloud Storage bucket used by the environment. No `gs://` prefix.", +"type": "string" +} +}, +"type": "object" +}, +"TaskLogsRetentionConfig": { +"description": "The configuration setting for Task Logs.", +"id": "TaskLogsRetentionConfig", +"properties": { +"storageMode": { +"description": "Optional. The mode of storage for Airflow workers task logs.", +"enum": [ +"TASK_LOGS_STORAGE_MODE_UNSPECIFIED", +"CLOUD_LOGGING_AND_CLOUD_STORAGE", +"CLOUD_LOGGING_ONLY" +], +"enumDescriptions": [ +"This configuration is not specified by the user.", +"Store task logs in Cloud Logging and in the environment's Cloud Storage bucket.", +"Store task logs in Cloud Logging only." +], +"type": "string" +} +}, +"type": "object" +}, +"TriggererResource": { +"description": "Configuration for resources used by Airflow triggerers.", +"id": "TriggererResource", +"properties": { +"count": { +"description": "Optional. The number of triggerers.", +"format": "int32", +"type": "integer" +}, +"cpu": { +"description": "Optional. CPU request and limit for a single Airflow triggerer replica.", +"format": "float", +"type": "number" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for a single Airflow triggerer replica.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"UserWorkloadsConfigMap": { +"description": "User workloads ConfigMap used by Airflow tasks that run with Kubernetes executor or KubernetesPodOperator.", +"id": "UserWorkloadsConfigMap", +"properties": { +"data": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The \"data\" field of Kubernetes ConfigMap, organized in key-value pairs. For details see: https://kubernetes.io/docs/concepts/configuration/configmap/ Example: { \"example_key\": \"example_value\", \"another_key\": \"another_value\" }", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the ConfigMap, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", +"type": "string" +} +}, +"type": "object" +}, +"UserWorkloadsSecret": { +"description": "User workloads Secret used by Airflow tasks that run with Kubernetes executor or KubernetesPodOperator.", +"id": "UserWorkloadsSecret", +"properties": { +"data": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The \"data\" field of Kubernetes Secret, organized in key-value pairs, which can contain sensitive values such as a password, a token, or a key. The values for all keys have to be base64-encoded strings. For details see: https://kubernetes.io/docs/concepts/configuration/secret/ Example: { \"example\": \"ZXhhbXBsZV92YWx1ZQ==\", \"another-example\": \"YW5vdGhlcl9leGFtcGxlX3ZhbHVl\" }", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the Secret, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", +"type": "string" +} +}, +"type": "object" +}, +"WebServerConfig": { +"description": "The configuration settings for the Airflow web server App Engine instance. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", +"id": "WebServerConfig", +"properties": { +"machineType": { +"description": "Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.", +"type": "string" +} +}, +"type": "object" +}, +"WebServerNetworkAccessControl": { +"description": "Network-level access control policy for the Airflow web server.", +"id": "WebServerNetworkAccessControl", +"properties": { +"allowedIpRanges": { +"description": "A collection of allowed IP ranges with descriptions.", +"items": { +"$ref": "AllowedIpRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"WebServerResource": { +"description": "Configuration for resources used by Airflow web server.", +"id": "WebServerResource", +"properties": { +"cpu": { +"description": "Optional. CPU request and limit for Airflow web server.", +"format": "float", +"type": "number" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for Airflow web server.", +"format": "float", +"type": "number" +}, +"storageGb": { +"description": "Optional. Storage (GB) request and limit for Airflow web server.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"WorkerResource": { +"description": "Configuration for resources used by Airflow workers.", +"id": "WorkerResource", +"properties": { +"cpu": { +"description": "Optional. CPU request and limit for a single Airflow worker replica.", +"format": "float", +"type": "number" +}, +"maxCount": { +"description": "Optional. Maximum number of workers for autoscaling.", +"format": "int32", +"type": "integer" +}, +"memoryGb": { +"description": "Optional. Memory (GB) request and limit for a single Airflow worker replica.", +"format": "float", +"type": "number" +}, +"minCount": { +"description": "Optional. Minimum number of workers for autoscaling.", +"format": "int32", +"type": "integer" +}, +"storageGb": { +"description": "Optional. Storage (GB) request and limit for a single Airflow worker replica.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"WorkloadsConfig": { +"description": "The Kubernetes workloads configuration for GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", +"id": "WorkloadsConfig", +"properties": { +"dagProcessor": { +"$ref": "DagProcessorResource", +"description": "Optional. Resources used by Airflow DAG processors. This field is supported for Cloud Composer environments in versions composer-3-airflow-*.*.*-build.* and newer." +}, +"scheduler": { +"$ref": "SchedulerResource", +"description": "Optional. Resources used by Airflow schedulers." +}, +"triggerer": { +"$ref": "TriggererResource", +"description": "Optional. Resources used by Airflow triggerers." +}, +"webServer": { +"$ref": "WebServerResource", +"description": "Optional. Resources used by Airflow web server." +}, +"worker": { +"$ref": "WorkerResource", +"description": "Optional. Resources used by Airflow workers." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Composer API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/container.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/container.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..52579d7316e72bc10a8a7f46cd63f575a5295307 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/container.v1.json @@ -0,0 +1,8343 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://container.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Container", +"description": "Builds and manages container-based applications, powered by the open source Kubernetes technology.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/kubernetes-engine/docs/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "container:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://container.mtls.googleapis.com/", +"name": "container", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"aggregated": { +"resources": { +"usableSubnetworks": { +"methods": { +"list": { +"description": "Lists subnetworks that are usable for creating clusters in a project.", +"flatPath": "v1/projects/{projectsId}/aggregated/usableSubnetworks", +"httpMethod": "GET", +"id": "container.projects.aggregated.usableSubnetworks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering currently only supports equality on the networkProjectId and must be in the form: \"networkProjectId=[PROJECTID]\", where `networkProjectId` is the project which owns the listed subnetworks. This defaults to the parent project ID.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The max number of results per page that should be returned. If the number of available results is larger than `page_size`, a `next_page_token` is returned which can be used to get the next page of results in subsequent requests. Acceptable values are 0 to 500, inclusive. (Default: 500)", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Specifies a page token to use. Set this to the nextPageToken returned by previous list requests to get the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The parent project where subnetworks are usable. Specified in the format `projects/*`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/aggregated/usableSubnetworks", +"response": { +"$ref": "ListUsableSubnetworksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"locations": { +"methods": { +"getServerConfig": { +"description": "Returns configuration info about the Google Kubernetes Engine service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serverConfig", +"httpMethod": "GET", +"id": "container.projects.locations.getServerConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project and location) of the server config to get, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/serverConfig", +"response": { +"$ref": "ServerConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"clusters": { +"methods": { +"checkAutopilotCompatibility": { +"description": "Checks the cluster compatibility with Autopilot mode, and returns a list of compatibility issues.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:checkAutopilotCompatibility", +"httpMethod": "GET", +"id": "container.projects.locations.clusters.checkAutopilotCompatibility", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster) of the cluster to retrieve. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:checkAutopilotCompatibility", +"response": { +"$ref": "CheckAutopilotCompatibilityResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"completeIpRotation": { +"description": "Completes master IP rotation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:completeIpRotation", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.completeIpRotation", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster name) of the cluster to complete IP rotation. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:completeIpRotation", +"request": { +"$ref": "CompleteIPRotationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a cluster, consisting of the specified number and type of Google Compute Engine instances. By default, the cluster is created in the project's [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks). One firewall is added for the cluster. After cluster creation, the Kubelet creates routes for each node to allow the containers on that node to communicate with all other instances in the cluster. Finally, an entry is added to the project's global metadata indicating which CIDR range the cluster is using.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The parent (project and location) where the cluster will be created. Specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/clusters", +"request": { +"$ref": "CreateClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the cluster, including the Kubernetes endpoint and all worker nodes. Firewalls and routes that were configured during cluster creation are also deleted. Other Google Compute Engine resources that might be in use by the cluster, such as load balancer resources, are not deleted if they weren't present when the cluster was initially created.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "DELETE", +"id": "container.projects.locations.clusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to delete. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to delete. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "GET", +"id": "container.projects.locations.clusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to retrieve. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to retrieve. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Cluster" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getJwks": { +"description": "Gets the public component of the cluster signing keys in JSON Web Key format.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/jwks", +"httpMethod": "GET", +"id": "container.projects.locations.clusters.getJwks", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The cluster (project, location, cluster name) to get keys for. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/jwks", +"response": { +"$ref": "GetJSONWebKeysResponse" +} +}, +"list": { +"description": "Lists all clusters owned by a project in either the specified zone or all zones.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "GET", +"id": "container.projects.locations.clusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The parent (project and location) where the clusters will be listed. Specified in the format `projects/*/locations/*`. Location \"-\" matches all zones and all regions.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"location": "query", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides, or \"-\" for all zones. This field has been deprecated and replaced by the parent field.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/clusters", +"response": { +"$ref": "ListClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setAddons": { +"description": "Sets the addons for a specific cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setAddons", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.setAddons", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster) of the cluster to set addons. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setAddons", +"request": { +"$ref": "SetAddonsConfigRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setLegacyAbac": { +"description": "Enables or disables the ABAC authorization mechanism on a cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLegacyAbac", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.setLegacyAbac", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster name) of the cluster to set legacy abac. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setLegacyAbac", +"request": { +"$ref": "SetLegacyAbacRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setLocations": { +"deprecated": true, +"description": "Sets the locations for a specific cluster. Deprecated. Use [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update) instead.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLocations", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.setLocations", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster) of the cluster to set locations. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setLocations", +"request": { +"$ref": "SetLocationsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setLogging": { +"description": "Sets the logging service for a specific cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLogging", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.setLogging", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster) of the cluster to set logging. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setLogging", +"request": { +"$ref": "SetLoggingServiceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setMaintenancePolicy": { +"description": "Sets the maintenance policy for a cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMaintenancePolicy", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.setMaintenancePolicy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster name) of the cluster to set maintenance policy. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setMaintenancePolicy", +"request": { +"$ref": "SetMaintenancePolicyRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setMasterAuth": { +"description": "Sets master auth materials. Currently supports changing the admin password or a specific cluster, either via password generation or explicitly setting the password.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMasterAuth", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.setMasterAuth", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster) of the cluster to set auth. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setMasterAuth", +"request": { +"$ref": "SetMasterAuthRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setMonitoring": { +"description": "Sets the monitoring service for a specific cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMonitoring", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.setMonitoring", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster) of the cluster to set monitoring. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setMonitoring", +"request": { +"$ref": "SetMonitoringServiceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setNetworkPolicy": { +"description": "Enables or disables Network Policy for a cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setNetworkPolicy", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.setNetworkPolicy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster name) of the cluster to set networking policy. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setNetworkPolicy", +"request": { +"$ref": "SetNetworkPolicyRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setResourceLabels": { +"description": "Sets labels on a cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setResourceLabels", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.setResourceLabels", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster name) of the cluster to set labels. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setResourceLabels", +"request": { +"$ref": "SetLabelsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"startIpRotation": { +"description": "Starts master IP rotation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:startIpRotation", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.startIpRotation", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster name) of the cluster to start IP rotation. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:startIpRotation", +"request": { +"$ref": "StartIPRotationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the settings of a specific cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "PUT", +"id": "container.projects.locations.clusters.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster) of the cluster to update. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "UpdateClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateMaster": { +"description": "Updates the master for a specific cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:updateMaster", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.updateMaster", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster) of the cluster to update. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:updateMaster", +"request": { +"$ref": "UpdateMasterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"nodePools": { +"methods": { +"completeUpgrade": { +"description": "CompleteNodePoolUpgrade will signal an on-going node pool upgrade to complete.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:completeUpgrade", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.nodePools.completeUpgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster, node pool id) of the node pool to complete upgrade. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:completeUpgrade", +"request": { +"$ref": "CompleteNodePoolUpgradeRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a node pool for a cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.nodePools.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The parent (project, location, cluster name) where the node pool will be created. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/nodePools", +"request": { +"$ref": "CreateNodePoolRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a node pool from a cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}", +"httpMethod": "DELETE", +"id": "container.projects.locations.clusters.nodePools.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster, node pool id) of the node pool to delete. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", +"required": true, +"type": "string" +}, +"nodePoolId": { +"deprecated": true, +"description": "Deprecated. The name of the node pool to delete. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves the requested node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}", +"httpMethod": "GET", +"id": "container.projects.locations.clusters.nodePools.get", +"parameterOrder": [ +"name" +], +"parameters": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster, node pool id) of the node pool to get. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", +"required": true, +"type": "string" +}, +"nodePoolId": { +"deprecated": true, +"description": "Deprecated. The name of the node pool. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "NodePool" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the node pools for a cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools", +"httpMethod": "GET", +"id": "container.projects.locations.clusters.nodePools.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the parent field.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The parent (project, location, cluster name) where the node pools will be listed. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"location": "query", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/nodePools", +"response": { +"$ref": "ListNodePoolsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rollback": { +"description": "Rolls back a previously Aborted or Failed NodePool upgrade. This makes no changes if the last upgrade successfully completed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:rollback", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.nodePools.rollback", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster, node pool id) of the node poll to rollback upgrade. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:rollback", +"request": { +"$ref": "RollbackNodePoolUpgradeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setAutoscaling": { +"description": "Sets the autoscaling settings for the specified node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:setAutoscaling", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.nodePools.setAutoscaling", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster, node pool) of the node pool to set autoscaler settings. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setAutoscaling", +"request": { +"$ref": "SetNodePoolAutoscalingRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setManagement": { +"description": "Sets the NodeManagement options for a node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:setManagement", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.nodePools.setManagement", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster, node pool id) of the node pool to set management properties. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setManagement", +"request": { +"$ref": "SetNodePoolManagementRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setSize": { +"description": "Sets the size for a specific node pool. The new size will be used for all replicas, including future replicas created by modifying NodePool.locations.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:setSize", +"httpMethod": "POST", +"id": "container.projects.locations.clusters.nodePools.setSize", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster, node pool id) of the node pool to set size. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:setSize", +"request": { +"$ref": "SetNodePoolSizeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the version and/or image type for the specified node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}", +"httpMethod": "PUT", +"id": "container.projects.locations.clusters.nodePools.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, cluster, node pool) of the node pool to update. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "UpdateNodePoolRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"well-known": { +"methods": { +"getOpenid-configuration": { +"description": "Gets the OIDC discovery document for the cluster. See the [OpenID Connect Discovery 1.0 specification](https://openid.net/specs/openid-connect-discovery-1_0.html) for details.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/.well-known/openid-configuration", +"httpMethod": "GET", +"id": "container.projects.locations.clusters.well-known.getOpenid-configuration", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The cluster (project, location, cluster name) to get the discovery document for. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/.well-known/openid-configuration", +"response": { +"$ref": "GetOpenIDConfigResponse" +} +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Cancels the specified operation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "container.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, operation id) of the operation to cancel. Specified in the format `projects/*/locations/*/operations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified operation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "container.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name (project, location, operation id) of the operation to get. Specified in the format `projects/*/locations/*/operations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +}, +"operationId": { +"deprecated": true, +"description": "Deprecated. The server-assigned `name` of the operation. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all operations in a project in a specific zone or all zones.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "container.projects.locations.operations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The parent (project and location) where the operations will be listed. Specified in the format `projects/*/locations/*`. Location \"-\" matches all zones and all regions.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"location": "query", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for, or `-` for all zones. This field has been deprecated and replaced by the parent field.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"zones": { +"methods": { +"getServerconfig": { +"description": "Returns configuration info about the Google Kubernetes Engine service.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/serverconfig", +"httpMethod": "GET", +"id": "container.projects.zones.getServerconfig", +"parameterOrder": [ +"projectId", +"zone" +], +"parameters": { +"name": { +"description": "The name (project and location) of the server config to get, specified in the format `projects/*/locations/*`.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/serverconfig", +"response": { +"$ref": "ServerConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"clusters": { +"methods": { +"addons": { +"description": "Sets the addons for a specific cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.addons", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons", +"request": { +"$ref": "SetAddonsConfigRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"completeIpRotation": { +"description": "Completes master IP rotation.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.completeIpRotation", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation", +"request": { +"$ref": "CompleteIPRotationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a cluster, consisting of the specified number and type of Google Compute Engine instances. By default, the cluster is created in the project's [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks). One firewall is added for the cluster. After cluster creation, the Kubelet creates routes for each node to allow the containers on that node to communicate with all other instances in the cluster. Finally, an entry is added to the project's global metadata indicating which CIDR range the cluster is using.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.create", +"parameterOrder": [ +"projectId", +"zone" +], +"parameters": { +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters", +"request": { +"$ref": "CreateClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the cluster, including the Kubernetes endpoint and all worker nodes. Firewalls and routes that were configured during cluster creation are also deleted. Other Google Compute Engine resources that might be in use by the cluster, such as load balancer resources, are not deleted if they weren't present when the cluster was initially created.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", +"httpMethod": "DELETE", +"id": "container.projects.zones.clusters.delete", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to delete. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to delete. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", +"httpMethod": "GET", +"id": "container.projects.zones.clusters.get", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to retrieve. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to retrieve. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", +"response": { +"$ref": "Cluster" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"legacyAbac": { +"description": "Enables or disables the ABAC authorization mechanism on a cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.legacyAbac", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", +"request": { +"$ref": "SetLegacyAbacRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all clusters owned by a project in either the specified zone or all zones.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters", +"httpMethod": "GET", +"id": "container.projects.zones.clusters.list", +"parameterOrder": [ +"projectId", +"zone" +], +"parameters": { +"parent": { +"description": "The parent (project and location) where the clusters will be listed. Specified in the format `projects/*/locations/*`. Location \"-\" matches all zones and all regions.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides, or \"-\" for all zones. This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters", +"response": { +"$ref": "ListClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"locations": { +"deprecated": true, +"description": "Sets the locations for a specific cluster. Deprecated. Use [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update) instead.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.locations", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations", +"request": { +"$ref": "SetLocationsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"logging": { +"description": "Sets the logging service for a specific cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.logging", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging", +"request": { +"$ref": "SetLoggingServiceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"master": { +"description": "Updates the master for a specific cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.master", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master", +"request": { +"$ref": "UpdateMasterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"monitoring": { +"description": "Sets the monitoring service for a specific cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.monitoring", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring", +"request": { +"$ref": "SetMonitoringServiceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resourceLabels": { +"description": "Sets labels on a cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.resourceLabels", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", +"request": { +"$ref": "SetLabelsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setMaintenancePolicy": { +"description": "Sets the maintenance policy for a cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.setMaintenancePolicy", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Required. The name of the cluster to update.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Required. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy", +"request": { +"$ref": "SetMaintenancePolicyRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setMasterAuth": { +"description": "Sets master auth materials. Currently supports changing the admin password or a specific cluster, either via password generation or explicitly setting the password.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.setMasterAuth", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth", +"request": { +"$ref": "SetMasterAuthRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setNetworkPolicy": { +"description": "Enables or disables Network Policy for a cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.setNetworkPolicy", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", +"request": { +"$ref": "SetNetworkPolicyRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"startIpRotation": { +"description": "Starts master IP rotation.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.startIpRotation", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", +"request": { +"$ref": "StartIPRotationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the settings of a specific cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", +"httpMethod": "PUT", +"id": "container.projects.zones.clusters.update", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", +"request": { +"$ref": "UpdateClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"nodePools": { +"methods": { +"autoscaling": { +"description": "Sets the autoscaling settings for the specified node pool.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.nodePools.autoscaling", +"parameterOrder": [ +"projectId", +"zone", +"clusterId", +"nodePoolId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"nodePoolId": { +"description": "Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling", +"request": { +"$ref": "SetNodePoolAutoscalingRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a node pool for a cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.nodePools.create", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", +"request": { +"$ref": "CreateNodePoolRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a node pool from a cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", +"httpMethod": "DELETE", +"id": "container.projects.zones.clusters.nodePools.delete", +"parameterOrder": [ +"projectId", +"zone", +"clusterId", +"nodePoolId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster, node pool id) of the node pool to delete. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "query", +"type": "string" +}, +"nodePoolId": { +"description": "Deprecated. The name of the node pool to delete. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves the requested node pool.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", +"httpMethod": "GET", +"id": "container.projects.zones.clusters.nodePools.get", +"parameterOrder": [ +"projectId", +"zone", +"clusterId", +"nodePoolId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster, node pool id) of the node pool to get. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"location": "query", +"type": "string" +}, +"nodePoolId": { +"description": "Deprecated. The name of the node pool. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", +"response": { +"$ref": "NodePool" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the node pools for a cluster.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", +"httpMethod": "GET", +"id": "container.projects.zones.clusters.nodePools.list", +"parameterOrder": [ +"projectId", +"zone", +"clusterId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +}, +"parent": { +"description": "The parent (project, location, cluster name) where the node pools will be listed. Specified in the format `projects/*/locations/*/clusters/*`.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", +"response": { +"$ref": "ListNodePoolsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rollback": { +"description": "Rolls back a previously Aborted or Failed NodePool upgrade. This makes no changes if the last upgrade successfully completed.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.nodePools.rollback", +"parameterOrder": [ +"projectId", +"zone", +"clusterId", +"nodePoolId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to rollback. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"nodePoolId": { +"description": "Deprecated. The name of the node pool to rollback. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", +"request": { +"$ref": "RollbackNodePoolUpgradeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setManagement": { +"description": "Sets the NodeManagement options for a node pool.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.nodePools.setManagement", +"parameterOrder": [ +"projectId", +"zone", +"clusterId", +"nodePoolId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"nodePoolId": { +"description": "Deprecated. The name of the node pool to update. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement", +"request": { +"$ref": "SetNodePoolManagementRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setSize": { +"description": "Sets the size for a specific node pool. The new size will be used for all replicas, including future replicas created by modifying NodePool.locations.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.nodePools.setSize", +"parameterOrder": [ +"projectId", +"zone", +"clusterId", +"nodePoolId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"nodePoolId": { +"description": "Deprecated. The name of the node pool to update. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize", +"request": { +"$ref": "SetNodePoolSizeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the version and/or image type for the specified node pool.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update", +"httpMethod": "POST", +"id": "container.projects.zones.clusters.nodePools.update", +"parameterOrder": [ +"projectId", +"zone", +"clusterId", +"nodePoolId" +], +"parameters": { +"clusterId": { +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"nodePoolId": { +"description": "Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update", +"request": { +"$ref": "UpdateNodePoolRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Cancels the specified operation.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel", +"httpMethod": "POST", +"id": "container.projects.zones.operations.cancel", +"parameterOrder": [ +"projectId", +"zone", +"operationId" +], +"parameters": { +"operationId": { +"description": "Deprecated. The server-assigned `name` of the operation. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified operation.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}", +"httpMethod": "GET", +"id": "container.projects.zones.operations.get", +"parameterOrder": [ +"projectId", +"zone", +"operationId" +], +"parameters": { +"name": { +"description": "The name (project, location, operation id) of the operation to get. Specified in the format `projects/*/locations/*/operations/*`.", +"location": "query", +"type": "string" +}, +"operationId": { +"description": "Deprecated. The server-assigned `name` of the operation. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all operations in a project in a specific zone or all zones.", +"flatPath": "v1/projects/{projectId}/zones/{zone}/operations", +"httpMethod": "GET", +"id": "container.projects.zones.operations.list", +"parameterOrder": [ +"projectId", +"zone" +], +"parameters": { +"parent": { +"description": "The parent (project and location) where the operations will be listed. Specified in the format `projects/*/locations/*`. Location \"-\" matches all zones and all regions.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +}, +"zone": { +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for, or `-` for all zones. This field has been deprecated and replaced by the parent field.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{projectId}/zones/{zone}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241228", +"rootUrl": "https://container.googleapis.com/", +"schemas": { +"AcceleratorConfig": { +"description": "AcceleratorConfig represents a Hardware Accelerator request.", +"id": "AcceleratorConfig", +"properties": { +"acceleratorCount": { +"description": "The number of the accelerator cards exposed to an instance.", +"format": "int64", +"type": "string" +}, +"acceleratorType": { +"description": "The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus)", +"type": "string" +}, +"gpuDriverInstallationConfig": { +"$ref": "GPUDriverInstallationConfig", +"description": "The configuration for auto installation of GPU driver." +}, +"gpuPartitionSize": { +"description": "Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).", +"type": "string" +}, +"gpuSharingConfig": { +"$ref": "GPUSharingConfig", +"description": "The configuration for GPU sharing options." +} +}, +"type": "object" +}, +"AdditionalNodeNetworkConfig": { +"description": "AdditionalNodeNetworkConfig is the configuration for additional node networks within the NodeNetworkConfig message", +"id": "AdditionalNodeNetworkConfig", +"properties": { +"network": { +"description": "Name of the VPC where the additional interface belongs", +"type": "string" +}, +"subnetwork": { +"description": "Name of the subnetwork where the additional interface belongs", +"type": "string" +} +}, +"type": "object" +}, +"AdditionalPodNetworkConfig": { +"description": "AdditionalPodNetworkConfig is the configuration for additional pod networks within the NodeNetworkConfig message", +"id": "AdditionalPodNetworkConfig", +"properties": { +"maxPodsPerNode": { +"$ref": "MaxPodsConstraint", +"description": "The maximum number of pods per node which use this pod network." +}, +"networkAttachment": { +"description": "The name of the network attachment for pods to communicate to; cannot be specified along with subnetwork or secondary_pod_range.", +"type": "string" +}, +"secondaryPodRange": { +"description": "The name of the secondary range on the subnet which provides IP address for this pod range.", +"type": "string" +}, +"subnetwork": { +"description": "Name of the subnetwork where the additional pod network belongs.", +"type": "string" +} +}, +"type": "object" +}, +"AdditionalPodRangesConfig": { +"description": "AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message.", +"id": "AdditionalPodRangesConfig", +"properties": { +"podRangeInfo": { +"description": "Output only. Information for additional pod range.", +"items": { +"$ref": "RangeInfo" +}, +"readOnly": true, +"type": "array" +}, +"podRangeNames": { +"description": "Name for pod secondary ipv4 range which has the actual range defined ahead.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AddonsConfig": { +"description": "Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality.", +"id": "AddonsConfig", +"properties": { +"cloudRunConfig": { +"$ref": "CloudRunConfig", +"description": "Configuration for the Cloud Run addon, which allows the user to use a managed Knative service." +}, +"configConnectorConfig": { +"$ref": "ConfigConnectorConfig", +"description": "Configuration for the ConfigConnector add-on, a Kubernetes extension to manage hosted GCP services through the Kubernetes API" +}, +"dnsCacheConfig": { +"$ref": "DnsCacheConfig", +"description": "Configuration for NodeLocalDNS, a dns cache running on cluster nodes" +}, +"gcePersistentDiskCsiDriverConfig": { +"$ref": "GcePersistentDiskCsiDriverConfig", +"description": "Configuration for the Compute Engine Persistent Disk CSI driver." +}, +"gcpFilestoreCsiDriverConfig": { +"$ref": "GcpFilestoreCsiDriverConfig", +"description": "Configuration for the GCP Filestore CSI driver." +}, +"gcsFuseCsiDriverConfig": { +"$ref": "GcsFuseCsiDriverConfig", +"description": "Configuration for the Cloud Storage Fuse CSI driver." +}, +"gkeBackupAgentConfig": { +"$ref": "GkeBackupAgentConfig", +"description": "Configuration for the Backup for GKE agent addon." +}, +"horizontalPodAutoscaling": { +"$ref": "HorizontalPodAutoscaling", +"description": "Configuration for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods." +}, +"httpLoadBalancing": { +"$ref": "HttpLoadBalancing", +"description": "Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster." +}, +"kubernetesDashboard": { +"$ref": "KubernetesDashboard", +"deprecated": true, +"description": "Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards" +}, +"networkPolicyConfig": { +"$ref": "NetworkPolicyConfig", +"description": "Configuration for NetworkPolicy. This only tracks whether the addon is enabled or not on the Master, it does not track whether network policy is enabled for the nodes." +}, +"parallelstoreCsiDriverConfig": { +"$ref": "ParallelstoreCsiDriverConfig", +"description": "Configuration for the Cloud Storage Parallelstore CSI driver." +}, +"rayOperatorConfig": { +"$ref": "RayOperatorConfig", +"description": "Optional. Configuration for Ray Operator addon." +}, +"statefulHaConfig": { +"$ref": "StatefulHAConfig", +"description": "Optional. Configuration for the StatefulHA add-on." +} +}, +"type": "object" +}, +"AdvancedDatapathObservabilityConfig": { +"description": "AdvancedDatapathObservabilityConfig specifies configuration of observability features of advanced datapath.", +"id": "AdvancedDatapathObservabilityConfig", +"properties": { +"enableMetrics": { +"description": "Expose flow metrics on nodes", +"type": "boolean" +}, +"enableRelay": { +"description": "Enable Relay component", +"type": "boolean" +}, +"relayMode": { +"description": "Method used to make Relay available", +"enum": [ +"RELAY_MODE_UNSPECIFIED", +"DISABLED", +"INTERNAL_VPC_LB", +"EXTERNAL_LB" +], +"enumDescriptions": [ +"Default value. This shouldn't be used.", +"disabled", +"exposed via internal load balancer", +"exposed via external load balancer" +], +"type": "string" +} +}, +"type": "object" +}, +"AdvancedMachineFeatures": { +"description": "Specifies options for controlling advanced machine features.", +"id": "AdvancedMachineFeatures", +"properties": { +"enableNestedVirtualization": { +"description": "Whether or not to enable nested virtualization (defaults to false).", +"type": "boolean" +}, +"threadsPerCore": { +"description": "The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AuthenticatorGroupsConfig": { +"description": "Configuration for returning group information from authenticators.", +"id": "AuthenticatorGroupsConfig", +"properties": { +"enabled": { +"description": "Whether this cluster should return group membership lookups during authentication using a group of security groups.", +"type": "boolean" +}, +"securityGroup": { +"description": "The name of the security group-of-groups to be used. Only relevant if enabled = true.", +"type": "string" +} +}, +"type": "object" +}, +"AutoUpgradeOptions": { +"description": "AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed.", +"id": "AutoUpgradeOptions", +"properties": { +"autoUpgradeStartTime": { +"description": "Output only. This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Output only. This field is set when upgrades are about to commence with the description of the upgrade.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Autopilot": { +"description": "Autopilot is the configuration for Autopilot settings on the cluster.", +"id": "Autopilot", +"properties": { +"enabled": { +"description": "Enable Autopilot", +"type": "boolean" +}, +"workloadPolicyConfig": { +"$ref": "WorkloadPolicyConfig", +"description": "WorkloadPolicyConfig is the configuration related to GCW workload policy" +} +}, +"type": "object" +}, +"AutopilotCompatibilityIssue": { +"description": "AutopilotCompatibilityIssue contains information about a specific compatibility issue with Autopilot mode.", +"id": "AutopilotCompatibilityIssue", +"properties": { +"constraintType": { +"description": "The constraint type of the issue.", +"type": "string" +}, +"description": { +"description": "The description of the issue.", +"type": "string" +}, +"documentationUrl": { +"description": "A URL to a public documnetation, which addresses resolving this issue.", +"type": "string" +}, +"incompatibilityType": { +"description": "The incompatibility type of this issue.", +"enum": [ +"UNSPECIFIED", +"INCOMPATIBILITY", +"ADDITIONAL_CONFIG_REQUIRED", +"PASSED_WITH_OPTIONAL_CONFIG" +], +"enumDescriptions": [ +"Default value, should not be used.", +"Indicates that the issue is a known incompatibility between the cluster and Autopilot mode.", +"Indicates the issue is an incompatibility if customers take no further action to resolve.", +"Indicates the issue is not an incompatibility, but depending on the workloads business logic, there is a potential that they won't work on Autopilot." +], +"type": "string" +}, +"lastObservation": { +"description": "The last time when this issue was observed.", +"format": "google-datetime", +"type": "string" +}, +"subjects": { +"description": "The name of the resources which are subject to this issue.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AutoprovisioningNodePoolDefaults": { +"description": "AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP.", +"id": "AutoprovisioningNodePoolDefaults", +"properties": { +"bootDiskKmsKey": { +"description": "The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption", +"type": "string" +}, +"diskSizeGb": { +"description": "Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.", +"format": "int32", +"type": "integer" +}, +"diskType": { +"description": "Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is 'pd-standard'", +"type": "string" +}, +"imageType": { +"description": "The image type to use for NAP created node. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.", +"type": "string" +}, +"insecureKubeletReadonlyPortEnabled": { +"description": "Enable or disable Kubelet read only port.", +"type": "boolean" +}, +"management": { +"$ref": "NodeManagement", +"description": "Specifies the node management options for NAP created node-pools." +}, +"minCpuPlatform": { +"deprecated": true, +"description": "Deprecated. Minimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass \"automatic\" as field value.", +"type": "string" +}, +"oauthScopes": { +"description": "Scopes that are used by NAP when creating node pools.", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceAccount": { +"description": "The Google Cloud Platform Service Account to be used by the node VMs.", +"type": "string" +}, +"shieldedInstanceConfig": { +"$ref": "ShieldedInstanceConfig", +"description": "Shielded Instance options." +}, +"upgradeSettings": { +"$ref": "UpgradeSettings", +"description": "Specifies the upgrade settings for NAP created node pools" +} +}, +"type": "object" +}, +"BestEffortProvisioning": { +"description": "Best effort provisioning.", +"id": "BestEffortProvisioning", +"properties": { +"enabled": { +"description": "When this is enabled, cluster/node pool creations will ignore non-fatal errors like stockout to best provision as many nodes as possible right now and eventually bring up all target number of nodes", +"type": "boolean" +}, +"minProvisionNodes": { +"description": "Minimum number of nodes to be provisioned to be considered as succeeded, and the rest of nodes will be provisioned gradually and eventually when stockout issue has been resolved.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BigQueryDestination": { +"description": "Parameters for using BigQuery as the destination of resource usage export.", +"id": "BigQueryDestination", +"properties": { +"datasetId": { +"description": "The ID of a BigQuery Dataset.", +"type": "string" +} +}, +"type": "object" +}, +"BinaryAuthorization": { +"description": "Configuration for Binary Authorization.", +"id": "BinaryAuthorization", +"properties": { +"enabled": { +"deprecated": true, +"description": "This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.", +"type": "boolean" +}, +"evaluationMode": { +"description": "Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED.", +"enum": [ +"EVALUATION_MODE_UNSPECIFIED", +"DISABLED", +"PROJECT_SINGLETON_POLICY_ENFORCE" +], +"enumDescriptions": [ +"Default value", +"Disable BinaryAuthorization", +"Enforce Kubernetes admission requests with BinaryAuthorization using the project's singleton policy. This is equivalent to setting the enabled boolean to true." +], +"type": "string" +} +}, +"type": "object" +}, +"BlueGreenInfo": { +"description": "Information relevant to blue-green upgrade.", +"id": "BlueGreenInfo", +"properties": { +"blueInstanceGroupUrls": { +"description": "The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with blue pool.", +"items": { +"type": "string" +}, +"type": "array" +}, +"bluePoolDeletionStartTime": { +"description": "Time to start deleting blue pool to complete blue-green upgrade, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"type": "string" +}, +"greenInstanceGroupUrls": { +"description": "The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with green pool.", +"items": { +"type": "string" +}, +"type": "array" +}, +"greenPoolVersion": { +"description": "Version of green pool.", +"type": "string" +}, +"phase": { +"description": "Current blue-green upgrade phase.", +"enum": [ +"PHASE_UNSPECIFIED", +"UPDATE_STARTED", +"CREATING_GREEN_POOL", +"CORDONING_BLUE_POOL", +"DRAINING_BLUE_POOL", +"NODE_POOL_SOAKING", +"DELETING_BLUE_POOL", +"ROLLBACK_STARTED" +], +"enumDescriptions": [ +"Unspecified phase.", +"blue-green upgrade has been initiated.", +"Start creating green pool nodes.", +"Start cordoning blue pool nodes.", +"Start draining blue pool nodes.", +"Start soaking time after draining entire blue pool.", +"Start deleting blue nodes.", +"Rollback has been initiated." +], +"type": "string" +} +}, +"type": "object" +}, +"BlueGreenSettings": { +"description": "Settings for blue-green upgrade.", +"id": "BlueGreenSettings", +"properties": { +"nodePoolSoakDuration": { +"description": "Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.", +"format": "google-duration", +"type": "string" +}, +"standardRolloutPolicy": { +"$ref": "StandardRolloutPolicy", +"description": "Standard policy for the blue-green upgrade." +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "CancelOperationRequest cancels a single operation.", +"id": "CancelOperationRequest", +"properties": { +"name": { +"description": "The name (project, location, operation id) of the operation to cancel. Specified in the format `projects/*/locations/*/operations/*`.", +"type": "string" +}, +"operationId": { +"deprecated": true, +"description": "Deprecated. The server-assigned `name` of the operation. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"CertificateAuthorityDomainConfig": { +"description": "CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.", +"id": "CertificateAuthorityDomainConfig", +"properties": { +"fqdns": { +"description": "List of fully qualified domain names (FQDN). Specifying port is supported. Wilcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000", +"items": { +"type": "string" +}, +"type": "array" +}, +"gcpSecretManagerCertificateConfig": { +"$ref": "GCPSecretManagerCertificateConfig", +"description": "Google Secret Manager (GCP) certificate configuration." +} +}, +"type": "object" +}, +"CheckAutopilotCompatibilityResponse": { +"description": "CheckAutopilotCompatibilityResponse has a list of compatibility issues.", +"id": "CheckAutopilotCompatibilityResponse", +"properties": { +"issues": { +"description": "The list of issues for the given operation.", +"items": { +"$ref": "AutopilotCompatibilityIssue" +}, +"type": "array" +}, +"summary": { +"description": "The summary of the autopilot compatibility response.", +"type": "string" +} +}, +"type": "object" +}, +"CidrBlock": { +"description": "CidrBlock contains an optional name and one CIDR block.", +"id": "CidrBlock", +"properties": { +"cidrBlock": { +"description": "cidr_block must be specified in CIDR notation.", +"type": "string" +}, +"displayName": { +"description": "display_name is an optional field for users to identify CIDR blocks.", +"type": "string" +} +}, +"type": "object" +}, +"ClientCertificateConfig": { +"description": "Configuration for client certificates on the cluster.", +"id": "ClientCertificateConfig", +"properties": { +"issueClientCertificate": { +"description": "Issue a client certificate.", +"type": "boolean" +} +}, +"type": "object" +}, +"CloudRunConfig": { +"description": "Configuration options for the Cloud Run feature.", +"id": "CloudRunConfig", +"properties": { +"disabled": { +"description": "Whether Cloud Run addon is enabled for this cluster.", +"type": "boolean" +}, +"loadBalancerType": { +"description": "Which load balancer type is installed for Cloud Run.", +"enum": [ +"LOAD_BALANCER_TYPE_UNSPECIFIED", +"LOAD_BALANCER_TYPE_EXTERNAL", +"LOAD_BALANCER_TYPE_INTERNAL" +], +"enumDescriptions": [ +"Load balancer type for Cloud Run is unspecified.", +"Install external load balancer for Cloud Run.", +"Install internal load balancer for Cloud Run." +], +"type": "string" +} +}, +"type": "object" +}, +"Cluster": { +"description": "A Google Kubernetes Engine cluster.", +"id": "Cluster", +"properties": { +"addonsConfig": { +"$ref": "AddonsConfig", +"description": "Configurations for the various addons available to run in the cluster." +}, +"authenticatorGroupsConfig": { +"$ref": "AuthenticatorGroupsConfig", +"description": "Configuration controlling RBAC group membership information." +}, +"autopilot": { +"$ref": "Autopilot", +"description": "Autopilot configuration for the cluster." +}, +"autoscaling": { +"$ref": "ClusterAutoscaling", +"description": "Cluster-level autoscaling configuration." +}, +"binaryAuthorization": { +"$ref": "BinaryAuthorization", +"description": "Configuration for Binary Authorization." +}, +"clusterIpv4Cidr": { +"description": "The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.", +"type": "string" +}, +"compliancePostureConfig": { +"$ref": "CompliancePostureConfig", +"description": "Enable/Disable Compliance Posture features for the cluster." +}, +"conditions": { +"description": "Which conditions caused the current cluster state.", +"items": { +"$ref": "StatusCondition" +}, +"type": "array" +}, +"confidentialNodes": { +"$ref": "ConfidentialNodes", +"description": "Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled." +}, +"controlPlaneEndpointsConfig": { +"$ref": "ControlPlaneEndpointsConfig", +"description": "Configuration for all cluster's control plane endpoints." +}, +"costManagementConfig": { +"$ref": "CostManagementConfig", +"description": "Configuration for the fine-grained cost management feature." +}, +"createTime": { +"description": "Output only. The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"readOnly": true, +"type": "string" +}, +"currentMasterVersion": { +"description": "Output only. The current software version of the master endpoint.", +"readOnly": true, +"type": "string" +}, +"currentNodeCount": { +"deprecated": true, +"description": "Output only. The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"currentNodeVersion": { +"deprecated": true, +"description": "Output only. Deprecated, use [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools) instead. The current version of the node software components. If they are currently at multiple versions because they're in the process of being upgraded, this reflects the minimum version of all nodes.", +"readOnly": true, +"type": "string" +}, +"databaseEncryption": { +"$ref": "DatabaseEncryption", +"description": "Configuration of etcd encryption." +}, +"defaultMaxPodsConstraint": { +"$ref": "MaxPodsConstraint", +"description": "The default constraint on the maximum number of pods that can be run simultaneously on a node in the node pool of this cluster. Only honored if cluster created with IP Alias support." +}, +"description": { +"description": "An optional description of this cluster.", +"type": "string" +}, +"enableK8sBetaApis": { +"$ref": "K8sBetaAPIConfig", +"description": "Beta APIs Config" +}, +"enableKubernetesAlpha": { +"description": "Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.", +"type": "boolean" +}, +"enableTpu": { +"description": "Enable the ability to use Cloud TPUs in this cluster.", +"type": "boolean" +}, +"endpoint": { +"description": "Output only. The IP address of this cluster's master endpoint. The endpoint can be accessed from the internet at `https://username:password@endpoint/`. See the `masterAuth` property of this resource for username and password information.", +"readOnly": true, +"type": "string" +}, +"enterpriseConfig": { +"$ref": "EnterpriseConfig", +"description": "GKE Enterprise Configuration." +}, +"etag": { +"description": "This checksum is computed by the server based on the value of cluster fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"expireTime": { +"description": "Output only. The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"readOnly": true, +"type": "string" +}, +"fleet": { +"$ref": "Fleet", +"description": "Fleet information for the cluster." +}, +"id": { +"description": "Output only. Unique id for the cluster.", +"readOnly": true, +"type": "string" +}, +"identityServiceConfig": { +"$ref": "IdentityServiceConfig", +"description": "Configuration for Identity Service component." +}, +"initialClusterVersion": { +"description": "The initial Kubernetes version for this cluster. Valid versions are those found in validMasterVersions returned by getServerConfig. The version can be upgraded over time; such upgrades are reflected in currentMasterVersion and currentNodeVersion. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - \"latest\": picks the highest valid Kubernetes version - \"1.X\": picks the highest valid patch+gke.N patch in the 1.X version - \"1.X.Y\": picks the highest valid gke.N patch in the 1.X.Y version - \"1.X.Y-gke.N\": picks an explicit Kubernetes version - \"\",\"-\": picks the default Kubernetes version", +"type": "string" +}, +"initialNodeCount": { +"deprecated": true, +"description": "The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a \"node_pool\" object, since this configuration (along with the \"node_config\") will be used to create a \"NodePool\" object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead.", +"format": "int32", +"type": "integer" +}, +"instanceGroupUrls": { +"deprecated": true, +"description": "Output only. Deprecated. Use node_pools.instance_group_urls.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"ipAllocationPolicy": { +"$ref": "IPAllocationPolicy", +"description": "Configuration for cluster IP allocation." +}, +"labelFingerprint": { +"description": "The fingerprint of the set of labels for this cluster.", +"type": "string" +}, +"legacyAbac": { +"$ref": "LegacyAbac", +"description": "Configuration for the legacy ABAC authorization mode." +}, +"location": { +"description": "Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.", +"readOnly": true, +"type": "string" +}, +"locations": { +"description": "The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes should be located. This field provides a default value if [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"loggingConfig": { +"$ref": "LoggingConfig", +"description": "Logging configuration for the cluster." +}, +"loggingService": { +"description": "The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.", +"type": "string" +}, +"maintenancePolicy": { +"$ref": "MaintenancePolicy", +"description": "Configure the maintenance policy for this cluster." +}, +"masterAuth": { +"$ref": "MasterAuth", +"description": "The authentication information for accessing the master endpoint. If unspecified, the defaults are used: For clusters before v1.12, if master_auth is unspecified, `username` will be set to \"admin\", a random password will be generated, and a client certificate will be issued." +}, +"masterAuthorizedNetworksConfig": { +"$ref": "MasterAuthorizedNetworksConfig", +"deprecated": true, +"description": "The configuration options for master authorized networks feature. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config instead." +}, +"meshCertificates": { +"$ref": "MeshCertificates", +"description": "Configuration for issuance of mTLS keys and certificates to Kubernetes pods." +}, +"monitoringConfig": { +"$ref": "MonitoringConfig", +"description": "Monitoring configuration for the cluster." +}, +"monitoringService": { +"description": "The monitoring service the cluster should use to write metrics. Currently available options: * \"monitoring.googleapis.com/kubernetes\" - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.", +"type": "string" +}, +"name": { +"description": "The name of this cluster. The name must be unique within this project and location (e.g. zone or region), and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.", +"type": "string" +}, +"network": { +"description": "The name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.", +"type": "string" +}, +"networkConfig": { +"$ref": "NetworkConfig", +"description": "Configuration for cluster networking." +}, +"networkPolicy": { +"$ref": "NetworkPolicy", +"description": "Configuration options for the NetworkPolicy feature." +}, +"nodeConfig": { +"$ref": "NodeConfig", +"deprecated": true, +"description": "Parameters used in creating the cluster's nodes. For requests, this field should only be used in lieu of a \"node_pool\" object, since this configuration (along with the \"initial_node_count\") will be used to create a \"NodePool\" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead." +}, +"nodeIpv4CidrSize": { +"description": "Output only. The size of the address space on each node for hosting containers. This is provisioned from within the `container_ipv4_cidr` range. This field will only be set when cluster is in route-based network mode.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"nodePoolAutoConfig": { +"$ref": "NodePoolAutoConfig", +"description": "Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters." +}, +"nodePoolDefaults": { +"$ref": "NodePoolDefaults", +"description": "Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object." +}, +"nodePools": { +"description": "The node pools associated with this cluster. This field should not be set if \"node_config\" or \"initial_node_count\" are specified.", +"items": { +"$ref": "NodePool" +}, +"type": "array" +}, +"notificationConfig": { +"$ref": "NotificationConfig", +"description": "Notification configuration of the cluster." +}, +"parentProductConfig": { +"$ref": "ParentProductConfig", +"description": "The configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of the GKE cluster and take the ownership of the cluster." +}, +"privateClusterConfig": { +"$ref": "PrivateClusterConfig", +"description": "Configuration for private cluster." +}, +"rbacBindingConfig": { +"$ref": "RBACBindingConfig", +"description": "RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created." +}, +"releaseChannel": { +"$ref": "ReleaseChannel", +"description": "Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version." +}, +"resourceLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for the cluster to use to annotate any related Google Compute Engine resources.", +"type": "object" +}, +"resourceUsageExportConfig": { +"$ref": "ResourceUsageExportConfig", +"description": "Configuration for exporting resource usages. Resource usage export is disabled when this config is unspecified." +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"secretManagerConfig": { +"$ref": "SecretManagerConfig", +"description": "Secret CSI driver configuration." +}, +"securityPostureConfig": { +"$ref": "SecurityPostureConfig", +"description": "Enable/Disable Security Posture API features for the cluster." +}, +"selfLink": { +"description": "Output only. Server-defined URL for the resource.", +"readOnly": true, +"type": "string" +}, +"servicesIpv4Cidr": { +"description": "Output only. The IP address range of the Kubernetes services in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `/16` from the container CIDR.", +"readOnly": true, +"type": "string" +}, +"shieldedNodes": { +"$ref": "ShieldedNodes", +"description": "Shielded Nodes configuration." +}, +"status": { +"description": "Output only. The current status of this cluster.", +"enum": [ +"STATUS_UNSPECIFIED", +"PROVISIONING", +"RUNNING", +"RECONCILING", +"STOPPING", +"ERROR", +"DEGRADED" +], +"enumDescriptions": [ +"Not set.", +"The PROVISIONING state indicates the cluster is being created.", +"The RUNNING state indicates the cluster has been created and is fully usable.", +"The RECONCILING state indicates that some work is actively being done on the cluster, such as upgrading the master or node software. Details can be found in the `statusMessage` field.", +"The STOPPING state indicates the cluster is being deleted.", +"The ERROR state indicates the cluster is unusable. It will be automatically deleted. Details can be found in the `statusMessage` field.", +"The DEGRADED state indicates the cluster requires user action to restore full functionality. Details can be found in the `statusMessage` field." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"deprecated": true, +"description": "Output only. Deprecated. Use conditions instead. Additional information about the current status of this cluster, if available.", +"readOnly": true, +"type": "string" +}, +"subnetwork": { +"description": "The name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the cluster is connected.", +"type": "string" +}, +"tpuIpv4CidrBlock": { +"description": "Output only. The IP address range of the Cloud TPUs in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`).", +"readOnly": true, +"type": "string" +}, +"userManagedKeysConfig": { +"$ref": "UserManagedKeysConfig", +"description": "The Custom keys configuration for the cluster." +}, +"verticalPodAutoscaling": { +"$ref": "VerticalPodAutoscaling", +"description": "Cluster-level Vertical Pod Autoscaling configuration." +}, +"workloadIdentityConfig": { +"$ref": "WorkloadIdentityConfig", +"description": "Configuration for the use of Kubernetes Service Accounts in GCP IAM policies." +}, +"zone": { +"deprecated": true, +"description": "Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field is deprecated, use location instead.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ClusterAutoscaling": { +"description": "ClusterAutoscaling contains global, per-cluster information required by Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs.", +"id": "ClusterAutoscaling", +"properties": { +"autoprovisioningLocations": { +"description": "The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool's nodes can be created by NAP.", +"items": { +"type": "string" +}, +"type": "array" +}, +"autoprovisioningNodePoolDefaults": { +"$ref": "AutoprovisioningNodePoolDefaults", +"description": "AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP." +}, +"autoscalingProfile": { +"description": "Defines autoscaling behaviour.", +"enum": [ +"PROFILE_UNSPECIFIED", +"OPTIMIZE_UTILIZATION", +"BALANCED" +], +"enumDescriptions": [ +"No change to autoscaling configuration.", +"Prioritize optimizing utilization of resources.", +"Use default (balanced) autoscaling configuration." +], +"type": "string" +}, +"enableNodeAutoprovisioning": { +"description": "Enables automatic node pool creation and deletion.", +"type": "boolean" +}, +"resourceLimits": { +"description": "Contains global constraints regarding minimum and maximum amount of resources in the cluster.", +"items": { +"$ref": "ResourceLimit" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusterNetworkPerformanceConfig": { +"description": "Configuration of network bandwidth tiers", +"id": "ClusterNetworkPerformanceConfig", +"properties": { +"totalEgressBandwidthTier": { +"description": "Specifies the total network bandwidth tier for NodePools in the cluster.", +"enum": [ +"TIER_UNSPECIFIED", +"TIER_1" +], +"enumDescriptions": [ +"Default value", +"Higher bandwidth, actual values based on VM size." +], +"type": "string" +} +}, +"type": "object" +}, +"ClusterUpdate": { +"description": "ClusterUpdate describes an update to the cluster. Exactly one update can be applied to a cluster with each request, so at most one field can be provided.", +"id": "ClusterUpdate", +"properties": { +"additionalPodRangesConfig": { +"$ref": "AdditionalPodRangesConfig", +"description": "The additional pod ranges to be added to the cluster. These pod ranges can be used by node pools to allocate pod IPs." +}, +"desiredAddonsConfig": { +"$ref": "AddonsConfig", +"description": "Configurations for the various addons available to run in the cluster." +}, +"desiredAuthenticatorGroupsConfig": { +"$ref": "AuthenticatorGroupsConfig", +"description": "The desired authenticator groups config for the cluster." +}, +"desiredAutopilotWorkloadPolicyConfig": { +"$ref": "WorkloadPolicyConfig", +"description": "WorkloadPolicyConfig is the configuration related to GCW workload policy" +}, +"desiredBinaryAuthorization": { +"$ref": "BinaryAuthorization", +"description": "The desired configuration options for the Binary Authorization feature." +}, +"desiredClusterAutoscaling": { +"$ref": "ClusterAutoscaling", +"description": "Cluster-level autoscaling configuration." +}, +"desiredCompliancePostureConfig": { +"$ref": "CompliancePostureConfig", +"description": "Enable/Disable Compliance Posture features for the cluster." +}, +"desiredContainerdConfig": { +"$ref": "ContainerdConfig", +"description": "The desired containerd config for the cluster." +}, +"desiredControlPlaneEndpointsConfig": { +"$ref": "ControlPlaneEndpointsConfig", +"description": "Control plane endpoints configuration." +}, +"desiredCostManagementConfig": { +"$ref": "CostManagementConfig", +"description": "The desired configuration for the fine-grained cost management feature." +}, +"desiredDatabaseEncryption": { +"$ref": "DatabaseEncryption", +"description": "Configuration of etcd encryption." +}, +"desiredDatapathProvider": { +"description": "The desired datapath provider for the cluster.", +"enum": [ +"DATAPATH_PROVIDER_UNSPECIFIED", +"LEGACY_DATAPATH", +"ADVANCED_DATAPATH" +], +"enumDescriptions": [ +"Default value.", +"Use the IPTables implementation based on kube-proxy.", +"Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE Dataplane V2 documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2) for more." +], +"type": "string" +}, +"desiredDefaultEnablePrivateNodes": { +"description": "Override the default setting of whether future created nodes have private IP addresses only, namely NetworkConfig.default_enable_private_nodes", +"type": "boolean" +}, +"desiredDefaultSnatStatus": { +"$ref": "DefaultSnatStatus", +"description": "The desired status of whether to disable default sNAT for this cluster." +}, +"desiredDisableL4LbFirewallReconciliation": { +"description": "Enable/Disable L4 LB VPC firewall reconciliation for the cluster.", +"type": "boolean" +}, +"desiredDnsConfig": { +"$ref": "DNSConfig", +"description": "DNSConfig contains clusterDNS config for this cluster." +}, +"desiredEnableCiliumClusterwideNetworkPolicy": { +"description": "Enable/Disable Cilium Clusterwide Network Policy for the cluster.", +"type": "boolean" +}, +"desiredEnableFqdnNetworkPolicy": { +"description": "Enable/Disable FQDN Network Policy for the cluster.", +"type": "boolean" +}, +"desiredEnableMultiNetworking": { +"description": "Enable/Disable Multi-Networking for the cluster", +"type": "boolean" +}, +"desiredEnablePrivateEndpoint": { +"deprecated": true, +"description": "Enable/Disable private endpoint for the cluster's master. Deprecated: Use desired_control_plane_endpoints_config.ip_endpoints_config.enable_public_endpoint instead. Note that the value of enable_public_endpoint is reversed: if enable_private_endpoint is false, then enable_public_endpoint will be true.", +"type": "boolean" +}, +"desiredEnterpriseConfig": { +"$ref": "DesiredEnterpriseConfig", +"description": "The desired enterprise configuration for the cluster." +}, +"desiredFleet": { +"$ref": "Fleet", +"description": "The desired fleet configuration for the cluster." +}, +"desiredGatewayApiConfig": { +"$ref": "GatewayAPIConfig", +"description": "The desired config of Gateway API on this cluster." +}, +"desiredGcfsConfig": { +"$ref": "GcfsConfig", +"description": "The desired GCFS config for the cluster" +}, +"desiredIdentityServiceConfig": { +"$ref": "IdentityServiceConfig", +"description": "The desired Identity Service component configuration." +}, +"desiredImageType": { +"description": "The desired image type for the node pool. NOTE: Set the \"desired_node_pool\" field as well.", +"type": "string" +}, +"desiredInTransitEncryptionConfig": { +"description": "Specify the details of in-transit encryption.", +"enum": [ +"IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED", +"IN_TRANSIT_ENCRYPTION_DISABLED", +"IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" +], +"enumDescriptions": [ +"Unspecified, will be inferred as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED.", +"In-transit encryption is disabled.", +"Data in-transit is encrypted using inter-node transparent encryption." +], +"type": "string" +}, +"desiredIntraNodeVisibilityConfig": { +"$ref": "IntraNodeVisibilityConfig", +"description": "The desired config of Intra-node visibility." +}, +"desiredK8sBetaApis": { +"$ref": "K8sBetaAPIConfig", +"description": "Desired Beta APIs to be enabled for cluster." +}, +"desiredL4ilbSubsettingConfig": { +"$ref": "ILBSubsettingConfig", +"description": "The desired L4 Internal Load Balancer Subsetting configuration." +}, +"desiredLocations": { +"description": "The desired list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes should be located. This list must always include the cluster's primary zone. Warning: changing cluster locations will update the locations of all node pools and will result in nodes being added and/or removed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"desiredLoggingConfig": { +"$ref": "LoggingConfig", +"description": "The desired logging configuration." +}, +"desiredLoggingService": { +"description": "The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.", +"type": "string" +}, +"desiredMasterAuthorizedNetworksConfig": { +"$ref": "MasterAuthorizedNetworksConfig", +"deprecated": true, +"description": "The desired configuration options for master authorized networks feature. Deprecated: Use desired_control_plane_endpoints_config.ip_endpoints_config.authorized_networks_config instead." +}, +"desiredMasterVersion": { +"description": "The Kubernetes version to change the master to. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - \"latest\": picks the highest valid Kubernetes version - \"1.X\": picks the highest valid patch+gke.N patch in the 1.X version - \"1.X.Y\": picks the highest valid gke.N patch in the 1.X.Y version - \"1.X.Y-gke.N\": picks an explicit Kubernetes version - \"-\": picks the default Kubernetes version", +"type": "string" +}, +"desiredMeshCertificates": { +"$ref": "MeshCertificates", +"description": "Configuration for issuance of mTLS keys and certificates to Kubernetes pods." +}, +"desiredMonitoringConfig": { +"$ref": "MonitoringConfig", +"description": "The desired monitoring configuration." +}, +"desiredMonitoringService": { +"description": "The monitoring service the cluster should use to write metrics. Currently available options: * \"monitoring.googleapis.com/kubernetes\" - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.", +"type": "string" +}, +"desiredNetworkPerformanceConfig": { +"$ref": "ClusterNetworkPerformanceConfig", +"description": "The desired network performance config." +}, +"desiredNodeKubeletConfig": { +"$ref": "NodeKubeletConfig", +"description": "The desired node kubelet config for the cluster." +}, +"desiredNodePoolAutoConfigKubeletConfig": { +"$ref": "NodeKubeletConfig", +"description": "The desired node kubelet config for all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters." +}, +"desiredNodePoolAutoConfigLinuxNodeConfig": { +"$ref": "LinuxNodeConfig", +"description": "The desired Linux node config for all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters. Currently only `cgroup_mode` can be set here." +}, +"desiredNodePoolAutoConfigNetworkTags": { +"$ref": "NetworkTags", +"description": "The desired network tags that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters." +}, +"desiredNodePoolAutoConfigResourceManagerTags": { +"$ref": "ResourceManagerTags", +"description": "The desired resource manager tags that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters." +}, +"desiredNodePoolAutoscaling": { +"$ref": "NodePoolAutoscaling", +"description": "Autoscaler configuration for the node pool specified in desired_node_pool_id. If there is only one pool in the cluster and desired_node_pool_id is not provided then the change applies to that single node pool." +}, +"desiredNodePoolId": { +"description": "The node pool to be upgraded. This field is mandatory if \"desired_node_version\", \"desired_image_family\" or \"desired_node_pool_autoscaling\" is specified and there is more than one node pool on the cluster.", +"type": "string" +}, +"desiredNodePoolLoggingConfig": { +"$ref": "NodePoolLoggingConfig", +"description": "The desired node pool logging configuration defaults for the cluster." +}, +"desiredNodeVersion": { +"description": "The Kubernetes version to change the nodes to (typically an upgrade). Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - \"latest\": picks the highest valid Kubernetes version - \"1.X\": picks the highest valid patch+gke.N patch in the 1.X version - \"1.X.Y\": picks the highest valid gke.N patch in the 1.X.Y version - \"1.X.Y-gke.N\": picks an explicit Kubernetes version - \"-\": picks the Kubernetes master version", +"type": "string" +}, +"desiredNotificationConfig": { +"$ref": "NotificationConfig", +"description": "The desired notification configuration." +}, +"desiredParentProductConfig": { +"$ref": "ParentProductConfig", +"description": "The desired parent product config for the cluster." +}, +"desiredPrivateClusterConfig": { +"$ref": "PrivateClusterConfig", +"deprecated": true, +"description": "The desired private cluster configuration. master_global_access_config is the only field that can be changed via this field. See also ClusterUpdate.desired_enable_private_endpoint for modifying other fields within PrivateClusterConfig. Deprecated: Use desired_control_plane_endpoints_config.ip_endpoints_config.global_access instead." +}, +"desiredPrivateIpv6GoogleAccess": { +"description": "The desired state of IPv6 connectivity to Google Services.", +"enum": [ +"PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED", +"PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED", +"PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE", +"PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL" +], +"enumDescriptions": [ +"Default value. Same as DISABLED", +"No private access to or from Google Services", +"Enables private IPv6 access to Google Services from GKE", +"Enables private IPv6 access to and from Google Services" +], +"type": "string" +}, +"desiredRbacBindingConfig": { +"$ref": "RBACBindingConfig", +"description": "RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created." +}, +"desiredReleaseChannel": { +"$ref": "ReleaseChannel", +"description": "The desired release channel configuration." +}, +"desiredResourceUsageExportConfig": { +"$ref": "ResourceUsageExportConfig", +"description": "The desired configuration for exporting resource usage." +}, +"desiredSecretManagerConfig": { +"$ref": "SecretManagerConfig", +"description": "Enable/Disable Secret Manager Config." +}, +"desiredSecurityPostureConfig": { +"$ref": "SecurityPostureConfig", +"description": "Enable/Disable Security Posture API features for the cluster." +}, +"desiredServiceExternalIpsConfig": { +"$ref": "ServiceExternalIPsConfig", +"description": "ServiceExternalIPsConfig specifies the config for the use of Services with ExternalIPs field." +}, +"desiredShieldedNodes": { +"$ref": "ShieldedNodes", +"description": "Configuration for Shielded Nodes." +}, +"desiredStackType": { +"description": "The desired stack type of the cluster. If a stack type is provided and does not match the current stack type of the cluster, update will attempt to change the stack type to the new type.", +"enum": [ +"STACK_TYPE_UNSPECIFIED", +"IPV4", +"IPV4_IPV6" +], +"enumDescriptions": [ +"Default value, will be defaulted as IPV4 only", +"Cluster is IPV4 only", +"Cluster can use both IPv4 and IPv6" +], +"type": "string" +}, +"desiredVerticalPodAutoscaling": { +"$ref": "VerticalPodAutoscaling", +"description": "Cluster-level Vertical Pod Autoscaling configuration." +}, +"desiredWorkloadIdentityConfig": { +"$ref": "WorkloadIdentityConfig", +"description": "Configuration for Workload Identity." +}, +"enableK8sBetaApis": { +"$ref": "K8sBetaAPIConfig", +"description": "Kubernetes open source beta apis enabled on the cluster. Only beta apis" +}, +"etag": { +"description": "The current etag of the cluster. If an etag is provided and does not match the current etag of the cluster, update will be blocked and an ABORTED error will be returned.", +"type": "string" +}, +"removedAdditionalPodRangesConfig": { +"$ref": "AdditionalPodRangesConfig", +"description": "The additional pod ranges that are to be removed from the cluster. The pod ranges specified here must have been specified earlier in the 'additional_pod_ranges_config' argument." +}, +"userManagedKeysConfig": { +"$ref": "UserManagedKeysConfig", +"description": "The Custom keys configuration for the cluster." +} +}, +"type": "object" +}, +"CompleteIPRotationRequest": { +"description": "CompleteIPRotationRequest moves the cluster master back into single-IP mode.", +"id": "CompleteIPRotationRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster name) of the cluster to complete IP rotation. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"CompleteNodePoolUpgradeRequest": { +"description": "CompleteNodePoolUpgradeRequest sets the name of target node pool to complete upgrade.", +"id": "CompleteNodePoolUpgradeRequest", +"properties": {}, +"type": "object" +}, +"CompliancePostureConfig": { +"description": "CompliancePostureConfig defines the settings needed to enable/disable features for the Compliance Posture.", +"id": "CompliancePostureConfig", +"properties": { +"complianceStandards": { +"description": "List of enabled compliance standards.", +"items": { +"$ref": "ComplianceStandard" +}, +"type": "array" +}, +"mode": { +"description": "Defines the enablement mode for Compliance Posture.", +"enum": [ +"MODE_UNSPECIFIED", +"DISABLED", +"ENABLED" +], +"enumDescriptions": [ +"Default value not specified.", +"Disables Compliance Posture features on the cluster.", +"Enables Compliance Posture features on the cluster." +], +"type": "string" +} +}, +"type": "object" +}, +"ComplianceStandard": { +"description": "Defines the details of a compliance standard.", +"id": "ComplianceStandard", +"properties": { +"standard": { +"description": "Name of the compliance standard.", +"type": "string" +} +}, +"type": "object" +}, +"ConfidentialNodes": { +"description": "ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs.", +"id": "ConfidentialNodes", +"properties": { +"enabled": { +"description": "Whether Confidential Nodes feature is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigConnectorConfig": { +"description": "Configuration options for the Config Connector add-on.", +"id": "ConfigConnectorConfig", +"properties": { +"enabled": { +"description": "Whether Cloud Connector is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConsumptionMeteringConfig": { +"description": "Parameters for controlling consumption metering.", +"id": "ConsumptionMeteringConfig", +"properties": { +"enabled": { +"description": "Whether to enable consumption metering for this cluster. If enabled, a second BigQuery table will be created to hold resource consumption records.", +"type": "boolean" +} +}, +"type": "object" +}, +"ContainerdConfig": { +"description": "ContainerdConfig contains configuration to customize containerd.", +"id": "ContainerdConfig", +"properties": { +"privateRegistryAccessConfig": { +"$ref": "PrivateRegistryAccessConfig", +"description": "PrivateRegistryAccessConfig is used to configure access configuration for private container registries." +} +}, +"type": "object" +}, +"ControlPlaneEndpointsConfig": { +"description": "Configuration for all of the cluster's control plane endpoints.", +"id": "ControlPlaneEndpointsConfig", +"properties": { +"dnsEndpointConfig": { +"$ref": "DNSEndpointConfig", +"description": "DNS endpoint configuration." +}, +"ipEndpointsConfig": { +"$ref": "IPEndpointsConfig", +"description": "IP endpoints configuration." +} +}, +"type": "object" +}, +"CostManagementConfig": { +"description": "Configuration for fine-grained cost management feature.", +"id": "CostManagementConfig", +"properties": { +"enabled": { +"description": "Whether the feature is enabled or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"CreateClusterRequest": { +"description": "CreateClusterRequest creates a cluster.", +"id": "CreateClusterRequest", +"properties": { +"cluster": { +"$ref": "Cluster", +"description": "Required. A [cluster resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)" +}, +"parent": { +"description": "The parent (project and location) where the cluster will be created. Specified in the format `projects/*/locations/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", +"type": "string" +} +}, +"type": "object" +}, +"CreateNodePoolRequest": { +"description": "CreateNodePoolRequest creates a node pool for a cluster.", +"id": "CreateNodePoolRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the parent field.", +"type": "string" +}, +"nodePool": { +"$ref": "NodePool", +"description": "Required. The node pool to create." +}, +"parent": { +"description": "The parent (project, location, cluster name) where the node pool will be created. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.", +"type": "string" +} +}, +"type": "object" +}, +"DNSConfig": { +"description": "DNSConfig contains the desired set of options for configuring clusterDNS.", +"id": "DNSConfig", +"properties": { +"additiveVpcScopeDnsDomain": { +"description": "Optional. The domain used in Additive VPC scope.", +"type": "string" +}, +"clusterDns": { +"description": "cluster_dns indicates which in-cluster DNS provider should be used.", +"enum": [ +"PROVIDER_UNSPECIFIED", +"PLATFORM_DEFAULT", +"CLOUD_DNS", +"KUBE_DNS" +], +"enumDescriptions": [ +"Default value", +"Use GKE default DNS provider(kube-dns) for DNS resolution.", +"Use CloudDNS for DNS resolution.", +"Use KubeDNS for DNS resolution." +], +"type": "string" +}, +"clusterDnsDomain": { +"description": "cluster_dns_domain is the suffix used for all cluster service records.", +"type": "string" +}, +"clusterDnsScope": { +"description": "cluster_dns_scope indicates the scope of access to cluster DNS records.", +"enum": [ +"DNS_SCOPE_UNSPECIFIED", +"CLUSTER_SCOPE", +"VPC_SCOPE" +], +"enumDescriptions": [ +"Default value, will be inferred as cluster scope.", +"DNS records are accessible from within the cluster.", +"DNS records are accessible from within the VPC." +], +"type": "string" +} +}, +"type": "object" +}, +"DNSEndpointConfig": { +"description": "Describes the configuration of a DNS endpoint.", +"id": "DNSEndpointConfig", +"properties": { +"allowExternalTraffic": { +"description": "Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false.", +"type": "boolean" +}, +"endpoint": { +"description": "Output only. The cluster's DNS endpoint configuration. A DNS format address. This is accessible from the public internet. Ex: uid.us-central1.gke.goog. Always present, but the behavior may change according to the value of DNSEndpointConfig.allow_external_traffic.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DailyMaintenanceWindow": { +"description": "Time window specified for daily maintenance operations.", +"id": "DailyMaintenanceWindow", +"properties": { +"duration": { +"description": "Output only. Duration of the time window, automatically chosen to be smallest possible in the given scenario. Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format \"PTnHnMnS\".", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Time within the maintenance window to start the maintenance operations. Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format \"HH:MM\", where HH : [00-23] and MM : [00-59] GMT.", +"type": "string" +} +}, +"type": "object" +}, +"DatabaseEncryption": { +"description": "Configuration of etcd encryption.", +"id": "DatabaseEncryption", +"properties": { +"currentState": { +"description": "Output only. The current state of etcd encryption.", +"enum": [ +"CURRENT_STATE_UNSPECIFIED", +"CURRENT_STATE_ENCRYPTED", +"CURRENT_STATE_DECRYPTED", +"CURRENT_STATE_ENCRYPTION_PENDING", +"CURRENT_STATE_ENCRYPTION_ERROR", +"CURRENT_STATE_DECRYPTION_PENDING", +"CURRENT_STATE_DECRYPTION_ERROR" +], +"enumDescriptions": [ +"Should never be set", +"Secrets in etcd are encrypted.", +"Secrets in etcd are stored in plain text (at etcd level) - this is unrelated to Compute Engine level full disk encryption.", +"Encryption (or re-encryption with a different CloudKMS key) of Secrets is in progress.", +"Encryption (or re-encryption with a different CloudKMS key) of Secrets in etcd encountered an error.", +"De-crypting Secrets to plain text in etcd is in progress.", +"De-crypting Secrets to plain text in etcd encountered an error." +], +"readOnly": true, +"type": "string" +}, +"decryptionKeys": { +"description": "Output only. Keys in use by the cluster for decrypting existing objects, in addition to the key in `key_name`. Each item is a CloudKMS key resource.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"keyName": { +"description": "Name of CloudKMS key to use for the encryption of secrets in etcd. Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key", +"type": "string" +}, +"lastOperationErrors": { +"description": "Output only. Records errors seen during DatabaseEncryption update operations.", +"items": { +"$ref": "OperationError" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "The desired state of etcd encryption.", +"enum": [ +"UNKNOWN", +"ENCRYPTED", +"DECRYPTED" +], +"enumDescriptions": [ +"Should never be set", +"Secrets in etcd are encrypted.", +"Secrets in etcd are stored in plain text (at etcd level) - this is unrelated to Compute Engine level full disk encryption." +], +"type": "string" +} +}, +"type": "object" +}, +"DefaultSnatStatus": { +"description": "DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster.", +"id": "DefaultSnatStatus", +"properties": { +"disabled": { +"description": "Disables cluster default sNAT rules.", +"type": "boolean" +} +}, +"type": "object" +}, +"DesiredEnterpriseConfig": { +"description": "DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.", +"id": "DesiredEnterpriseConfig", +"properties": { +"desiredTier": { +"description": "desired_tier specifies the desired tier of the cluster.", +"enum": [ +"CLUSTER_TIER_UNSPECIFIED", +"STANDARD", +"ENTERPRISE" +], +"enumDescriptions": [ +"CLUSTER_TIER_UNSPECIFIED is when cluster_tier is not set.", +"STANDARD indicates a standard GKE cluster.", +"ENTERPRISE indicates a GKE Enterprise cluster." +], +"type": "string" +} +}, +"type": "object" +}, +"DnsCacheConfig": { +"description": "Configuration for NodeLocal DNSCache", +"id": "DnsCacheConfig", +"properties": { +"enabled": { +"description": "Whether NodeLocal DNSCache is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EnterpriseConfig": { +"description": "EnterpriseConfig is the cluster enterprise configuration.", +"id": "EnterpriseConfig", +"properties": { +"clusterTier": { +"description": "Output only. cluster_tier indicates the effective tier of the cluster.", +"enum": [ +"CLUSTER_TIER_UNSPECIFIED", +"STANDARD", +"ENTERPRISE" +], +"enumDescriptions": [ +"CLUSTER_TIER_UNSPECIFIED is when cluster_tier is not set.", +"STANDARD indicates a standard GKE cluster.", +"ENTERPRISE indicates a GKE Enterprise cluster." +], +"readOnly": true, +"type": "string" +}, +"desiredTier": { +"description": "desired_tier specifies the desired tier of the cluster.", +"enum": [ +"CLUSTER_TIER_UNSPECIFIED", +"STANDARD", +"ENTERPRISE" +], +"enumDescriptions": [ +"CLUSTER_TIER_UNSPECIFIED is when cluster_tier is not set.", +"STANDARD indicates a standard GKE cluster.", +"ENTERPRISE indicates a GKE Enterprise cluster." +], +"type": "string" +} +}, +"type": "object" +}, +"EphemeralStorageLocalSsdConfig": { +"description": "EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs.", +"id": "EphemeralStorageLocalSsdConfig", +"properties": { +"localSsdCount": { +"description": "Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"FastSocket": { +"description": "Configuration of Fast Socket feature.", +"id": "FastSocket", +"properties": { +"enabled": { +"description": "Whether Fast Socket features are enabled in the node pool.", +"type": "boolean" +} +}, +"type": "object" +}, +"Filter": { +"description": "Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent", +"id": "Filter", +"properties": { +"eventType": { +"description": "Event types to allowlist.", +"items": { +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"UPGRADE_AVAILABLE_EVENT", +"UPGRADE_EVENT", +"SECURITY_BULLETIN_EVENT" +], +"enumDescriptions": [ +"Not set, will be ignored.", +"Corresponds with UpgradeAvailableEvent.", +"Corresponds with UpgradeEvent.", +"Corresponds with SecurityBulletinEvent." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Fleet": { +"description": "Fleet is the fleet configuration for the cluster.", +"id": "Fleet", +"properties": { +"membership": { +"description": "Output only. The full resource name of the registered fleet membership of the cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.", +"readOnly": true, +"type": "string" +}, +"preRegistered": { +"description": "Output only. Whether the cluster has been registered through the fleet API.", +"readOnly": true, +"type": "boolean" +}, +"project": { +"description": "The Fleet host project(project ID or project number) where this cluster will be registered to. This field cannot be changed after the cluster has been registered.", +"type": "string" +} +}, +"type": "object" +}, +"GCPSecretManagerCertificateConfig": { +"description": "GCPSecretManagerCertificateConfig configures a secret from [Google Secret Manager](https://cloud.google.com/secret-manager).", +"id": "GCPSecretManagerCertificateConfig", +"properties": { +"secretUri": { +"description": "Secret URI, in the form \"projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION\". Version can be fixed (e.g. \"2\") or \"latest\"", +"type": "string" +} +}, +"type": "object" +}, +"GPUDriverInstallationConfig": { +"description": "GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed.", +"id": "GPUDriverInstallationConfig", +"properties": { +"gpuDriverVersion": { +"description": "Mode for how the GPU driver is installed.", +"enum": [ +"GPU_DRIVER_VERSION_UNSPECIFIED", +"INSTALLATION_DISABLED", +"DEFAULT", +"LATEST" +], +"enumDescriptions": [ +"Default value is to not install any GPU driver.", +"Disable GPU driver auto installation and needs manual installation", +"\"Default\" GPU driver in COS and Ubuntu.", +"\"Latest\" GPU driver in COS." +], +"type": "string" +} +}, +"type": "object" +}, +"GPUSharingConfig": { +"description": "GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators.", +"id": "GPUSharingConfig", +"properties": { +"gpuSharingStrategy": { +"description": "The type of GPU sharing strategy to enable on the GPU node.", +"enum": [ +"GPU_SHARING_STRATEGY_UNSPECIFIED", +"TIME_SHARING", +"MPS" +], +"enumDescriptions": [ +"Default value.", +"GPUs are time-shared between containers.", +"GPUs are shared between containers with NVIDIA MPS." +], +"type": "string" +}, +"maxSharedClientsPerGpu": { +"description": "The max number of containers that can share a physical GPU.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GatewayAPIConfig": { +"description": "GatewayAPIConfig contains the desired config of Gateway API on this cluster.", +"id": "GatewayAPIConfig", +"properties": { +"channel": { +"description": "The Gateway API release channel to use for Gateway API.", +"enum": [ +"CHANNEL_UNSPECIFIED", +"CHANNEL_DISABLED", +"CHANNEL_EXPERIMENTAL", +"CHANNEL_STANDARD" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"Default value.", +"Gateway API support is disabled", +"Deprecated: use CHANNEL_STANDARD instead. Gateway API support is enabled, experimental CRDs are installed", +"Gateway API support is enabled, standard CRDs are installed" +], +"type": "string" +} +}, +"type": "object" +}, +"GcePersistentDiskCsiDriverConfig": { +"description": "Configuration for the Compute Engine PD CSI driver.", +"id": "GcePersistentDiskCsiDriverConfig", +"properties": { +"enabled": { +"description": "Whether the Compute Engine PD CSI driver is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"GcfsConfig": { +"description": "GcfsConfig contains configurations of Google Container File System (image streaming).", +"id": "GcfsConfig", +"properties": { +"enabled": { +"description": "Whether to use GCFS.", +"type": "boolean" +} +}, +"type": "object" +}, +"GcpFilestoreCsiDriverConfig": { +"description": "Configuration for the GCP Filestore CSI driver.", +"id": "GcpFilestoreCsiDriverConfig", +"properties": { +"enabled": { +"description": "Whether the GCP Filestore CSI driver is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"GcsFuseCsiDriverConfig": { +"description": "Configuration for the Cloud Storage Fuse CSI driver.", +"id": "GcsFuseCsiDriverConfig", +"properties": { +"enabled": { +"description": "Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"GetJSONWebKeysResponse": { +"description": "GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517", +"id": "GetJSONWebKeysResponse", +"properties": { +"cacheHeader": { +"$ref": "HttpCacheControlResponseHeader", +"description": "For HTTP requests, this field is automatically extracted into the Cache-Control HTTP header." +}, +"keys": { +"description": "The public component of the keys used by the cluster to sign token requests.", +"items": { +"$ref": "Jwk" +}, +"type": "array" +} +}, +"type": "object" +}, +"GetOpenIDConfigResponse": { +"description": "GetOpenIDConfigResponse is an OIDC discovery document for the cluster. See the OpenID Connect Discovery 1.0 specification for details.", +"id": "GetOpenIDConfigResponse", +"properties": { +"cacheHeader": { +"$ref": "HttpCacheControlResponseHeader", +"description": "For HTTP requests, this field is automatically extracted into the Cache-Control HTTP header." +}, +"claims_supported": { +"description": "Supported claims.", +"items": { +"type": "string" +}, +"type": "array" +}, +"grant_types": { +"description": "Supported grant types.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id_token_signing_alg_values_supported": { +"description": "supported ID Token signing Algorithms.", +"items": { +"type": "string" +}, +"type": "array" +}, +"issuer": { +"description": "OIDC Issuer.", +"type": "string" +}, +"jwks_uri": { +"description": "JSON Web Key uri.", +"type": "string" +}, +"response_types_supported": { +"description": "Supported response types.", +"items": { +"type": "string" +}, +"type": "array" +}, +"subject_types_supported": { +"description": "Supported subject types.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GkeBackupAgentConfig": { +"description": "Configuration for the Backup for GKE Agent.", +"id": "GkeBackupAgentConfig", +"properties": { +"enabled": { +"description": "Whether the Backup for GKE agent is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"HorizontalPodAutoscaling": { +"description": "Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods.", +"id": "HorizontalPodAutoscaling", +"properties": { +"disabled": { +"description": "Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that metrics are collected into Stackdriver Monitoring.", +"type": "boolean" +} +}, +"type": "object" +}, +"HttpCacheControlResponseHeader": { +"description": "RFC-2616: cache control support", +"id": "HttpCacheControlResponseHeader", +"properties": { +"age": { +"description": "14.6 response cache age, in seconds since the response is generated", +"format": "int64", +"type": "string" +}, +"directive": { +"description": "14.9 request and response directives", +"type": "string" +}, +"expires": { +"description": "14.21 response cache expires, in RFC 1123 date format", +"type": "string" +} +}, +"type": "object" +}, +"HttpLoadBalancing": { +"description": "Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.", +"id": "HttpLoadBalancing", +"properties": { +"disabled": { +"description": "Whether the HTTP Load Balancing controller is enabled in the cluster. When enabled, it runs a small pod in the cluster that manages the load balancers.", +"type": "boolean" +} +}, +"type": "object" +}, +"HugepagesConfig": { +"description": "Hugepages amount in both 2m and 1g size", +"id": "HugepagesConfig", +"properties": { +"hugepageSize1g": { +"description": "Optional. Amount of 1G hugepages", +"format": "int32", +"type": "integer" +}, +"hugepageSize2m": { +"description": "Optional. Amount of 2M hugepages", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ILBSubsettingConfig": { +"description": "ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer subsetting on this cluster.", +"id": "ILBSubsettingConfig", +"properties": { +"enabled": { +"description": "Enables l4 ILB subsetting for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"IPAllocationPolicy": { +"description": "Configuration for controlling how IPs are allocated in the cluster.", +"id": "IPAllocationPolicy", +"properties": { +"additionalPodRangesConfig": { +"$ref": "AdditionalPodRangesConfig", +"description": "Output only. The additional pod ranges that are added to the cluster. These pod ranges can be used by new node pools to allocate pod IPs automatically. Once the range is removed it will not show up in IPAllocationPolicy.", +"readOnly": true +}, +"clusterIpv4Cidr": { +"deprecated": true, +"description": "This field is deprecated, use cluster_ipv4_cidr_block.", +"type": "string" +}, +"clusterIpv4CidrBlock": { +"description": "The IP address range for the cluster pod IPs. If this field is set, then `cluster.cluster_ipv4_cidr` must be left blank. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.", +"type": "string" +}, +"clusterSecondaryRangeName": { +"description": "The name of the secondary range to be used for the cluster CIDR block. The secondary range will be used for pod IP addresses. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false.", +"type": "string" +}, +"createSubnetwork": { +"description": "Whether a new subnetwork will be created automatically for the cluster. This field is only applicable when `use_ip_aliases` is true.", +"type": "boolean" +}, +"defaultPodIpv4RangeUtilization": { +"description": "Output only. The utilization of the cluster default IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"ipv6AccessType": { +"description": "The ipv6 access type (internal or external) when create_subnetwork is true", +"enum": [ +"IPV6_ACCESS_TYPE_UNSPECIFIED", +"INTERNAL", +"EXTERNAL" +], +"enumDescriptions": [ +"Default value, will be defaulted as type external.", +"Access type internal (all v6 addresses are internal IPs)", +"Access type external (all v6 addresses are external IPs)" +], +"type": "string" +}, +"nodeIpv4Cidr": { +"deprecated": true, +"description": "This field is deprecated, use node_ipv4_cidr_block.", +"type": "string" +}, +"nodeIpv4CidrBlock": { +"description": "The IP address range of the instance IPs in this cluster. This is applicable only if `create_subnetwork` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.", +"type": "string" +}, +"podCidrOverprovisionConfig": { +"$ref": "PodCIDROverprovisionConfig", +"description": "[PRIVATE FIELD] Pod CIDR size overprovisioning config for the cluster. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is doubled and then rounded off to next power of 2 to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled." +}, +"servicesIpv4Cidr": { +"deprecated": true, +"description": "This field is deprecated, use services_ipv4_cidr_block.", +"type": "string" +}, +"servicesIpv4CidrBlock": { +"description": "The IP address range of the services IPs in this cluster. If blank, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.", +"type": "string" +}, +"servicesIpv6CidrBlock": { +"description": "Output only. The services IPv6 CIDR block for the cluster.", +"readOnly": true, +"type": "string" +}, +"servicesSecondaryRangeName": { +"description": "The name of the secondary range to be used as for the services CIDR block. The secondary range will be used for service ClusterIPs. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false.", +"type": "string" +}, +"stackType": { +"description": "The IP stack type of the cluster", +"enum": [ +"STACK_TYPE_UNSPECIFIED", +"IPV4", +"IPV4_IPV6" +], +"enumDescriptions": [ +"Default value, will be defaulted as IPV4 only", +"Cluster is IPV4 only", +"Cluster can use both IPv4 and IPv6" +], +"type": "string" +}, +"subnetIpv6CidrBlock": { +"description": "Output only. The subnet's IPv6 CIDR block used by nodes and pods.", +"readOnly": true, +"type": "string" +}, +"subnetworkName": { +"description": "A custom subnetwork name to be used if `create_subnetwork` is true. If this field is empty, then an automatic name will be chosen for the new subnetwork.", +"type": "string" +}, +"tpuIpv4CidrBlock": { +"description": "The IP address range of the Cloud TPUs in this cluster. If unspecified, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. If unspecified, the range will use the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.", +"type": "string" +}, +"useIpAliases": { +"description": "Whether alias IPs will be used for pod IPs in the cluster. This is used in conjunction with use_routes. It cannot be true if use_routes is true. If both use_ip_aliases and use_routes are false, then the server picks the default IP allocation mode", +"type": "boolean" +}, +"useRoutes": { +"description": "Whether routes will be used for pod IPs in the cluster. This is used in conjunction with use_ip_aliases. It cannot be true if use_ip_aliases is true. If both use_ip_aliases and use_routes are false, then the server picks the default IP allocation mode", +"type": "boolean" +} +}, +"type": "object" +}, +"IPEndpointsConfig": { +"description": "IP endpoints configuration.", +"id": "IPEndpointsConfig", +"properties": { +"authorizedNetworksConfig": { +"$ref": "MasterAuthorizedNetworksConfig", +"description": "Configuration of authorized networks. If enabled, restricts access to the control plane based on source IP. It is invalid to specify both Cluster.masterAuthorizedNetworksConfig and this field at the same time." +}, +"enablePublicEndpoint": { +"description": "Controls whether the control plane allows access through a public IP. It is invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this field at the same time.", +"type": "boolean" +}, +"enabled": { +"description": "Controls whether to allow direct IP access.", +"type": "boolean" +}, +"globalAccess": { +"description": "Controls whether the control plane's private endpoint is accessible from sources in other regions. It is invalid to specify both PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.", +"type": "boolean" +}, +"privateEndpoint": { +"description": "Output only. The internal IP address of this cluster's control plane. Only populated if enabled.", +"readOnly": true, +"type": "string" +}, +"privateEndpointSubnetwork": { +"description": "Subnet to provision the master's private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. It is invalid to specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at the same time.", +"type": "string" +}, +"publicEndpoint": { +"description": "Output only. The external IP address of this cluster's control plane. Only populated if enabled.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceConfig": { +"description": "IdentityServiceConfig is configuration for Identity Service which allows customers to use external identity providers with the K8S API", +"id": "IdentityServiceConfig", +"properties": { +"enabled": { +"description": "Whether to enable the Identity Service component", +"type": "boolean" +} +}, +"type": "object" +}, +"IntraNodeVisibilityConfig": { +"description": "IntraNodeVisibilityConfig contains the desired config of the intra-node visibility on this cluster.", +"id": "IntraNodeVisibilityConfig", +"properties": { +"enabled": { +"description": "Enables intra node visibility for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"Jwk": { +"description": "Jwk is a JSON Web Key as specified in RFC 7517", +"id": "Jwk", +"properties": { +"alg": { +"description": "Algorithm.", +"type": "string" +}, +"crv": { +"description": "Used for ECDSA keys.", +"type": "string" +}, +"e": { +"description": "Used for RSA keys.", +"type": "string" +}, +"kid": { +"description": "Key ID.", +"type": "string" +}, +"kty": { +"description": "Key Type.", +"type": "string" +}, +"n": { +"description": "Used for RSA keys.", +"type": "string" +}, +"use": { +"description": "Permitted uses for the public keys.", +"type": "string" +}, +"x": { +"description": "Used for ECDSA keys.", +"type": "string" +}, +"y": { +"description": "Used for ECDSA keys.", +"type": "string" +} +}, +"type": "object" +}, +"K8sBetaAPIConfig": { +"description": "K8sBetaAPIConfig , configuration for beta APIs", +"id": "K8sBetaAPIConfig", +"properties": { +"enabledApis": { +"description": "Enabled k8s beta APIs.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"KubernetesDashboard": { +"description": "Configuration for the Kubernetes Dashboard.", +"id": "KubernetesDashboard", +"properties": { +"disabled": { +"description": "Whether the Kubernetes Dashboard is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"LegacyAbac": { +"description": "Configuration for the legacy Attribute Based Access Control authorization mode.", +"id": "LegacyAbac", +"properties": { +"enabled": { +"description": "Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM.", +"type": "boolean" +} +}, +"type": "object" +}, +"LinuxNodeConfig": { +"description": "Parameters that can be configured on Linux nodes.", +"id": "LinuxNodeConfig", +"properties": { +"cgroupMode": { +"description": "cgroup_mode specifies the cgroup mode to be used on the node.", +"enum": [ +"CGROUP_MODE_UNSPECIFIED", +"CGROUP_MODE_V1", +"CGROUP_MODE_V2" +], +"enumDescriptions": [ +"CGROUP_MODE_UNSPECIFIED is when unspecified cgroup configuration is used. The default for the GKE node OS image will be used.", +"CGROUP_MODE_V1 specifies to use cgroupv1 for the cgroup configuration on the node image.", +"CGROUP_MODE_V2 specifies to use cgroupv2 for the cgroup configuration on the node image." +], +"type": "string" +}, +"hugepages": { +"$ref": "HugepagesConfig", +"description": "Optional. Amounts for 2M and 1G hugepages" +}, +"sysctls": { +"additionalProperties": { +"type": "string" +}, +"description": "The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse kernel.shmmni kernel.shmmax kernel.shmall", +"type": "object" +} +}, +"type": "object" +}, +"ListClustersResponse": { +"description": "ListClustersResponse is the result of ListClustersRequest.", +"id": "ListClustersResponse", +"properties": { +"clusters": { +"description": "A list of clusters in the project in the specified zone, or across all ones.", +"items": { +"$ref": "Cluster" +}, +"type": "array" +}, +"missingZones": { +"description": "If any zones are listed here, the list of clusters returned may be missing those zones.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListNodePoolsResponse": { +"description": "ListNodePoolsResponse is the result of ListNodePoolsRequest.", +"id": "ListNodePoolsResponse", +"properties": { +"nodePools": { +"description": "A list of node pools for a cluster.", +"items": { +"$ref": "NodePool" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "ListOperationsResponse is the result of ListOperationsRequest.", +"id": "ListOperationsResponse", +"properties": { +"missingZones": { +"description": "If any zones are listed here, the list of operations returned may be missing the operations from those zones.", +"items": { +"type": "string" +}, +"type": "array" +}, +"operations": { +"description": "A list of operations in the project in the specified zone.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUsableSubnetworksResponse": { +"description": "ListUsableSubnetworksResponse is the response of ListUsableSubnetworksRequest.", +"id": "ListUsableSubnetworksResponse", +"properties": { +"nextPageToken": { +"description": "This token allows you to get the next page of results for list requests. If the number of results is larger than `page_size`, use the `next_page_token` as a value for the query parameter `page_token` in the next request. The value will become empty when there are no more pages.", +"type": "string" +}, +"subnetworks": { +"description": "A list of usable subnetworks in the specified network project.", +"items": { +"$ref": "UsableSubnetwork" +}, +"type": "array" +} +}, +"type": "object" +}, +"LocalNvmeSsdBlockConfig": { +"description": "LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs", +"id": "LocalNvmeSsdBlockConfig", +"properties": { +"localSsdCount": { +"description": "Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"LoggingComponentConfig": { +"description": "LoggingComponentConfig is cluster logging component configuration.", +"id": "LoggingComponentConfig", +"properties": { +"enableComponents": { +"description": "Select components to collect logs. An empty set would disable all logging.", +"items": { +"enum": [ +"COMPONENT_UNSPECIFIED", +"SYSTEM_COMPONENTS", +"WORKLOADS", +"APISERVER", +"SCHEDULER", +"CONTROLLER_MANAGER", +"KCP_SSHD", +"KCP_CONNECTION" +], +"enumDescriptions": [ +"Default value. This shouldn't be used.", +"system components", +"workloads", +"kube-apiserver", +"kube-scheduler", +"kube-controller-manager", +"kcp-sshd", +"kcp connection logs" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoggingConfig": { +"description": "LoggingConfig is cluster logging configuration.", +"id": "LoggingConfig", +"properties": { +"componentConfig": { +"$ref": "LoggingComponentConfig", +"description": "Logging components configuration" +} +}, +"type": "object" +}, +"LoggingVariantConfig": { +"description": "LoggingVariantConfig specifies the behaviour of the logging component.", +"id": "LoggingVariantConfig", +"properties": { +"variant": { +"description": "Logging variant deployed on nodes.", +"enum": [ +"VARIANT_UNSPECIFIED", +"DEFAULT", +"MAX_THROUGHPUT" +], +"enumDescriptions": [ +"Default value. This shouldn't be used.", +"default logging variant.", +"maximum logging throughput variant." +], +"type": "string" +} +}, +"type": "object" +}, +"MaintenanceExclusionOptions": { +"description": "Represents the Maintenance exclusion option.", +"id": "MaintenanceExclusionOptions", +"properties": { +"scope": { +"description": "Scope specifies the upgrade scope which upgrades are blocked by the exclusion.", +"enum": [ +"NO_UPGRADES", +"NO_MINOR_UPGRADES", +"NO_MINOR_OR_NODE_UPGRADES" +], +"enumDescriptions": [ +"NO_UPGRADES excludes all upgrades, including patch upgrades and minor upgrades across control planes and nodes. This is the default exclusion behavior.", +"NO_MINOR_UPGRADES excludes all minor upgrades for the cluster, only patches are allowed.", +"NO_MINOR_OR_NODE_UPGRADES excludes all minor upgrades for the cluster, and also exclude all node pool upgrades. Only control plane patches are allowed." +], +"type": "string" +} +}, +"type": "object" +}, +"MaintenancePolicy": { +"description": "MaintenancePolicy defines the maintenance policy to be used for the cluster.", +"id": "MaintenancePolicy", +"properties": { +"resourceVersion": { +"description": "A hash identifying the version of this policy, so that updates to fields of the policy won't accidentally undo intermediate changes (and so that users of the API unaware of some fields won't accidentally remove other fields). Make a `get()` request to the cluster to get the current resource version and include it with requests to set the policy.", +"type": "string" +}, +"window": { +"$ref": "MaintenanceWindow", +"description": "Specifies the maintenance window in which maintenance may be performed." +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "MaintenanceWindow defines the maintenance window to be used for the cluster.", +"id": "MaintenanceWindow", +"properties": { +"dailyMaintenanceWindow": { +"$ref": "DailyMaintenanceWindow", +"description": "DailyMaintenanceWindow specifies a daily maintenance operation window." +}, +"maintenanceExclusions": { +"additionalProperties": { +"$ref": "TimeWindow" +}, +"description": "Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.", +"type": "object" +}, +"recurringWindow": { +"$ref": "RecurringTimeWindow", +"description": "RecurringWindow specifies some number of recurring time periods for maintenance to occur. The time windows may be overlapping. If no maintenance windows are set, maintenance can occur at any time." +} +}, +"type": "object" +}, +"ManagedPrometheusConfig": { +"description": "ManagedPrometheusConfig defines the configuration for Google Cloud Managed Service for Prometheus.", +"id": "ManagedPrometheusConfig", +"properties": { +"enabled": { +"description": "Enable Managed Collection.", +"type": "boolean" +} +}, +"type": "object" +}, +"MasterAuth": { +"description": "The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates.", +"id": "MasterAuth", +"properties": { +"clientCertificate": { +"description": "Output only. Base64-encoded public certificate used by clients to authenticate to the cluster endpoint. Issued only if client_certificate_config is set.", +"readOnly": true, +"type": "string" +}, +"clientCertificateConfig": { +"$ref": "ClientCertificateConfig", +"description": "Configuration for client certificate authentication on the cluster. For clusters before v1.12, if no configuration is specified, a client certificate is issued." +}, +"clientKey": { +"description": "Output only. Base64-encoded private key used by clients to authenticate to the cluster endpoint.", +"readOnly": true, +"type": "string" +}, +"clusterCaCertificate": { +"description": "Output only. Base64-encoded public certificate that is the root of trust for the cluster.", +"readOnly": true, +"type": "string" +}, +"password": { +"deprecated": true, +"description": "The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty. Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication", +"type": "string" +}, +"username": { +"deprecated": true, +"description": "The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, basic authentication can be disabled by leaving username unspecified (or setting it to the empty string). Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication", +"type": "string" +} +}, +"type": "object" +}, +"MasterAuthorizedNetworksConfig": { +"description": "Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.", +"id": "MasterAuthorizedNetworksConfig", +"properties": { +"cidrBlocks": { +"description": "cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.", +"items": { +"$ref": "CidrBlock" +}, +"type": "array" +}, +"enabled": { +"description": "Whether or not master authorized networks is enabled.", +"type": "boolean" +}, +"gcpPublicCidrsAccessEnabled": { +"description": "Whether master is accessbile via Google Compute Engine Public IP addresses.", +"type": "boolean" +}, +"privateEndpointEnforcementEnabled": { +"description": "Whether master authorized networks is enforced on private endpoint or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"MaxPodsConstraint": { +"description": "Constraints applied to pods.", +"id": "MaxPodsConstraint", +"properties": { +"maxPodsPerNode": { +"description": "Constraint enforced on the max num of pods per node.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"MeshCertificates": { +"description": "Configuration for issuance of mTLS keys and certificates to Kubernetes pods.", +"id": "MeshCertificates", +"properties": { +"enableCertificates": { +"description": "enable_certificates controls issuance of workload mTLS certificates. If set, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster, which can then be configured by creating a WorkloadCertificateConfig Custom Resource. Requires Workload Identity (workload_pool must be non-empty).", +"type": "boolean" +} +}, +"type": "object" +}, +"Metric": { +"description": "Progress metric is (string, int|float|string) pair.", +"id": "Metric", +"properties": { +"doubleValue": { +"description": "For metrics with floating point value.", +"format": "double", +"type": "number" +}, +"intValue": { +"description": "For metrics with integer value.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Required. Metric name, e.g., \"nodes total\", \"percent done\".", +"type": "string" +}, +"stringValue": { +"description": "For metrics with custom values (ratios, visual progress, etc.).", +"type": "string" +} +}, +"type": "object" +}, +"MonitoringComponentConfig": { +"description": "MonitoringComponentConfig is cluster monitoring component configuration.", +"id": "MonitoringComponentConfig", +"properties": { +"enableComponents": { +"description": "Select components to collect metrics. An empty set would disable all monitoring.", +"items": { +"enum": [ +"COMPONENT_UNSPECIFIED", +"SYSTEM_COMPONENTS", +"APISERVER", +"SCHEDULER", +"CONTROLLER_MANAGER", +"STORAGE", +"HPA", +"POD", +"DAEMONSET", +"DEPLOYMENT", +"STATEFULSET", +"CADVISOR", +"KUBELET", +"DCGM" +], +"enumDescriptions": [ +"Default value. This shouldn't be used.", +"system components", +"kube-apiserver", +"kube-scheduler", +"kube-controller-manager", +"Storage", +"Horizontal Pod Autoscaling", +"Pod", +"DaemonSet", +"Deployment", +"Statefulset", +"CADVISOR", +"KUBELET", +"NVIDIA Data Center GPU Manager (DCGM)" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"MonitoringConfig": { +"description": "MonitoringConfig is cluster monitoring configuration.", +"id": "MonitoringConfig", +"properties": { +"advancedDatapathObservabilityConfig": { +"$ref": "AdvancedDatapathObservabilityConfig", +"description": "Configuration of Advanced Datapath Observability features." +}, +"componentConfig": { +"$ref": "MonitoringComponentConfig", +"description": "Monitoring components configuration" +}, +"managedPrometheusConfig": { +"$ref": "ManagedPrometheusConfig", +"description": "Enable Google Cloud Managed Service for Prometheus in the cluster." +} +}, +"type": "object" +}, +"NetworkConfig": { +"description": "NetworkConfig reports the relative names of network & subnetwork.", +"id": "NetworkConfig", +"properties": { +"datapathProvider": { +"description": "The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.", +"enum": [ +"DATAPATH_PROVIDER_UNSPECIFIED", +"LEGACY_DATAPATH", +"ADVANCED_DATAPATH" +], +"enumDescriptions": [ +"Default value.", +"Use the IPTables implementation based on kube-proxy.", +"Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE Dataplane V2 documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2) for more." +], +"type": "string" +}, +"defaultEnablePrivateNodes": { +"description": "Controls whether by default nodes have private IP addresses only. It is invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field at the same time. To update the default setting, use ClusterUpdate.desired_default_enable_private_nodes", +"type": "boolean" +}, +"defaultSnatStatus": { +"$ref": "DefaultSnatStatus", +"description": "Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when default_snat_status is disabled. When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic." +}, +"disableL4LbFirewallReconciliation": { +"description": "Disable L4 load balancer VPC firewalls to enable firewall policies.", +"type": "boolean" +}, +"dnsConfig": { +"$ref": "DNSConfig", +"description": "DNSConfig contains clusterDNS config for this cluster." +}, +"enableCiliumClusterwideNetworkPolicy": { +"description": "Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.", +"type": "boolean" +}, +"enableFqdnNetworkPolicy": { +"description": "Whether FQDN Network Policy is enabled on this cluster.", +"type": "boolean" +}, +"enableIntraNodeVisibility": { +"description": "Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.", +"type": "boolean" +}, +"enableL4ilbSubsetting": { +"description": "Whether L4ILB Subsetting is enabled for this cluster.", +"type": "boolean" +}, +"enableMultiNetworking": { +"description": "Whether multi-networking is enabled for this cluster.", +"type": "boolean" +}, +"gatewayApiConfig": { +"$ref": "GatewayAPIConfig", +"description": "GatewayAPIConfig contains the desired config of Gateway API on this cluster." +}, +"inTransitEncryptionConfig": { +"description": "Specify the details of in-transit encryption. Now named inter-node transparent encryption.", +"enum": [ +"IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED", +"IN_TRANSIT_ENCRYPTION_DISABLED", +"IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" +], +"enumDescriptions": [ +"Unspecified, will be inferred as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED.", +"In-transit encryption is disabled.", +"Data in-transit is encrypted using inter-node transparent encryption." +], +"type": "string" +}, +"network": { +"description": "Output only. The relative name of the Google Compute Engine network(https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. Example: projects/my-project/global/networks/my-network", +"readOnly": true, +"type": "string" +}, +"networkPerformanceConfig": { +"$ref": "ClusterNetworkPerformanceConfig", +"description": "Network bandwidth tier configuration." +}, +"privateIpv6GoogleAccess": { +"description": "The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4)", +"enum": [ +"PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED", +"PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED", +"PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE", +"PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL" +], +"enumDescriptions": [ +"Default value. Same as DISABLED", +"No private access to or from Google Services", +"Enables private IPv6 access to Google Services from GKE", +"Enables private IPv6 access to and from Google Services" +], +"type": "string" +}, +"serviceExternalIpsConfig": { +"$ref": "ServiceExternalIPsConfig", +"description": "ServiceExternalIPsConfig specifies if services with externalIPs field are blocked or not." +}, +"subnetwork": { +"description": "Output only. The relative name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected. Example: projects/my-project/regions/us-central1/subnetworks/my-subnet", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NetworkPerformanceConfig": { +"description": "Configuration of all network bandwidth tiers", +"id": "NetworkPerformanceConfig", +"properties": { +"totalEgressBandwidthTier": { +"description": "Specifies the total network bandwidth tier for the NodePool.", +"enum": [ +"TIER_UNSPECIFIED", +"TIER_1" +], +"enumDescriptions": [ +"Default value", +"Higher bandwidth, actual values based on VM size." +], +"type": "string" +} +}, +"type": "object" +}, +"NetworkPolicy": { +"description": "Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/", +"id": "NetworkPolicy", +"properties": { +"enabled": { +"description": "Whether network policy is enabled on the cluster.", +"type": "boolean" +}, +"provider": { +"description": "The selected network policy provider.", +"enum": [ +"PROVIDER_UNSPECIFIED", +"CALICO" +], +"enumDescriptions": [ +"Not set", +"Tigera (Calico Felix)." +], +"type": "string" +} +}, +"type": "object" +}, +"NetworkPolicyConfig": { +"description": "Configuration for NetworkPolicy. This only tracks whether the addon is enabled or not on the Master, it does not track whether network policy is enabled for the nodes.", +"id": "NetworkPolicyConfig", +"properties": { +"disabled": { +"description": "Whether NetworkPolicy is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"NetworkTags": { +"description": "Collection of Compute Engine network tags that can be applied to a node's underlying VM instance.", +"id": "NetworkTags", +"properties": { +"tags": { +"description": "List of network tags.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"NodeAffinity": { +"description": "Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).", +"id": "NodeAffinity", +"properties": { +"key": { +"description": "Key for NodeAffinity.", +"type": "string" +}, +"operator": { +"description": "Operator for NodeAffinity.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"IN", +"NOT_IN" +], +"enumDescriptions": [ +"Invalid or unspecified affinity operator.", +"Affinity operator.", +"Anti-affinity operator." +], +"type": "string" +}, +"values": { +"description": "Values for NodeAffinity.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"NodeConfig": { +"description": "Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead.", +"id": "NodeConfig", +"properties": { +"accelerators": { +"description": "A list of hardware accelerators to be attached to each node. See https://cloud.google.com/compute/docs/gpus for more information about support for GPUs.", +"items": { +"$ref": "AcceleratorConfig" +}, +"type": "array" +}, +"advancedMachineFeatures": { +"$ref": "AdvancedMachineFeatures", +"description": "Advanced features for the Compute Engine VM." +}, +"bootDiskKmsKey": { +"description": " The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption", +"type": "string" +}, +"confidentialNodes": { +"$ref": "ConfidentialNodes", +"description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." +}, +"containerdConfig": { +"$ref": "ContainerdConfig", +"description": "Parameters for containerd customization." +}, +"diskSizeGb": { +"description": "Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.", +"format": "int32", +"type": "integer" +}, +"diskType": { +"description": "Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is 'pd-standard'", +"type": "string" +}, +"effectiveCgroupMode": { +"description": "Output only. effective_cgroup_mode is the cgroup mode actually used by the node pool. It is determined by the cgroup mode specified in the LinuxNodeConfig or the default cgroup mode based on the cluster creation version.", +"enum": [ +"EFFECTIVE_CGROUP_MODE_UNSPECIFIED", +"EFFECTIVE_CGROUP_MODE_V1", +"EFFECTIVE_CGROUP_MODE_V2" +], +"enumDescriptions": [ +"EFFECTIVE_CGROUP_MODE_UNSPECIFIED means the cgroup configuration for the node pool is unspecified, i.e. the node pool is a Windows node pool.", +"CGROUP_MODE_V1 means the node pool is configured to use cgroupv1 for the cgroup configuration.", +"CGROUP_MODE_V2 means the node pool is configured to use cgroupv2 for the cgroup configuration." +], +"readOnly": true, +"type": "string" +}, +"enableConfidentialStorage": { +"description": "Optional. Reserved for future use.", +"type": "boolean" +}, +"ephemeralStorageLocalSsdConfig": { +"$ref": "EphemeralStorageLocalSsdConfig", +"description": "Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk." +}, +"fastSocket": { +"$ref": "FastSocket", +"description": "Enable or disable NCCL fast socket for the node pool." +}, +"gcfsConfig": { +"$ref": "GcfsConfig", +"description": "Google Container File System (image streaming) configs." +}, +"gvnic": { +"$ref": "VirtualNIC", +"description": "Enable or disable gvnic in the node pool." +}, +"imageType": { +"description": "The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.", +"type": "string" +}, +"kubeletConfig": { +"$ref": "NodeKubeletConfig", +"description": "Node kubelet configs." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/", +"type": "object" +}, +"linuxNodeConfig": { +"$ref": "LinuxNodeConfig", +"description": "Parameters that can be configured on Linux nodes." +}, +"localNvmeSsdBlockConfig": { +"$ref": "LocalNvmeSsdBlockConfig", +"description": "Parameters for using raw-block Local NVMe SSDs." +}, +"localSsdCount": { +"description": "The number of local SSD disks to be attached to the node. The limit for this value is dependent upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information.", +"format": "int32", +"type": "integer" +}, +"localSsdEncryptionMode": { +"description": "Specifies which method should be used for encrypting the Local SSDs attahced to the node.", +"enum": [ +"LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED", +"STANDARD_ENCRYPTION", +"EPHEMERAL_KEY_ENCRYPTION" +], +"enumDescriptions": [ +"The given node will be encrypted using keys managed by Google infrastructure and the keys will be deleted when the node is deleted.", +"The given node will be encrypted using keys managed by Google infrastructure and the keys will be deleted when the node is deleted.", +"The given node will opt-in for using ephemeral key for encryption of Local SSDs. The Local SSDs will not be able to recover data in case of node crash." +], +"type": "string" +}, +"loggingConfig": { +"$ref": "NodePoolLoggingConfig", +"description": "Logging configuration." +}, +"machineType": { +"description": "The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types) If unspecified, the default machine type is `e2-medium`.", +"type": "string" +}, +"maxRunDuration": { +"description": "The maximum duration for the nodes to exist. If unspecified, the nodes can exist indefinitely.", +"format": "google-duration", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - \"cluster-location\" - \"cluster-name\" - \"cluster-uid\" - \"configure-sh\" - \"containerd-configure-sh\" - \"enable-os-login\" - \"gci-ensure-gke-docker\" - \"gci-metrics-enabled\" - \"gci-update-strategy\" - \"instance-template\" - \"kube-env\" - \"startup-script\" - \"user-data\" - \"disable-address-manager\" - \"windows-startup-script-ps1\" - \"common-psm1\" - \"k8s-node-setup-psm1\" - \"install-ssh-psm1\" - \"user-profile-psm1\" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.", +"type": "object" +}, +"minCpuPlatform": { +"description": "Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as `minCpuPlatform: \"Intel Haswell\"` or `minCpuPlatform: \"Intel Sandy Bridge\"`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)", +"type": "string" +}, +"nodeGroup": { +"description": "Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).", +"type": "string" +}, +"oauthScopes": { +"description": "The set of Google API scopes to be made available on all of the node VMs under the \"default\" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](https://cloud.google.com/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.", +"items": { +"type": "string" +}, +"type": "array" +}, +"preemptible": { +"description": "Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more information about preemptible VM instances.", +"type": "boolean" +}, +"reservationAffinity": { +"$ref": "ReservationAffinity", +"description": "The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool." +}, +"resourceLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for the node pool to use to annotate any related Google Compute Engine resources.", +"type": "object" +}, +"resourceManagerTags": { +"$ref": "ResourceManagerTags", +"description": "A map of resource manager tag keys and values to be attached to the nodes." +}, +"sandboxConfig": { +"$ref": "SandboxConfig", +"description": "Sandbox configuration for this node." +}, +"secondaryBootDiskUpdateStrategy": { +"$ref": "SecondaryBootDiskUpdateStrategy", +"description": "Secondary boot disk update strategy." +}, +"secondaryBootDisks": { +"description": "List of secondary boot disks attached to the nodes.", +"items": { +"$ref": "SecondaryBootDisk" +}, +"type": "array" +}, +"serviceAccount": { +"description": "The Google Cloud Platform Service Account to be used by the node VMs. Specify the email address of the Service Account; otherwise, if no Service Account is specified, the \"default\" service account is used.", +"type": "string" +}, +"shieldedInstanceConfig": { +"$ref": "ShieldedInstanceConfig", +"description": "Shielded Instance options." +}, +"soleTenantConfig": { +"$ref": "SoleTenantConfig", +"description": "Parameters for node pools to be backed by shared sole tenant node groups." +}, +"spot": { +"description": "Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.", +"type": "boolean" +}, +"storagePools": { +"description": "List of Storage Pools where boot disks are provisioned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tags": { +"description": "The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.", +"items": { +"type": "string" +}, +"type": "array" +}, +"taints": { +"description": "List of kubernetes taints to be applied to each node. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/", +"items": { +"$ref": "NodeTaint" +}, +"type": "array" +}, +"windowsNodeConfig": { +"$ref": "WindowsNodeConfig", +"description": "Parameters that can be configured on Windows nodes." +}, +"workloadMetadataConfig": { +"$ref": "WorkloadMetadataConfig", +"description": "The workload metadata configuration for this node." +} +}, +"type": "object" +}, +"NodeConfigDefaults": { +"description": "Subset of NodeConfig message that has defaults.", +"id": "NodeConfigDefaults", +"properties": { +"containerdConfig": { +"$ref": "ContainerdConfig", +"description": "Parameters for containerd customization." +}, +"gcfsConfig": { +"$ref": "GcfsConfig", +"description": "GCFS (Google Container File System, also known as Riptide) options." +}, +"loggingConfig": { +"$ref": "NodePoolLoggingConfig", +"description": "Logging configuration for node pools." +}, +"nodeKubeletConfig": { +"$ref": "NodeKubeletConfig", +"description": "NodeKubeletConfig controls the defaults for new node-pools. Currently only `insecure_kubelet_readonly_port_enabled` can be set here." +} +}, +"type": "object" +}, +"NodeKubeletConfig": { +"description": "Node kubelet configs.", +"id": "NodeKubeletConfig", +"properties": { +"cpuCfsQuota": { +"description": "Enable CPU CFS quota enforcement for containers that specify CPU limits. This option is enabled by default which makes kubelet use CFS quota (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to enforce container CPU limits. Otherwise, CPU limits will not be enforced at all. Disable this option to mitigate CPU throttling problems while still having your pods to be in Guaranteed QoS class by specifying the CPU limits. The default value is 'true' if unspecified.", +"type": "boolean" +}, +"cpuCfsQuotaPeriod": { +"description": "Set the CPU CFS quota period value 'cpu.cfs_period_us'. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as \"300ms\". Valid time units are \"ns\", \"us\" (or \"\u00b5s\"), \"ms\", \"s\", \"m\", \"h\". The value must be a positive duration.", +"type": "string" +}, +"cpuManagerPolicy": { +"description": "Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * \"none\": the default, which represents the existing scheduling behavior. * \"static\": allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is 'none' if unspecified.", +"type": "string" +}, +"insecureKubeletReadonlyPortEnabled": { +"description": "Enable or disable Kubelet read only port.", +"type": "boolean" +}, +"podPidsLimit": { +"description": "Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"NodeLabels": { +"description": "Collection of node-level [Kubernetes labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels).", +"id": "NodeLabels", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of node label keys and node label values.", +"type": "object" +} +}, +"type": "object" +}, +"NodeManagement": { +"description": "NodeManagement defines the set of node management services turned on for the node pool.", +"id": "NodeManagement", +"properties": { +"autoRepair": { +"description": "A flag that specifies whether the node auto-repair is enabled for the node pool. If enabled, the nodes in this node pool will be monitored and, if they fail health checks too many times, an automatic repair action will be triggered.", +"type": "boolean" +}, +"autoUpgrade": { +"description": "A flag that specifies whether node auto-upgrade is enabled for the node pool. If enabled, node auto-upgrade helps keep the nodes in your node pool up to date with the latest release version of Kubernetes.", +"type": "boolean" +}, +"upgradeOptions": { +"$ref": "AutoUpgradeOptions", +"description": "Specifies the Auto Upgrade knobs for the node pool." +} +}, +"type": "object" +}, +"NodeNetworkConfig": { +"description": "Parameters for node pool-level network config.", +"id": "NodeNetworkConfig", +"properties": { +"additionalNodeNetworkConfigs": { +"description": "We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface", +"items": { +"$ref": "AdditionalNodeNetworkConfig" +}, +"type": "array" +}, +"additionalPodNetworkConfigs": { +"description": "We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node", +"items": { +"$ref": "AdditionalPodNetworkConfig" +}, +"type": "array" +}, +"createPodRange": { +"description": "Input only. Whether to create a new range for pod IPs in this node pool. Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are not specified. If neither `create_pod_range` or `pod_range` are specified, the cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is used. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.", +"type": "boolean" +}, +"enablePrivateNodes": { +"description": "Whether nodes have internal IP addresses only. If enable_private_nodes is not specified, then the value is derived from Cluster.NetworkConfig.default_enable_private_nodes", +"type": "boolean" +}, +"networkPerformanceConfig": { +"$ref": "NetworkPerformanceConfig", +"description": "Network bandwidth tier configuration." +}, +"podCidrOverprovisionConfig": { +"$ref": "PodCIDROverprovisionConfig", +"description": "[PRIVATE FIELD] Pod CIDR size overprovisioning config for the nodepool. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is rounded off to next power of 2 and we then double that to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled." +}, +"podIpv4CidrBlock": { +"description": "The IP address range for pod IPs in this node pool. Only applicable if `create_pod_range` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.", +"type": "string" +}, +"podIpv4RangeUtilization": { +"description": "Output only. The utilization of the IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"podRange": { +"description": "The ID of the secondary range for pod IPs. If `create_pod_range` is true, this ID is used for the new range. If `create_pod_range` is false, uses an existing secondary range with this ID. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.", +"type": "string" +} +}, +"type": "object" +}, +"NodePool": { +"description": "NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.", +"id": "NodePool", +"properties": { +"autoscaling": { +"$ref": "NodePoolAutoscaling", +"description": "Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present." +}, +"bestEffortProvisioning": { +"$ref": "BestEffortProvisioning", +"description": "Enable best effort provisioning for nodes" +}, +"conditions": { +"description": "Which conditions caused the current node pool state.", +"items": { +"$ref": "StatusCondition" +}, +"type": "array" +}, +"config": { +"$ref": "NodeConfig", +"description": "The node configuration of the pool." +}, +"etag": { +"description": "This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"initialNodeCount": { +"description": "The initial node count for the pool. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota.", +"format": "int32", +"type": "integer" +}, +"instanceGroupUrls": { +"description": "Output only. The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"locations": { +"description": "The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool's nodes should be located. If this value is unspecified during node pool creation, the [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations) value will be used, instead. Warning: changing node pool locations will result in nodes being added and/or removed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"management": { +"$ref": "NodeManagement", +"description": "NodeManagement configuration for this NodePool." +}, +"maxPodsConstraint": { +"$ref": "MaxPodsConstraint", +"description": "The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool." +}, +"name": { +"description": "The name of the node pool.", +"type": "string" +}, +"networkConfig": { +"$ref": "NodeNetworkConfig", +"description": "Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults." +}, +"placementPolicy": { +"$ref": "PlacementPolicy", +"description": "Specifies the node placement policy." +}, +"podIpv4CidrSize": { +"description": "Output only. The pod CIDR block size per node in this node pool.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"queuedProvisioning": { +"$ref": "QueuedProvisioning", +"description": "Specifies the configuration of queued provisioning." +}, +"selfLink": { +"description": "Output only. Server-defined URL for the resource.", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. The status of the nodes in this pool instance.", +"enum": [ +"STATUS_UNSPECIFIED", +"PROVISIONING", +"RUNNING", +"RUNNING_WITH_ERROR", +"RECONCILING", +"STOPPING", +"ERROR" +], +"enumDescriptions": [ +"Not set.", +"The PROVISIONING state indicates the node pool is being created.", +"The RUNNING state indicates the node pool has been created and is fully usable.", +"The RUNNING_WITH_ERROR state indicates the node pool has been created and is partially usable. Some error state has occurred and some functionality may be impaired. Customer may need to reissue a request or trigger a new update.", +"The RECONCILING state indicates that some work is actively being done on the node pool, such as upgrading node software. Details can be found in the `statusMessage` field.", +"The STOPPING state indicates the node pool is being deleted.", +"The ERROR state indicates the node pool may be unusable. Details can be found in the `statusMessage` field." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"deprecated": true, +"description": "Output only. Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.", +"readOnly": true, +"type": "string" +}, +"updateInfo": { +"$ref": "UpdateInfo", +"description": "Output only. Update info contains relevant information during a node pool update.", +"readOnly": true +}, +"upgradeSettings": { +"$ref": "UpgradeSettings", +"description": "Upgrade settings control disruption and speed of the upgrade." +}, +"version": { +"description": "The version of Kubernetes running on this NodePool's nodes. If unspecified, it defaults as described [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version).", +"type": "string" +} +}, +"type": "object" +}, +"NodePoolAutoConfig": { +"description": "Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.", +"id": "NodePoolAutoConfig", +"properties": { +"linuxNodeConfig": { +"$ref": "LinuxNodeConfig", +"description": "Output only. Configuration options for Linux nodes.", +"readOnly": true +}, +"networkTags": { +"$ref": "NetworkTags", +"description": "The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster creation. Each tag within the list must comply with RFC1035." +}, +"nodeKubeletConfig": { +"$ref": "NodeKubeletConfig", +"description": "NodeKubeletConfig controls the defaults for autoprovisioned node-pools. Currently only `insecure_kubelet_readonly_port_enabled` can be set here." +}, +"resourceManagerTags": { +"$ref": "ResourceManagerTags", +"description": "Resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies." +} +}, +"type": "object" +}, +"NodePoolAutoscaling": { +"description": "NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.", +"id": "NodePoolAutoscaling", +"properties": { +"autoprovisioned": { +"description": "Can this node pool be deleted automatically.", +"type": "boolean" +}, +"enabled": { +"description": "Is autoscaling enabled for this node pool.", +"type": "boolean" +}, +"locationPolicy": { +"description": "Location policy used when scaling up a nodepool.", +"enum": [ +"LOCATION_POLICY_UNSPECIFIED", +"BALANCED", +"ANY" +], +"enumDescriptions": [ +"Not set.", +"BALANCED is a best effort policy that aims to balance the sizes of different zones.", +"ANY policy picks zones that have the highest capacity available." +], +"type": "string" +}, +"maxNodeCount": { +"description": "Maximum number of nodes for one location in the node pool. Must be >= min_node_count. There has to be enough quota to scale up the cluster.", +"format": "int32", +"type": "integer" +}, +"minNodeCount": { +"description": "Minimum number of nodes for one location in the node pool. Must be greater than or equal to 0 and less than or equal to max_node_count.", +"format": "int32", +"type": "integer" +}, +"totalMaxNodeCount": { +"description": "Maximum number of nodes in the node pool. Must be greater than or equal to total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields.", +"format": "int32", +"type": "integer" +}, +"totalMinNodeCount": { +"description": "Minimum number of nodes in the node pool. Must be greater than or equal to 0 and less than or equal to total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"NodePoolDefaults": { +"description": "Subset of Nodepool message that has defaults.", +"id": "NodePoolDefaults", +"properties": { +"nodeConfigDefaults": { +"$ref": "NodeConfigDefaults", +"description": "Subset of NodeConfig message that has defaults." +} +}, +"type": "object" +}, +"NodePoolLoggingConfig": { +"description": "NodePoolLoggingConfig specifies logging configuration for nodepools.", +"id": "NodePoolLoggingConfig", +"properties": { +"variantConfig": { +"$ref": "LoggingVariantConfig", +"description": "Logging variant configuration." +} +}, +"type": "object" +}, +"NodeTaint": { +"description": "Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.", +"id": "NodeTaint", +"properties": { +"effect": { +"description": "Effect for taint.", +"enum": [ +"EFFECT_UNSPECIFIED", +"NO_SCHEDULE", +"PREFER_NO_SCHEDULE", +"NO_EXECUTE" +], +"enumDescriptions": [ +"Not set", +"NoSchedule", +"PreferNoSchedule", +"NoExecute" +], +"type": "string" +}, +"key": { +"description": "Key for taint.", +"type": "string" +}, +"value": { +"description": "Value for taint.", +"type": "string" +} +}, +"type": "object" +}, +"NodeTaints": { +"description": "Collection of Kubernetes [node taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration).", +"id": "NodeTaints", +"properties": { +"taints": { +"description": "List of node taints.", +"items": { +"$ref": "NodeTaint" +}, +"type": "array" +} +}, +"type": "object" +}, +"NotificationConfig": { +"description": "NotificationConfig is the configuration of notifications.", +"id": "NotificationConfig", +"properties": { +"pubsub": { +"$ref": "PubSub", +"description": "Notification config for Pub/Sub." +} +}, +"type": "object" +}, +"Operation": { +"description": "This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.", +"id": "Operation", +"properties": { +"clusterConditions": { +"deprecated": true, +"description": "Which conditions caused the current cluster state. Deprecated. Use field error instead.", +"items": { +"$ref": "StatusCondition" +}, +"type": "array" +}, +"detail": { +"description": "Output only. Detailed operation progress, if available.", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"readOnly": true, +"type": "string" +}, +"error": { +"$ref": "Status", +"description": "The error result of the operation in case of failure." +}, +"location": { +"description": "Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The server-assigned ID for the operation.", +"readOnly": true, +"type": "string" +}, +"nodepoolConditions": { +"deprecated": true, +"description": "Which conditions caused the current node pool state. Deprecated. Use field error instead.", +"items": { +"$ref": "StatusCondition" +}, +"type": "array" +}, +"operationType": { +"description": "Output only. The operation type.", +"enum": [ +"TYPE_UNSPECIFIED", +"CREATE_CLUSTER", +"DELETE_CLUSTER", +"UPGRADE_MASTER", +"UPGRADE_NODES", +"REPAIR_CLUSTER", +"UPDATE_CLUSTER", +"CREATE_NODE_POOL", +"DELETE_NODE_POOL", +"SET_NODE_POOL_MANAGEMENT", +"AUTO_REPAIR_NODES", +"AUTO_UPGRADE_NODES", +"SET_LABELS", +"SET_MASTER_AUTH", +"SET_NODE_POOL_SIZE", +"SET_NETWORK_POLICY", +"SET_MAINTENANCE_POLICY", +"RESIZE_CLUSTER", +"FLEET_FEATURE_UPGRADE" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +true, +true, +true, +false, +true, +true, +false, +false +], +"enumDescriptions": [ +"Not set.", +"The cluster is being created. The cluster should be assumed to be unusable until the operation finishes. In the event of the operation failing, the cluster will enter the ERROR state and eventually be deleted.", +"The cluster is being deleted. The cluster should be assumed to be unusable as soon as this operation starts. In the event of the operation failing, the cluster will enter the ERROR state and the deletion will be automatically retried until completed.", +"The cluster version is being updated. Note that this includes \"upgrades\" to the same version, which are simply a recreation. This also includes [auto-upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-upgrades#upgrading_automatically). For more details, see [documentation on cluster upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-upgrades#cluster_upgrades).", +"A node pool is being updated. Despite calling this an \"upgrade\", this includes most forms of updates to node pools. This also includes [auto-upgrades](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-upgrades). This operation sets the progress field and may be canceled. The upgrade strategy depends on [node pool configuration](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pool-upgrade-strategies). The nodes are generally still usable during this operation.", +"A problem has been detected with the control plane and is being repaired. This operation type is initiated by GKE. For more details, see [documentation on repairs](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions#repairs).", +"The cluster is being updated. This is a broad category of operations and includes operations that only change metadata as well as those that must recreate the entire cluster. If the control plane must be recreated, this will cause temporary downtime for zonal clusters. Some features require recreating the nodes as well. Those will be recreated as separate operations and the update may not be completely functional until the node pools recreations finish. Node recreations will generally follow [maintenance policies](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions). Some GKE-initiated operations use this type. This includes certain types of auto-upgrades and incident mitigations.", +"A node pool is being created. The node pool should be assumed to be unusable until this operation finishes. In the event of an error, the node pool may be partially created. If enabled, [node autoprovisioning](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning) may have automatically initiated such operations.", +"The node pool is being deleted. The node pool should be assumed to be unusable as soon as this operation starts.", +"The node pool's manamagent field is being updated. These operations only update metadata and may be concurrent with most other operations.", +"A problem has been detected with nodes and [they are being repaired](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-repair). This operation type is initiated by GKE, typically automatically. This operation may be concurrent with other operations and there may be multiple repairs occurring on the same node pool.", +"Unused. Automatic node upgrade uses UPGRADE_NODES.", +"Unused. Updating labels uses UPDATE_CLUSTER.", +"Unused. Updating master auth uses UPDATE_CLUSTER.", +"The node pool is being resized. With the exception of resizing to or from size zero, the node pool is generally usable during this operation.", +"Unused. Updating network policy uses UPDATE_CLUSTER.", +"Unused. Updating maintenance policy uses UPDATE_CLUSTER.", +"The control plane is being resized. This operation type is initiated by GKE. These operations are often performed preemptively to ensure that the control plane has sufficient resources and is not typically an indication of issues. For more details, see [documentation on resizes](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions#repairs).", +"Fleet features of GKE Enterprise are being upgraded. The cluster should be assumed to be blocked for other upgrades until the operation finishes." +], +"readOnly": true, +"type": "string" +}, +"progress": { +"$ref": "OperationProgress", +"description": "Output only. Progress information for an operation.", +"readOnly": true +}, +"selfLink": { +"description": "Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. The current status of the operation.", +"enum": [ +"STATUS_UNSPECIFIED", +"PENDING", +"RUNNING", +"DONE", +"ABORTING" +], +"enumDescriptions": [ +"Not set.", +"The operation has been created.", +"The operation is currently running.", +"The operation is done, either cancelled or completed.", +"The operation is aborting." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"deprecated": true, +"description": "Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.", +"readOnly": true, +"type": "string" +}, +"targetLink": { +"description": "Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`", +"readOnly": true, +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OperationError": { +"description": "OperationError records errors seen from CloudKMS keys encountered during updates to DatabaseEncryption configuration.", +"id": "OperationError", +"properties": { +"errorMessage": { +"description": "Description of the error seen during the operation.", +"type": "string" +}, +"keyName": { +"description": "CloudKMS key resource that had the error.", +"type": "string" +}, +"timestamp": { +"description": "Time when the CloudKMS error was seen.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"OperationProgress": { +"description": "Information about operation (or operation stage) progress.", +"id": "OperationProgress", +"properties": { +"metrics": { +"description": "Progress metric bundle, for example: metrics: [{name: \"nodes done\", int_value: 15}, {name: \"nodes total\", int_value: 32}] or metrics: [{name: \"progress\", double_value: 0.56}, {name: \"progress scale\", double_value: 1.0}]", +"items": { +"$ref": "Metric" +}, +"type": "array" +}, +"name": { +"description": "A non-parameterized string describing an operation stage. Unset for single-stage operations.", +"type": "string" +}, +"stages": { +"description": "Substages of an operation or a stage.", +"items": { +"$ref": "OperationProgress" +}, +"type": "array" +}, +"status": { +"description": "Status of an operation stage. Unset for single-stage operations.", +"enum": [ +"STATUS_UNSPECIFIED", +"PENDING", +"RUNNING", +"DONE", +"ABORTING" +], +"enumDescriptions": [ +"Not set.", +"The operation has been created.", +"The operation is currently running.", +"The operation is done, either cancelled or completed.", +"The operation is aborting." +], +"type": "string" +} +}, +"type": "object" +}, +"ParallelstoreCsiDriverConfig": { +"description": "Configuration for the Cloud Storage Parallelstore CSI driver.", +"id": "ParallelstoreCsiDriverConfig", +"properties": { +"enabled": { +"description": "Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"ParentProductConfig": { +"description": "ParentProductConfig is the configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of a GKE cluster and take the ownership of the cluster.", +"id": "ParentProductConfig", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels contain the configuration of the parent product.", +"type": "object" +}, +"productName": { +"description": "Name of the parent product associated with the cluster.", +"type": "string" +} +}, +"type": "object" +}, +"PlacementPolicy": { +"description": "PlacementPolicy defines the placement policy used by the node pool.", +"id": "PlacementPolicy", +"properties": { +"policyName": { +"description": "If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.", +"type": "string" +}, +"tpuTopology": { +"description": "Optional. TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies", +"type": "string" +}, +"type": { +"description": "The type of placement.", +"enum": [ +"TYPE_UNSPECIFIED", +"COMPACT" +], +"enumDescriptions": [ +"TYPE_UNSPECIFIED specifies no requirements on nodes placement.", +"COMPACT specifies node placement in the same availability domain to ensure low communication latency." +], +"type": "string" +} +}, +"type": "object" +}, +"PodCIDROverprovisionConfig": { +"description": "[PRIVATE FIELD] Config for pod CIDR size overprovisioning.", +"id": "PodCIDROverprovisionConfig", +"properties": { +"disable": { +"description": "Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default.", +"type": "boolean" +} +}, +"type": "object" +}, +"PrivateClusterConfig": { +"description": "Configuration options for private clusters.", +"id": "PrivateClusterConfig", +"properties": { +"enablePrivateEndpoint": { +"deprecated": true, +"description": "Whether the master's internal IP address is used as the cluster endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint instead. Note that the value of enable_public_endpoint is reversed: if enable_private_endpoint is false, then enable_public_endpoint will be true.", +"type": "boolean" +}, +"enablePrivateNodes": { +"deprecated": true, +"description": "Whether nodes have internal IP addresses only. If enabled, all nodes are given only RFC 1918 private addresses and communicate with the master via private networking. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.", +"type": "boolean" +}, +"masterGlobalAccessConfig": { +"$ref": "PrivateClusterMasterGlobalAccessConfig", +"deprecated": true, +"description": "Controls master global access settings. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_global_access instead." +}, +"masterIpv4CidrBlock": { +"description": "The IP range in CIDR notation to use for the hosted master network. This range will be used for assigning internal IP addresses to the master or set of masters, as well as the ILB VIP. This range must not overlap with any other ranges in use within the cluster's network.", +"type": "string" +}, +"peeringName": { +"description": "Output only. The peering name in the customer VPC used by this cluster.", +"readOnly": true, +"type": "string" +}, +"privateEndpoint": { +"deprecated": true, +"description": "Output only. The internal IP address of this cluster's master endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint instead.", +"readOnly": true, +"type": "string" +}, +"privateEndpointSubnetwork": { +"deprecated": true, +"description": "Subnet to provision the master's private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork instead.", +"type": "string" +}, +"publicEndpoint": { +"deprecated": true, +"description": "Output only. The external IP address of this cluster's master endpoint. Deprecated:Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint instead.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PrivateClusterMasterGlobalAccessConfig": { +"description": "Configuration for controlling master global access settings.", +"id": "PrivateClusterMasterGlobalAccessConfig", +"properties": { +"enabled": { +"description": "Whenever master is accessible globally or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"PrivateRegistryAccessConfig": { +"description": "PrivateRegistryAccessConfig contains access configuration for private container registries.", +"id": "PrivateRegistryAccessConfig", +"properties": { +"certificateAuthorityDomainConfig": { +"description": "Private registry access configuration.", +"items": { +"$ref": "CertificateAuthorityDomainConfig" +}, +"type": "array" +}, +"enabled": { +"description": "Private registry access is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"PubSub": { +"description": "Pub/Sub specific notification config.", +"id": "PubSub", +"properties": { +"enabled": { +"description": "Enable notifications for Pub/Sub.", +"type": "boolean" +}, +"filter": { +"$ref": "Filter", +"description": "Allows filtering to one or more specific event types. If no filter is specified, or if a filter is specified with no event types, all event types will be sent" +}, +"topic": { +"description": "The desired Pub/Sub topic to which notifications will be sent by GKE. Format is `projects/{project}/topics/{topic}`.", +"type": "string" +} +}, +"type": "object" +}, +"QueuedProvisioning": { +"description": "QueuedProvisioning defines the queued provisioning used by the node pool.", +"id": "QueuedProvisioning", +"properties": { +"enabled": { +"description": "Denotes that this nodepool is QRM specific, meaning nodes can be only obtained through queuing via the Cluster Autoscaler ProvisioningRequest API.", +"type": "boolean" +} +}, +"type": "object" +}, +"RBACBindingConfig": { +"description": "RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created.", +"id": "RBACBindingConfig", +"properties": { +"enableInsecureBindingSystemAuthenticated": { +"description": "Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjects system:authenticated.", +"type": "boolean" +}, +"enableInsecureBindingSystemUnauthenticated": { +"description": "Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjets system:anonymous or system:unauthenticated.", +"type": "boolean" +} +}, +"type": "object" +}, +"RangeInfo": { +"description": "RangeInfo contains the range name and the range utilization by this cluster.", +"id": "RangeInfo", +"properties": { +"rangeName": { +"description": "Output only. Name of a range.", +"readOnly": true, +"type": "string" +}, +"utilization": { +"description": "Output only. The utilization of the range.", +"format": "double", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"RayClusterLoggingConfig": { +"description": "RayClusterLoggingConfig specifies configuration of Ray logging.", +"id": "RayClusterLoggingConfig", +"properties": { +"enabled": { +"description": "Enable log collection for Ray clusters.", +"type": "boolean" +} +}, +"type": "object" +}, +"RayClusterMonitoringConfig": { +"description": "RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.", +"id": "RayClusterMonitoringConfig", +"properties": { +"enabled": { +"description": "Enable metrics collection for Ray clusters.", +"type": "boolean" +} +}, +"type": "object" +}, +"RayOperatorConfig": { +"description": "Configuration options for the Ray Operator add-on.", +"id": "RayOperatorConfig", +"properties": { +"enabled": { +"description": "Whether the Ray Operator addon is enabled for this cluster.", +"type": "boolean" +}, +"rayClusterLoggingConfig": { +"$ref": "RayClusterLoggingConfig", +"description": "Optional. Logging configuration for Ray clusters." +}, +"rayClusterMonitoringConfig": { +"$ref": "RayClusterMonitoringConfig", +"description": "Optional. Monitoring configuration for Ray clusters." +} +}, +"type": "object" +}, +"RecurringTimeWindow": { +"description": "Represents an arbitrary window of time that recurs.", +"id": "RecurringTimeWindow", +"properties": { +"recurrence": { +"description": "An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this window reccurs. They go on for the span of time between the start and end time. For example, to have something repeat every weekday, you'd use: `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily (equivalent to the DailyMaintenanceWindow): `FREQ=DAILY` For the first weekend of every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` This specifies how frequently the window starts. Eg, if you wanted to have a 9-5 UTC-4 window every weekday, you'd use something like: ``` start time = 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days. Eg, to make the window encompass every weekend from midnight Saturday till the last minute of Sunday UTC: ``` start time = 2019-01-05T00:00:00Z end time = 2019-01-07T23:59:00Z recurrence = FREQ=WEEKLY;BYDAY=SA ``` Note the start and end time's specific dates are largely arbitrary except to specify duration of the window and when it first starts. The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.", +"type": "string" +}, +"window": { +"$ref": "TimeWindow", +"description": "The window of the first recurrence." +} +}, +"type": "object" +}, +"ReleaseChannel": { +"description": "ReleaseChannel indicates which release channel a cluster is subscribed to. Release channels are arranged in order of risk. When a cluster is subscribed to a release channel, Google maintains both the master version and the node version. Node auto-upgrade defaults to true and cannot be disabled.", +"id": "ReleaseChannel", +"properties": { +"channel": { +"description": "channel specifies which release channel the cluster is subscribed to.", +"enum": [ +"UNSPECIFIED", +"RAPID", +"REGULAR", +"STABLE", +"EXTENDED" +], +"enumDescriptions": [ +"No channel specified.", +"RAPID channel is offered on an early access basis for customers who want to test new releases. WARNING: Versions available in the RAPID Channel may be subject to unresolved issues with no known workaround and are not subject to any SLAs.", +"Clusters subscribed to REGULAR receive versions that are considered GA quality. REGULAR is intended for production users who want to take advantage of new features.", +"Clusters subscribed to STABLE receive versions that are known to be stable and reliable in production.", +"Clusters subscribed to EXTENDED receive extended support and availability for versions which are known to be stable and reliable in production." +], +"type": "string" +} +}, +"type": "object" +}, +"ReleaseChannelConfig": { +"description": "ReleaseChannelConfig exposes configuration for a release channel.", +"id": "ReleaseChannelConfig", +"properties": { +"channel": { +"description": "The release channel this configuration applies to.", +"enum": [ +"UNSPECIFIED", +"RAPID", +"REGULAR", +"STABLE", +"EXTENDED" +], +"enumDescriptions": [ +"No channel specified.", +"RAPID channel is offered on an early access basis for customers who want to test new releases. WARNING: Versions available in the RAPID Channel may be subject to unresolved issues with no known workaround and are not subject to any SLAs.", +"Clusters subscribed to REGULAR receive versions that are considered GA quality. REGULAR is intended for production users who want to take advantage of new features.", +"Clusters subscribed to STABLE receive versions that are known to be stable and reliable in production.", +"Clusters subscribed to EXTENDED receive extended support and availability for versions which are known to be stable and reliable in production." +], +"type": "string" +}, +"defaultVersion": { +"description": "The default version for newly created clusters on the channel.", +"type": "string" +}, +"upgradeTargetVersion": { +"description": "The auto upgrade target version for clusters on the channel.", +"type": "string" +}, +"validVersions": { +"description": "List of valid versions for the channel.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReservationAffinity": { +"description": "[ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) is the configuration of desired reservation which instances could take capacity from.", +"id": "ReservationAffinity", +"properties": { +"consumeReservationType": { +"description": "Corresponds to the type of reservation consumption.", +"enum": [ +"UNSPECIFIED", +"NO_RESERVATION", +"ANY_RESERVATION", +"SPECIFIC_RESERVATION" +], +"enumDescriptions": [ +"Default value. This should not be used.", +"Do not consume from any reserved capacity.", +"Consume any reservation available.", +"Must consume from a specific reservation. Must specify key value fields for specifying the reservations." +], +"type": "string" +}, +"key": { +"description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify \"compute.googleapis.com/reservation-name\" as the key and specify the name of your reservation as its value.", +"type": "string" +}, +"values": { +"description": "Corresponds to the label value(s) of reservation resource(s).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourceLabels": { +"description": "Collection of [GCP labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels).", +"id": "ResourceLabels", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of node label keys and node label values.", +"type": "object" +} +}, +"type": "object" +}, +"ResourceLimit": { +"description": "Contains information about amount of some resource in the cluster. For memory, value should be in GB.", +"id": "ResourceLimit", +"properties": { +"maximum": { +"description": "Maximum amount of the resource in the cluster.", +"format": "int64", +"type": "string" +}, +"minimum": { +"description": "Minimum amount of the resource in the cluster.", +"format": "int64", +"type": "string" +}, +"resourceType": { +"description": "Resource name \"cpu\", \"memory\" or gpu-specific string.", +"type": "string" +} +}, +"type": "object" +}, +"ResourceManagerTags": { +"description": "A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values.", +"id": "ResourceManagerTags", +"properties": { +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`", +"type": "object" +} +}, +"type": "object" +}, +"ResourceUsageExportConfig": { +"description": "Configuration for exporting cluster resource usages.", +"id": "ResourceUsageExportConfig", +"properties": { +"bigqueryDestination": { +"$ref": "BigQueryDestination", +"description": "Configuration to use BigQuery as usage export destination." +}, +"consumptionMeteringConfig": { +"$ref": "ConsumptionMeteringConfig", +"description": "Configuration to enable resource consumption metering." +}, +"enableNetworkEgressMetering": { +"description": "Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.", +"type": "boolean" +} +}, +"type": "object" +}, +"RollbackNodePoolUpgradeRequest": { +"description": "RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed NodePool upgrade. This will be an no-op if the last upgrade successfully completed.", +"id": "RollbackNodePoolUpgradeRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to rollback. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster, node pool id) of the node poll to rollback upgrade. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"type": "string" +}, +"nodePoolId": { +"deprecated": true, +"description": "Deprecated. The name of the node pool to rollback. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"respectPdb": { +"description": "Option for rollback to ignore the PodDisruptionBudget. Default value is false.", +"type": "boolean" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SandboxConfig": { +"description": "SandboxConfig contains configurations of the sandbox to use for the node.", +"id": "SandboxConfig", +"properties": { +"type": { +"description": "Type of the sandbox to use for the node.", +"enum": [ +"UNSPECIFIED", +"GVISOR" +], +"enumDescriptions": [ +"Default value. This should not be used.", +"Run sandbox using gvisor." +], +"type": "string" +} +}, +"type": "object" +}, +"SecondaryBootDisk": { +"description": "SecondaryBootDisk represents a persistent disk attached to a node with special configurations based on its mode.", +"id": "SecondaryBootDisk", +"properties": { +"diskImage": { +"description": "Fully-qualified resource ID for an existing disk image.", +"type": "string" +}, +"mode": { +"description": "Disk mode (container image cache, etc.)", +"enum": [ +"MODE_UNSPECIFIED", +"CONTAINER_IMAGE_CACHE" +], +"enumDescriptions": [ +"MODE_UNSPECIFIED is when mode is not set.", +"CONTAINER_IMAGE_CACHE is for using the secondary boot disk as a container image cache." +], +"type": "string" +} +}, +"type": "object" +}, +"SecondaryBootDiskUpdateStrategy": { +"description": "SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the future to define different options for updating secondary boot disks.", +"id": "SecondaryBootDiskUpdateStrategy", +"properties": {}, +"type": "object" +}, +"SecretManagerConfig": { +"description": "SecretManagerConfig is config for secret manager enablement.", +"id": "SecretManagerConfig", +"properties": { +"enabled": { +"description": "Enable/Disable Secret Manager Config.", +"type": "boolean" +} +}, +"type": "object" +}, +"SecurityBulletinEvent": { +"description": "SecurityBulletinEvent is a notification sent to customers when a security bulletin has been posted that they are vulnerable to.", +"id": "SecurityBulletinEvent", +"properties": { +"affectedSupportedMinors": { +"description": "The GKE minor versions affected by this vulnerability.", +"items": { +"type": "string" +}, +"type": "array" +}, +"briefDescription": { +"description": "A brief description of the bulletin. See the bulletin pointed to by the bulletin_uri field for an expanded description.", +"type": "string" +}, +"bulletinId": { +"description": "The ID of the bulletin corresponding to the vulnerability.", +"type": "string" +}, +"bulletinUri": { +"description": "The URI link to the bulletin on the website for more information.", +"type": "string" +}, +"cveIds": { +"description": "The CVEs associated with this bulletin.", +"items": { +"type": "string" +}, +"type": "array" +}, +"manualStepsRequired": { +"description": "If this field is specified, it means there are manual steps that the user must take to make their clusters safe.", +"type": "boolean" +}, +"patchedVersions": { +"description": "The GKE versions where this vulnerability is patched.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resourceTypeAffected": { +"description": "The resource type (node/control plane) that has the vulnerability. Multiple notifications (1 notification per resource type) will be sent for a vulnerability that affects > 1 resource type.", +"type": "string" +}, +"severity": { +"description": "The severity of this bulletin as it relates to GKE.", +"type": "string" +}, +"suggestedUpgradeTarget": { +"description": "This represents a version selected from the patched_versions field that the cluster receiving this notification should most likely want to upgrade to based on its current version. Note that if this notification is being received by a given cluster, it means that this version is currently available as an upgrade target in that cluster's location.", +"type": "string" +} +}, +"type": "object" +}, +"SecurityPostureConfig": { +"description": "SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API.", +"id": "SecurityPostureConfig", +"properties": { +"mode": { +"description": "Sets which mode to use for Security Posture features.", +"enum": [ +"MODE_UNSPECIFIED", +"DISABLED", +"BASIC", +"ENTERPRISE" +], +"enumDescriptions": [ +"Default value not specified.", +"Disables Security Posture features on the cluster.", +"Applies Security Posture features on the cluster.", +"Applies the Security Posture off cluster Enterprise level features." +], +"type": "string" +}, +"vulnerabilityMode": { +"description": "Sets which mode to use for vulnerability scanning.", +"enum": [ +"VULNERABILITY_MODE_UNSPECIFIED", +"VULNERABILITY_DISABLED", +"VULNERABILITY_BASIC", +"VULNERABILITY_ENTERPRISE" +], +"enumDescriptions": [ +"Default value not specified.", +"Disables vulnerability scanning on the cluster.", +"Applies basic vulnerability scanning on the cluster.", +"Applies the Security Posture's vulnerability on cluster Enterprise level features." +], +"type": "string" +} +}, +"type": "object" +}, +"ServerConfig": { +"description": "Kubernetes Engine service configuration.", +"id": "ServerConfig", +"properties": { +"channels": { +"description": "List of release channel configurations.", +"items": { +"$ref": "ReleaseChannelConfig" +}, +"type": "array" +}, +"defaultClusterVersion": { +"description": "Version of Kubernetes the service deploys by default.", +"type": "string" +}, +"defaultImageType": { +"description": "Default image type.", +"type": "string" +}, +"validImageTypes": { +"description": "List of valid image types.", +"items": { +"type": "string" +}, +"type": "array" +}, +"validMasterVersions": { +"description": "List of valid master versions, in descending order.", +"items": { +"type": "string" +}, +"type": "array" +}, +"validNodeVersions": { +"description": "List of valid node upgrade target versions, in descending order.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ServiceExternalIPsConfig": { +"description": "Config to block services with externalIPs field.", +"id": "ServiceExternalIPsConfig", +"properties": { +"enabled": { +"description": "Whether Services with ExternalIPs field are allowed or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"SetAddonsConfigRequest": { +"description": "SetAddonsConfigRequest sets the addons associated with the cluster.", +"id": "SetAddonsConfigRequest", +"properties": { +"addonsConfig": { +"$ref": "AddonsConfig", +"description": "Required. The desired configurations for the various addons available to run in the cluster." +}, +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to set addons. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetLabelsRequest": { +"description": "SetLabelsRequest sets the Google Cloud Platform labels on a Google Container Engine cluster, which will in turn set them for Google Compute Engine resources used by that cluster", +"id": "SetLabelsRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"labelFingerprint": { +"description": "Required. The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Kubernetes Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash when updating or changing labels. Make a `get()` request to the resource to get the latest fingerprint.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster name) of the cluster to set labels. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"resourceLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "Required. The labels to set for that cluster.", +"type": "object" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetLegacyAbacRequest": { +"description": "SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for a cluster.", +"id": "SetLegacyAbacRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"enabled": { +"description": "Required. Whether ABAC authorization will be enabled in the cluster.", +"type": "boolean" +}, +"name": { +"description": "The name (project, location, cluster name) of the cluster to set legacy abac. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetLocationsRequest": { +"description": "SetLocationsRequest sets the locations of the cluster.", +"id": "SetLocationsRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"locations": { +"description": "Required. The desired list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes should be located. Changing the locations a cluster is in will result in nodes being either created or removed from the cluster, depending on whether locations are being added or removed. This list must always include the cluster's primary zone.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to set locations. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetLoggingServiceRequest": { +"description": "SetLoggingServiceRequest sets the logging service of a cluster.", +"id": "SetLoggingServiceRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"loggingService": { +"description": "Required. The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to set logging. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetMaintenancePolicyRequest": { +"description": "SetMaintenancePolicyRequest sets the maintenance policy for a cluster.", +"id": "SetMaintenancePolicyRequest", +"properties": { +"clusterId": { +"description": "Required. The name of the cluster to update.", +"type": "string" +}, +"maintenancePolicy": { +"$ref": "MaintenancePolicy", +"description": "Required. The maintenance policy to be set for the cluster. An empty field clears the existing maintenance policy." +}, +"name": { +"description": "The name (project, location, cluster name) of the cluster to set maintenance policy. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"description": "Required. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).", +"type": "string" +}, +"zone": { +"description": "Required. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides.", +"type": "string" +} +}, +"type": "object" +}, +"SetMasterAuthRequest": { +"description": "SetMasterAuthRequest updates the admin password of a cluster.", +"id": "SetMasterAuthRequest", +"properties": { +"action": { +"description": "Required. The exact form of action to be taken on the master auth.", +"enum": [ +"UNKNOWN", +"SET_PASSWORD", +"GENERATE_PASSWORD", +"SET_USERNAME" +], +"enumDescriptions": [ +"Operation is unknown and will error out.", +"Set the password to a user generated value.", +"Generate a new password and set it to that.", +"Set the username. If an empty username is provided, basic authentication is disabled for the cluster. If a non-empty username is provided, basic authentication is enabled, with either a provided password or a generated one." +], +"type": "string" +}, +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to set auth. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"update": { +"$ref": "MasterAuth", +"description": "Required. A description of the update." +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetMonitoringServiceRequest": { +"description": "SetMonitoringServiceRequest sets the monitoring service of a cluster.", +"id": "SetMonitoringServiceRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"monitoringService": { +"description": "Required. The monitoring service the cluster should use to write metrics. Currently available options: * \"monitoring.googleapis.com/kubernetes\" - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to set monitoring. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetNetworkPolicyRequest": { +"description": "SetNetworkPolicyRequest enables/disables network policy for a cluster.", +"id": "SetNetworkPolicyRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster name) of the cluster to set networking policy. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"networkPolicy": { +"$ref": "NetworkPolicy", +"description": "Required. Configuration options for the NetworkPolicy feature." +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetNodePoolAutoscalingRequest": { +"description": "SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.", +"id": "SetNodePoolAutoscalingRequest", +"properties": { +"autoscaling": { +"$ref": "NodePoolAutoscaling", +"description": "Required. Autoscaling configuration for the node pool." +}, +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster, node pool) of the node pool to set autoscaler settings. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"type": "string" +}, +"nodePoolId": { +"deprecated": true, +"description": "Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetNodePoolManagementRequest": { +"description": "SetNodePoolManagementRequest sets the node management properties of a node pool.", +"id": "SetNodePoolManagementRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"management": { +"$ref": "NodeManagement", +"description": "Required. NodeManagement configuration for the node pool." +}, +"name": { +"description": "The name (project, location, cluster, node pool id) of the node pool to set management properties. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"type": "string" +}, +"nodePoolId": { +"deprecated": true, +"description": "Deprecated. The name of the node pool to update. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"SetNodePoolSizeRequest": { +"description": "SetNodePoolSizeRequest sets the size of a node pool.", +"id": "SetNodePoolSizeRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster, node pool id) of the node pool to set size. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"type": "string" +}, +"nodeCount": { +"description": "Required. The desired node count for the pool.", +"format": "int32", +"type": "integer" +}, +"nodePoolId": { +"deprecated": true, +"description": "Deprecated. The name of the node pool to update. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"ShieldedInstanceConfig": { +"description": "A set of Shielded Instance options.", +"id": "ShieldedInstanceConfig", +"properties": { +"enableIntegrityMonitoring": { +"description": "Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created.", +"type": "boolean" +}, +"enableSecureBoot": { +"description": "Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails.", +"type": "boolean" +} +}, +"type": "object" +}, +"ShieldedNodes": { +"description": "Configuration of Shielded Nodes feature.", +"id": "ShieldedNodes", +"properties": { +"enabled": { +"description": "Whether Shielded Nodes features are enabled on all nodes in this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"SoleTenantConfig": { +"description": "SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool.", +"id": "SoleTenantConfig", +"properties": { +"nodeAffinities": { +"description": "NodeAffinities used to match to a shared sole tenant node group.", +"items": { +"$ref": "NodeAffinity" +}, +"type": "array" +} +}, +"type": "object" +}, +"StandardRolloutPolicy": { +"description": "Standard rollout policy is the default policy for blue-green.", +"id": "StandardRolloutPolicy", +"properties": { +"batchNodeCount": { +"description": "Number of blue nodes to drain in a batch.", +"format": "int32", +"type": "integer" +}, +"batchPercentage": { +"description": "Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].", +"format": "float", +"type": "number" +}, +"batchSoakDuration": { +"description": "Soak time after each batch gets drained. Default to zero.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"StartIPRotationRequest": { +"description": "StartIPRotationRequest creates a new IP for the cluster and then performs a node upgrade on each node pool to point to the new IP.", +"id": "StartIPRotationRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster name) of the cluster to start IP rotation. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"rotateCredentials": { +"description": "Whether to rotate credentials during IP rotation.", +"type": "boolean" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"StatefulHAConfig": { +"description": "Configuration for the Stateful HA add-on.", +"id": "StatefulHAConfig", +"properties": { +"enabled": { +"description": "Whether the Stateful HA add-on is enabled for this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StatusCondition": { +"description": "StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).", +"id": "StatusCondition", +"properties": { +"canonicalCode": { +"description": "Canonical code of the condition.", +"enum": [ +"OK", +"CANCELLED", +"UNKNOWN", +"INVALID_ARGUMENT", +"DEADLINE_EXCEEDED", +"NOT_FOUND", +"ALREADY_EXISTS", +"PERMISSION_DENIED", +"UNAUTHENTICATED", +"RESOURCE_EXHAUSTED", +"FAILED_PRECONDITION", +"ABORTED", +"OUT_OF_RANGE", +"UNIMPLEMENTED", +"INTERNAL", +"UNAVAILABLE", +"DATA_LOSS" +], +"enumDescriptions": [ +"Not an error; returned on success. HTTP Mapping: 200 OK", +"The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", +"Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", +"The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", +"The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout", +"Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found", +"The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict", +"The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden", +"The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized", +"Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests", +"The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request", +"The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict", +"The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request", +"The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented", +"Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error", +"The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable", +"Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error" +], +"type": "string" +}, +"code": { +"deprecated": true, +"description": "Machine-friendly representation of the condition Deprecated. Use canonical_code instead.", +"enum": [ +"UNKNOWN", +"GCE_STOCKOUT", +"GKE_SERVICE_ACCOUNT_DELETED", +"GCE_QUOTA_EXCEEDED", +"SET_BY_OPERATOR", +"CLOUD_KMS_KEY_ERROR", +"CA_EXPIRING" +], +"enumDescriptions": [ +"UNKNOWN indicates a generic condition.", +"GCE_STOCKOUT indicates that Google Compute Engine resources are temporarily unavailable.", +"GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot service account.", +"Google Compute Engine quota was exceeded.", +"Cluster state was manually changed by an SRE due to a system logic error.", +"Unable to perform an encrypt operation against the CloudKMS key used for etcd level encryption.", +"Cluster CA is expiring soon." +], +"type": "string" +}, +"message": { +"description": "Human-friendly representation of the condition", +"type": "string" +} +}, +"type": "object" +}, +"TimeWindow": { +"description": "Represents an arbitrary window of time.", +"id": "TimeWindow", +"properties": { +"endTime": { +"description": "The time that the window ends. The end time should take place after the start time.", +"format": "google-datetime", +"type": "string" +}, +"maintenanceExclusionOptions": { +"$ref": "MaintenanceExclusionOptions", +"description": "MaintenanceExclusionOptions provides maintenance exclusion related options." +}, +"startTime": { +"description": "The time that the window first starts.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpdateClusterRequest": { +"description": "UpdateClusterRequest updates the settings of a cluster.", +"id": "UpdateClusterRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to update. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"update": { +"$ref": "ClusterUpdate", +"description": "Required. A description of the update." +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"UpdateInfo": { +"description": "UpdateInfo contains resource (instance groups, etc), status and other intermediate information relevant to a node pool upgrade.", +"id": "UpdateInfo", +"properties": { +"blueGreenInfo": { +"$ref": "BlueGreenInfo", +"description": "Information of a blue-green upgrade." +} +}, +"type": "object" +}, +"UpdateMasterRequest": { +"description": "UpdateMasterRequest updates the master of the cluster.", +"id": "UpdateMasterRequest", +"properties": { +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"masterVersion": { +"description": "Required. The Kubernetes version to change the master to. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - \"latest\": picks the highest valid Kubernetes version - \"1.X\": picks the highest valid patch+gke.N patch in the 1.X version - \"1.X.Y\": picks the highest valid gke.N patch in the 1.X.Y version - \"1.X.Y-gke.N\": picks an explicit Kubernetes version - \"-\": picks the default Kubernetes version", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster) of the cluster to update. Specified in the format `projects/*/locations/*/clusters/*`.", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"UpdateNodePoolRequest": { +"description": "UpdateNodePoolRequests update a node pool's image and/or version.", +"id": "UpdateNodePoolRequest", +"properties": { +"accelerators": { +"description": "A list of hardware accelerators to be attached to each node. See https://cloud.google.com/compute/docs/gpus for more information about support for GPUs.", +"items": { +"$ref": "AcceleratorConfig" +}, +"type": "array" +}, +"clusterId": { +"deprecated": true, +"description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"confidentialNodes": { +"$ref": "ConfidentialNodes", +"description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." +}, +"containerdConfig": { +"$ref": "ContainerdConfig", +"description": "The desired containerd config for nodes in the node pool. Initiates an upgrade operation that recreates the nodes with the new config." +}, +"diskSizeGb": { +"description": "Optional. The desired disk size for nodes in the node pool specified in GB. The smallest allowed disk size is 10GB. Initiates an upgrade operation that migrates the nodes in the node pool to the specified disk size.", +"format": "int64", +"type": "string" +}, +"diskType": { +"description": "Optional. The desired disk type (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') for nodes in the node pool. Initiates an upgrade operation that migrates the nodes in the node pool to the specified disk type.", +"type": "string" +}, +"etag": { +"description": "The current etag of the node pool. If an etag is provided and does not match the current etag of the node pool, update will be blocked and an ABORTED error will be returned.", +"type": "string" +}, +"fastSocket": { +"$ref": "FastSocket", +"description": "Enable or disable NCCL fast socket for the node pool." +}, +"gcfsConfig": { +"$ref": "GcfsConfig", +"description": "GCFS config." +}, +"gvnic": { +"$ref": "VirtualNIC", +"description": "Enable or disable gvnic on the node pool." +}, +"imageType": { +"description": "Required. The desired image type for the node pool. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.", +"type": "string" +}, +"kubeletConfig": { +"$ref": "NodeKubeletConfig", +"description": "Node kubelet configs." +}, +"labels": { +"$ref": "NodeLabels", +"description": "The desired node labels to be applied to all nodes in the node pool. If this field is not present, the labels will not be changed. Otherwise, the existing node labels will be *replaced* with the provided labels." +}, +"linuxNodeConfig": { +"$ref": "LinuxNodeConfig", +"description": "Parameters that can be configured on Linux nodes." +}, +"locations": { +"description": "The desired list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the node pool's nodes should be located. Changing the locations for a node pool will result in nodes being either created or removed from the node pool, depending on whether locations are being added or removed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"loggingConfig": { +"$ref": "NodePoolLoggingConfig", +"description": "Logging configuration." +}, +"machineType": { +"description": "Optional. The desired [Google Compute Engine machine type](https://cloud.google.com/compute/docs/machine-types) for nodes in the node pool. Initiates an upgrade operation that migrates the nodes in the node pool to the specified machine type.", +"type": "string" +}, +"maxRunDuration": { +"description": "The maximum duration for the nodes to exist. If unspecified, the nodes can exist indefinitely.", +"format": "google-duration", +"type": "string" +}, +"name": { +"description": "The name (project, location, cluster, node pool) of the node pool to update. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", +"type": "string" +}, +"nodeNetworkConfig": { +"$ref": "NodeNetworkConfig", +"description": "Node network config." +}, +"nodePoolId": { +"deprecated": true, +"description": "Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"nodeVersion": { +"description": "Required. The Kubernetes version to change the nodes to (typically an upgrade). Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - \"latest\": picks the highest valid Kubernetes version - \"1.X\": picks the highest valid patch+gke.N patch in the 1.X version - \"1.X.Y\": picks the highest valid gke.N patch in the 1.X.Y version - \"1.X.Y-gke.N\": picks an explicit Kubernetes version - \"-\": picks the Kubernetes master version", +"type": "string" +}, +"projectId": { +"deprecated": true, +"description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", +"type": "string" +}, +"queuedProvisioning": { +"$ref": "QueuedProvisioning", +"description": "Specifies the configuration of queued provisioning." +}, +"resourceLabels": { +"$ref": "ResourceLabels", +"description": "The resource labels for the node pool to use to annotate any related Google Compute Engine resources." +}, +"resourceManagerTags": { +"$ref": "ResourceManagerTags", +"description": "Desired resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Existing tags will be replaced with new values." +}, +"storagePools": { +"description": "List of Storage Pools where boot disks are provisioned. Existing Storage Pools will be replaced with storage-pools.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tags": { +"$ref": "NetworkTags", +"description": "The desired network tags to be applied to all nodes in the node pool. If this field is not present, the tags will not be changed. Otherwise, the existing network tags will be *replaced* with the provided tags." +}, +"taints": { +"$ref": "NodeTaints", +"description": "The desired node taints to be applied to all nodes in the node pool. If this field is not present, the taints will not be changed. Otherwise, the existing node taints will be *replaced* with the provided taints." +}, +"upgradeSettings": { +"$ref": "UpgradeSettings", +"description": "Upgrade settings control disruption and speed of the upgrade." +}, +"windowsNodeConfig": { +"$ref": "WindowsNodeConfig", +"description": "Parameters that can be configured on Windows nodes." +}, +"workloadMetadataConfig": { +"$ref": "WorkloadMetadataConfig", +"description": "The desired workload metadata config for the node pool." +}, +"zone": { +"deprecated": true, +"description": "Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.", +"type": "string" +} +}, +"type": "object" +}, +"UpgradeAvailableEvent": { +"description": "UpgradeAvailableEvent is a notification sent to customers when a new available version is released.", +"id": "UpgradeAvailableEvent", +"properties": { +"releaseChannel": { +"$ref": "ReleaseChannel", +"description": "The release channel of the version. If empty, it means a non-channel release." +}, +"resource": { +"description": "Optional relative path to the resource. For example, the relative path of the node pool.", +"type": "string" +}, +"resourceType": { +"description": "The resource type of the release version.", +"enum": [ +"UPGRADE_RESOURCE_TYPE_UNSPECIFIED", +"MASTER", +"NODE_POOL" +], +"enumDescriptions": [ +"Default value. This shouldn't be used.", +"Master / control plane", +"Node pool" +], +"type": "string" +}, +"version": { +"description": "The release version available for upgrade.", +"type": "string" +} +}, +"type": "object" +}, +"UpgradeEvent": { +"description": "UpgradeEvent is a notification sent to customers by the cluster server when a resource is upgrading.", +"id": "UpgradeEvent", +"properties": { +"currentVersion": { +"description": "The current version before the upgrade.", +"type": "string" +}, +"operation": { +"description": "The operation associated with this upgrade.", +"type": "string" +}, +"operationStartTime": { +"description": "The time when the operation was started.", +"format": "google-datetime", +"type": "string" +}, +"resource": { +"description": "Optional relative path to the resource. For example in node pool upgrades, the relative path of the node pool.", +"type": "string" +}, +"resourceType": { +"description": "The resource type that is upgrading.", +"enum": [ +"UPGRADE_RESOURCE_TYPE_UNSPECIFIED", +"MASTER", +"NODE_POOL" +], +"enumDescriptions": [ +"Default value. This shouldn't be used.", +"Master / control plane", +"Node pool" +], +"type": "string" +}, +"targetVersion": { +"description": "The target version for the upgrade.", +"type": "string" +} +}, +"type": "object" +}, +"UpgradeInfoEvent": { +"description": "UpgradeInfoEvent is a notification sent to customers about the upgrade information of a resource.", +"id": "UpgradeInfoEvent", +"properties": { +"currentVersion": { +"description": "The current version before the upgrade.", +"type": "string" +}, +"description": { +"description": "A brief description of the event.", +"type": "string" +}, +"endTime": { +"description": "The time when the operation ended.", +"format": "google-datetime", +"type": "string" +}, +"eventType": { +"description": "The type of the event.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"END_OF_SUPPORT" +], +"enumDescriptions": [ +"EVENT_TYPE_UNSPECIFIED indicates the event type is unspecified.", +"END_OF_SUPPORT indicates GKE version reaches end of support, check standard_support_end_time and extended_support_end_time for more details." +], +"type": "string" +}, +"extendedSupportEndTime": { +"description": "The end of extended support timestamp.", +"format": "google-datetime", +"type": "string" +}, +"operation": { +"description": "The operation associated with this upgrade.", +"type": "string" +}, +"resource": { +"description": "Optional relative path to the resource. For example in node pool upgrades, the relative path of the node pool.", +"type": "string" +}, +"resourceType": { +"description": "The resource type associated with the upgrade.", +"enum": [ +"UPGRADE_RESOURCE_TYPE_UNSPECIFIED", +"MASTER", +"NODE_POOL" +], +"enumDescriptions": [ +"Default value. This shouldn't be used.", +"Master / control plane", +"Node pool" +], +"type": "string" +}, +"standardSupportEndTime": { +"description": "The end of standard support timestamp.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The time when the operation was started.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Output only. The state of the upgrade.", +"enum": [ +"STATE_UNSPECIFIED", +"STARTED", +"SUCCEEDED", +"FAILED", +"CANCELED" +], +"enumDescriptions": [ +"STATE_UNSPECIFIED indicates the state is unspecified.", +"STARTED indicates the upgrade has started.", +"SUCCEEDED indicates the upgrade has completed successfully.", +"FAILED indicates the upgrade has failed.", +"CANCELED indicates the upgrade has canceled." +], +"readOnly": true, +"type": "string" +}, +"targetVersion": { +"description": "The target version for the upgrade.", +"type": "string" +} +}, +"type": "object" +}, +"UpgradeSettings": { +"description": "These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted.", +"id": "UpgradeSettings", +"properties": { +"blueGreenSettings": { +"$ref": "BlueGreenSettings", +"description": "Settings for blue-green upgrade strategy." +}, +"maxSurge": { +"description": "The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.", +"format": "int32", +"type": "integer" +}, +"maxUnavailable": { +"description": "The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.", +"format": "int32", +"type": "integer" +}, +"strategy": { +"description": "Update strategy of the node pool.", +"enum": [ +"NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED", +"BLUE_GREEN", +"SURGE" +], +"enumDescriptions": [ +"Default value if unset. GKE internally defaults the update strategy to SURGE for unspecified strategies.", +"blue-green upgrade.", +"SURGE is the traditional way of upgrade a node pool. max_surge and max_unavailable determines the level of upgrade parallelism." +], +"type": "string" +} +}, +"type": "object" +}, +"UsableSubnetwork": { +"description": "UsableSubnetwork resource returns the subnetwork name, its associated network and the primary CIDR range.", +"id": "UsableSubnetwork", +"properties": { +"ipCidrRange": { +"description": "The range of internal addresses that are owned by this subnetwork.", +"type": "string" +}, +"network": { +"description": "Network Name. Example: projects/my-project/global/networks/my-network", +"type": "string" +}, +"secondaryIpRanges": { +"description": "Secondary IP ranges.", +"items": { +"$ref": "UsableSubnetworkSecondaryRange" +}, +"type": "array" +}, +"statusMessage": { +"description": "A human readable status message representing the reasons for cases where the caller cannot use the secondary ranges under the subnet. For example if the secondary_ip_ranges is empty due to a permission issue, an insufficient permission message will be given by status_message.", +"type": "string" +}, +"subnetwork": { +"description": "Subnetwork Name. Example: projects/my-project/regions/us-central1/subnetworks/my-subnet", +"type": "string" +} +}, +"type": "object" +}, +"UsableSubnetworkSecondaryRange": { +"description": "Secondary IP range of a usable subnetwork.", +"id": "UsableSubnetworkSecondaryRange", +"properties": { +"ipCidrRange": { +"description": "The range of IP addresses belonging to this subnetwork secondary range.", +"type": "string" +}, +"rangeName": { +"description": "The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance.", +"type": "string" +}, +"status": { +"description": "This field is to determine the status of the secondary range programmably.", +"enum": [ +"UNKNOWN", +"UNUSED", +"IN_USE_SERVICE", +"IN_USE_SHAREABLE_POD", +"IN_USE_MANAGED_POD" +], +"enumDescriptions": [ +"UNKNOWN is the zero value of the Status enum. It's not a valid status.", +"UNUSED denotes that this range is unclaimed by any cluster.", +"IN_USE_SERVICE denotes that this range is claimed by cluster(s) for services. User-managed services range can be shared between clusters within the same subnetwork.", +"IN_USE_SHAREABLE_POD denotes this range was created by the network admin and is currently claimed by a cluster for pods. It can only be used by other clusters as a pod range.", +"IN_USE_MANAGED_POD denotes this range was created by GKE and is claimed for pods. It cannot be used for other clusters." +], +"type": "string" +} +}, +"type": "object" +}, +"UserManagedKeysConfig": { +"description": "UserManagedKeysConfig holds the resource address to Keys which are used for signing certs and token that are used for communication within cluster.", +"id": "UserManagedKeysConfig", +"properties": { +"aggregationCa": { +"description": "The Certificate Authority Service caPool to use for the aggregation CA in this cluster.", +"type": "string" +}, +"clusterCa": { +"description": "The Certificate Authority Service caPool to use for the cluster CA in this cluster.", +"type": "string" +}, +"controlPlaneDiskEncryptionKey": { +"description": "The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes.", +"type": "string" +}, +"etcdApiCa": { +"description": "Resource path of the Certificate Authority Service caPool to use for the etcd API CA in this cluster.", +"type": "string" +}, +"etcdPeerCa": { +"description": "Resource path of the Certificate Authority Service caPool to use for the etcd peer CA in this cluster.", +"type": "string" +}, +"gkeopsEtcdBackupEncryptionKey": { +"description": "Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups.", +"type": "string" +}, +"serviceAccountSigningKeys": { +"description": "The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceAccountVerificationKeys": { +"description": "The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VerticalPodAutoscaling": { +"description": "VerticalPodAutoscaling contains global, per-cluster information required by Vertical Pod Autoscaler to automatically adjust the resources of pods controlled by it.", +"id": "VerticalPodAutoscaling", +"properties": { +"enabled": { +"description": "Enables vertical pod autoscaling.", +"type": "boolean" +} +}, +"type": "object" +}, +"VirtualNIC": { +"description": "Configuration of gVNIC feature.", +"id": "VirtualNIC", +"properties": { +"enabled": { +"description": "Whether gVNIC features are enabled in the node pool.", +"type": "boolean" +} +}, +"type": "object" +}, +"WindowsNodeConfig": { +"description": "Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings", +"id": "WindowsNodeConfig", +"properties": { +"osVersion": { +"description": "OSVersion specifies the Windows node config to be used on the node", +"enum": [ +"OS_VERSION_UNSPECIFIED", +"OS_VERSION_LTSC2019", +"OS_VERSION_LTSC2022" +], +"enumDescriptions": [ +"When OSVersion is not specified", +"LTSC2019 specifies to use LTSC2019 as the Windows Servercore Base Image", +"LTSC2022 specifies to use LTSC2022 as the Windows Servercore Base Image" +], +"type": "string" +} +}, +"type": "object" +}, +"WorkloadIdentityConfig": { +"description": "Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.", +"id": "WorkloadIdentityConfig", +"properties": { +"workloadPool": { +"description": "The workload pool to attach all Kubernetes service accounts to.", +"type": "string" +} +}, +"type": "object" +}, +"WorkloadMetadataConfig": { +"description": "WorkloadMetadataConfig defines the metadata configuration to expose to workloads on the node pool.", +"id": "WorkloadMetadataConfig", +"properties": { +"mode": { +"description": "Mode is the configuration for how to expose metadata to workloads running on the node pool.", +"enum": [ +"MODE_UNSPECIFIED", +"GCE_METADATA", +"GKE_METADATA" +], +"enumDescriptions": [ +"Not set.", +"Expose all Compute Engine metadata to pods.", +"Run the GKE Metadata Server on this node. The GKE Metadata Server exposes a metadata API to workloads that is compatible with the V1 Compute Metadata APIs exposed by the Compute Engine and App Engine Metadata Servers. This feature can only be enabled if Workload Identity is enabled at the cluster level." +], +"type": "string" +} +}, +"type": "object" +}, +"WorkloadPolicyConfig": { +"description": "WorkloadPolicyConfig is the configuration related to GCW workload policy", +"id": "WorkloadPolicyConfig", +"properties": { +"allowNetAdmin": { +"description": "If true, workloads can use NET_ADMIN capability.", +"type": "boolean" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Kubernetes Engine API", +"version": "v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/content.v2.1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/content.v2.1.json new file mode 100644 index 0000000000000000000000000000000000000000..e619420a15715fa780d225da213fb03abfabd755 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/content.v2.1.json @@ -0,0 +1,14268 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/content": { +"description": "Manage your product listings and accounts for Google Shopping" +} +} +} +}, +"basePath": "/content/v2.1/", +"baseUrl": "https://shoppingcontent.googleapis.com/content/v2.1/", +"batchPath": "batch", +"canonicalName": "Shopping Content", +"description": "Manage your product listings and accounts for Google Shopping", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/shopping-content/v2/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "content:v2.1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://shoppingcontent.mtls.googleapis.com/", +"name": "content", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"methods": { +"authinfo": { +"description": "Returns information about the authenticated user.", +"flatPath": "accounts/authinfo", +"httpMethod": "GET", +"id": "content.accounts.authinfo", +"parameterOrder": [], +"parameters": {}, +"path": "accounts/authinfo", +"response": { +"$ref": "AccountsAuthInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"claimwebsite": { +"description": "Claims the website of a Merchant Center sub-account. Merchant accounts with approved third-party CSSs aren't required to claim a website.", +"flatPath": "{merchantId}/accounts/{accountId}/claimwebsite", +"httpMethod": "POST", +"id": "content.accounts.claimwebsite", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account whose website is claimed.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"overwrite": { +"description": "Only available to selected merchants, for example multi-client accounts (MCAs) and their sub-accounts. When set to `True`, this option removes any existing claim on the requested website and replaces it with a claim from the account that makes the request.", +"location": "query", +"type": "boolean" +} +}, +"path": "{merchantId}/accounts/{accountId}/claimwebsite", +"response": { +"$ref": "AccountsClaimWebsiteResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"custombatch": { +"description": "Retrieves, inserts, updates, and deletes multiple Merchant Center (sub-)accounts in a single request.", +"flatPath": "accounts/batch", +"httpMethod": "POST", +"id": "content.accounts.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "accounts/batch", +"request": { +"$ref": "AccountsCustomBatchRequest" +}, +"response": { +"$ref": "AccountsCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a Merchant Center sub-account.", +"flatPath": "{merchantId}/accounts/{accountId}", +"httpMethod": "DELETE", +"id": "content.accounts.delete", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"force": { +"default": "false", +"description": "Option to delete sub-accounts with products. The default value is false.", +"location": "query", +"type": "boolean" +}, +"merchantId": { +"description": "The ID of the managing account. This must be a multi-client account, and accountId must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accounts/{accountId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves a Merchant Center account.", +"flatPath": "{merchantId}/accounts/{accountId}", +"httpMethod": "GET", +"id": "content.accounts.get", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "Controls which fields will be populated. Acceptable values are: \"merchant\" and \"css\". The default value is \"merchant\".", +"enum": [ +"MERCHANT", +"CSS" +], +"enumDescriptions": [ +"Default. View is populated with Merchant Center fields.", +"View is populated with Comparison Shopping Services fields." +], +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/accounts/{accountId}", +"response": { +"$ref": "Account" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Creates a Merchant Center sub-account.", +"flatPath": "{merchantId}/accounts", +"httpMethod": "POST", +"id": "content.accounts.insert", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the managing account. This must be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accounts", +"request": { +"$ref": "Account" +}, +"response": { +"$ref": "Account" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"link": { +"description": "Performs an action on a link between two Merchant Center accounts, namely accountId and linkedAccountId.", +"flatPath": "{merchantId}/accounts/{accountId}/link", +"httpMethod": "POST", +"id": "content.accounts.link", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account that should be linked.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accounts/{accountId}/link", +"request": { +"$ref": "AccountsLinkRequest" +}, +"response": { +"$ref": "AccountsLinkResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the sub-accounts in your Merchant Center account.", +"flatPath": "{merchantId}/accounts", +"httpMethod": "GET", +"id": "content.accounts.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"label": { +"description": "If view is set to \"css\", only return accounts that are assigned label with given ID.", +"format": "uint64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of accounts to return in the response, used for paging.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the managing account. This must be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "If set, only the accounts with the given name (case sensitive) will be returned.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +}, +"view": { +"description": "Controls which fields will be populated. Acceptable values are: \"merchant\" and \"css\". The default value is \"merchant\".", +"enum": [ +"MERCHANT", +"CSS" +], +"enumDescriptions": [ +"Default. View is populated with Merchant Center fields.", +"View is populated with Comparison Shopping Services fields." +], +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/accounts", +"response": { +"$ref": "AccountsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"listlinks": { +"description": "Returns the list of accounts linked to your Merchant Center account.", +"flatPath": "{merchantId}/accounts/{accountId}/listlinks", +"httpMethod": "GET", +"id": "content.accounts.listlinks", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to list links.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of links to return in the response, used for pagination. The minimum allowed value is 5 results per page. If provided value is lower than 5, it will be automatically increased to 5.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/accounts/{accountId}/listlinks", +"response": { +"$ref": "AccountsListLinksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"requestphoneverification": { +"description": "Request verification code to start phone verification.", +"flatPath": "{merchantId}/accounts/{accountId}/requestphoneverification", +"httpMethod": "POST", +"id": "content.accounts.requestphoneverification", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "Required. The ID of the account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and accountId must be the ID of a sub-account of this account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accounts/{accountId}/requestphoneverification", +"request": { +"$ref": "RequestPhoneVerificationRequest" +}, +"response": { +"$ref": "RequestPhoneVerificationResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"update": { +"description": "Updates a Merchant Center account. Any fields that are not provided are deleted from the resource.", +"flatPath": "{merchantId}/accounts/{accountId}", +"httpMethod": "PUT", +"id": "content.accounts.update", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accounts/{accountId}", +"request": { +"$ref": "Account" +}, +"response": { +"$ref": "Account" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"updatelabels": { +"description": "Updates labels that are assigned to the Merchant Center account by CSS user.", +"flatPath": "{merchantId}/accounts/{accountId}/updatelabels", +"httpMethod": "POST", +"id": "content.accounts.updatelabels", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account whose labels are updated.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accounts/{accountId}/updatelabels", +"request": { +"$ref": "AccountsUpdateLabelsRequest" +}, +"response": { +"$ref": "AccountsUpdateLabelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"verifyphonenumber": { +"description": "Validates verification code to verify phone number for the account. If successful this will overwrite the value of `accounts.businessinformation.phoneNumber`. Only verified phone number will replace an existing verified phone number.", +"flatPath": "{merchantId}/accounts/{accountId}/verifyphonenumber", +"httpMethod": "POST", +"id": "content.accounts.verifyphonenumber", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "Required. The ID of the account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and accountId must be the ID of a sub-account of this account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accounts/{accountId}/verifyphonenumber", +"request": { +"$ref": "VerifyPhoneNumberRequest" +}, +"response": { +"$ref": "VerifyPhoneNumberResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +}, +"resources": { +"credentials": { +"methods": { +"create": { +"description": "Uploads credentials for the Merchant Center account. If credentials already exist for this Merchant Center account and purpose, this method updates them.", +"flatPath": "accounts/{accountId}/credentials", +"httpMethod": "POST", +"id": "content.accounts.credentials.create", +"parameterOrder": [ +"accountId" +], +"parameters": { +"accountId": { +"description": "Required. The merchant id of the account these credentials belong to.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "accounts/{accountId}/credentials", +"request": { +"$ref": "AccountCredentials" +}, +"response": { +"$ref": "AccountCredentials" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"labels": { +"methods": { +"create": { +"description": "Creates a new label, not assigned to any account.", +"flatPath": "accounts/{accountId}/labels", +"httpMethod": "POST", +"id": "content.accounts.labels.create", +"parameterOrder": [ +"accountId" +], +"parameters": { +"accountId": { +"description": "Required. The id of the account this label belongs to.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "accounts/{accountId}/labels", +"request": { +"$ref": "AccountLabel" +}, +"response": { +"$ref": "AccountLabel" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a label and removes it from all accounts to which it was assigned.", +"flatPath": "accounts/{accountId}/labels/{labelId}", +"httpMethod": "DELETE", +"id": "content.accounts.labels.delete", +"parameterOrder": [ +"accountId", +"labelId" +], +"parameters": { +"accountId": { +"description": "Required. The id of the account that owns the label.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"labelId": { +"description": "Required. The id of the label to delete.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "accounts/{accountId}/labels/{labelId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the labels assigned to an account.", +"flatPath": "accounts/{accountId}/labels", +"httpMethod": "GET", +"id": "content.accounts.labels.list", +"parameterOrder": [ +"accountId" +], +"parameters": { +"accountId": { +"description": "Required. The account id for whose labels are to be listed.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of labels to return. The service may return fewer than this value. If unspecified, at most 50 labels will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListAccountLabels` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccountLabels` must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "accounts/{accountId}/labels", +"response": { +"$ref": "ListAccountLabelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"patch": { +"description": "Updates a label.", +"flatPath": "accounts/{accountId}/labels/{labelId}", +"httpMethod": "PATCH", +"id": "content.accounts.labels.patch", +"parameterOrder": [ +"accountId", +"labelId" +], +"parameters": { +"accountId": { +"description": "Required. The id of the account this label belongs to.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"labelId": { +"description": "Required. The id of the label to update.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "accounts/{accountId}/labels/{labelId}", +"request": { +"$ref": "AccountLabel" +}, +"response": { +"$ref": "AccountLabel" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"returncarrier": { +"methods": { +"create": { +"description": "Links return carrier to a merchant account.", +"flatPath": "accounts/{accountId}/returncarrier", +"httpMethod": "POST", +"id": "content.accounts.returncarrier.create", +"parameterOrder": [ +"accountId" +], +"parameters": { +"accountId": { +"description": "Required. The Merchant Center Account Id under which the Return Carrier is to be linked.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "accounts/{accountId}/returncarrier", +"request": { +"$ref": "AccountReturnCarrier" +}, +"response": { +"$ref": "AccountReturnCarrier" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Delete a return carrier in the merchant account.", +"flatPath": "accounts/{accountId}/returncarrier/{carrierAccountId}", +"httpMethod": "DELETE", +"id": "content.accounts.returncarrier.delete", +"parameterOrder": [ +"accountId", +"carrierAccountId" +], +"parameters": { +"accountId": { +"description": "Required. The Merchant Center Account Id under which the Return Carrier is to be linked.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"carrierAccountId": { +"description": "Required. The Google-provided unique carrier ID, used to update the resource.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "accounts/{accountId}/returncarrier/{carrierAccountId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists available return carriers in the merchant account.", +"flatPath": "accounts/{accountId}/returncarrier", +"httpMethod": "GET", +"id": "content.accounts.returncarrier.list", +"parameterOrder": [ +"accountId" +], +"parameters": { +"accountId": { +"description": "Required. The Merchant Center Account Id under which the Return Carrier is to be linked.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "accounts/{accountId}/returncarrier", +"response": { +"$ref": "ListAccountReturnCarrierResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"patch": { +"description": "Updates a return carrier in the merchant account.", +"flatPath": "accounts/{accountId}/returncarrier/{carrierAccountId}", +"httpMethod": "PATCH", +"id": "content.accounts.returncarrier.patch", +"parameterOrder": [ +"accountId", +"carrierAccountId" +], +"parameters": { +"accountId": { +"description": "Required. The Merchant Center Account Id under which the Return Carrier is to be linked.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"carrierAccountId": { +"description": "Required. The Google-provided unique carrier ID, used to update the resource.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "accounts/{accountId}/returncarrier/{carrierAccountId}", +"request": { +"$ref": "AccountReturnCarrier" +}, +"response": { +"$ref": "AccountReturnCarrier" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +} +} +}, +"accountstatuses": { +"methods": { +"custombatch": { +"description": "Retrieves multiple Merchant Center account statuses in a single request.", +"flatPath": "accountstatuses/batch", +"httpMethod": "POST", +"id": "content.accountstatuses.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "accountstatuses/batch", +"request": { +"$ref": "AccountstatusesCustomBatchRequest" +}, +"response": { +"$ref": "AccountstatusesCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves the status of a Merchant Center account. No itemLevelIssues are returned for multi-client accounts.", +"flatPath": "{merchantId}/accountstatuses/{accountId}", +"httpMethod": "GET", +"id": "content.accountstatuses.get", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"destinations": { +"description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.", +"location": "query", +"repeated": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accountstatuses/{accountId}", +"response": { +"$ref": "AccountStatus" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the statuses of the sub-accounts in your Merchant Center account.", +"flatPath": "{merchantId}/accountstatuses", +"httpMethod": "GET", +"id": "content.accountstatuses.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"destinations": { +"description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.", +"location": "query", +"repeated": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of account statuses to return in the response, used for paging.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the managing account. This must be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "If set, only the accounts with the given name (case sensitive) will be returned.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/accountstatuses", +"response": { +"$ref": "AccountstatusesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"accounttax": { +"methods": { +"custombatch": { +"description": "Retrieves and updates tax settings of multiple accounts in a single request.", +"flatPath": "accounttax/batch", +"httpMethod": "POST", +"id": "content.accounttax.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "accounttax/batch", +"request": { +"$ref": "AccounttaxCustomBatchRequest" +}, +"response": { +"$ref": "AccounttaxCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves the tax settings of the account.", +"flatPath": "{merchantId}/accounttax/{accountId}", +"httpMethod": "GET", +"id": "content.accounttax.get", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to get/update account tax settings.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accounttax/{accountId}", +"response": { +"$ref": "AccountTax" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the tax settings of the sub-accounts in your Merchant Center account.", +"flatPath": "{merchantId}/accounttax", +"httpMethod": "GET", +"id": "content.accounttax.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"maxResults": { +"description": "The maximum number of tax settings to return in the response, used for paging.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the managing account. This must be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/accounttax", +"response": { +"$ref": "AccounttaxListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"update": { +"description": "Updates the tax settings of the account. Any fields that are not provided are deleted from the resource.", +"flatPath": "{merchantId}/accounttax/{accountId}", +"httpMethod": "PUT", +"id": "content.accounttax.update", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to get/update account tax settings.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/accounttax/{accountId}", +"request": { +"$ref": "AccountTax" +}, +"response": { +"$ref": "AccountTax" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"collections": { +"methods": { +"create": { +"description": "Uploads a collection to your Merchant Center account. If a collection with the same collectionId already exists, this method updates that entry. In each update, the collection is completely replaced by the fields in the body of the update request.", +"flatPath": "{merchantId}/collections", +"httpMethod": "POST", +"id": "content.collections.create", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account that contains the collection. This account cannot be a multi-client account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/collections", +"request": { +"$ref": "Collection" +}, +"response": { +"$ref": "Collection" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a collection from your Merchant Center account.", +"flatPath": "{merchantId}/collections/{collectionId}", +"httpMethod": "DELETE", +"id": "content.collections.delete", +"parameterOrder": [ +"merchantId", +"collectionId" +], +"parameters": { +"collectionId": { +"description": "Required. The collectionId of the collection. CollectionId is the same as the REST ID of the collection.", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that contains the collection. This account cannot be a multi-client account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/collections/{collectionId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves a collection from your Merchant Center account.", +"flatPath": "{merchantId}/collections/{collectionId}", +"httpMethod": "GET", +"id": "content.collections.get", +"parameterOrder": [ +"merchantId", +"collectionId" +], +"parameters": { +"collectionId": { +"description": "Required. The REST ID of the collection.", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that contains the collection. This account cannot be a multi-client account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/collections/{collectionId}", +"response": { +"$ref": "Collection" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the collections in your Merchant Center account. The response might contain fewer items than specified by page_size. Rely on next_page_token to determine if there are more items to be requested.", +"flatPath": "{merchantId}/collections", +"httpMethod": "GET", +"id": "content.collections.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account that contains the collection. This account cannot be a multi-client account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of collections to return in the response, used for paging. Defaults to 50; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token (if provided) to retrieve the subsequent page. All other parameters must match the original call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/collections", +"response": { +"$ref": "ListCollectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"collectionstatuses": { +"methods": { +"get": { +"description": "Gets the status of a collection from your Merchant Center account.", +"flatPath": "{merchantId}/collectionstatuses/{collectionId}", +"httpMethod": "GET", +"id": "content.collectionstatuses.get", +"parameterOrder": [ +"merchantId", +"collectionId" +], +"parameters": { +"collectionId": { +"description": "Required. The collectionId of the collection. CollectionId is the same as the REST ID of the collection.", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that contains the collection. This account cannot be a multi-client account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/collectionstatuses/{collectionId}", +"response": { +"$ref": "CollectionStatus" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the statuses of the collections in your Merchant Center account.", +"flatPath": "{merchantId}/collectionstatuses", +"httpMethod": "GET", +"id": "content.collectionstatuses.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account that contains the collection. This account cannot be a multi-client account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of collection statuses to return in the response, used for paging. Defaults to 50; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token (if provided) to retrieve the subsequent page. All other parameters must match the original call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/collectionstatuses", +"response": { +"$ref": "ListCollectionStatusesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"conversionsources": { +"methods": { +"create": { +"description": "Creates a new conversion source.", +"flatPath": "{merchantId}/conversionsources", +"httpMethod": "POST", +"id": "content.conversionsources.create", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account that owns the new conversion source.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/conversionsources", +"request": { +"$ref": "ConversionSource" +}, +"response": { +"$ref": "ConversionSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Archives an existing conversion source. It will be recoverable for 30 days. This archiving behavior is not typical in the Content API and unique to this service.", +"flatPath": "{merchantId}/conversionsources/{conversionSourceId}", +"httpMethod": "DELETE", +"id": "content.conversionsources.delete", +"parameterOrder": [ +"merchantId", +"conversionSourceId" +], +"parameters": { +"conversionSourceId": { +"description": "Required. The ID of the conversion source to be deleted.", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that owns the new conversion source.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/conversionsources/{conversionSourceId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Fetches a conversion source.", +"flatPath": "{merchantId}/conversionsources/{conversionSourceId}", +"httpMethod": "GET", +"id": "content.conversionsources.get", +"parameterOrder": [ +"merchantId", +"conversionSourceId" +], +"parameters": { +"conversionSourceId": { +"description": "Required. The REST ID of the collection.", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that owns the new conversion source.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/conversionsources/{conversionSourceId}", +"response": { +"$ref": "ConversionSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Retrieves the list of conversion sources the caller has access to.", +"flatPath": "{merchantId}/conversionsources", +"httpMethod": "GET", +"id": "content.conversionsources.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account that owns the new conversion source.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of conversion sources to return in a page. If no `page_size` is specified, `100` is used as the default value. The maximum value is `200`. Values above `200` will be coerced to `200`. Regardless of pagination, at most `200` conversion sources are returned in total.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "If true, also returns archived conversion sources.", +"location": "query", +"type": "boolean" +} +}, +"path": "{merchantId}/conversionsources", +"response": { +"$ref": "ListConversionSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"patch": { +"description": "Updates information of an existing conversion source.", +"flatPath": "{merchantId}/conversionsources/{conversionSourceId}", +"httpMethod": "PATCH", +"id": "content.conversionsources.patch", +"parameterOrder": [ +"merchantId", +"conversionSourceId" +], +"parameters": { +"conversionSourceId": { +"description": "Required. The ID of the conversion source to be updated.", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that owns the new conversion source.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. List of fields being updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/conversionsources/{conversionSourceId}", +"request": { +"$ref": "ConversionSource" +}, +"response": { +"$ref": "ConversionSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"undelete": { +"description": "Re-enables an archived conversion source.", +"flatPath": "{merchantId}/conversionsources/{conversionSourceId}:undelete", +"httpMethod": "POST", +"id": "content.conversionsources.undelete", +"parameterOrder": [ +"merchantId", +"conversionSourceId" +], +"parameters": { +"conversionSourceId": { +"description": "Required. The ID of the conversion source to be undeleted.", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that owns the new conversion source.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/conversionsources/{conversionSourceId}:undelete", +"request": { +"$ref": "UndeleteConversionSourceRequest" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"csses": { +"methods": { +"get": { +"description": "Retrieves a single CSS domain by ID.", +"flatPath": "{cssGroupId}/csses/{cssDomainId}", +"httpMethod": "GET", +"id": "content.csses.get", +"parameterOrder": [ +"cssGroupId", +"cssDomainId" +], +"parameters": { +"cssDomainId": { +"description": "Required. The ID of the CSS domain to return.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"cssGroupId": { +"description": "Required. The ID of the managing account. If this parameter is not the same as [cssDomainId](#cssDomainId), then this ID must be a CSS group ID and `cssDomainId` must be the ID of a CSS domain affiliated with this group.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{cssGroupId}/csses/{cssDomainId}", +"response": { +"$ref": "Css" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists CSS domains affiliated with a CSS group.", +"flatPath": "{cssGroupId}/csses", +"httpMethod": "GET", +"id": "content.csses.list", +"parameterOrder": [ +"cssGroupId" +], +"parameters": { +"cssGroupId": { +"description": "Required. The CSS group ID of CSS domains to be listed.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of CSS domains to return. The service may return fewer than this value. If unspecified, at most 50 CSS domains will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListCsses` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCsses` must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "{cssGroupId}/csses", +"response": { +"$ref": "ListCssesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"updatelabels": { +"description": "Updates labels that are assigned to a CSS domain by its CSS group.", +"flatPath": "{cssGroupId}/csses/{cssDomainId}/updatelabels", +"httpMethod": "POST", +"id": "content.csses.updatelabels", +"parameterOrder": [ +"cssGroupId", +"cssDomainId" +], +"parameters": { +"cssDomainId": { +"description": "Required. The ID of the updated CSS domain.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"cssGroupId": { +"description": "Required. The CSS group ID of the updated CSS domain.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{cssGroupId}/csses/{cssDomainId}/updatelabels", +"request": { +"$ref": "LabelIds" +}, +"response": { +"$ref": "Css" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"datafeeds": { +"methods": { +"custombatch": { +"description": "Deletes, fetches, gets, inserts and updates multiple datafeeds in a single request.", +"flatPath": "datafeeds/batch", +"httpMethod": "POST", +"id": "content.datafeeds.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "datafeeds/batch", +"request": { +"$ref": "DatafeedsCustomBatchRequest" +}, +"response": { +"$ref": "DatafeedsCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a datafeed configuration from your Merchant Center account.", +"flatPath": "{merchantId}/datafeeds/{datafeedId}", +"httpMethod": "DELETE", +"id": "content.datafeeds.delete", +"parameterOrder": [ +"merchantId", +"datafeedId" +], +"parameters": { +"datafeedId": { +"description": "The ID of the datafeed.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the account that manages the datafeed. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/datafeeds/{datafeedId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"fetchnow": { +"description": "Invokes a fetch for the datafeed in your Merchant Center account. If you need to call this method more than once per day, we recommend you use the [Products service](https://developers.google.com/shopping-content/reference/rest/v2.1/products) to update your product data.", +"flatPath": "{merchantId}/datafeeds/{datafeedId}/fetchNow", +"httpMethod": "POST", +"id": "content.datafeeds.fetchnow", +"parameterOrder": [ +"merchantId", +"datafeedId" +], +"parameters": { +"datafeedId": { +"description": "The ID of the datafeed to be fetched.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the account that manages the datafeed. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/datafeeds/{datafeedId}/fetchNow", +"response": { +"$ref": "DatafeedsFetchNowResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves a datafeed configuration from your Merchant Center account.", +"flatPath": "{merchantId}/datafeeds/{datafeedId}", +"httpMethod": "GET", +"id": "content.datafeeds.get", +"parameterOrder": [ +"merchantId", +"datafeedId" +], +"parameters": { +"datafeedId": { +"description": "The ID of the datafeed.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the account that manages the datafeed. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/datafeeds/{datafeedId}", +"response": { +"$ref": "Datafeed" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Registers a datafeed configuration with your Merchant Center account.", +"flatPath": "{merchantId}/datafeeds", +"httpMethod": "POST", +"id": "content.datafeeds.insert", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account that manages the datafeed. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/datafeeds", +"request": { +"$ref": "Datafeed" +}, +"response": { +"$ref": "Datafeed" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the configurations for datafeeds in your Merchant Center account.", +"flatPath": "{merchantId}/datafeeds", +"httpMethod": "GET", +"id": "content.datafeeds.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"maxResults": { +"description": "The maximum number of products to return in the response, used for paging.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the account that manages the datafeeds. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/datafeeds", +"response": { +"$ref": "DatafeedsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"update": { +"description": "Updates a datafeed configuration of your Merchant Center account. Any fields that are not provided are deleted from the resource.", +"flatPath": "{merchantId}/datafeeds/{datafeedId}", +"httpMethod": "PUT", +"id": "content.datafeeds.update", +"parameterOrder": [ +"merchantId", +"datafeedId" +], +"parameters": { +"datafeedId": { +"description": "The ID of the datafeed.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the account that manages the datafeed. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/datafeeds/{datafeedId}", +"request": { +"$ref": "Datafeed" +}, +"response": { +"$ref": "Datafeed" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"datafeedstatuses": { +"methods": { +"custombatch": { +"description": "Gets multiple Merchant Center datafeed statuses in a single request.", +"flatPath": "datafeedstatuses/batch", +"httpMethod": "POST", +"id": "content.datafeedstatuses.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "datafeedstatuses/batch", +"request": { +"$ref": "DatafeedstatusesCustomBatchRequest" +}, +"response": { +"$ref": "DatafeedstatusesCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves the status of a datafeed from your Merchant Center account.", +"flatPath": "{merchantId}/datafeedstatuses/{datafeedId}", +"httpMethod": "GET", +"id": "content.datafeedstatuses.get", +"parameterOrder": [ +"merchantId", +"datafeedId" +], +"parameters": { +"country": { +"description": "Deprecated. Use `feedLabel` instead. The country to get the datafeed status for. If this parameter is provided then `language` must also be provided. Note that this parameter is required for feeds targeting multiple countries and languages, since a feed may have a different status for each target.", +"location": "query", +"type": "string" +}, +"datafeedId": { +"description": "The ID of the datafeed.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"feedLabel": { +"description": "The feed label to get the datafeed status for. If this parameter is provided then `language` must also be provided. Note that this parameter is required for feeds targeting multiple countries and languages, since a feed may have a different status for each target.", +"location": "query", +"type": "string" +}, +"language": { +"description": "The language to get the datafeed status for. If this parameter is provided then `country` must also be provided. Note that this parameter is required for feeds targeting multiple countries and languages, since a feed may have a different status for each target.", +"location": "query", +"type": "string" +}, +"merchantId": { +"description": "The ID of the account that manages the datafeed. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/datafeedstatuses/{datafeedId}", +"response": { +"$ref": "DatafeedStatus" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the statuses of the datafeeds in your Merchant Center account.", +"flatPath": "{merchantId}/datafeedstatuses", +"httpMethod": "GET", +"id": "content.datafeedstatuses.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"maxResults": { +"description": "The maximum number of products to return in the response, used for paging.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the account that manages the datafeeds. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/datafeedstatuses", +"response": { +"$ref": "DatafeedstatusesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"freelistingsprogram": { +"methods": { +"get": { +"description": "Retrieves the status and review eligibility for the free listing program. Returns errors and warnings if they require action to resolve, will become disapprovals, or impact impressions. Use `accountstatuses` to view all issues for an account.", +"flatPath": "{merchantId}/freelistingsprogram", +"httpMethod": "GET", +"id": "content.freelistingsprogram.get", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/freelistingsprogram", +"response": { +"$ref": "FreeListingsProgramStatus" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"requestreview": { +"description": "Requests a review of free listings in a specific region. This method deprecated. Use the `MerchantSupportService` to view product and account issues and request a review.", +"flatPath": "{merchantId}/freelistingsprogram/requestreview", +"httpMethod": "POST", +"id": "content.freelistingsprogram.requestreview", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/freelistingsprogram/requestreview", +"request": { +"$ref": "RequestReviewFreeListingsRequest" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +}, +"resources": { +"checkoutsettings": { +"methods": { +"delete": { +"description": "Deletes `Checkout` settings and unenrolls merchant from `Checkout` program.", +"flatPath": "{merchantId}/freelistingsprogram/checkoutsettings", +"httpMethod": "DELETE", +"id": "content.freelistingsprogram.checkoutsettings.delete", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/freelistingsprogram/checkoutsettings", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Gets Checkout settings for the given merchant. This includes information about review state, enrollment state and URL settings.", +"flatPath": "{merchantId}/freelistingsprogram/checkoutsettings", +"httpMethod": "GET", +"id": "content.freelistingsprogram.checkoutsettings.get", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/freelistingsprogram/checkoutsettings", +"response": { +"$ref": "CheckoutSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Enrolls merchant in `Checkout` program.", +"flatPath": "{merchantId}/freelistingsprogram/checkoutsettings", +"httpMethod": "POST", +"id": "content.freelistingsprogram.checkoutsettings.insert", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/freelistingsprogram/checkoutsettings", +"request": { +"$ref": "InsertCheckoutSettingsRequest" +}, +"response": { +"$ref": "CheckoutSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +} +} +}, +"liasettings": { +"methods": { +"custombatch": { +"description": "Retrieves and/or updates the LIA settings of multiple accounts in a single request.", +"flatPath": "liasettings/batch", +"httpMethod": "POST", +"id": "content.liasettings.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "liasettings/batch", +"request": { +"$ref": "LiasettingsCustomBatchRequest" +}, +"response": { +"$ref": "LiasettingsCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves the LIA settings of the account.", +"flatPath": "{merchantId}/liasettings/{accountId}", +"httpMethod": "GET", +"id": "content.liasettings.get", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to get or update LIA settings.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/liasettings/{accountId}", +"response": { +"$ref": "LiaSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"getaccessiblegmbaccounts": { +"description": "Retrieves the list of accessible Business Profiles.", +"flatPath": "{merchantId}/liasettings/{accountId}/accessiblegmbaccounts", +"httpMethod": "GET", +"id": "content.liasettings.getaccessiblegmbaccounts", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to retrieve accessible Business Profiles.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/liasettings/{accountId}/accessiblegmbaccounts", +"response": { +"$ref": "LiasettingsGetAccessibleGmbAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the LIA settings of the sub-accounts in your Merchant Center account.", +"flatPath": "{merchantId}/liasettings", +"httpMethod": "GET", +"id": "content.liasettings.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"maxResults": { +"description": "The maximum number of LIA settings to return in the response, used for paging.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the managing account. This must be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/liasettings", +"response": { +"$ref": "LiasettingsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"listposdataproviders": { +"description": "Retrieves the list of POS data providers that have active settings for the all eiligible countries.", +"flatPath": "liasettings/posdataproviders", +"httpMethod": "GET", +"id": "content.liasettings.listposdataproviders", +"parameterOrder": [], +"parameters": {}, +"path": "liasettings/posdataproviders", +"response": { +"$ref": "LiasettingsListPosDataProvidersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"requestgmbaccess": { +"description": "Requests access to a specified Business Profile.", +"flatPath": "{merchantId}/liasettings/{accountId}/requestgmbaccess", +"httpMethod": "POST", +"id": "content.liasettings.requestgmbaccess", +"parameterOrder": [ +"merchantId", +"accountId", +"gmbEmail" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which Business Profile access is requested.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"gmbEmail": { +"description": "The email of the Business Profile.", +"location": "query", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/liasettings/{accountId}/requestgmbaccess", +"response": { +"$ref": "LiasettingsRequestGmbAccessResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"requestinventoryverification": { +"description": "Requests inventory validation for the specified country.", +"flatPath": "{merchantId}/liasettings/{accountId}/requestinventoryverification/{country}", +"httpMethod": "POST", +"id": "content.liasettings.requestinventoryverification", +"parameterOrder": [ +"merchantId", +"accountId", +"country" +], +"parameters": { +"accountId": { +"description": "The ID of the account that manages the order. This cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"country": { +"description": "The country for which inventory validation is requested.", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/liasettings/{accountId}/requestinventoryverification/{country}", +"response": { +"$ref": "LiasettingsRequestInventoryVerificationResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"setinventoryverificationcontact": { +"description": "Sets the inventory verification contract for the specified country.", +"flatPath": "{merchantId}/liasettings/{accountId}/setinventoryverificationcontact", +"httpMethod": "POST", +"id": "content.liasettings.setinventoryverificationcontact", +"parameterOrder": [ +"merchantId", +"accountId", +"country", +"language", +"contactName", +"contactEmail" +], +"parameters": { +"accountId": { +"description": "The ID of the account that manages the order. This cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"contactEmail": { +"description": "The email of the inventory verification contact.", +"location": "query", +"required": true, +"type": "string" +}, +"contactName": { +"description": "The name of the inventory verification contact.", +"location": "query", +"required": true, +"type": "string" +}, +"country": { +"description": "The country for which inventory verification is requested.", +"location": "query", +"required": true, +"type": "string" +}, +"language": { +"description": "The language for which inventory verification is requested.", +"location": "query", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/liasettings/{accountId}/setinventoryverificationcontact", +"response": { +"$ref": "LiasettingsSetInventoryVerificationContactResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"setomnichannelexperience": { +"description": "Sets the omnichannel experience for the specified country. Only supported for merchants whose POS data provider is trusted to enable the corresponding experience. For more context, see these help articles [about LFP](https://support.google.com/merchants/answer/7676652) and [how to get started](https://support.google.com/merchants/answer/7676578) with it.", +"flatPath": "{merchantId}/liasettings/{accountId}/setomnichannelexperience", +"httpMethod": "POST", +"id": "content.liasettings.setomnichannelexperience", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to retrieve accessible Business Profiles.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"country": { +"description": "The CLDR country code (for example, \"US\") for which the omnichannel experience is selected.", +"location": "query", +"type": "string" +}, +"lsfType": { +"description": "The Local Store Front (LSF) type for this country. Acceptable values are: - \"`ghlsf`\" (Google-Hosted Local Store Front) - \"`mhlsfBasic`\" (Merchant-Hosted Local Store Front Basic) - \"`mhlsfFull`\" (Merchant-Hosted Local Store Front Full) More details about these types can be found here.", +"location": "query", +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pickupTypes": { +"description": "The Pickup types for this country. Acceptable values are: - \"`pickupToday`\" - \"`pickupLater`\" ", +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "{merchantId}/liasettings/{accountId}/setomnichannelexperience", +"response": { +"$ref": "LiaOmnichannelExperience" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"setposdataprovider": { +"description": "Sets the POS data provider for the specified country.", +"flatPath": "{merchantId}/liasettings/{accountId}/setposdataprovider", +"httpMethod": "POST", +"id": "content.liasettings.setposdataprovider", +"parameterOrder": [ +"merchantId", +"accountId", +"country" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to retrieve accessible Business Profiles.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"country": { +"description": "The country for which the POS data provider is selected.", +"location": "query", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"posDataProviderId": { +"description": "The ID of POS data provider.", +"format": "uint64", +"location": "query", +"type": "string" +}, +"posExternalAccountId": { +"description": "The account ID by which this merchant is known to the POS data provider.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/liasettings/{accountId}/setposdataprovider", +"response": { +"$ref": "LiasettingsSetPosDataProviderResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"update": { +"description": "Updates the LIA settings of the account. Any fields that are not provided are deleted from the resource.", +"flatPath": "{merchantId}/liasettings/{accountId}", +"httpMethod": "PUT", +"id": "content.liasettings.update", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to get or update LIA settings.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/liasettings/{accountId}", +"request": { +"$ref": "LiaSettings" +}, +"response": { +"$ref": "LiaSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"localinventory": { +"methods": { +"custombatch": { +"description": "Updates local inventory for multiple products or stores in a single request.", +"flatPath": "localinventory/batch", +"httpMethod": "POST", +"id": "content.localinventory.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "localinventory/batch", +"request": { +"$ref": "LocalinventoryCustomBatchRequest" +}, +"response": { +"$ref": "LocalinventoryCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Updates the local inventory of a product in your Merchant Center account.", +"flatPath": "{merchantId}/products/{productId}/localinventory", +"httpMethod": "POST", +"id": "content.localinventory.insert", +"parameterOrder": [ +"merchantId", +"productId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "The REST ID of the product for which to update local inventory.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/products/{productId}/localinventory", +"request": { +"$ref": "LocalInventory" +}, +"response": { +"$ref": "LocalInventory" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"merchantsupport": { +"methods": { +"renderaccountissues": { +"description": "Provide a list of merchant's issues with a support content and available actions. This content and actions are meant to be rendered and shown in third-party applications.", +"flatPath": "{merchantId}/merchantsupport/renderaccountissues", +"httpMethod": "POST", +"id": "content.merchantsupport.renderaccountissues", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"languageCode": { +"description": "Optional. The [IETF BCP-47](https://tools.ietf.org/html/bcp47) language code used to localize support content. If not set, the result will be in default language `en-US`.", +"location": "query", +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account to fetch issues for.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"timeZone": { +"description": "Optional. The [IANA](https://www.iana.org/time-zones) timezone used to localize times in support content. For example 'America/Los_Angeles'. If not set, results will use as a default UTC.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/merchantsupport/renderaccountissues", +"request": { +"$ref": "RenderAccountIssuesRequestPayload" +}, +"response": { +"$ref": "RenderAccountIssuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"renderproductissues": { +"description": "Provide a list of issues for merchant's product with a support content and available actions. This content and actions are meant to be rendered and shown in third-party applications.", +"flatPath": "{merchantId}/merchantsupport/renderproductissues/{productId}", +"httpMethod": "POST", +"id": "content.merchantsupport.renderproductissues", +"parameterOrder": [ +"merchantId", +"productId" +], +"parameters": { +"languageCode": { +"description": "Optional. The [IETF BCP-47](https://tools.ietf.org/html/bcp47) language code used to localize support content. If not set, the result will be in default language `en-US`.", +"location": "query", +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that contains the product.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The [REST_ID](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.id) of the product to fetch issues for.", +"location": "path", +"required": true, +"type": "string" +}, +"timeZone": { +"description": "Optional. The [IANA](https://www.iana.org/time-zones) timezone used to localize times in support content. For example 'America/Los_Angeles'. If not set, results will use as a default UTC.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/merchantsupport/renderproductissues/{productId}", +"request": { +"$ref": "RenderProductIssuesRequestPayload" +}, +"response": { +"$ref": "RenderProductIssuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"triggeraction": { +"description": "Start an action. The action can be requested by merchants in third-party application. Before merchants can request the action, the third-party application needs to show them action specific content and display a user input form. The action can be successfully started only once all `required` inputs are provided. If any `required` input is missing, or invalid value was provided, the service will return 400 error. Validation errors will contain Ids for all problematic field together with translated, human readable error messages that can be shown to the user.", +"flatPath": "{merchantId}/merchantsupport/triggeraction", +"httpMethod": "POST", +"id": "content.merchantsupport.triggeraction", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"languageCode": { +"description": "Optional. Language code [IETF BCP 47 syntax](https://tools.ietf.org/html/bcp47) used to localize the response. If not set, the result will be in default language `en-US`.", +"location": "query", +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the merchant's account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/merchantsupport/triggeraction", +"request": { +"$ref": "TriggerActionPayload" +}, +"response": { +"$ref": "TriggerActionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"ordertrackingsignals": { +"methods": { +"create": { +"description": "Creates new order tracking signal.", +"flatPath": "{merchantId}/ordertrackingsignals", +"httpMethod": "POST", +"id": "content.ordertrackingsignals.create", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the merchant for which the order signal is created.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/ordertrackingsignals", +"request": { +"$ref": "OrderTrackingSignal" +}, +"response": { +"$ref": "OrderTrackingSignal" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"pos": { +"methods": { +"custombatch": { +"description": "Batches multiple POS-related calls in a single request.", +"flatPath": "pos/batch", +"httpMethod": "POST", +"id": "content.pos.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "pos/batch", +"request": { +"$ref": "PosCustomBatchRequest" +}, +"response": { +"$ref": "PosCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a store for the given merchant.", +"flatPath": "{merchantId}/pos/{targetMerchantId}/store/{storeCode}", +"httpMethod": "DELETE", +"id": "content.pos.delete", +"parameterOrder": [ +"merchantId", +"targetMerchantId", +"storeCode" +], +"parameters": { +"merchantId": { +"description": "The ID of the POS or inventory data provider.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"storeCode": { +"description": "A store code that is unique per merchant.", +"location": "path", +"required": true, +"type": "string" +}, +"targetMerchantId": { +"description": "The ID of the target merchant.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/pos/{targetMerchantId}/store/{storeCode}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves information about the given store.", +"flatPath": "{merchantId}/pos/{targetMerchantId}/store/{storeCode}", +"httpMethod": "GET", +"id": "content.pos.get", +"parameterOrder": [ +"merchantId", +"targetMerchantId", +"storeCode" +], +"parameters": { +"merchantId": { +"description": "The ID of the POS or inventory data provider.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"storeCode": { +"description": "A store code that is unique per merchant.", +"location": "path", +"required": true, +"type": "string" +}, +"targetMerchantId": { +"description": "The ID of the target merchant.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/pos/{targetMerchantId}/store/{storeCode}", +"response": { +"$ref": "PosStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Creates a store for the given merchant.", +"flatPath": "{merchantId}/pos/{targetMerchantId}/store", +"httpMethod": "POST", +"id": "content.pos.insert", +"parameterOrder": [ +"merchantId", +"targetMerchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the POS or inventory data provider.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"targetMerchantId": { +"description": "The ID of the target merchant.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/pos/{targetMerchantId}/store", +"request": { +"$ref": "PosStore" +}, +"response": { +"$ref": "PosStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"inventory": { +"description": "Submit inventory for the given merchant.", +"flatPath": "{merchantId}/pos/{targetMerchantId}/inventory", +"httpMethod": "POST", +"id": "content.pos.inventory", +"parameterOrder": [ +"merchantId", +"targetMerchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the POS or inventory data provider.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"targetMerchantId": { +"description": "The ID of the target merchant.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/pos/{targetMerchantId}/inventory", +"request": { +"$ref": "PosInventoryRequest" +}, +"response": { +"$ref": "PosInventoryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the stores of the target merchant.", +"flatPath": "{merchantId}/pos/{targetMerchantId}/store", +"httpMethod": "GET", +"id": "content.pos.list", +"parameterOrder": [ +"merchantId", +"targetMerchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the POS or inventory data provider.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"targetMerchantId": { +"description": "The ID of the target merchant.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/pos/{targetMerchantId}/store", +"response": { +"$ref": "PosListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"sale": { +"description": "Submit a sale event for the given merchant.", +"flatPath": "{merchantId}/pos/{targetMerchantId}/sale", +"httpMethod": "POST", +"id": "content.pos.sale", +"parameterOrder": [ +"merchantId", +"targetMerchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the POS or inventory data provider.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"targetMerchantId": { +"description": "The ID of the target merchant.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/pos/{targetMerchantId}/sale", +"request": { +"$ref": "PosSaleRequest" +}, +"response": { +"$ref": "PosSaleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"productdeliverytime": { +"methods": { +"create": { +"description": "Creates or updates the delivery time of a product.", +"flatPath": "{merchantId}/productdeliverytime", +"httpMethod": "POST", +"id": "content.productdeliverytime.create", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The Google merchant ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/productdeliverytime", +"request": { +"$ref": "ProductDeliveryTime" +}, +"response": { +"$ref": "ProductDeliveryTime" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes the delivery time of a product.", +"flatPath": "{merchantId}/productdeliverytime/{productId}", +"httpMethod": "DELETE", +"id": "content.productdeliverytime.delete", +"parameterOrder": [ +"merchantId", +"productId" +], +"parameters": { +"merchantId": { +"description": "Required. The Google merchant ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The Content API ID of the product, in the form `channel:contentLanguage:targetCountry:offerId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/productdeliverytime/{productId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Gets `productDeliveryTime` by `productId`.", +"flatPath": "{merchantId}/productdeliverytime/{productId}", +"httpMethod": "GET", +"id": "content.productdeliverytime.get", +"parameterOrder": [ +"merchantId", +"productId" +], +"parameters": { +"merchantId": { +"description": "Required. The Google merchant ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The Content API ID of the product, in the form `channel:contentLanguage:targetCountry:offerId`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/productdeliverytime/{productId}", +"response": { +"$ref": "ProductDeliveryTime" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"products": { +"methods": { +"custombatch": { +"description": "Retrieves, inserts, and deletes multiple products in a single request.", +"flatPath": "products/batch", +"httpMethod": "POST", +"id": "content.products.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "products/batch", +"request": { +"$ref": "ProductsCustomBatchRequest" +}, +"response": { +"$ref": "ProductsCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a product from your Merchant Center account.", +"flatPath": "{merchantId}/products/{productId}", +"httpMethod": "DELETE", +"id": "content.products.delete", +"parameterOrder": [ +"merchantId", +"productId" +], +"parameters": { +"feedId": { +"description": "The Content API Supplemental Feed ID. If present then product deletion applies to the data in a supplemental feed. If absent, entire product will be deleted.", +"format": "uint64", +"location": "query", +"type": "string" +}, +"merchantId": { +"description": "The ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "The REST ID of the product.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/products/{productId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves a product from your Merchant Center account.", +"flatPath": "{merchantId}/products/{productId}", +"httpMethod": "GET", +"id": "content.products.get", +"parameterOrder": [ +"merchantId", +"productId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "The REST ID of the product.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/products/{productId}", +"response": { +"$ref": "Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Uploads a product to your Merchant Center account. If an item with the same channel, contentLanguage, offerId, and targetCountry already exists, this method updates that entry.", +"flatPath": "{merchantId}/products", +"httpMethod": "POST", +"id": "content.products.insert", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"feedId": { +"description": "The Content API Supplemental Feed ID. If present then product insertion applies to the data in a supplemental feed.", +"format": "uint64", +"location": "query", +"type": "string" +}, +"merchantId": { +"description": "The ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/products", +"request": { +"$ref": "Product" +}, +"response": { +"$ref": "Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the products in your Merchant Center account. The response might contain fewer items than specified by maxResults. Rely on nextPageToken to determine if there are more items to be requested.", +"flatPath": "{merchantId}/products", +"httpMethod": "GET", +"id": "content.products.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"maxResults": { +"description": "The maximum number of products to return in the response, used for paging. The default value is 25. The maximum value is 250.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the account that contains the products. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/products", +"response": { +"$ref": "ProductsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"update": { +"description": "Updates an existing product in your Merchant Center account. Only updates attributes provided in the request.", +"flatPath": "{merchantId}/products/{productId}", +"httpMethod": "PATCH", +"id": "content.products.update", +"parameterOrder": [ +"merchantId", +"productId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "The REST ID of the product for which to update.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The comma-separated list of product attributes to be updated. Example: `\"title,salePrice\"`. Attributes specified in the update mask without a value specified in the body will be deleted from the product. *You must specify the update mask to delete attributes.* Only top-level product attributes can be updated. If not defined, product attributes with set values will be updated and other attributes will stay unchanged.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/products/{productId}", +"request": { +"$ref": "Product" +}, +"response": { +"$ref": "Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"productstatuses": { +"methods": { +"custombatch": { +"description": "Gets the statuses of multiple products in a single request.", +"flatPath": "productstatuses/batch", +"httpMethod": "POST", +"id": "content.productstatuses.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "productstatuses/batch", +"request": { +"$ref": "ProductstatusesCustomBatchRequest" +}, +"response": { +"$ref": "ProductstatusesCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Gets the status of a product from your Merchant Center account.", +"flatPath": "{merchantId}/productstatuses/{productId}", +"httpMethod": "GET", +"id": "content.productstatuses.get", +"parameterOrder": [ +"merchantId", +"productId" +], +"parameters": { +"destinations": { +"description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.", +"location": "query", +"repeated": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "The REST ID of the product.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/productstatuses/{productId}", +"response": { +"$ref": "ProductStatus" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the statuses of the products in your Merchant Center account.", +"flatPath": "{merchantId}/productstatuses", +"httpMethod": "GET", +"id": "content.productstatuses.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"destinations": { +"description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.", +"location": "query", +"repeated": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of product statuses to return in the response, used for paging. The default value is 25. The maximum value is 250.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the account that contains the products. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/productstatuses", +"response": { +"$ref": "ProductstatusesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"promotions": { +"methods": { +"create": { +"description": "Inserts a promotion for your Merchant Center account. If the promotion already exists, then it updates the promotion instead. To [end or delete] (https://developers.google.com/shopping-content/guides/promotions#end_a_promotion) a promotion update the time period of the promotion to a time that has already passed.", +"flatPath": "{merchantId}/promotions", +"httpMethod": "POST", +"id": "content.promotions.create", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account that contains the collection.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/promotions", +"request": { +"$ref": "Promotion" +}, +"response": { +"$ref": "Promotion" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves a promotion from your Merchant Center account.", +"flatPath": "{merchantId}/promotions/{id}", +"httpMethod": "GET", +"id": "content.promotions.get", +"parameterOrder": [ +"merchantId", +"id" +], +"parameters": { +"id": { +"description": "Required. REST ID of the promotion to retrieve.", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that contains the collection.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/promotions/{id}", +"response": { +"$ref": "Promotion" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "List all promotions from your Merchant Center account.", +"flatPath": "{merchantId}/promotions", +"httpMethod": "GET", +"id": "content.promotions.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"countryCode": { +"description": "[CLDR country code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) (for example, \"US\"), used as a filter on promotions target country.", +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "The two-letter ISO 639-1 language code associated with the promotions, used as a filter.", +"location": "query", +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account that contains the collection.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of promotions to return. The service may return fewer than this value. If unspecified, at most 50 labels will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListPromotion` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPromotion` must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/promotions", +"response": { +"$ref": "ListPromotionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"pubsubnotificationsettings": { +"methods": { +"get": { +"description": "Retrieves a Merchant Center account's pubsub notification settings.", +"flatPath": "{merchantId}/pubsubnotificationsettings", +"httpMethod": "GET", +"id": "content.pubsubnotificationsettings.get", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account for which to get pubsub notification settings.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/pubsubnotificationsettings", +"response": { +"$ref": "PubsubNotificationSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"update": { +"description": "Register a Merchant Center account for pubsub notifications. Note that cloud topic name shouldn't be provided as part of the request.", +"flatPath": "{merchantId}/pubsubnotificationsettings", +"httpMethod": "PUT", +"id": "content.pubsubnotificationsettings.update", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/pubsubnotificationsettings", +"request": { +"$ref": "PubsubNotificationSettings" +}, +"response": { +"$ref": "PubsubNotificationSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"quotas": { +"methods": { +"list": { +"description": "Lists the daily call quota and usage per method for your Merchant Center account.", +"flatPath": "{merchantId}/quotas", +"httpMethod": "GET", +"id": "content.quotas.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account that has quota. This account must be an admin.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of quotas to return in the response, used for paging. Defaults to 500; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token (if provided) to retrieve the subsequent page. All other parameters must match the original call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/quotas", +"response": { +"$ref": "ListMethodQuotasResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"recommendations": { +"methods": { +"generate": { +"description": "Generates recommendations for a merchant.", +"flatPath": "{merchantId}/recommendations/generate", +"httpMethod": "GET", +"id": "content.recommendations.generate", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"allowedTag": { +"description": "Optional. List of allowed tags. Tags are a set of predefined strings that describe the category that individual recommendation types belong to. User can specify zero or more tags in this field to indicate what categories of recommendations they want to receive. Current list of supported tags: - TREND", +"location": "query", +"repeated": true, +"type": "string" +}, +"languageCode": { +"description": "Optional. Language code of the client. If not set, the result will be in default language (English). This language code affects all fields prefixed with \"localized\". This should be set to ISO 639-1 country code. List of currently verified supported language code: en, fr, cs, da, de, es, it, nl, no, pl, pt, pt, fi, sv, vi, tr, th, ko, zh-CN, zh-TW, ja, id, hi", +"location": "query", +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account to fetch recommendations for.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/recommendations/generate", +"response": { +"$ref": "GenerateRecommendationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"reportInteraction": { +"description": "Reports an interaction on a recommendation for a merchant.", +"flatPath": "{merchantId}/recommendations/reportInteraction", +"httpMethod": "POST", +"id": "content.recommendations.reportInteraction", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account that wants to report an interaction.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/recommendations/reportInteraction", +"request": { +"$ref": "ReportInteractionRequest" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"regionalinventory": { +"methods": { +"custombatch": { +"description": "Updates regional inventory for multiple products or regions in a single request.", +"flatPath": "regionalinventory/batch", +"httpMethod": "POST", +"id": "content.regionalinventory.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "regionalinventory/batch", +"request": { +"$ref": "RegionalinventoryCustomBatchRequest" +}, +"response": { +"$ref": "RegionalinventoryCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Updates the regional inventory of a product in your Merchant Center account. If a regional inventory with the same region ID already exists, this method updates that entry.", +"flatPath": "{merchantId}/products/{productId}/regionalinventory", +"httpMethod": "POST", +"id": "content.regionalinventory.insert", +"parameterOrder": [ +"merchantId", +"productId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account that contains the product. This account cannot be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"productId": { +"description": "The REST ID of the product for which to update the regional inventory.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/products/{productId}/regionalinventory", +"request": { +"$ref": "RegionalInventory" +}, +"response": { +"$ref": "RegionalInventory" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"regions": { +"methods": { +"create": { +"description": "Creates a region definition in your Merchant Center account.", +"flatPath": "{merchantId}/regions", +"httpMethod": "POST", +"id": "content.regions.create", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to create region definition.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"regionId": { +"description": "Required. The id of the region to create.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/regions", +"request": { +"$ref": "Region" +}, +"response": { +"$ref": "Region" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a region definition from your Merchant Center account.", +"flatPath": "{merchantId}/regions/{regionId}", +"httpMethod": "DELETE", +"id": "content.regions.delete", +"parameterOrder": [ +"merchantId", +"regionId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to delete region definition.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"regionId": { +"description": "Required. The id of the region to delete.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/regions/{regionId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves a region defined in your Merchant Center account.", +"flatPath": "{merchantId}/regions/{regionId}", +"httpMethod": "GET", +"id": "content.regions.get", +"parameterOrder": [ +"merchantId", +"regionId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to retrieve region definition.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"regionId": { +"description": "Required. The id of the region to retrieve.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/regions/{regionId}", +"response": { +"$ref": "Region" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the regions in your Merchant Center account.", +"flatPath": "{merchantId}/regions", +"httpMethod": "GET", +"id": "content.regions.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to list region definitions.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of regions to return. The service may return fewer than this value. If unspecified, at most 50 rules will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListRegions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListRegions` must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/regions", +"response": { +"$ref": "ListRegionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"patch": { +"description": "Updates a region definition in your Merchant Center account.", +"flatPath": "{merchantId}/regions/{regionId}", +"httpMethod": "PATCH", +"id": "content.regions.patch", +"parameterOrder": [ +"merchantId", +"regionId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to update region definition.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"regionId": { +"description": "Required. The id of the region to update.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The comma-separated field mask indicating the fields to update. Example: `\"displayName,postalCodeArea.regionCode\"`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/regions/{regionId}", +"request": { +"$ref": "Region" +}, +"response": { +"$ref": "Region" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"reports": { +"methods": { +"search": { +"description": "Retrieves merchant performance metrics matching the search query and optionally segmented by selected dimensions.", +"flatPath": "{merchantId}/reports/search", +"httpMethod": "POST", +"id": "content.reports.search", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. Id of the merchant making the call. Must be a standalone account or an MCA subaccount.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/reports/search", +"request": { +"$ref": "SearchRequest" +}, +"response": { +"$ref": "SearchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"returnaddress": { +"methods": { +"custombatch": { +"description": "Batches multiple return address related calls in a single request.", +"flatPath": "returnaddress/batch", +"httpMethod": "POST", +"id": "content.returnaddress.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "returnaddress/batch", +"request": { +"$ref": "ReturnaddressCustomBatchRequest" +}, +"response": { +"$ref": "ReturnaddressCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a return address for the given Merchant Center account.", +"flatPath": "{merchantId}/returnaddress/{returnAddressId}", +"httpMethod": "DELETE", +"id": "content.returnaddress.delete", +"parameterOrder": [ +"merchantId", +"returnAddressId" +], +"parameters": { +"merchantId": { +"description": "The Merchant Center account from which to delete the given return address.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"returnAddressId": { +"description": "Return address ID generated by Google.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnaddress/{returnAddressId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Gets a return address of the Merchant Center account.", +"flatPath": "{merchantId}/returnaddress/{returnAddressId}", +"httpMethod": "GET", +"id": "content.returnaddress.get", +"parameterOrder": [ +"merchantId", +"returnAddressId" +], +"parameters": { +"merchantId": { +"description": "The Merchant Center account to get a return address for.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"returnAddressId": { +"description": "Return address ID generated by Google.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnaddress/{returnAddressId}", +"response": { +"$ref": "ReturnAddress" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Inserts a return address for the Merchant Center account.", +"flatPath": "{merchantId}/returnaddress", +"httpMethod": "POST", +"id": "content.returnaddress.insert", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The Merchant Center account to insert a return address for.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnaddress", +"request": { +"$ref": "ReturnAddress" +}, +"response": { +"$ref": "ReturnAddress" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the return addresses of the Merchant Center account.", +"flatPath": "{merchantId}/returnaddress", +"httpMethod": "GET", +"id": "content.returnaddress.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"country": { +"description": "List only return addresses applicable to the given country of sale. When omitted, all return addresses are listed.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of addresses in the response, used for paging.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The Merchant Center account to list return addresses for.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/returnaddress", +"response": { +"$ref": "ReturnaddressListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"returnpolicy": { +"methods": { +"custombatch": { +"description": "Batches multiple return policy related calls in a single request.", +"flatPath": "returnpolicy/batch", +"httpMethod": "POST", +"id": "content.returnpolicy.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "returnpolicy/batch", +"request": { +"$ref": "ReturnpolicyCustomBatchRequest" +}, +"response": { +"$ref": "ReturnpolicyCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a return policy for the given Merchant Center account.", +"flatPath": "{merchantId}/returnpolicy/{returnPolicyId}", +"httpMethod": "DELETE", +"id": "content.returnpolicy.delete", +"parameterOrder": [ +"merchantId", +"returnPolicyId" +], +"parameters": { +"merchantId": { +"description": "The Merchant Center account from which to delete the given return policy.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"returnPolicyId": { +"description": "Return policy ID generated by Google.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnpolicy/{returnPolicyId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Gets a return policy of the Merchant Center account.", +"flatPath": "{merchantId}/returnpolicy/{returnPolicyId}", +"httpMethod": "GET", +"id": "content.returnpolicy.get", +"parameterOrder": [ +"merchantId", +"returnPolicyId" +], +"parameters": { +"merchantId": { +"description": "The Merchant Center account to get a return policy for.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"returnPolicyId": { +"description": "Return policy ID generated by Google.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnpolicy/{returnPolicyId}", +"response": { +"$ref": "ReturnPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Inserts a return policy for the Merchant Center account.", +"flatPath": "{merchantId}/returnpolicy", +"httpMethod": "POST", +"id": "content.returnpolicy.insert", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The Merchant Center account to insert a return policy for.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnpolicy", +"request": { +"$ref": "ReturnPolicy" +}, +"response": { +"$ref": "ReturnPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the return policies of the Merchant Center account.", +"flatPath": "{merchantId}/returnpolicy", +"httpMethod": "GET", +"id": "content.returnpolicy.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The Merchant Center account to list return policies for.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnpolicy", +"response": { +"$ref": "ReturnpolicyListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"returnpolicyonline": { +"methods": { +"create": { +"description": "Creates a new return policy.", +"flatPath": "{merchantId}/returnpolicyonline", +"httpMethod": "POST", +"id": "content.returnpolicyonline.create", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to retrieve the return policy online object.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnpolicyonline", +"request": { +"$ref": "ReturnPolicyOnline" +}, +"response": { +"$ref": "ReturnPolicyOnline" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes an existing return policy.", +"flatPath": "{merchantId}/returnpolicyonline/{returnPolicyId}", +"httpMethod": "DELETE", +"id": "content.returnpolicyonline.delete", +"parameterOrder": [ +"merchantId", +"returnPolicyId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to retrieve the return policy online object.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"returnPolicyId": { +"description": "Required. The id of the return policy to delete.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnpolicyonline/{returnPolicyId}", +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Gets an existing return policy.", +"flatPath": "{merchantId}/returnpolicyonline/{returnPolicyId}", +"httpMethod": "GET", +"id": "content.returnpolicyonline.get", +"parameterOrder": [ +"merchantId", +"returnPolicyId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to retrieve the return policy online object.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"returnPolicyId": { +"description": "Required. The id of the return policy to retrieve.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnpolicyonline/{returnPolicyId}", +"response": { +"$ref": "ReturnPolicyOnline" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists all existing return policies.", +"flatPath": "{merchantId}/returnpolicyonline", +"httpMethod": "GET", +"id": "content.returnpolicyonline.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to retrieve the return policy online object.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnpolicyonline", +"response": { +"$ref": "ListReturnPolicyOnlineResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"patch": { +"description": "Updates an existing return policy.", +"flatPath": "{merchantId}/returnpolicyonline/{returnPolicyId}", +"httpMethod": "PATCH", +"id": "content.returnpolicyonline.patch", +"parameterOrder": [ +"merchantId", +"returnPolicyId" +], +"parameters": { +"merchantId": { +"description": "Required. The id of the merchant for which to retrieve the return policy online object.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"returnPolicyId": { +"description": "Required. The id of the return policy to update.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/returnpolicyonline/{returnPolicyId}", +"request": { +"$ref": "ReturnPolicyOnline" +}, +"response": { +"$ref": "ReturnPolicyOnline" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"shippingsettings": { +"methods": { +"custombatch": { +"description": "Retrieves and updates the shipping settings of multiple accounts in a single request.", +"flatPath": "shippingsettings/batch", +"httpMethod": "POST", +"id": "content.shippingsettings.custombatch", +"parameterOrder": [], +"parameters": {}, +"path": "shippingsettings/batch", +"request": { +"$ref": "ShippingsettingsCustomBatchRequest" +}, +"response": { +"$ref": "ShippingsettingsCustomBatchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves the shipping settings of the account.", +"flatPath": "{merchantId}/shippingsettings/{accountId}", +"httpMethod": "GET", +"id": "content.shippingsettings.get", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to get/update shipping settings.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/shippingsettings/{accountId}", +"response": { +"$ref": "ShippingSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"getsupportedcarriers": { +"description": "Retrieves supported carriers and carrier services for an account.", +"flatPath": "{merchantId}/supportedCarriers", +"httpMethod": "GET", +"id": "content.shippingsettings.getsupportedcarriers", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account for which to retrieve the supported carriers.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/supportedCarriers", +"response": { +"$ref": "ShippingsettingsGetSupportedCarriersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"getsupportedholidays": { +"description": "Retrieves supported holidays for an account.", +"flatPath": "{merchantId}/supportedHolidays", +"httpMethod": "GET", +"id": "content.shippingsettings.getsupportedholidays", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account for which to retrieve the supported holidays.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/supportedHolidays", +"response": { +"$ref": "ShippingsettingsGetSupportedHolidaysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"getsupportedpickupservices": { +"description": "Retrieves supported pickup services for an account.", +"flatPath": "{merchantId}/supportedPickupServices", +"httpMethod": "GET", +"id": "content.shippingsettings.getsupportedpickupservices", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "The ID of the account for which to retrieve the supported pickup services.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/supportedPickupServices", +"response": { +"$ref": "ShippingsettingsGetSupportedPickupServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the shipping settings of the sub-accounts in your Merchant Center account.", +"flatPath": "{merchantId}/shippingsettings", +"httpMethod": "GET", +"id": "content.shippingsettings.list", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"maxResults": { +"description": "The maximum number of shipping settings to return in the response, used for paging.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the managing account. This must be a multi-client account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "{merchantId}/shippingsettings", +"response": { +"$ref": "ShippingsettingsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"update": { +"description": "Updates the shipping settings of the account. Any fields that are not provided are deleted from the resource.", +"flatPath": "{merchantId}/shippingsettings/{accountId}", +"httpMethod": "PUT", +"id": "content.shippingsettings.update", +"parameterOrder": [ +"merchantId", +"accountId" +], +"parameters": { +"accountId": { +"description": "The ID of the account for which to get/update shipping settings.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account. If this parameter is not the same as accountId, then this account must be a multi-client account and `accountId` must be the ID of a sub-account of this account.", +"format": "uint64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/shippingsettings/{accountId}", +"request": { +"$ref": "ShippingSettings" +}, +"response": { +"$ref": "ShippingSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"shoppingadsprogram": { +"methods": { +"get": { +"description": "Retrieves the status and review eligibility for the Shopping Ads program. Returns errors and warnings if they require action to resolve, will become disapprovals, or impact impressions. Use `accountstatuses` to view all issues for an account.", +"flatPath": "{merchantId}/shoppingadsprogram", +"httpMethod": "GET", +"id": "content.shoppingadsprogram.get", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/shoppingadsprogram", +"response": { +"$ref": "ShoppingAdsProgramStatus" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"requestreview": { +"description": "Requests a review of Shopping ads in a specific region. This method deprecated. Use the `MerchantSupportService` to view product and account issues and request a review.", +"flatPath": "{merchantId}/shoppingadsprogram/requestreview", +"httpMethod": "POST", +"id": "content.shoppingadsprogram.requestreview", +"parameterOrder": [ +"merchantId" +], +"parameters": { +"merchantId": { +"description": "Required. The ID of the account.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{merchantId}/shoppingadsprogram/requestreview", +"request": { +"$ref": "RequestReviewShoppingAdsRequest" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +} +}, +"revision": "20241217", +"rootUrl": "https://shoppingcontent.googleapis.com/", +"schemas": { +"Account": { +"description": "Account data. After the creation of a new account it may take a few minutes before it's fully operational. The methods delete, insert, and update require the admin role.", +"id": "Account", +"properties": { +"accountManagement": { +"description": "Output only. How the account is managed. Acceptable values are: - \"`manual`\" - \"`automatic`\" ", +"readOnly": true, +"type": "string" +}, +"adsLinks": { +"description": "Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the Google Ads API. To delete an active link, or to cancel a link request, remove it from the list.", +"items": { +"$ref": "AccountAdsLink" +}, +"type": "array" +}, +"adultContent": { +"description": "Indicates whether the merchant sells adult content.", +"type": "boolean" +}, +"automaticImprovements": { +"$ref": "AccountAutomaticImprovements", +"description": "The automatic improvements of the account can be used to automatically update items, improve images and shipping. Each section inside AutomaticImprovements is updated separately." +}, +"automaticLabelIds": { +"description": "Automatically created label IDs that are assigned to the account by CSS Center.", +"items": { +"format": "uint64", +"type": "string" +}, +"type": "array" +}, +"businessIdentity": { +"$ref": "AccountBusinessIdentity", +"description": "The business identity attributes can be used to self-declare attributes that let customers know more about your business." +}, +"businessInformation": { +"$ref": "AccountBusinessInformation", +"description": "The business information of the account." +}, +"conversionSettings": { +"$ref": "AccountConversionSettings", +"description": "Settings for conversion tracking." +}, +"cssId": { +"description": "ID of CSS the account belongs to.", +"format": "uint64", +"type": "string" +}, +"googleMyBusinessLink": { +"$ref": "AccountGoogleMyBusinessLink", +"description": "The Business Profile which is linked or in the process of being linked with the Merchant Center account." +}, +"id": { +"description": "Required. 64-bit Merchant Center account ID.", +"format": "uint64", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#account`\".", +"type": "string" +}, +"labelIds": { +"description": "Manually created label IDs that are assigned to the account by CSS.", +"items": { +"format": "uint64", +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Required. Display name for the account.", +"type": "string" +}, +"sellerId": { +"description": "Client-specific, locally-unique, internal ID for the child account.", +"type": "string" +}, +"users": { +"description": "Users with access to the account. Every account (except for subaccounts) must have at least one admin user.", +"items": { +"$ref": "AccountUser" +}, +"type": "array" +}, +"websiteUrl": { +"description": "The merchant's website.", +"type": "string" +}, +"youtubeChannelLinks": { +"description": "Linked YouTube channels that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected in the YT Creator Studio interface. To delete an active link, or to cancel a link request, remove it from the list.", +"items": { +"$ref": "AccountYouTubeChannelLink" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccountAddress": { +"id": "AccountAddress", +"properties": { +"country": { +"description": "CLDR country code (for example, \"US\"). All MCA sub-accounts inherit the country of their parent MCA by default, however the country can be updated for individual sub-accounts.", +"type": "string" +}, +"locality": { +"description": "City, town or commune. May also include dependent localities or sublocalities (for example, neighborhoods or suburbs).", +"type": "string" +}, +"postalCode": { +"description": "Postal code or ZIP (for example, \"94043\").", +"type": "string" +}, +"region": { +"description": "Top-level administrative subdivision of the country. For example, a state like California (\"CA\") or a province like Quebec (\"QC\").", +"type": "string" +}, +"streetAddress": { +"description": "Street-level part of the address. Use `\\n` to add a second line.", +"type": "string" +} +}, +"type": "object" +}, +"AccountAdsLink": { +"id": "AccountAdsLink", +"properties": { +"adsId": { +"description": "Customer ID of the Ads account.", +"format": "uint64", +"type": "string" +}, +"status": { +"description": "Status of the link between this Merchant Center account and the Ads account. Upon retrieval, it represents the actual status of the link and can be either `active` if it was approved in Google Ads or `pending` if it's pending approval. Upon insertion, it represents the *intended* status of the link. Re-uploading a link with status `active` when it's still pending or with status `pending` when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status `inactive` is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending. Acceptable values are: - \"`active`\" - \"`pending`\" ", +"type": "string" +} +}, +"type": "object" +}, +"AccountAutomaticImprovements": { +"description": "The automatic improvements of the account can be used to automatically update items, improve images and shipping.", +"id": "AccountAutomaticImprovements", +"properties": { +"imageImprovements": { +"$ref": "AccountImageImprovements", +"description": "This improvement will attempt to automatically correct submitted images if they don't meet the [image requirements](https://support.google.com/merchants/answer/6324350), for example, removing overlays. If successful, the image will be replaced and approved. This improvement is only applied to images of disapproved offers. For more information see: [Automatic image improvements](https://support.google.com/merchants/answer/9242973) This field is only updated (cleared) if provided." +}, +"itemUpdates": { +"$ref": "AccountItemUpdates", +"description": "Turning on [item updates](https://support.google.com/merchants/answer/3246284) allows Google to automatically update items for you. When item updates are on, Google uses the structured data markup on the website and advanced data extractors to update the price and availability of the items. When the item updates are off, items with mismatched data aren't shown. This field is only updated (cleared) if provided." +}, +"shippingImprovements": { +"$ref": "AccountShippingImprovements", +"description": "Not available for MCAs [accounts](https://support.google.com/merchants/answer/188487). By turning on [automatic shipping improvements](https://support.google.com/merchants/answer/10027038), you are allowing Google to improve the accuracy of your delivery times shown to shoppers using Google. More accurate delivery times, especially when faster, typically lead to better conversion rates. Google will improve your estimated delivery times based on various factors: - Delivery address of an order - Current handling time and shipping time settings - Estimated weekdays or business days - Parcel tracking data This field is only updated (cleared) if provided." +} +}, +"type": "object" +}, +"AccountBusinessIdentity": { +"description": "The [business identity attributes](https://support.google.com/merchants/answer/10342414) can be used to self-declare attributes that let customers know more about your business.", +"id": "AccountBusinessIdentity", +"properties": { +"blackOwned": { +"$ref": "AccountIdentityType", +"description": "Specifies whether the business identifies itself as being black-owned. This optional field is only available for merchants with a business country set to \"US\". This field is not allowed for marketplaces or marketplace sellers." +}, +"includeForPromotions": { +"description": "Required. By setting this field, your business may be included in promotions for all the selected attributes. If you clear this option, it won't affect your identification with any of the attributes. For this field to be set, the merchant must self identify with at least one of the `AccountIdentityType`. If none are included, the request will be considered invalid.", +"type": "boolean" +}, +"latinoOwned": { +"$ref": "AccountIdentityType", +"description": "Specifies whether the business identifies itself as being latino-owned. This optional field is only available for merchants with a business country set to \"US\". This field is not allowed for marketplaces or marketplace sellers." +}, +"smallBusiness": { +"$ref": "AccountIdentityType", +"description": "Specifies whether the business identifies itself as a small business. This optional field is only available for merchants with a business country set to \"US\". It is also not allowed for marketplaces, but it is allowed to marketplace sellers." +}, +"veteranOwned": { +"$ref": "AccountIdentityType", +"description": "Specifies whether the business identifies itself as being veteran-owned. This optional field is only available for merchants with a business country set to \"US\". This field is not allowed for marketplaces or marketplace sellers." +}, +"womenOwned": { +"$ref": "AccountIdentityType", +"description": "Specifies whether the business identifies itself as being women-owned. This optional field is only available for merchants with a business country set to \"US\". This field is not allowed for marketplaces or marketplace sellers." +} +}, +"type": "object" +}, +"AccountBusinessInformation": { +"id": "AccountBusinessInformation", +"properties": { +"address": { +"$ref": "AccountAddress", +"description": "The address of the business. Use `\\n` to add a second address line." +}, +"customerService": { +"$ref": "AccountCustomerService", +"description": "The customer service information of the business." +}, +"koreanBusinessRegistrationNumber": { +"description": "The 10-digit [Korean business registration number](https://support.google.com/merchants/answer/9037766) separated with dashes in the format: XXX-XX-XXXXX. This field will only be updated if explicitly set.", +"type": "string" +}, +"phoneNumber": { +"description": "The phone number of the business in [E.164](https://en.wikipedia.org/wiki/E.164) format. This can only be updated if a verified phone number is not already set. To replace a verified phone number use the `Accounts.requestphoneverification` and `Accounts.verifyphonenumber`.", +"type": "string" +}, +"phoneVerificationStatus": { +"description": "Verification status of the phone number of the business. This status is read only and can be updated only by successful phone verification. Acceptable values are: - \"`verified`\" - \"`unverified`\" ", +"type": "string" +} +}, +"type": "object" +}, +"AccountConversionSettings": { +"description": "Settings for conversion tracking.", +"id": "AccountConversionSettings", +"properties": { +"freeListingsAutoTaggingEnabled": { +"description": "When enabled, free listing URLs have a parameter to enable conversion tracking for products owned by the current merchant account. See [auto-tagging](https://support.google.com/merchants/answer/11127659).", +"type": "boolean" +} +}, +"type": "object" +}, +"AccountCredentials": { +"description": "Credentials allowing Google to call a partner's API on behalf of a merchant.", +"id": "AccountCredentials", +"properties": { +"accessToken": { +"description": "An OAuth access token.", +"type": "string" +}, +"expiresIn": { +"description": "The amount of time, in seconds, after which the access token is no longer valid.", +"format": "int64", +"type": "string" +}, +"purpose": { +"description": "Indicates to Google how Google should use these OAuth tokens.", +"enum": [ +"ACCOUNT_CREDENTIALS_PURPOSE_UNSPECIFIED", +"SHOPIFY_ORDER_MANAGEMENT", +"SHOPIFY_INTEGRATION" +], +"enumDeprecated": [ +false, +true, +false +], +"enumDescriptions": [ +"Unknown purpose.", +"The credentials allow Google to manage Shopify orders on behalf of the merchant (deprecated).", +"The credentials allow Google to manage Shopify integration on behalf of the merchant." +], +"type": "string" +} +}, +"type": "object" +}, +"AccountCustomerService": { +"id": "AccountCustomerService", +"properties": { +"email": { +"description": "Customer service email.", +"type": "string" +}, +"phoneNumber": { +"description": "Customer service phone number.", +"type": "string" +}, +"url": { +"description": "Customer service URL.", +"type": "string" +} +}, +"type": "object" +}, +"AccountGoogleMyBusinessLink": { +"id": "AccountGoogleMyBusinessLink", +"properties": { +"gmbAccountId": { +"description": "The ID of the Business Profile. If this is provided, then `gmbEmail` is ignored. The value of this field should match the `accountId` used by the Business Profile API.", +"type": "string" +}, +"gmbEmail": { +"description": "The Business Profile email address of a specific account within a Business Profile. A sample account within a Business Profile could be a business account with set of locations, managed under the Business Profile.", +"type": "string" +}, +"status": { +"description": "Status of the link between this Merchant Center account and the Business Profile. Acceptable values are: - \"`active`\" - \"`pending`\" ", +"type": "string" +} +}, +"type": "object" +}, +"AccountIdentifier": { +"id": "AccountIdentifier", +"properties": { +"aggregatorId": { +"description": "The aggregator ID, set for aggregators and subaccounts (in that case, it represents the aggregator of the subaccount).", +"format": "uint64", +"type": "string" +}, +"merchantId": { +"description": "The merchant account ID, set for individual accounts and subaccounts.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"AccountIdentityType": { +"description": "The account identity type used to specify attributes.", +"id": "AccountIdentityType", +"properties": { +"selfIdentified": { +"description": "Optional. Indicates that the business identifies itself with a given identity type. Setting this field does not automatically mean eligibility for promotions.", +"type": "boolean" +} +}, +"type": "object" +}, +"AccountImageImprovements": { +"description": "This improvement will attempt to automatically correct submitted images if they don't meet the [image requirements](https://support.google.com/merchants/answer/6324350), for example, removing overlays. If successful, the image will be replaced and approved. This improvement is only applied to images of disapproved offers. For more information see: [Automatic image improvements](https://support.google.com/merchants/answer/9242973)", +"id": "AccountImageImprovements", +"properties": { +"accountImageImprovementsSettings": { +"$ref": "AccountImageImprovementsSettings", +"description": "Determines how the images should be automatically updated. If this field is not present, then the settings will be deleted. If there are no settings for subaccount, they are inherited from aggregator." +}, +"effectiveAllowAutomaticImageImprovements": { +"description": "Output only. The effective value of allow_automatic_image_improvements. If account_image_improvements_settings is present, then this value is the same. Otherwise, it represents the inherited value of the parent account. Read-only.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"AccountImageImprovementsSettings": { +"description": "Settings for the Automatic Image Improvements.", +"id": "AccountImageImprovementsSettings", +"properties": { +"allowAutomaticImageImprovements": { +"description": "Enables automatic image improvements.", +"type": "boolean" +} +}, +"type": "object" +}, +"AccountIssue": { +"description": "An issue affecting specific merchant.", +"id": "AccountIssue", +"properties": { +"actions": { +"description": "A list of actionable steps that can be executed to solve the issue. An example is requesting a re-review or providing arguments when merchant disagrees with the issue. Actions that are supported in (your) third-party application can be rendered as buttons and should be available to merchant when they expand the issue.", +"items": { +"$ref": "Action" +}, +"type": "array" +}, +"impact": { +"$ref": "AccountIssueImpact", +"description": "Clarifies the severity of the issue. The summarizing message, if present, should be shown right under the title for each issue. It helps merchants to quickly understand the impact of the issue. The detailed breakdown helps the merchant to fully understand the impact of the issue. It can be rendered as dialog that opens when the merchant mouse over the summarized impact statement. Issues with different severity can be styled differently. They may use a different color or icon to signal the difference between `ERROR`, `WARNING` and `INFO`." +}, +"prerenderedContent": { +"description": "Details of the issue as a pre-rendered HTML. HTML elements contain CSS classes that can be used to customize the style of the content. Always sanitize the HTML before embedding it directly to your application. The sanitizer needs to allow basic HTML tags, such as: `div`, `span`, `p`, `a`, `ul`, `li`, `table`, `tr`, `td`. For example, you can use [DOMPurify](https://www.npmjs.com/package/dompurify). CSS classes: * `issue-detail` - top level container for the detail of the issue * `callout-banners` - section of the `issue-detail` with callout banners * `callout-banner` - single callout banner, inside `callout-banners` * `callout-banner-info` - callout with important information (default) * `callout-banner-warning` - callout with a warning * `callout-banner-error` - callout informing about an error (most severe) * `issue-content` - section of the `issue-detail`, contains multiple `content-element` * `content-element` - content element such as a list, link or paragraph, inside `issue-content` * `root-causes` - unordered list with items describing root causes of the issue, inside `issue-content` * `root-causes-intro` - intro text before the `root-causes` list, inside `issue-content` * `segment` - section of the text, `span` inside paragraph * `segment-attribute` - section of the text that represents a product attribute, for example 'image\\_link' * `segment-literal` - section of the text that contains a special value, for example '0-1000 kg' * `segment-bold` - section of the text that should be rendered as bold * `segment-italic` - section of the text that should be rendered as italic * `tooltip` - used on paragraphs that should be rendered with a tooltip. A section of the text in such a paragraph will have a class `tooltip-text` and is intended to be shown in a mouse over dialog. If the style is not used, the `tooltip-text` section would be shown on a new line, after the main part of the text. * `tooltip-text` - marks a section of the text within a `tooltip`, that is intended to be shown in a mouse over dialog. * `tooltip-icon` - marks a section of the text within a `tooltip`, that can be replaced with a tooltip icon, for example '?' or 'i'. By default, this section contains a `br` tag, that is separating the main text and the tooltip text when the style is not used. * `tooltip-style-question` - the tooltip shows helpful information, can use the '?' as an icon. * `tooltip-style-info` - the tooltip adds additional information fitting to the context, can use the 'i' as an icon. * `content-moderation` - marks the paragraph that explains how the issue was identified. * `new-element` - Present for new elements added to the pre-rendered content in the future. To make sure that a new content element does not break your style, you can hide everything with this class.", +"type": "string" +}, +"title": { +"description": "Title of the issue.", +"type": "string" +} +}, +"type": "object" +}, +"AccountIssueImpact": { +"description": "Overall impact of the issue.", +"id": "AccountIssueImpact", +"properties": { +"breakdowns": { +"description": "Detailed impact breakdown. Explains the types of restriction the issue has in different shopping destinations and territory. If present, it should be rendered to the merchant. Can be shown as a mouse over dropdown or a dialog. Each breakdown item represents a group of regions with the same impact details.", +"items": { +"$ref": "Breakdown" +}, +"type": "array" +}, +"message": { +"description": "Optional. Message summarizing the overall impact of the issue. If present, it should be rendered to the merchant. For example: \"Disapproves 90k offers in 25 countries\"", +"type": "string" +}, +"severity": { +"description": "The severity of the issue.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"ERROR", +"WARNING", +"INFO" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Causes either an account suspension or an item disapproval. Errors should be resolved as soon as possible to ensure items are eligible to appear in results again.", +"Warnings can negatively impact the performance of ads and can lead to item or account suspensions in the future unless the issue is resolved.", +"Infos are suggested optimizations to increase data quality. Resolving these issues is recommended, but not required." +], +"type": "string" +} +}, +"type": "object" +}, +"AccountItemUpdates": { +"description": "Turning on [item updates](https://support.google.com/merchants/answer/3246284) allows Google to automatically update items for you. When item updates are on, Google uses the structured data markup on the website and advanced data extractors to update the price and availability of the items. When the item updates are off, items with mismatched data aren't shown.", +"id": "AccountItemUpdates", +"properties": { +"accountItemUpdatesSettings": { +"$ref": "AccountItemUpdatesSettings", +"description": "Determines which attributes of the items should be automatically updated. If this field is not present, then the settings will be deleted. If there are no settings for subaccount, they are inherited from aggregator." +}, +"effectiveAllowAvailabilityUpdates": { +"description": "Output only. The effective value of allow_availability_updates. If account_item_updates_settings is present, then this value is the same. Otherwise, it represents the inherited value of the parent account. Read-only.", +"readOnly": true, +"type": "boolean" +}, +"effectiveAllowConditionUpdates": { +"description": "Output only. The effective value of allow_condition_updates. If account_item_updates_settings is present, then this value is the same. Otherwise, it represents the inherited value of the parent account. Read-only.", +"readOnly": true, +"type": "boolean" +}, +"effectiveAllowPriceUpdates": { +"description": "Output only. The effective value of allow_price_updates. If account_item_updates_settings is present, then this value is the same. Otherwise, it represents the inherited value of the parent account. Read-only.", +"readOnly": true, +"type": "boolean" +}, +"effectiveAllowStrictAvailabilityUpdates": { +"description": "Output only. The effective value of allow_strict_availability_updates. If account_item_updates_settings is present, then this value is the same. Otherwise, it represents the inherited value of the parent account. Read-only.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"AccountItemUpdatesSettings": { +"description": "Settings for the Automatic Item Updates.", +"id": "AccountItemUpdatesSettings", +"properties": { +"allowAvailabilityUpdates": { +"description": "If availability updates are enabled, any previous availability values get overwritten if Google finds an out-of-stock annotation on the offer's page. If additionally `allow_availability_updates` field is set to true, values get overwritten if Google finds an in-stock annotation on the offer\u2019s page.", +"type": "boolean" +}, +"allowConditionUpdates": { +"description": "If condition updates are enabled, Google always updates item condition with the condition detected from the details of your product.", +"type": "boolean" +}, +"allowPriceUpdates": { +"description": "If price updates are enabled, Google always updates the active price with the crawled information.", +"type": "boolean" +}, +"allowStrictAvailabilityUpdates": { +"description": "If allow_availability_updates is enabled, items are automatically updated in all your Shopping target countries. By default, availability updates will only be applied to items that are 'out of stock' on your website but 'in stock' on Shopping. Set this to true to also update items that are 'in stock' on your website, but 'out of stock' on Google Shopping. In order for this field to have an effect, you must also allow availability updates.", +"type": "boolean" +} +}, +"type": "object" +}, +"AccountLabel": { +"description": "Label assigned by CSS domain or CSS group to one of its sub-accounts.", +"id": "AccountLabel", +"properties": { +"accountId": { +"description": "Immutable. The ID of account this label belongs to.", +"format": "int64", +"type": "string" +}, +"description": { +"description": "The description of this label.", +"type": "string" +}, +"labelId": { +"description": "Output only. The ID of the label.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"labelType": { +"description": "Output only. The type of this label.", +"enum": [ +"LABEL_TYPE_UNSPECIFIED", +"MANUAL", +"AUTOMATIC" +], +"enumDescriptions": [ +"Unknown label type.", +"Indicates that the label was created manually.", +"Indicates that the label was created automatically by CSS Center." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The display name of this label.", +"type": "string" +} +}, +"type": "object" +}, +"AccountReturnCarrier": { +"description": " The return carrier information. This service is designed for merchants enrolled in the Buy on Google program. ", +"id": "AccountReturnCarrier", +"properties": { +"carrierAccountId": { +"description": "Output only. Immutable. The Google-provided unique carrier ID, used to update the resource.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"carrierAccountName": { +"description": "Name of the carrier account.", +"type": "string" +}, +"carrierAccountNumber": { +"description": "Number of the carrier account.", +"type": "string" +}, +"carrierCode": { +"description": "The carrier code enum. Accepts the values FEDEX or UPS.", +"enum": [ +"CARRIER_CODE_UNSPECIFIED", +"FEDEX", +"UPS" +], +"enumDescriptions": [ +"Carrier not specified", +"FedEx carrier", +"UPS carrier" +], +"type": "string" +} +}, +"type": "object" +}, +"AccountShippingImprovements": { +"description": "Not available for MCAs [accounts](https://support.google.com/merchants/answer/188487). By turning on [automatic shipping improvements](https://support.google.com/merchants/answer/10027038), you are allowing Google to improve the accuracy of your delivery times shown to shoppers using Google. More accurate delivery times, especially when faster, typically lead to better conversion rates. Google will improve your estimated delivery times based on various factors: * Delivery address of an order * Current handling time and shipping time settings * Estimated weekdays or business days * Parcel tracking data", +"id": "AccountShippingImprovements", +"properties": { +"allowShippingImprovements": { +"description": "Enables automatic shipping improvements.", +"type": "boolean" +} +}, +"type": "object" +}, +"AccountStatus": { +"description": "The status of an account, that is, information about its products, which is computed offline and not returned immediately at insertion time.", +"id": "AccountStatus", +"properties": { +"accountId": { +"description": "The ID of the account for which the status is reported.", +"type": "string" +}, +"accountLevelIssues": { +"description": "A list of account level issues.", +"items": { +"$ref": "AccountStatusAccountLevelIssue" +}, +"type": "array" +}, +"accountManagement": { +"description": "How the account is managed. Acceptable values are: - \"`manual`\" - \"`automatic`\" ", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountStatus`\"", +"type": "string" +}, +"products": { +"description": "List of product-related data by channel, destination, and country. Data in this field may be delayed by up to 30 minutes.", +"items": { +"$ref": "AccountStatusProducts" +}, +"type": "array" +}, +"websiteClaimed": { +"description": "Whether the account's website is claimed or not.", +"type": "boolean" +} +}, +"type": "object" +}, +"AccountStatusAccountLevelIssue": { +"id": "AccountStatusAccountLevelIssue", +"properties": { +"country": { +"description": "Country for which this issue is reported.", +"type": "string" +}, +"destination": { +"description": "The destination the issue applies to. If this field is empty then the issue applies to all available destinations.", +"type": "string" +}, +"detail": { +"description": "Additional details about the issue.", +"type": "string" +}, +"documentation": { +"description": "The URL of a web page to help resolving this issue.", +"type": "string" +}, +"id": { +"description": "Issue identifier.", +"type": "string" +}, +"severity": { +"description": "Severity of the issue. Acceptable values are: - \"`critical`\" - \"`error`\" - \"`suggestion`\" ", +"type": "string" +}, +"title": { +"description": "Short description of the issue.", +"type": "string" +} +}, +"type": "object" +}, +"AccountStatusItemLevelIssue": { +"id": "AccountStatusItemLevelIssue", +"properties": { +"attributeName": { +"description": "The attribute's name, if the issue is caused by a single attribute.", +"type": "string" +}, +"code": { +"description": "The error code of the issue.", +"type": "string" +}, +"description": { +"description": "A short issue description in English.", +"type": "string" +}, +"detail": { +"description": "A detailed issue description in English.", +"type": "string" +}, +"documentation": { +"description": "The URL of a web page to help with resolving this issue.", +"type": "string" +}, +"numItems": { +"description": "Number of items with this issue.", +"format": "int64", +"type": "string" +}, +"resolution": { +"description": "Whether the issue can be resolved by the merchant.", +"type": "string" +}, +"servability": { +"description": "How this issue affects serving of the offer.", +"type": "string" +} +}, +"type": "object" +}, +"AccountStatusProducts": { +"id": "AccountStatusProducts", +"properties": { +"channel": { +"description": "The channel the data applies to. Acceptable values are: - \"`local`\" - \"`online`\" ", +"type": "string" +}, +"country": { +"description": "The country the data applies to.", +"type": "string" +}, +"destination": { +"description": "The destination the data applies to.", +"type": "string" +}, +"itemLevelIssues": { +"description": "List of item-level issues.", +"items": { +"$ref": "AccountStatusItemLevelIssue" +}, +"type": "array" +}, +"statistics": { +"$ref": "AccountStatusStatistics", +"description": "Aggregated product statistics." +} +}, +"type": "object" +}, +"AccountStatusStatistics": { +"id": "AccountStatusStatistics", +"properties": { +"active": { +"description": "Number of active offers.", +"format": "int64", +"type": "string" +}, +"disapproved": { +"description": "Number of disapproved offers.", +"format": "int64", +"type": "string" +}, +"expiring": { +"description": "Number of expiring offers.", +"format": "int64", +"type": "string" +}, +"pending": { +"description": "Number of pending offers.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AccountTax": { +"description": "The tax settings of a merchant account. All methods require the admin role.", +"id": "AccountTax", +"properties": { +"accountId": { +"description": "Required. The ID of the account to which these account tax settings belong.", +"format": "uint64", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountTax`\".", +"type": "string" +}, +"rules": { +"description": "Tax rules. Updating the tax rules will enable \"US\" taxes (not reversible). Defining no rules is equivalent to not charging tax at all.", +"items": { +"$ref": "AccountTaxTaxRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccountTaxTaxRule": { +"description": "Tax calculation rule to apply in a state or province (US only).", +"id": "AccountTaxTaxRule", +"properties": { +"country": { +"description": "Country code in which tax is applicable.", +"type": "string" +}, +"locationId": { +"description": "Required. State (or province) is which the tax is applicable, described by its location ID (also called criteria ID).", +"format": "uint64", +"type": "string" +}, +"ratePercent": { +"description": "Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative.", +"type": "string" +}, +"shippingTaxed": { +"description": "If true, shipping charges are also taxed.", +"type": "boolean" +}, +"useGlobalRate": { +"description": "Whether the tax rate is taken from a global tax table or specified explicitly.", +"type": "boolean" +} +}, +"type": "object" +}, +"AccountUser": { +"id": "AccountUser", +"properties": { +"admin": { +"description": "Whether user is an admin.", +"type": "boolean" +}, +"emailAddress": { +"description": "User's email address.", +"type": "string" +}, +"orderManager": { +"description": "Whether user is an order manager.", +"type": "boolean" +}, +"paymentsAnalyst": { +"description": "Whether user can access payment statements.", +"type": "boolean" +}, +"paymentsManager": { +"description": "Whether user can manage payment settings.", +"type": "boolean" +}, +"reportingManager": { +"description": "Whether user is a reporting manager. This role is equivalent to the Performance and insights role in Merchant Center.", +"type": "boolean" +} +}, +"type": "object" +}, +"AccountYouTubeChannelLink": { +"id": "AccountYouTubeChannelLink", +"properties": { +"channelId": { +"description": "Channel ID.", +"type": "string" +}, +"status": { +"description": "Status of the link between this Merchant Center account and the YouTube channel. Upon retrieval, it represents the actual status of the link and can be either `active` if it was approved in YT Creator Studio or `pending` if it's pending approval. Upon insertion, it represents the *intended* status of the link. Re-uploading a link with status `active` when it's still pending or with status `pending` when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status `inactive` is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.", +"type": "string" +} +}, +"type": "object" +}, +"AccountsAuthInfoResponse": { +"id": "AccountsAuthInfoResponse", +"properties": { +"accountIdentifiers": { +"description": "The account identifiers corresponding to the authenticated user. - For an individual account: only the merchant ID is defined - For an aggregator: only the aggregator ID is defined - For a subaccount of an MCA: both the merchant ID and the aggregator ID are defined. ", +"items": { +"$ref": "AccountIdentifier" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsAuthInfoResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"AccountsClaimWebsiteResponse": { +"id": "AccountsClaimWebsiteResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsClaimWebsiteResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"AccountsCustomBatchRequest": { +"id": "AccountsCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "AccountsCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccountsCustomBatchRequestEntry": { +"description": "A batch entry encoding a single non-batch accounts request.", +"id": "AccountsCustomBatchRequestEntry", +"properties": { +"account": { +"$ref": "Account", +"description": "The account to create or update. Only defined if the method is `insert` or `update`." +}, +"accountId": { +"description": "The ID of the targeted account. Only defined if the method is not `insert`.", +"format": "uint64", +"type": "string" +}, +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"force": { +"description": "Whether the account should be deleted if the account has offers. Only applicable if the method is `delete`.", +"type": "boolean" +}, +"labelIds": { +"description": "Label IDs for the 'updatelabels' request.", +"items": { +"format": "uint64", +"type": "string" +}, +"type": "array" +}, +"linkRequest": { +"$ref": "AccountsCustomBatchRequestEntryLinkRequest", +"description": "Details about the `link` request." +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`claimWebsite`\" - \"`delete`\" - \"`get`\" - \"`insert`\" - \"`link`\" - \"`update`\" ", +"type": "string" +}, +"overwrite": { +"description": "Only applicable if the method is `claimwebsite`. Indicates whether or not to take the claim from another account in case there is a conflict.", +"type": "boolean" +}, +"view": { +"description": "Controls which fields are visible. Only applicable if the method is 'get'.", +"type": "string" +} +}, +"type": "object" +}, +"AccountsCustomBatchRequestEntryLinkRequest": { +"id": "AccountsCustomBatchRequestEntryLinkRequest", +"properties": { +"action": { +"description": "Action to perform for this link. The `\"request\"` action is only available to select merchants. Acceptable values are: - \"`approve`\" - \"`remove`\" - \"`request`\" ", +"type": "string" +}, +"linkType": { +"description": "Type of the link between the two accounts. Acceptable values are: - \"`channelPartner`\" - \"`eCommercePlatform`\" - \"`paymentServiceProvider`\" - \"`localProductManager`\" ", +"type": "string" +}, +"linkedAccountId": { +"description": "The ID of the linked account.", +"type": "string" +}, +"services": { +"description": "Provided services. Acceptable values are: - \"`shoppingAdsProductManagement`\" - \"`shoppingActionsProductManagement`\" - \"`shoppingActionsOrderManagement`\" - \"`paymentProcessing`\" - \"`localProductManagement`\" ", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccountsCustomBatchResponse": { +"id": "AccountsCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "AccountsCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"AccountsCustomBatchResponseEntry": { +"description": "A batch entry encoding a single non-batch accounts response.", +"id": "AccountsCustomBatchResponseEntry", +"properties": { +"account": { +"$ref": "Account", +"description": "The retrieved, created, or updated account. Not defined if the method was `delete`, `claimwebsite` or `link`." +}, +"batchId": { +"description": "The ID of the request entry this entry responds to.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsCustomBatchResponseEntry`\"", +"type": "string" +} +}, +"type": "object" +}, +"AccountsLinkRequest": { +"id": "AccountsLinkRequest", +"properties": { +"action": { +"description": "Action to perform for this link. The `\"request\"` action is only available to select merchants. Acceptable values are: - \"`approve`\" - \"`remove`\" - \"`request`\" ", +"type": "string" +}, +"eCommercePlatformLinkInfo": { +"$ref": "ECommercePlatformLinkInfo", +"description": "Additional information required for `eCommercePlatform` link type." +}, +"linkType": { +"description": "Type of the link between the two accounts. Acceptable values are: - \"`channelPartner`\" - \"`eCommercePlatform`\" - \"`paymentServiceProvider`\" ", +"type": "string" +}, +"linkedAccountId": { +"description": "The ID of the linked account.", +"type": "string" +}, +"paymentServiceProviderLinkInfo": { +"$ref": "PaymentServiceProviderLinkInfo", +"description": "Additional information required for `paymentServiceProvider` link type." +}, +"services": { +"description": " Acceptable values are: - \"`shoppingAdsProductManagement`\" - \"`shoppingActionsProductManagement`\" - \"`shoppingActionsOrderManagement`\" - \"`paymentProcessing`\" ", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccountsLinkResponse": { +"id": "AccountsLinkResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsLinkResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"AccountsListLinksResponse": { +"id": "AccountsListLinksResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsListLinksResponse`\".", +"type": "string" +}, +"links": { +"description": "The list of available links.", +"items": { +"$ref": "LinkedAccount" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of links.", +"type": "string" +} +}, +"type": "object" +}, +"AccountsListResponse": { +"id": "AccountsListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of accounts.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "Account" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccountsUpdateLabelsRequest": { +"id": "AccountsUpdateLabelsRequest", +"properties": { +"labelIds": { +"description": "The IDs of labels that should be assigned to the account.", +"items": { +"format": "uint64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccountsUpdateLabelsResponse": { +"id": "AccountsUpdateLabelsResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsUpdateLabelsResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"AccountstatusesCustomBatchRequest": { +"id": "AccountstatusesCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "AccountstatusesCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccountstatusesCustomBatchRequestEntry": { +"description": "A batch entry encoding a single non-batch accountstatuses request.", +"id": "AccountstatusesCustomBatchRequestEntry", +"properties": { +"accountId": { +"description": "The ID of the (sub-)account whose status to get.", +"format": "uint64", +"type": "string" +}, +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"destinations": { +"description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.", +"items": { +"type": "string" +}, +"type": "array" +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`get`\" ", +"type": "string" +} +}, +"type": "object" +}, +"AccountstatusesCustomBatchResponse": { +"id": "AccountstatusesCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "AccountstatusesCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountstatusesCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"AccountstatusesCustomBatchResponseEntry": { +"description": "A batch entry encoding a single non-batch accountstatuses response.", +"id": "AccountstatusesCustomBatchResponseEntry", +"properties": { +"accountStatus": { +"$ref": "AccountStatus", +"description": "The requested account status. Defined if and only if the request was successful." +}, +"batchId": { +"description": "The ID of the request entry this entry responds to.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +} +}, +"type": "object" +}, +"AccountstatusesListResponse": { +"id": "AccountstatusesListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountstatusesListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of account statuses.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "AccountStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccounttaxCustomBatchRequest": { +"id": "AccounttaxCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "AccounttaxCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"AccounttaxCustomBatchRequestEntry": { +"description": "A batch entry encoding a single non-batch accounttax request.", +"id": "AccounttaxCustomBatchRequestEntry", +"properties": { +"accountId": { +"description": "The ID of the account for which to get/update account tax settings.", +"format": "uint64", +"type": "string" +}, +"accountTax": { +"$ref": "AccountTax", +"description": "The account tax settings to update. Only defined if the method is `update`." +}, +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`get`\" - \"`update`\" ", +"type": "string" +} +}, +"type": "object" +}, +"AccounttaxCustomBatchResponse": { +"id": "AccounttaxCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "AccounttaxCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accounttaxCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"AccounttaxCustomBatchResponseEntry": { +"description": "A batch entry encoding a single non-batch accounttax response.", +"id": "AccounttaxCustomBatchResponseEntry", +"properties": { +"accountTax": { +"$ref": "AccountTax", +"description": "The retrieved or updated account tax settings." +}, +"batchId": { +"description": "The ID of the request entry this entry responds to.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accounttaxCustomBatchResponseEntry`\"", +"type": "string" +} +}, +"type": "object" +}, +"AccounttaxListResponse": { +"id": "AccounttaxListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accounttaxListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of account tax settings.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "AccountTax" +}, +"type": "array" +} +}, +"type": "object" +}, +"Action": { +"description": "An actionable step that can be executed to solve the issue.", +"id": "Action", +"properties": { +"builtinSimpleAction": { +"$ref": "BuiltInSimpleAction", +"description": "Action implemented and performed in (your) third-party application. The application should point the merchant to the place, where they can access the corresponding functionality or provide instructions, if the specific functionality is not available." +}, +"builtinUserInputAction": { +"$ref": "BuiltInUserInputAction", +"description": "Action implemented and performed in (your) third-party application. The application needs to show an additional content and input form to the merchant as specified for given action. They can trigger the action only when they provided all required inputs." +}, +"buttonLabel": { +"description": "Label of the action button.", +"type": "string" +}, +"externalAction": { +"$ref": "ExternalAction", +"description": "Action that is implemented and performed outside of (your) third-party application. The application needs to redirect the merchant to the external location where they can perform the action." +}, +"isAvailable": { +"description": "Controlling whether the button is active or disabled. The value is 'false' when the action was already requested or is not available. If the action is not available then a reason will be present. If (your) third-party application shows a disabled button for action that is not available, then it should also show reasons.", +"type": "boolean" +}, +"reasons": { +"description": "List of reasons why the action is not available. The list of reasons is empty if the action is available. If there is only one reason, it can be displayed next to the disabled button. If there are more reasons, all of them should be displayed, for example in a pop-up dialog.", +"items": { +"$ref": "ActionReason" +}, +"type": "array" +} +}, +"type": "object" +}, +"ActionFlow": { +"description": "Flow that can be selected for an action. When merchant selects a flow, application should open a dialog with more information and input form.", +"id": "ActionFlow", +"properties": { +"dialogButtonLabel": { +"description": "Label for the button to trigger the action from the action dialog. For example: \"Request review\"", +"type": "string" +}, +"dialogCallout": { +"$ref": "Callout", +"description": "Important message to be highlighted in the request dialog. For example: \"You can only request a review for disagreeing with this issue once. If it's not approved, you'll need to fix the issue and wait a few days before you can request another review.\"" +}, +"dialogMessage": { +"$ref": "TextWithTooltip", +"description": "Message displayed in the request dialog. For example: \"Make sure you've fixed all your country-specific issues. If not, you may have to wait 7 days to request another review\". There may be an more information to be shown in a tooltip." +}, +"dialogTitle": { +"description": "Title of the request dialog. For example: \"Before you request a review\"", +"type": "string" +}, +"id": { +"description": "Not for display but need to be sent back for the selected action flow.", +"type": "string" +}, +"inputs": { +"description": "A list of input fields.", +"items": { +"$ref": "InputField" +}, +"type": "array" +}, +"label": { +"description": "Text value describing the intent for the action flow. It can be used as an input label if merchant needs to pick one of multiple flows. For example: \"I disagree with the issue\"", +"type": "string" +} +}, +"type": "object" +}, +"ActionInput": { +"description": "Input provided by the merchant.", +"id": "ActionInput", +"properties": { +"actionFlowId": { +"description": "Required. Id of the selected action flow.", +"type": "string" +}, +"inputValues": { +"description": "Required. Values for input fields.", +"items": { +"$ref": "InputValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"ActionReason": { +"description": "A single reason why the action is not available.", +"id": "ActionReason", +"properties": { +"action": { +"$ref": "Action", +"description": "Optional. An action that needs to be performed to solve the problem represented by this reason. This action will always be available. Should be rendered as a link or button next to the summarizing message. For example, the review may be available only once merchant configure all required attributes. In such a situation this action can be a link to the form, where they can fill the missing attribute to unblock the main action." +}, +"detail": { +"description": "Detailed explanation of the reason. Should be displayed as a hint if present.", +"type": "string" +}, +"message": { +"description": "Messages summarizing the reason, why the action is not available. For example: \"Review requested on Jan 03. Review requests can take a few days to complete.\"", +"type": "string" +} +}, +"type": "object" +}, +"Address": { +"id": "Address", +"properties": { +"administrativeArea": { +"description": "Required. Top-level administrative subdivision of the country. For example, a state like California (\"CA\") or a province like Quebec (\"QC\").", +"type": "string" +}, +"city": { +"description": "Required. City, town or commune. May also include dependent localities or sublocalities (for example, neighborhoods or suburbs).", +"type": "string" +}, +"country": { +"description": "Required. [CLDR country code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml) (for example, \"US\").", +"type": "string" +}, +"postalCode": { +"description": "Required. Postal code or ZIP (for example, \"94043\").", +"type": "string" +}, +"streetAddress": { +"description": "Street-level part of the address. Use `\\n` to add a second line.", +"type": "string" +} +}, +"type": "object" +}, +"AlternateDisputeResolution": { +"description": "The Alternate Dispute Resolution (ADR) that may be available to merchants in some regions. If present, the link should be shown on the same page as the list of issues.", +"id": "AlternateDisputeResolution", +"properties": { +"label": { +"description": "The label for the alternate dispute resolution link.", +"type": "string" +}, +"uri": { +"description": "The URL pointing to a page, where merchant can request alternative dispute resolution with an [external body](https://support.google.com/european-union-digital-services-act-redress-options/answer/13535501).", +"type": "string" +} +}, +"type": "object" +}, +"AttributionSettings": { +"description": "Represents attribution settings for conversion sources receiving pre-attribution data.", +"id": "AttributionSettings", +"properties": { +"attributionLookbackWindowInDays": { +"description": "Required. Lookback windows (in days) used for attribution in this source. Supported values are 7, 30, 40.", +"format": "int32", +"type": "integer" +}, +"attributionModel": { +"description": "Required. Attribution model.", +"enum": [ +"ATTRIBUTION_MODEL_UNSPECIFIED", +"CROSS_CHANNEL_LAST_CLICK", +"ADS_PREFERRED_LAST_CLICK", +"CROSS_CHANNEL_DATA_DRIVEN", +"CROSS_CHANNEL_FIRST_CLICK", +"CROSS_CHANNEL_LINEAR", +"CROSS_CHANNEL_POSITION_BASED", +"CROSS_CHANNEL_TIME_DECAY" +], +"enumDescriptions": [ +"", +"Cross-channel Last Click model.", +"Ads-preferred Last Click model.", +"Cross-channel Data Driven model.", +"Cross-channel First Click model.", +"Cross-channel Linear model.", +"Cross-channel Position Based model.", +"Cross-channel Time Decay model." +], +"type": "string" +}, +"conversionType": { +"description": "Immutable. Unordered list. List of different conversion types a conversion event can be classified as. A standard \"purchase\" type will be automatically created if this list is empty at creation time.", +"items": { +"$ref": "AttributionSettingsConversionType" +}, +"type": "array" +} +}, +"type": "object" +}, +"AttributionSettingsConversionType": { +"description": "Message representing a types of conversion events", +"id": "AttributionSettingsConversionType", +"properties": { +"includeInReporting": { +"description": "Output only. Option indicating if the type should be included in Merchant Center reporting.", +"readOnly": true, +"type": "boolean" +}, +"name": { +"description": "Output only. Conversion event name, as it'll be reported by the client.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BestSellers": { +"description": "Fields related to the [Best sellers reports](https://support.google.com/merchants/answer/9488679).", +"id": "BestSellers", +"properties": { +"categoryId": { +"description": "Google product category ID to calculate the ranking for, represented in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436). If a `WHERE` condition on `best_sellers.category_id` is not specified in the query, rankings for all top-level categories are returned.", +"format": "int64", +"type": "string" +}, +"countryCode": { +"description": "Country where the ranking is calculated. A `WHERE` condition on `best_sellers.country_code` is required in the query.", +"type": "string" +}, +"previousRank": { +"description": "Popularity rank in the previous week or month.", +"format": "int64", +"type": "string" +}, +"previousRelativeDemand": { +"description": "Estimated demand in relation to the item with the highest popularity rank in the same category and country in the previous week or month.", +"enum": [ +"RELATIVE_DEMAND_UNSPECIFIED", +"VERY_LOW", +"LOW", +"MEDIUM", +"HIGH", +"VERY_HIGH" +], +"enumDescriptions": [ +"Relative demand is unknown.", +"Demand is 0-5% of the demand of the highest ranked product clusters or brands.", +"Demand is 6-10% of the demand of the highest ranked product clusters or brands.", +"Demand is 11-20% of the demand of the highest ranked product clusters or brands.", +"Demand is 21-50% of the demand of the highest ranked product clusters or brands.", +"Demand is 51-100% of the demand of the highest ranked product clusters or brands." +], +"type": "string" +}, +"rank": { +"description": "Popularity on Shopping ads and free listings, in the selected category and country, based on the estimated number of units sold.", +"format": "int64", +"type": "string" +}, +"relativeDemand": { +"description": "Estimated demand in relation to the item with the highest popularity rank in the same category and country.", +"enum": [ +"RELATIVE_DEMAND_UNSPECIFIED", +"VERY_LOW", +"LOW", +"MEDIUM", +"HIGH", +"VERY_HIGH" +], +"enumDescriptions": [ +"Relative demand is unknown.", +"Demand is 0-5% of the demand of the highest ranked product clusters or brands.", +"Demand is 6-10% of the demand of the highest ranked product clusters or brands.", +"Demand is 11-20% of the demand of the highest ranked product clusters or brands.", +"Demand is 21-50% of the demand of the highest ranked product clusters or brands.", +"Demand is 51-100% of the demand of the highest ranked product clusters or brands." +], +"type": "string" +}, +"relativeDemandChange": { +"description": "Change in the estimated demand. Whether it rose, sank or remained flat.", +"enum": [ +"RELATIVE_DEMAND_CHANGE_TYPE_UNSPECIFIED", +"SINKER", +"FLAT", +"RISER" +], +"enumDescriptions": [ +"Relative demand change is unknown.", +"Relative demand is lower than previous time period.", +"Relative demand is equal to previous time period.", +"Relative demand is higher than the previous time period." +], +"type": "string" +}, +"reportDate": { +"$ref": "Date", +"description": "Report date. The value of this field can only be one of the following: * The first day of the week (Monday) for weekly reports. * The first day of the month for monthly reports. If a `WHERE` condition on `best_sellers.report_date` is not specified in the query, the latest available weekly or monthly report is returned." +}, +"reportGranularity": { +"description": "Granularity of the report. The ranking can be done over a week or a month timeframe. A `WHERE` condition on `best_sellers.report_granularity` is required in the query.", +"enum": [ +"REPORT_GRANULARITY_UNSPECIFIED", +"WEEKLY", +"MONTHLY" +], +"enumDescriptions": [ +"Report granularity is unknown.", +"Ranking is done over a week timeframe.", +"Ranking is done over a month timeframe." +], +"type": "string" +} +}, +"type": "object" +}, +"Brand": { +"description": "Brand fields. Values are only set for fields requested explicitly in the request's search query.", +"id": "Brand", +"properties": { +"name": { +"description": "Name of the brand.", +"type": "string" +} +}, +"type": "object" +}, +"Breakdown": { +"description": "A detailed impact breakdown for a group of regions where the impact of the issue on different shopping destinations is the same.", +"id": "Breakdown", +"properties": { +"details": { +"description": "Human readable, localized description of issue's effect on different targets. Should be rendered as a list. For example: * \"Products not showing in ads\" * \"Products not showing organically\"", +"items": { +"type": "string" +}, +"type": "array" +}, +"regions": { +"description": "Lists of regions. Should be rendered as a title for this group of details. The full list should be shown to merchant. If the list is too long, it is recommended to make it expandable.", +"items": { +"$ref": "BreakdownRegion" +}, +"type": "array" +} +}, +"type": "object" +}, +"BreakdownRegion": { +"description": "Region with code and localized name.", +"id": "BreakdownRegion", +"properties": { +"code": { +"description": "The [CLDR territory code] (http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)", +"type": "string" +}, +"name": { +"description": "The localized name of the region. For region with code='001' the value is 'All countries' or the equivalent in other languages.", +"type": "string" +} +}, +"type": "object" +}, +"BuiltInSimpleAction": { +"description": "Action that is implemented and performed in (your) third-party application. Represents various functionality that is expected to be available to merchant and will help them with resolving the issue. The application should point the merchant to the place, where they can access the corresponding functionality. If the functionality is not supported, it is recommended to explain the situation to merchant and provide them with instructions how to solve the issue.", +"id": "BuiltInSimpleAction", +"properties": { +"additionalContent": { +"$ref": "BuiltInSimpleActionAdditionalContent", +"description": "Long text from an external source that should be available to the merchant. Present when the type is `SHOW_ADDITIONAL_CONTENT`." +}, +"attributeCode": { +"description": "The attribute that needs to be updated. Present when the type is `EDIT_ITEM_ATTRIBUTE`. This field contains a code for attribute, represented in snake_case. You can find a list of product's attributes, with their codes [here](https://support.google.com/merchants/answer/7052112).", +"type": "string" +}, +"type": { +"description": "The type of action that represents a functionality that is expected to be available in third-party application.", +"enum": [ +"BUILT_IN_SIMPLE_ACTION_TYPE_UNSPECIFIED", +"VERIFY_PHONE", +"CLAIM_WEBSITE", +"ADD_PRODUCTS", +"ADD_CONTACT_INFO", +"LINK_ADS_ACCOUNT", +"ADD_BUSINESS_REGISTRATION_NUMBER", +"EDIT_ITEM_ATTRIBUTE", +"FIX_ACCOUNT_ISSUE", +"SHOW_ADDITIONAL_CONTENT" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Redirect merchant to the part of your application where they can verify their phone.", +"Redirect merchant to the part of your application where they can claim their website.", +"Redirect merchant to the part of your application where they can add products.", +"Open a form where the merchant can edit their contact information.", +"Redirect merchant to the part of your application where they can link ads account.", +"Open a form where the merchant can add their business registration number.", +"Open a form where the merchant can edit an attribute. The attribute that needs to be updated is specified in attribute_code field of the action.", +"Redirect merchant from the product issues to the diagnostic page with their account issues in your application. This action will be returned only for product issues that are caused by an account issue and thus merchant should resolve the problem on the account level.", +"Show additional content to the merchant. This action will be used for example to deliver a justification from national authority." +], +"type": "string" +} +}, +"type": "object" +}, +"BuiltInSimpleActionAdditionalContent": { +"description": "Long text from external source.", +"id": "BuiltInSimpleActionAdditionalContent", +"properties": { +"paragraphs": { +"description": "Long text organized into paragraphs.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Title of the additional content;", +"type": "string" +} +}, +"type": "object" +}, +"BuiltInUserInputAction": { +"description": "Action that is implemented and performed in (your) third-party application. The application needs to show an additional content and input form to the merchant. They can start the action only when they provided all required inputs. The application will request processing of the action by calling the [triggeraction method](https://developers.google.com/shopping-content/reference/rest/v2.1/merchantsupport/triggeraction).", +"id": "BuiltInUserInputAction", +"properties": { +"actionContext": { +"description": "Internal details. Not for display but need to be sent back when triggering the action.", +"type": "string" +}, +"flows": { +"description": "Actions may provide multiple different flows. Merchant selects one that fits best to their intent. Selecting the flow is the first step in user's interaction with the action. It affects what input fields will be available and required and also how the request will be processed.", +"items": { +"$ref": "ActionFlow" +}, +"type": "array" +} +}, +"type": "object" +}, +"BusinessDayConfig": { +"id": "BusinessDayConfig", +"properties": { +"businessDays": { +"description": "Regular business days, such as '\"monday\"'. May not be empty.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Callout": { +"description": "An important message that should be highlighted. Usually displayed as a banner.", +"id": "Callout", +"properties": { +"fullMessage": { +"$ref": "TextWithTooltip", +"description": "A full message that needs to be shown to the merchant." +}, +"styleHint": { +"description": "Can be used to render messages with different severity in different styles. Snippets off all types contain important information that should be displayed to merchants.", +"enum": [ +"CALLOUT_STYLE_HINT_UNSPECIFIED", +"ERROR", +"WARNING", +"INFO" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"The most important type of information highlighting problems, like an unsuccessful outcome of previously requested actions.", +"Information warning about pending problems, risks or deadlines.", +"Default severity for important information like pending status of previously requested action or cooldown for re-review." +], +"type": "string" +} +}, +"type": "object" +}, +"CarrierRate": { +"id": "CarrierRate", +"properties": { +"carrierName": { +"description": "Carrier service, such as `\"UPS\"` or `\"Fedex\"`. The list of supported carriers can be retrieved through the `getSupportedCarriers` method. Required.", +"type": "string" +}, +"carrierService": { +"description": "Carrier service, such as `\"ground\"` or `\"2 days\"`. The list of supported services for a carrier can be retrieved through the `getSupportedCarriers` method. Required.", +"type": "string" +}, +"flatAdjustment": { +"$ref": "Price", +"description": "Additive shipping rate modifier. Can be negative. For example `{ \"value\": \"1\", \"currency\" : \"USD\" }` adds $1 to the rate, `{ \"value\": \"-3\", \"currency\" : \"USD\" }` removes $3 from the rate. Optional." +}, +"name": { +"description": "Name of the carrier rate. Must be unique per rate group. Required.", +"type": "string" +}, +"originPostalCode": { +"description": "Shipping origin for this carrier rate. Required.", +"type": "string" +}, +"percentageAdjustment": { +"description": "Multiplicative shipping rate modifier as a number in decimal notation. Can be negative. For example `\"5.4\"` increases the rate by 5.4%, `\"-3\"` decreases the rate by 3%. Optional.", +"type": "string" +} +}, +"type": "object" +}, +"CarriersCarrier": { +"id": "CarriersCarrier", +"properties": { +"country": { +"description": "The CLDR country code of the carrier (for example, \"US\"). Always present.", +"type": "string" +}, +"eddServices": { +"description": "A list of services supported for EDD (Estimated Delivery Date) calculation. This is the list of valid values for WarehouseBasedDeliveryTime.carrierService.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the carrier (for example, `\"UPS\"`). Always present.", +"type": "string" +}, +"services": { +"description": "A list of supported services (for example, `\"ground\"`) for that carrier. Contains at least one service. This is the list of valid values for CarrierRate.carrierService.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CheckoutSettings": { +"description": "`CheckoutSettings` for a specific merchant ID.", +"id": "CheckoutSettings", +"properties": { +"effectiveEnrollmentState": { +"description": "Output only. The effective value of enrollment state for a given merchant ID. If account level settings are present then this value will be a copy of the account level settings. Otherwise, it will have the value of the parent account.", +"enum": [ +"CHECKOUT_ON_MERCHANT_ENROLLMENT_STATE_UNSPECIFIED", +"INACTIVE", +"ENROLLED", +"OPT_OUT" +], +"enumDescriptions": [ +"Default enrollment state when enrollment state is not specified.", +"Merchant has not enrolled into the feature.", +"Merchant has enrolled into the feature by providing either an account level URL or checkout URLs as part of their feed.", +"Merchant has previously enrolled but opted out of the feature." +], +"readOnly": true, +"type": "string" +}, +"effectiveReviewState": { +"description": "Output only. The effective value of review state for a given merchant ID. If account level settings are present then this value will be a copy of the account level settings. Otherwise, it will have the value of the parent account.", +"enum": [ +"CHECKOUT_ON_MERCHANT_REVIEW_STATE_UNSPECIFIED", +"IN_REVIEW", +"APPROVED", +"DISAPPROVED" +], +"enumDescriptions": [ +"Default review state when review state is not specified.", +"Merchant provided URLs are being reviewed for data quality issues.", +"Merchant account has been approved. Indicates the data quality checks have passed.", +"Merchant account has been disapproved due to data quality issues." +], +"readOnly": true, +"type": "string" +}, +"effectiveUriSettings": { +"$ref": "UrlSettings", +"description": "The effective value of `url_settings` for a given merchant ID. If account level settings are present then this value will be a copy of the account level settings. Otherwise, it will have the value of the parent account." +}, +"enrollmentState": { +"description": "Output only. Reflects the merchant enrollment state in `Checkout` feature.", +"enum": [ +"CHECKOUT_ON_MERCHANT_ENROLLMENT_STATE_UNSPECIFIED", +"INACTIVE", +"ENROLLED", +"OPT_OUT" +], +"enumDescriptions": [ +"Default enrollment state when enrollment state is not specified.", +"Merchant has not enrolled into the feature.", +"Merchant has enrolled into the feature by providing either an account level URL or checkout URLs as part of their feed.", +"Merchant has previously enrolled but opted out of the feature." +], +"readOnly": true, +"type": "string" +}, +"merchantId": { +"description": "Required. The ID of the account.", +"format": "int64", +"type": "string" +}, +"reviewState": { +"description": "Output only. Reflects the merchant review state in `Checkout` feature. This is set based on the data quality reviews of the URL provided by the merchant. A merchant with enrollment state as `ENROLLED` can be in the following review states: `IN_REVIEW`, `APPROVED` or `DISAPPROVED`. A merchant must be in an enrollment_state of `ENROLLED` before a review can begin for the merchant.", +"enum": [ +"CHECKOUT_ON_MERCHANT_REVIEW_STATE_UNSPECIFIED", +"IN_REVIEW", +"APPROVED", +"DISAPPROVED" +], +"enumDescriptions": [ +"Default review state when review state is not specified.", +"Merchant provided URLs are being reviewed for data quality issues.", +"Merchant account has been approved. Indicates the data quality checks have passed.", +"Merchant account has been disapproved due to data quality issues." +], +"readOnly": true, +"type": "string" +}, +"uriSettings": { +"$ref": "UrlSettings", +"description": "URL settings for cart or checkout URL." +} +}, +"type": "object" +}, +"CloudExportAdditionalProperties": { +"description": "Product property for the Cloud Retail API. For example, properties for a TV product could be \"Screen-Resolution\" or \"Screen-Size\".", +"id": "CloudExportAdditionalProperties", +"properties": { +"boolValue": { +"description": "Boolean value of the given property. For example for a TV product, \"True\" or \"False\" if the screen is UHD.", +"type": "boolean" +}, +"floatValue": { +"description": "Float values of the given property. For example for a TV product 1.2345. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order.", +"items": { +"format": "float", +"type": "number" +}, +"type": "array" +}, +"intValue": { +"description": "Integer values of the given property. For example, 1080 for a screen resolution of a TV product. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"maxValue": { +"description": "Maximum float value of the given property. For example for a TV product 100.00.", +"format": "float", +"type": "number" +}, +"minValue": { +"description": "Minimum float value of the given property. For example for a TV product 1.00.", +"format": "float", +"type": "number" +}, +"propertyName": { +"description": "Name of the given property. For example, \"Screen-Resolution\" for a TV product. Maximum string size is 256 characters.", +"type": "string" +}, +"textValue": { +"description": "Text value of the given property. For example, \"8K(UHD)\" could be a text value for a TV product. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order. Maximum string size is 256 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"unitCode": { +"description": "Unit of the given property. For example, \"Pixels\" for a TV product. Maximum string size is 256 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"Collection": { +"description": "The collection message.", +"id": "Collection", +"properties": { +"customLabel0": { +"description": "Label that you assign to a collection to help organize bidding and reporting in Shopping campaigns. [Custom label](https://support.google.com/merchants/answer/9674217)", +"type": "string" +}, +"customLabel1": { +"description": "Label that you assign to a collection to help organize bidding and reporting in Shopping campaigns.", +"type": "string" +}, +"customLabel2": { +"description": "Label that you assign to a collection to help organize bidding and reporting in Shopping campaigns.", +"type": "string" +}, +"customLabel3": { +"description": "Label that you assign to a collection to help organize bidding and reporting in Shopping campaigns.", +"type": "string" +}, +"customLabel4": { +"description": "Label that you assign to a collection to help organize bidding and reporting in Shopping campaigns.", +"type": "string" +}, +"featuredProduct": { +"description": "This identifies one or more products associated with the collection. Used as a lookup to the corresponding product ID in your product feeds. Provide a maximum of 100 featuredProduct (for collections). Provide up to 10 featuredProduct (for Shoppable Images only) with ID and X and Y coordinates. [featured_product attribute](https://support.google.com/merchants/answer/9703736)", +"items": { +"$ref": "CollectionFeaturedProduct" +}, +"type": "array" +}, +"headline": { +"description": "Your collection's name. [headline attribute](https://support.google.com/merchants/answer/9673580)", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Required. The REST ID of the collection. Content API methods that operate on collections take this as their collectionId parameter. The REST ID for a collection is of the form collectionId. [id attribute](https://support.google.com/merchants/answer/9649290)", +"type": "string" +}, +"imageLink": { +"description": "The URL of a collection\u2019s image. [image_link attribute](https://support.google.com/merchants/answer/9703236)", +"items": { +"type": "string" +}, +"type": "array" +}, +"language": { +"description": "The language of a collection and the language of any featured products linked to the collection. [language attribute](https://support.google.com/merchants/answer/9673781)", +"type": "string" +}, +"link": { +"description": "A collection\u2019s landing page. URL directly linking to your collection's page on your website. [link attribute](https://support.google.com/merchants/answer/9673983)", +"type": "string" +}, +"mobileLink": { +"description": "A collection\u2019s mobile-optimized landing page when you have a different URL for mobile and desktop traffic. [mobile_link attribute](https://support.google.com/merchants/answer/9646123)", +"type": "string" +}, +"productCountry": { +"description": "[product_country attribute](https://support.google.com/merchants/answer/9674155)", +"type": "string" +} +}, +"type": "object" +}, +"CollectionFeaturedProduct": { +"description": "The message for FeaturedProduct. [FeaturedProduct](https://support.google.com/merchants/answer/9703736)", +"id": "CollectionFeaturedProduct", +"properties": { +"offerId": { +"description": "The unique identifier for the product item.", +"type": "string" +}, +"x": { +"description": "Required. X-coordinate of the product callout on the Shoppable Image.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Required. Y-coordinate of the product callout on the Shoppable Image.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"CollectionStatus": { +"description": "The collectionstatus message.", +"id": "CollectionStatus", +"properties": { +"collectionLevelIssuses": { +"description": "A list of all issues associated with the collection.", +"items": { +"$ref": "CollectionStatusItemLevelIssue" +}, +"type": "array" +}, +"creationDate": { +"description": "Date on which the collection has been created in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, for example \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", +"type": "string" +}, +"destinationStatuses": { +"description": "The intended destinations for the collection.", +"items": { +"$ref": "CollectionStatusDestinationStatus" +}, +"type": "array" +}, +"id": { +"description": "Required. The ID of the collection for which status is reported.", +"type": "string" +}, +"lastUpdateDate": { +"description": "Date on which the collection has been last updated in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, for example \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", +"type": "string" +} +}, +"type": "object" +}, +"CollectionStatusDestinationStatus": { +"description": "Destination status message.", +"id": "CollectionStatusDestinationStatus", +"properties": { +"approvedCountries": { +"description": "Country codes (ISO 3166-1 alpha-2) where the collection is approved.", +"items": { +"type": "string" +}, +"type": "array" +}, +"destination": { +"description": "The name of the destination", +"type": "string" +}, +"disapprovedCountries": { +"description": "Country codes (ISO 3166-1 alpha-2) where the collection is disapproved.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pendingCountries": { +"description": "Country codes (ISO 3166-1 alpha-2) where the collection is pending approval.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "The status for the specified destination in the collections target country.", +"type": "string" +} +}, +"type": "object" +}, +"CollectionStatusItemLevelIssue": { +"description": "Issue associated with the collection.", +"id": "CollectionStatusItemLevelIssue", +"properties": { +"applicableCountries": { +"description": "Country codes (ISO 3166-1 alpha-2) where issue applies to the offer.", +"items": { +"type": "string" +}, +"type": "array" +}, +"attributeName": { +"description": "The attribute's name, if the issue is caused by a single attribute.", +"type": "string" +}, +"code": { +"description": "The error code of the issue.", +"type": "string" +}, +"description": { +"description": "A short issue description in English.", +"type": "string" +}, +"destination": { +"description": "The destination the issue applies to.", +"type": "string" +}, +"detail": { +"description": "A detailed issue description in English.", +"type": "string" +}, +"documentation": { +"description": "The URL of a web page to help with resolving this issue.", +"type": "string" +}, +"resolution": { +"description": "Whether the issue can be resolved by the merchant.", +"type": "string" +}, +"servability": { +"description": "How this issue affects the serving of the collection.", +"type": "string" +} +}, +"type": "object" +}, +"CompetitiveVisibility": { +"description": "Fields related to [competitive visibility reports] (https://support.google.com/merchants/answer/11366442).", +"id": "CompetitiveVisibility", +"properties": { +"adsOrganicRatio": { +"description": "[Ads / organic ratio] (https://support.google.com/merchants/answer/11366442#zippy=%2Cadsfree-ratio) shows how often a merchant receives impressions from Shopping ads compared to organic traffic. The number is rounded and bucketed. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", +"format": "double", +"type": "number" +}, +"categoryBenchmarkVisibilityTrend": { +"description": "Change in visibility based on impressions with respect to the start of the selected time range (or first day with non-zero impressions) for a combined set of merchants with highest visibility approximating the market. Available only in `CompetitiveVisibilityBenchmarkView`. Cannot be filtered on in the 'WHERE' clause.", +"format": "double", +"type": "number" +}, +"categoryId": { +"description": "Google product category ID to calculate the report for, represented in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436). Required in the `SELECT` clause. A `WHERE` condition on `competitive_visibility.category_id` is required in the query.", +"format": "int64", +"type": "string" +}, +"countryCode": { +"description": "The country where impression appeared. Required in the `SELECT` clause. A `WHERE` condition on `competitive_visibility.country_code` is required in the query.", +"type": "string" +}, +"date": { +"$ref": "Date", +"description": "Date of this row. Available only in `CompetitiveVisibilityBenchmarkView` and `CompetitiveVisibilityCompetitorView`. Required in the `SELECT` clause for `CompetitiveVisibilityMarketBenchmarkView`." +}, +"domain": { +"description": "Domain of your competitor or your domain, if 'is_your_domain' is true. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Required in the `SELECT` clause for `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", +"type": "string" +}, +"higherPositionRate": { +"description": "Higher position rate shows how often a competitor\u2019s offer got placed in a higher position on the page than your offer. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", +"format": "double", +"type": "number" +}, +"isYourDomain": { +"description": "True if this row contains data for your domain. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", +"type": "boolean" +}, +"pageOverlapRate": { +"description": "Page overlap rate describes how frequently competing retailers\u2019 offers are shown together with your offers on the same page. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", +"format": "double", +"type": "number" +}, +"rank": { +"description": "Position of the domain in the top merchants ranking for the selected keys (`date`, `category_id`, `country_code`, `listing_type`) based on impressions. 1 is the highest. Available only in `CompetitiveVisibilityTopMerchantView` and `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", +"format": "uint64", +"type": "string" +}, +"relativeVisibility": { +"description": "Relative visibility shows how often your competitors\u2019 offers are shown compared to your offers. In other words, this is the number of displayed impressions of a competitor retailer divided by the number of your displayed impressions during a selected time range for a selected product category and country. Available only in `CompetitiveVisibilityCompetitorView`. Cannot be filtered on in the 'WHERE' clause.", +"format": "double", +"type": "number" +}, +"trafficSource": { +"description": "Type of impression listing. Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' clause.", +"enum": [ +"UNKNOWN", +"ORGANIC", +"ADS", +"ALL" +], +"enumDescriptions": [ +"Traffic source is unknown.", +"Organic traffic.", +"Traffic from Ads.", +"Organic and Ads traffic." +], +"type": "string" +}, +"yourDomainVisibilityTrend": { +"description": "Change in visibility based on impressions for your domain with respect to the start of the selected time range (or first day with non-zero impressions). Available only in `CompetitiveVisibilityBenchmarkView`. Cannot be filtered on in the 'WHERE' clause.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ConversionSource": { +"description": "Represents a conversion source owned by a Merchant account. A merchant account can have up to 200 conversion sources.", +"id": "ConversionSource", +"properties": { +"conversionSourceId": { +"description": "Output only. Generated by the Content API upon creation of a new `ConversionSource`. Format: [a-z]{4}:.+ The four characters before the colon represent the type of conversio source. Content after the colon represents the ID of the conversion source within that type. The ID of two different conversion sources might be the same across different types. The following type prefixes are supported: - galk: For GoogleAnalyticsLink sources. - mcdn: For MerchantCenterDestination sources.", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The time when an archived conversion source becomes permanently deleted and is no longer available to undelete.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"googleAnalyticsLink": { +"$ref": "GoogleAnalyticsLink", +"description": "Immutable. Conversion Source of type \"Link to Google Analytics Property\"." +}, +"merchantCenterDestination": { +"$ref": "MerchantCenterDestination", +"description": "Conversion Source of type \"Merchant Center Tag Destination\"." +}, +"state": { +"description": "Output only. Current state of this conversion source. Can't be edited through the API.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"ARCHIVED", +"PENDING" +], +"enumDescriptions": [ +"", +"Conversion source is fully functional.", +"Conversion source has been archived in the last 30 days and not currently functional. Can be restored using the undelete method.", +"Conversion source creation has started but not fully finished yet." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Css": { +"description": "Information about CSS domain.", +"id": "Css", +"properties": { +"cssDomainId": { +"description": "Output only. Immutable. The CSS domain ID.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"cssGroupId": { +"description": "Output only. Immutable. The ID of the CSS group this CSS domain is affiliated with. Only populated for CSS group users.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. Immutable. The CSS domain's display name, used when space is constrained.", +"readOnly": true, +"type": "string" +}, +"fullName": { +"description": "Output only. Immutable. The CSS domain's full name.", +"readOnly": true, +"type": "string" +}, +"homepageUri": { +"description": "Output only. Immutable. The CSS domain's homepage.", +"readOnly": true, +"type": "string" +}, +"labelIds": { +"description": "A list of label IDs that are assigned to this CSS domain by its CSS group. Only populated for CSS group users.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomAttribute": { +"description": "A message that represents custom attributes. Exactly one of `value` or `groupValues` must be provided. Maximum allowed number of characters for each custom attribute is 10240 (represents sum of characters for name and value). Maximum 2500 custom attributes can be set per merchant, with total size of 102.4kB.", +"id": "CustomAttribute", +"properties": { +"groupValues": { +"description": "Subattributes within this attribute group. Exactly one of value or groupValues must be provided.", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"name": { +"description": "The name of the attribute. Underscores will be replaced by spaces upon insertion.", +"type": "string" +}, +"value": { +"description": "The value of the attribute.", +"type": "string" +} +}, +"type": "object" +}, +"CutoffTime": { +"id": "CutoffTime", +"properties": { +"hour": { +"description": "Hour of the cutoff time until which an order has to be placed to be processed in the same day. Required.", +"format": "uint32", +"type": "integer" +}, +"minute": { +"description": "Minute of the cutoff time until which an order has to be placed to be processed in the same day. Required.", +"format": "uint32", +"type": "integer" +}, +"timezone": { +"description": "Timezone identifier for the cutoff time (for example, \"Europe/Zurich\"). List of identifiers. Required.", +"type": "string" +} +}, +"type": "object" +}, +"Datafeed": { +"description": "Datafeed configuration data.", +"id": "Datafeed", +"properties": { +"attributeLanguage": { +"description": "The two-letter ISO 639-1 language in which the attributes are defined in the data feed.", +"type": "string" +}, +"contentType": { +"description": "Required. The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported. Acceptable values are: - \"`local products`\" - \"`product inventory`\" - \"`products`\" ", +"type": "string" +}, +"fetchSchedule": { +"$ref": "DatafeedFetchSchedule", +"description": "Fetch schedule for the feed file." +}, +"fileName": { +"description": "Required. The filename of the feed. All feeds must have a unique file name.", +"type": "string" +}, +"format": { +"$ref": "DatafeedFormat", +"description": "Format of the feed file." +}, +"id": { +"description": "Required for update. The ID of the data feed.", +"format": "int64", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#datafeed`\"", +"type": "string" +}, +"name": { +"description": "Required for insert. A descriptive name of the data feed.", +"type": "string" +}, +"targets": { +"description": "The targets this feed should apply to (country, language, destinations).", +"items": { +"$ref": "DatafeedTarget" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatafeedFetchSchedule": { +"description": "The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required.", +"id": "DatafeedFetchSchedule", +"properties": { +"dayOfMonth": { +"description": "The day of the month the feed file should be fetched (1-31).", +"format": "uint32", +"type": "integer" +}, +"fetchUrl": { +"description": "The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.", +"type": "string" +}, +"hour": { +"description": "The hour of the day the feed file should be fetched (0-23).", +"format": "uint32", +"type": "integer" +}, +"minuteOfHour": { +"description": "The minute of the hour the feed file should be fetched (0-59). Read-only.", +"format": "uint32", +"type": "integer" +}, +"password": { +"description": "An optional password for fetch_url.", +"type": "string" +}, +"paused": { +"description": "Whether the scheduled fetch is paused or not.", +"type": "boolean" +}, +"timeZone": { +"description": "Time zone used for schedule. UTC by default. For example, \"America/Los_Angeles\".", +"type": "string" +}, +"username": { +"description": "An optional user name for fetch_url.", +"type": "string" +}, +"weekday": { +"description": "The day of the week the feed file should be fetched. Acceptable values are: - \"`monday`\" - \"`tuesday`\" - \"`wednesday`\" - \"`thursday`\" - \"`friday`\" - \"`saturday`\" - \"`sunday`\" ", +"type": "string" +} +}, +"type": "object" +}, +"DatafeedFormat": { +"id": "DatafeedFormat", +"properties": { +"columnDelimiter": { +"description": "Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds. Acceptable values are: - \"`pipe`\" - \"`tab`\" - \"`tilde`\" ", +"type": "string" +}, +"fileEncoding": { +"description": "Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected. Acceptable values are: - \"`latin-1`\" - \"`utf-16be`\" - \"`utf-16le`\" - \"`utf-8`\" - \"`windows-1252`\" ", +"type": "string" +}, +"quotingMode": { +"description": "Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds. Acceptable values are: - \"`normal character`\" - \"`value quoting`\" ", +"type": "string" +} +}, +"type": "object" +}, +"DatafeedStatus": { +"description": "The status of a datafeed, that is, the result of the last retrieval of the datafeed computed asynchronously when the feed processing is finished.", +"id": "DatafeedStatus", +"properties": { +"country": { +"description": "The country for which the status is reported, represented as a CLDR territory code.", +"type": "string" +}, +"datafeedId": { +"description": "The ID of the feed for which the status is reported.", +"format": "uint64", +"type": "string" +}, +"errors": { +"description": "The list of errors occurring in the feed.", +"items": { +"$ref": "DatafeedStatusError" +}, +"type": "array" +}, +"feedLabel": { +"description": "The feed label status is reported for.", +"type": "string" +}, +"itemsTotal": { +"description": "The number of items in the feed that were processed.", +"format": "uint64", +"type": "string" +}, +"itemsValid": { +"description": "The number of items in the feed that were valid.", +"format": "uint64", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#datafeedStatus`\"", +"type": "string" +}, +"language": { +"description": "The two-letter ISO 639-1 language for which the status is reported.", +"type": "string" +}, +"lastUploadDate": { +"description": "The last date at which the feed was uploaded.", +"type": "string" +}, +"processingStatus": { +"description": "The processing status of the feed. Acceptable values are: - \"`\"`failure`\": The feed could not be processed or all items had errors.`\" - \"`in progress`\": The feed is being processed. - \"`none`\": The feed has not yet been processed. For example, a feed that has never been uploaded will have this processing status. - \"`success`\": The feed was processed successfully, though some items might have had errors. ", +"type": "string" +}, +"warnings": { +"description": "The list of errors occurring in the feed.", +"items": { +"$ref": "DatafeedStatusError" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatafeedStatusError": { +"description": "An error occurring in the feed, like \"invalid price\".", +"id": "DatafeedStatusError", +"properties": { +"code": { +"description": "The code of the error, for example, \"validation/invalid_value\".", +"type": "string" +}, +"count": { +"description": "The number of occurrences of the error in the feed.", +"format": "uint64", +"type": "string" +}, +"examples": { +"description": "A list of example occurrences of the error, grouped by product.", +"items": { +"$ref": "DatafeedStatusExample" +}, +"type": "array" +}, +"message": { +"description": "The error message, for example, \"Invalid price\".", +"type": "string" +} +}, +"type": "object" +}, +"DatafeedStatusExample": { +"description": "An example occurrence for a particular error.", +"id": "DatafeedStatusExample", +"properties": { +"itemId": { +"description": "The ID of the example item.", +"type": "string" +}, +"lineNumber": { +"description": "Line number in the data feed where the example is found.", +"format": "uint64", +"type": "string" +}, +"value": { +"description": "The problematic value.", +"type": "string" +} +}, +"type": "object" +}, +"DatafeedTarget": { +"id": "DatafeedTarget", +"properties": { +"country": { +"description": "Deprecated. Use `feedLabel` instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.", +"type": "string" +}, +"excludedDestinations": { +"description": "The list of [destinations to exclude](//support.google.com/merchants/answer/6324486) for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.", +"items": { +"type": "string" +}, +"type": "array" +}, +"feedLabel": { +"description": "Feed label for the DatafeedTarget. Either `country` or `feedLabel` is required. If both `feedLabel` and `country` is specified, the values must match. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-).", +"type": "string" +}, +"includedDestinations": { +"description": "The list of [destinations to include](//support.google.com/merchants/answer/7501026) for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"language": { +"description": "The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for `targets[].country`.", +"type": "string" +}, +"targetCountries": { +"description": "The countries where the items may be displayed. Represented as a CLDR territory code. Will be ignored for \"product inventory\" feeds.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatafeedsCustomBatchRequest": { +"id": "DatafeedsCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "DatafeedsCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatafeedsCustomBatchRequestEntry": { +"description": "A batch entry encoding a single non-batch datafeeds request.", +"id": "DatafeedsCustomBatchRequestEntry", +"properties": { +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"datafeed": { +"$ref": "Datafeed", +"description": "The data feed to insert." +}, +"datafeedId": { +"description": "The ID of the data feed to get, delete or fetch.", +"format": "uint64", +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`delete`\" - \"`fetchNow`\" - \"`get`\" - \"`insert`\" - \"`update`\" ", +"type": "string" +} +}, +"type": "object" +}, +"DatafeedsCustomBatchResponse": { +"id": "DatafeedsCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "DatafeedsCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#datafeedsCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"DatafeedsCustomBatchResponseEntry": { +"description": "A batch entry encoding a single non-batch datafeeds response.", +"id": "DatafeedsCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry this entry responds to.", +"format": "uint32", +"type": "integer" +}, +"datafeed": { +"$ref": "Datafeed", +"description": "The requested data feed. Defined if and only if the request was successful." +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +} +}, +"type": "object" +}, +"DatafeedsFetchNowResponse": { +"id": "DatafeedsFetchNowResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#datafeedsFetchNowResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"DatafeedsListResponse": { +"id": "DatafeedsListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#datafeedsListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of datafeeds.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "Datafeed" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatafeedstatusesCustomBatchRequest": { +"id": "DatafeedstatusesCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "DatafeedstatusesCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatafeedstatusesCustomBatchRequestEntry": { +"description": "A batch entry encoding a single non-batch datafeedstatuses request.", +"id": "DatafeedstatusesCustomBatchRequestEntry", +"properties": { +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"country": { +"description": "Deprecated. Use `feedLabel` instead. The country to get the datafeed status for. If this parameter is provided, then `language` must also be provided. Note that for multi-target datafeeds this parameter is required.", +"type": "string" +}, +"datafeedId": { +"description": "The ID of the data feed to get.", +"format": "uint64", +"type": "string" +}, +"feedLabel": { +"description": "The feed label to get the datafeed status for. If this parameter is provided, then `language` must also be provided. Note that for multi-target datafeeds this parameter is required.", +"type": "string" +}, +"language": { +"description": "The language to get the datafeed status for. If this parameter is provided then `country` must also be provided. Note that for multi-target datafeeds this parameter is required.", +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`get`\" ", +"type": "string" +} +}, +"type": "object" +}, +"DatafeedstatusesCustomBatchResponse": { +"id": "DatafeedstatusesCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "DatafeedstatusesCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#datafeedstatusesCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"DatafeedstatusesCustomBatchResponseEntry": { +"description": "A batch entry encoding a single non-batch datafeedstatuses response.", +"id": "DatafeedstatusesCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry this entry responds to.", +"format": "uint32", +"type": "integer" +}, +"datafeedStatus": { +"$ref": "DatafeedStatus", +"description": "The requested data feed status. Defined if and only if the request was successful." +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +} +}, +"type": "object" +}, +"DatafeedstatusesListResponse": { +"id": "DatafeedstatusesListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#datafeedstatusesListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of datafeed statuses.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "DatafeedStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DateTime": { +"description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", +"id": "DateTime", +"properties": { +"day": { +"description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", +"format": "int32", +"type": "integer" +}, +"hours": { +"description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +}, +"timeZone": { +"$ref": "TimeZone", +"description": "Time zone." +}, +"utcOffset": { +"description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.", +"format": "google-duration", +"type": "string" +}, +"year": { +"description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeliveryArea": { +"description": "A delivery area for the product. Only one of `countryCode` or `postalCodeRange` must be set.", +"id": "DeliveryArea", +"properties": { +"countryCode": { +"description": "Required. The country that the product can be delivered to. Submit a [unicode CLDR region](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) such as `US` or `CH`.", +"type": "string" +}, +"postalCodeRange": { +"$ref": "DeliveryAreaPostalCodeRange", +"description": "A postal code, postal code range or postal code prefix that defines this area. Limited to US and AUS." +}, +"regionCode": { +"description": "A state, territory, or prefecture. This is supported for the United States, Australia, and Japan. Provide a subdivision code from the ISO 3166-2 code tables ([US](https://en.wikipedia.org/wiki/ISO_3166-2:US), [AU](https://en.wikipedia.org/wiki/ISO_3166-2:AU), or [JP](https://en.wikipedia.org/wiki/ISO_3166-2:JP)) without country prefix (for example, `\"NY\"`, `\"NSW\"`, `\"03\"`).", +"type": "string" +} +}, +"type": "object" +}, +"DeliveryAreaPostalCodeRange": { +"description": "A range of postal codes that defines the delivery area. Only set `firstPostalCode` when specifying a single postal code.", +"id": "DeliveryAreaPostalCodeRange", +"properties": { +"firstPostalCode": { +"description": "Required. A postal code or a pattern of the form prefix* denoting the inclusive lower bound of the range defining the area. Examples values: `\"94108\"`, `\"9410*\"`, `\"9*\"`.", +"type": "string" +}, +"lastPostalCode": { +"description": "A postal code or a pattern of the form prefix* denoting the inclusive upper bound of the range defining the area (for example [070* - 078*] results in the range [07000 - 07899]). It must have the same length as `firstPostalCode`: if `firstPostalCode` is a postal code then `lastPostalCode` must be a postal code too; if firstPostalCode is a pattern then `lastPostalCode` must be a pattern with the same prefix length. Ignored if not set, then the area is defined as being all the postal codes matching `firstPostalCode`.", +"type": "string" +} +}, +"type": "object" +}, +"DeliveryTime": { +"id": "DeliveryTime", +"properties": { +"cutoffTime": { +"$ref": "CutoffTime", +"description": "Business days cutoff time definition. If not configured, the cutoff time will be defaulted to 8AM PST. If local delivery, use Service.StoreConfig.CutoffConfig." +}, +"handlingBusinessDayConfig": { +"$ref": "BusinessDayConfig", +"description": "The business days during which orders can be handled. If not provided, Monday to Friday business days will be assumed." +}, +"holidayCutoffs": { +"description": "Holiday cutoff definitions. If configured, they specify order cutoff times for holiday-specific shipping.", +"items": { +"$ref": "HolidayCutoff" +}, +"type": "array" +}, +"maxHandlingTimeInDays": { +"description": "Maximum number of business days spent before an order is shipped. 0 means same day shipped, 1 means next day shipped. Must be greater than or equal to `minHandlingTimeInDays`.", +"format": "uint32", +"type": "integer" +}, +"maxTransitTimeInDays": { +"description": "Maximum number of business days that are spent in transit. 0 means same day delivery, 1 means next day delivery. Must be greater than or equal to `minTransitTimeInDays`.", +"format": "uint32", +"type": "integer" +}, +"minHandlingTimeInDays": { +"description": "Minimum number of business days spent before an order is shipped. 0 means same day shipped, 1 means next day shipped.", +"format": "uint32", +"type": "integer" +}, +"minTransitTimeInDays": { +"description": "Minimum number of business days that are spent in transit. 0 means same day delivery, 1 means next day delivery. Either `{min,max}TransitTimeInDays` or `transitTimeTable` must be set, but not both.", +"format": "uint32", +"type": "integer" +}, +"transitBusinessDayConfig": { +"$ref": "BusinessDayConfig", +"description": "The business days during which orders can be in-transit. If not provided, Monday to Friday business days will be assumed." +}, +"transitTimeTable": { +"$ref": "TransitTable", +"description": "Transit time table, number of business days spent in transit based on row and column dimensions. Either `{min,max}TransitTimeInDays` or `transitTimeTable` can be set, but not both." +}, +"warehouseBasedDeliveryTimes": { +"description": "Indicates that the delivery time should be calculated per warehouse (shipping origin location) based on the settings of the selected carrier. When set, no other transit time related field in DeliveryTime should be set.", +"items": { +"$ref": "WarehouseBasedDeliveryTime" +}, +"type": "array" +} +}, +"type": "object" +}, +"Distance": { +"description": "Distance represented by an integer and unit.", +"id": "Distance", +"properties": { +"unit": { +"description": "The distance unit. Acceptable values are `None`, `Miles`, and `Kilometers`.", +"type": "string" +}, +"value": { +"description": "The distance represented as a number.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ECommercePlatformLinkInfo": { +"description": "Additional information required for E_COMMERCE_PLATFORM link type.", +"id": "ECommercePlatformLinkInfo", +"properties": { +"externalAccountId": { +"description": "The id used by the third party service provider to identify the merchant.", +"type": "string" +} +}, +"type": "object" +}, +"Error": { +"description": "An error returned by the API.", +"id": "Error", +"properties": { +"domain": { +"description": "The domain of the error.", +"type": "string" +}, +"message": { +"description": "A description of the error.", +"type": "string" +}, +"reason": { +"description": "The error code.", +"type": "string" +} +}, +"type": "object" +}, +"Errors": { +"description": "A list of errors returned by a failed batch entry.", +"id": "Errors", +"properties": { +"code": { +"description": "The HTTP status of the first error in `errors`.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"description": "A list of errors.", +"items": { +"$ref": "Error" +}, +"type": "array" +}, +"message": { +"description": "The message of the first error in `errors`.", +"type": "string" +} +}, +"type": "object" +}, +"ExternalAction": { +"description": "Action that is implemented and performed outside of the third-party application. It should redirect the merchant to the provided URL of an external system where they can perform the action. For example to request a review in the Merchant Center.", +"id": "ExternalAction", +"properties": { +"type": { +"description": "The type of external action.", +"enum": [ +"EXTERNAL_ACTION_TYPE_UNSPECIFIED", +"REVIEW_PRODUCT_ISSUE_IN_MERCHANT_CENTER", +"REVIEW_ACCOUNT_ISSUE_IN_MERCHANT_CENTER", +"LEGAL_APPEAL_IN_HELP_CENTER", +"VERIFY_IDENTITY_IN_MERCHANT_CENTER" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Redirect to Merchant Center where the merchant can request a review for issue related to their product.", +"Redirect to Merchant Center where the merchant can request a review for issue related to their account.", +"Redirect to the form in Help Center where the merchant can request a legal appeal for the issue.", +"Redirect to Merchant Center where the merchant can perform identity verification." +], +"type": "string" +}, +"uri": { +"description": "URL to external system, for example Merchant Center, where the merchant can perform the action.", +"type": "string" +} +}, +"type": "object" +}, +"FreeListingsProgramStatus": { +"description": "Response message for GetFreeListingsProgramStatus.", +"id": "FreeListingsProgramStatus", +"properties": { +"globalState": { +"description": "State of the program. `ENABLED` if there are offers for at least one region.", +"enum": [ +"PROGRAM_STATE_UNSPECIFIED", +"NOT_ENABLED", +"NO_OFFERS_UPLOADED", +"ENABLED" +], +"enumDescriptions": [ +"State is unknown.", +"Program is not enabled for any country.", +"No products have been uploaded for any region. Upload products to Merchant Center.", +"Program is enabled and offers are uploaded for at least one country." +], +"type": "string" +}, +"regionStatuses": { +"description": "Status of the program in each region. Regions with the same status and review eligibility are grouped together in `regionCodes`.", +"items": { +"$ref": "FreeListingsProgramStatusRegionStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"FreeListingsProgramStatusRegionStatus": { +"description": "Status of program and region.", +"id": "FreeListingsProgramStatusRegionStatus", +"properties": { +"disapprovalDate": { +"description": "Date by which eligibilityStatus will go from `WARNING` to `DISAPPROVED`. Only visible when your eligibilityStatus is WARNING. In [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DD`.", +"type": "string" +}, +"eligibilityStatus": { +"description": "Eligibility status of the standard free listing program.", +"enum": [ +"STATE_UNSPECIFIED", +"APPROVED", +"DISAPPROVED", +"WARNING", +"UNDER_REVIEW", +"PENDING_REVIEW", +"ONBOARDING" +], +"enumDescriptions": [ +"State is not known.", +"If the account has no issues and review is completed successfully.", +"There are one or more issues that needs to be resolved for account to be active for the program. Detailed list of account issues are available in [accountstatuses](https://developers.google.com/shopping-content/reference/rest/v2.1/accountstatuses) API.", +"If account has issues but offers are servable. Some of the issue can make account DISAPPROVED after a certain deadline.", +"Account is under review.", +"Account is waiting for review to start.", +"Program is currently onboarding. Upload valid offers to complete onboarding." +], +"type": "string" +}, +"onboardingIssues": { +"description": "Issues that must be fixed to be eligible for review.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCodes": { +"description": "The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) codes for all the regions with the same `eligibilityStatus` and `reviewEligibility`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"reviewEligibilityStatus": { +"description": "If a program is eligible for review in a specific region. Only visible if `eligibilityStatus` is `DISAPPROVED`.", +"enum": [ +"REVIEW_ELIGIBILITY_UNSPECIFIED", +"ELIGIBLE", +"INELIGIBLE" +], +"enumDescriptions": [ +"Review eligibility state is unknown.", +"Account is eligible for review for a specified region code.", +"Account is not eligible for review for a specified region code." +], +"type": "string" +}, +"reviewIneligibilityReason": { +"description": "Review ineligibility reason if account is not eligible for review.", +"enum": [ +"REVIEW_INELIGIBILITY_REASON_UNSPECIFIED", +"ONBOARDING_ISSUES", +"NOT_ENOUGH_OFFERS", +"IN_COOLDOWN_PERIOD", +"ALREADY_UNDER_REVIEW", +"NO_REVIEW_REQUIRED", +"WILL_BE_REVIEWED_AUTOMATICALLY", +"IS_RETIRED", +"ALREADY_REVIEWED" +], +"enumDescriptions": [ +"Requesting a review from Google is not possible.", +"All onboarding issues needs to be fixed.", +"Not enough offers uploaded for this country.", +"Cooldown period applies. Wait until cooldown period ends.", +"Account is already under review.", +"No issues available to review.", +"Account will be automatically reviewed at the end of the grace period.", +"Account is retired. Should not appear in MC.", +"Account has already been reviewed. You can't request further reviews." +], +"type": "string" +}, +"reviewIneligibilityReasonDescription": { +"description": "Reason a program in a specific region isn\u2019t eligible for review. Only visible if `reviewEligibilityStatus` is `INELIGIBLE`.", +"type": "string" +}, +"reviewIneligibilityReasonDetails": { +"$ref": "FreeListingsProgramStatusReviewIneligibilityReasonDetails", +"description": "Additional information for ineligibility. If `reviewIneligibilityReason` is `IN_COOLDOWN_PERIOD`, a timestamp for the end of the cooldown period is provided." +}, +"reviewIssues": { +"description": "Issues evaluated in the review process. Fix all issues before requesting a review.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"FreeListingsProgramStatusReviewIneligibilityReasonDetails": { +"description": "Additional details for review ineligibility reasons.", +"id": "FreeListingsProgramStatusReviewIneligibilityReasonDetails", +"properties": { +"cooldownTime": { +"description": "This timestamp represents end of cooldown period for review ineligbility reason `IN_COOLDOWN_PERIOD`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"FreeShippingThreshold": { +"description": "Conditions to be met for a product to have free shipping.", +"id": "FreeShippingThreshold", +"properties": { +"country": { +"description": "Required. The [CLDR territory code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) of the country to which an item will ship.", +"type": "string" +}, +"priceThreshold": { +"$ref": "Price", +"description": "Required. The minimum product price for the shipping cost to become free. Represented as a number." +} +}, +"type": "object" +}, +"GenerateRecommendationsResponse": { +"description": "Response containing generated recommendations.", +"id": "GenerateRecommendationsResponse", +"properties": { +"recommendations": { +"description": "Recommendations generated for a request.", +"items": { +"$ref": "Recommendation" +}, +"type": "array" +}, +"responseToken": { +"description": "Output only. Response token is a string created for each `GenerateRecommendationsResponse`. This token doesn't expire, and is globally unique. This token must be used when reporting interactions for recommendations.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GmbAccounts": { +"id": "GmbAccounts", +"properties": { +"accountId": { +"description": "The ID of the Merchant Center account.", +"format": "uint64", +"type": "string" +}, +"gmbAccounts": { +"description": "A list of Business Profiles which are available to the merchant.", +"items": { +"$ref": "GmbAccountsGmbAccount" +}, +"type": "array" +} +}, +"type": "object" +}, +"GmbAccountsGmbAccount": { +"id": "GmbAccountsGmbAccount", +"properties": { +"email": { +"description": "The email which identifies the Business Profile.", +"type": "string" +}, +"listingCount": { +"description": "Number of listings under this account.", +"format": "uint64", +"type": "string" +}, +"name": { +"description": "The name of the Business Profile.", +"type": "string" +}, +"type": { +"description": "The type of the Business Profile (User or Business).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsLink": { +"description": "\"Google Analytics Link\" sources can be used to get conversion data from an existing Google Analytics property into the linked Merchant Center account.", +"id": "GoogleAnalyticsLink", +"properties": { +"attributionSettings": { +"$ref": "AttributionSettings", +"description": "Output only. Attribution settings for the linked Google Analytics property.", +"readOnly": true +}, +"propertyId": { +"description": "Required. Immutable. ID of the Google Analytics property the merchant is linked to.", +"format": "int64", +"type": "string" +}, +"propertyName": { +"description": "Output only. Name of the Google Analytics property the merchant is linked to.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Headers": { +"description": "A non-empty list of row or column headers for a table. Exactly one of `prices`, `weights`, `numItems`, `postalCodeGroupNames`, or `location` must be set.", +"id": "Headers", +"properties": { +"locations": { +"description": "A list of location ID sets. Must be non-empty. Can only be set if all other fields are not set.", +"items": { +"$ref": "LocationIdSet" +}, +"type": "array" +}, +"numberOfItems": { +"description": "A list of inclusive number of items upper bounds. The last value can be `\"infinity\"`. For example `[\"10\", \"50\", \"infinity\"]` represents the headers \"<= 10 items\", \"<= 50 items\", and \"> 50 items\". Must be non-empty. Can only be set if all other fields are not set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"postalCodeGroupNames": { +"description": "A list of postal group names. The last value can be `\"all other locations\"`. Example: `[\"zone 1\", \"zone 2\", \"all other locations\"]`. The referred postal code groups must match the delivery country of the service. Must be non-empty. Can only be set if all other fields are not set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"prices": { +"description": "A list of inclusive order price upper bounds. The last price's value can be `\"infinity\"`. For example `[{\"value\": \"10\", \"currency\": \"USD\"}, {\"value\": \"500\", \"currency\": \"USD\"}, {\"value\": \"infinity\", \"currency\": \"USD\"}]` represents the headers \"<= $10\", \"<= $500\", and \"> $500\". All prices within a service must have the same currency. Must be non-empty. Can only be set if all other fields are not set.", +"items": { +"$ref": "Price" +}, +"type": "array" +}, +"weights": { +"description": "A list of inclusive order weight upper bounds. The last weight's value can be `\"infinity\"`. For example `[{\"value\": \"10\", \"unit\": \"kg\"}, {\"value\": \"50\", \"unit\": \"kg\"}, {\"value\": \"infinity\", \"unit\": \"kg\"}]` represents the headers \"<= 10kg\", \"<= 50kg\", and \"> 50kg\". All weights within a service must have the same unit. Must be non-empty. Can only be set if all other fields are not set.", +"items": { +"$ref": "Weight" +}, +"type": "array" +} +}, +"type": "object" +}, +"HolidayCutoff": { +"id": "HolidayCutoff", +"properties": { +"deadlineDate": { +"description": "Date of the order deadline, in ISO 8601 format. For example, \"2016-11-29\" for 29th November 2016. Required.", +"type": "string" +}, +"deadlineHour": { +"description": "Hour of the day on the deadline date until which the order has to be placed to qualify for the delivery guarantee. Possible values are: 0 (midnight), 1, ..., 12 (noon), 13, ..., 23. Required.", +"format": "uint32", +"type": "integer" +}, +"deadlineTimezone": { +"description": "Timezone identifier for the deadline hour (for example, \"Europe/Zurich\"). List of identifiers. Required.", +"type": "string" +}, +"holidayId": { +"description": "Unique identifier for the holiday. Required.", +"type": "string" +}, +"visibleFromDate": { +"description": "Date on which the deadline will become visible to consumers in ISO 8601 format. For example, \"2016-10-31\" for 31st October 2016. Required.", +"type": "string" +} +}, +"type": "object" +}, +"HolidaysHoliday": { +"id": "HolidaysHoliday", +"properties": { +"countryCode": { +"description": "The CLDR territory code of the country in which the holiday is available. For example, \"US\", \"DE\", \"GB\". A holiday cutoff can only be configured in a shipping settings service with matching delivery country. Always present.", +"type": "string" +}, +"date": { +"description": "Date of the holiday, in ISO 8601 format. For example, \"2016-12-25\" for Christmas 2016. Always present.", +"type": "string" +}, +"deliveryGuaranteeDate": { +"description": "Date on which the order has to arrive at the customer's, in ISO 8601 format. For example, \"2016-12-24\" for 24th December 2016. Always present.", +"type": "string" +}, +"deliveryGuaranteeHour": { +"description": "Hour of the day in the delivery location's timezone on the guaranteed delivery date by which the order has to arrive at the customer's. Possible values are: 0 (midnight), 1, ..., 12 (noon), 13, ..., 23. Always present.", +"format": "uint64", +"type": "string" +}, +"id": { +"description": "Unique identifier for the holiday to be used when configuring holiday cutoffs. Always present.", +"type": "string" +}, +"type": { +"description": "The holiday type. Always present. Acceptable values are: - \"`Christmas`\" - \"`Easter`\" - \"`Father's Day`\" - \"`Halloween`\" - \"`Independence Day (USA)`\" - \"`Mother's Day`\" - \"`Thanksgiving`\" - \"`Valentine's Day`\" ", +"type": "string" +} +}, +"type": "object" +}, +"InputField": { +"description": "Input field that needs to be available to the merchant. If the field is marked as required, then a value needs to be provided for a successful processing of the request.", +"id": "InputField", +"properties": { +"checkboxInput": { +"$ref": "InputFieldCheckboxInput", +"description": "Input field to provide a boolean value. Corresponds to the [html input type=checkbox](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.checkbox.html#input.checkbox)." +}, +"choiceInput": { +"$ref": "InputFieldChoiceInput", +"description": "Input field to select one of the offered choices. Corresponds to the [html input type=radio](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.radio.html#input.radio)." +}, +"id": { +"description": "Not for display but need to be sent back for the given input field.", +"type": "string" +}, +"label": { +"$ref": "TextWithTooltip", +"description": "Input field label. There may be more information to be shown in a tooltip." +}, +"required": { +"description": "Whether the field is required. The action button needs to stay disabled till values for all required fields are provided.", +"type": "boolean" +}, +"textInput": { +"$ref": "InputFieldTextInput", +"description": "Input field to provide text information. Corresponds to the [html input type=text](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.text.html#input.text) or [html textarea](https://www.w3.org/TR/2012/WD-html-markup-20121025/textarea.html#textarea)." +} +}, +"type": "object" +}, +"InputFieldCheckboxInput": { +"description": "Checkbox input allows merchants to provide a boolean value. Corresponds to the [html input type=checkbox](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.checkbox.html#input.checkbox). If merchant checks the box, the input value for the field is `true`, otherwise it is `false`. This type of input is often used as a confirmation that the merchant completed required steps before they are allowed to start the action. In such a case, the input field is marked as required and the button to trigger the action should stay disabled until the merchant checks the box.", +"id": "InputFieldCheckboxInput", +"properties": {}, +"type": "object" +}, +"InputFieldChoiceInput": { +"description": "Choice input allows merchants to select one of the offered choices. Some choices may be linked to additional input fields that should be displayed under or next to the choice option. The value for the additional input field needs to be provided only when the specific choice is selected by the merchant. For example, additional input field can be hidden or disabled until the merchant selects the specific choice.", +"id": "InputFieldChoiceInput", +"properties": { +"options": { +"description": "A list of choices. Only one option can be selected.", +"items": { +"$ref": "InputFieldChoiceInputChoiceInputOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"InputFieldChoiceInputChoiceInputOption": { +"description": "A choice that merchant can select.", +"id": "InputFieldChoiceInputChoiceInputOption", +"properties": { +"additionalInput": { +"$ref": "InputField", +"description": "Input that should be displayed when this option is selected. The additional input will not contain a `ChoiceInput`." +}, +"id": { +"description": "Not for display but need to be sent back for the selected choice option.", +"type": "string" +}, +"label": { +"$ref": "TextWithTooltip", +"description": "Short description of the choice option. There may be more information to be shown as a tooltip." +} +}, +"type": "object" +}, +"InputFieldTextInput": { +"description": "Text input allows merchants to provide a text value.", +"id": "InputFieldTextInput", +"properties": { +"additionalInfo": { +"$ref": "TextWithTooltip", +"description": "Additional info regarding the field to be displayed to merchant. For example, warning to not include personal identifiable information. There may be more information to be shown in a tooltip." +}, +"ariaLabel": { +"description": "Text to be used as the [aria-label](https://www.w3.org/TR/WCAG20-TECHS/ARIA14.html) for the input.", +"type": "string" +}, +"formatInfo": { +"description": "Information about the required format. If present, it should be shown close to the input field to help merchants to provide a correct value. For example: \"VAT numbers should be in a format similar to SK9999999999\"", +"type": "string" +}, +"type": { +"description": "Type of the text input", +"enum": [ +"TEXT_INPUT_TYPE_UNSPECIFIED", +"GENERIC_SHORT_TEXT", +"GENERIC_LONG_TEXT" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Used when a short text is expected. The field can be rendered as a [text field](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.text.html#input.text).", +"Used when a longer text is expected. The field should be rendered as a [textarea](https://www.w3.org/TR/2012/WD-html-markup-20121025/textarea.html#textarea)." +], +"type": "string" +} +}, +"type": "object" +}, +"InputValue": { +"description": "Input provided by the merchant for input field.", +"id": "InputValue", +"properties": { +"checkboxInputValue": { +"$ref": "InputValueCheckboxInputValue", +"description": "Value for checkbox input field." +}, +"choiceInputValue": { +"$ref": "InputValueChoiceInputValue", +"description": "Value for choice input field." +}, +"inputFieldId": { +"description": "Required. Id of the corresponding input field.", +"type": "string" +}, +"textInputValue": { +"$ref": "InputValueTextInputValue", +"description": "Value for text input field." +} +}, +"type": "object" +}, +"InputValueCheckboxInputValue": { +"description": "Value for checkbox input field.", +"id": "InputValueCheckboxInputValue", +"properties": { +"value": { +"description": "Required. True if the merchant checked the box field. False otherwise.", +"type": "boolean" +} +}, +"type": "object" +}, +"InputValueChoiceInputValue": { +"description": "Value for choice input field.", +"id": "InputValueChoiceInputValue", +"properties": { +"choiceInputOptionId": { +"description": "Required. Id of the option that was selected by the merchant.", +"type": "string" +} +}, +"type": "object" +}, +"InputValueTextInputValue": { +"description": "Value for text input field.", +"id": "InputValueTextInputValue", +"properties": { +"value": { +"description": "Required. Text provided by the merchant.", +"type": "string" +} +}, +"type": "object" +}, +"InsertCheckoutSettingsRequest": { +"description": "Request message for the `InsertCheckoutSettings` method.", +"id": "InsertCheckoutSettingsRequest", +"properties": { +"uriSettings": { +"$ref": "UrlSettings", +"description": "Required. The `UrlSettings` for the request. The presence of URL settings indicates `Checkout` enrollment." +} +}, +"type": "object" +}, +"Installment": { +"description": "Details of a monthly installment payment offering. [Learn more](https://support.google.com/merchants/answer/6324474) about installments.", +"id": "Installment", +"properties": { +"amount": { +"$ref": "Price", +"description": "The amount the buyer has to pay per month." +}, +"creditType": { +"description": "Optional. Type of installment payments. Supported values are: - \"`finance`\" - \"`lease`\" ", +"type": "string" +}, +"downpayment": { +"$ref": "Price", +"description": "Optional. The initial down payment amount the buyer has to pay." +}, +"months": { +"description": "The number of installments the buyer has to pay.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"LabelIds": { +"description": "The IDs of labels that should be assigned to the CSS domain.", +"id": "LabelIds", +"properties": { +"labelIds": { +"description": "The list of label IDs.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"LiaAboutPageSettings": { +"id": "LiaAboutPageSettings", +"properties": { +"status": { +"description": "The status of the verification process for the About page. Supported values are: - \"`active`\" - \"`inactive`\" - \"`pending`\" ", +"type": "string" +}, +"url": { +"description": "The URL for the About page.", +"type": "string" +} +}, +"type": "object" +}, +"LiaCountrySettings": { +"id": "LiaCountrySettings", +"properties": { +"about": { +"$ref": "LiaAboutPageSettings", +"description": "The settings for the About page." +}, +"country": { +"description": "Required. CLDR country code (for example, \"US\").", +"type": "string" +}, +"hostedLocalStorefrontActive": { +"description": "The status of the \"Merchant hosted local storefront\" feature.", +"type": "boolean" +}, +"inventory": { +"$ref": "LiaInventorySettings", +"description": "LIA inventory verification settings." +}, +"omnichannelExperience": { +"$ref": "LiaOmnichannelExperience", +"description": "The omnichannel experience configured for this country." +}, +"onDisplayToOrder": { +"$ref": "LiaOnDisplayToOrderSettings", +"description": "LIA \"On Display To Order\" settings." +}, +"posDataProvider": { +"$ref": "LiaPosDataProvider", +"description": "The POS data provider linked with this country." +}, +"storePickupActive": { +"description": "The status of the \"Store pickup\" feature.", +"type": "boolean" +} +}, +"type": "object" +}, +"LiaInventorySettings": { +"id": "LiaInventorySettings", +"properties": { +"inventoryVerificationContactEmail": { +"description": "The email of the contact for the inventory verification process.", +"type": "string" +}, +"inventoryVerificationContactName": { +"description": "The name of the contact for the inventory verification process.", +"type": "string" +}, +"inventoryVerificationContactStatus": { +"description": "The status of the verification contact. Acceptable values are: - \"`active`\" - \"`inactive`\" - \"`pending`\" ", +"type": "string" +}, +"status": { +"description": "The status of the inventory verification process. Acceptable values are: - \"`active`\" - \"`inactive`\" - \"`pending`\" ", +"type": "string" +} +}, +"type": "object" +}, +"LiaOmnichannelExperience": { +"description": "Omnichannel experience details.", +"id": "LiaOmnichannelExperience", +"properties": { +"country": { +"description": "The CLDR country code (for example, \"US\").", +"type": "string" +}, +"lsfType": { +"description": "The Local Store Front (LSF) type for this country. Acceptable values are: - \"`ghlsf`\" (Google-Hosted Local Store Front) - \"`mhlsfBasic`\" (Merchant-Hosted Local Store Front Basic) - \"`mhlsfFull`\" (Merchant-Hosted Local Store Front Full) More details about these types can be found here.", +"type": "string" +}, +"pickupTypes": { +"description": "The Pickup types for this country. Acceptable values are: - \"`pickupToday`\" - \"`pickupLater`\" ", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"LiaOnDisplayToOrderSettings": { +"id": "LiaOnDisplayToOrderSettings", +"properties": { +"shippingCostPolicyUrl": { +"description": "Shipping cost and policy URL.", +"type": "string" +}, +"status": { +"description": "The status of the ?On display to order? feature. Acceptable values are: - \"`active`\" - \"`inactive`\" - \"`pending`\" ", +"type": "string" +} +}, +"type": "object" +}, +"LiaPosDataProvider": { +"id": "LiaPosDataProvider", +"properties": { +"posDataProviderId": { +"description": "The ID of the POS data provider.", +"format": "uint64", +"type": "string" +}, +"posExternalAccountId": { +"description": "The account ID by which this merchant is known to the POS data provider.", +"type": "string" +} +}, +"type": "object" +}, +"LiaSettings": { +"description": "Local Inventory ads (LIA) settings. All methods except listposdataproviders require the admin role.", +"id": "LiaSettings", +"properties": { +"accountId": { +"description": "The ID of the account to which these LIA settings belong. Ignored upon update, always present in get request responses.", +"format": "uint64", +"type": "string" +}, +"countrySettings": { +"description": "The LIA settings for each country.", +"items": { +"$ref": "LiaCountrySettings" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liaSettings`\"", +"type": "string" +} +}, +"type": "object" +}, +"LiasettingsCustomBatchRequest": { +"id": "LiasettingsCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "LiasettingsCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"LiasettingsCustomBatchRequestEntry": { +"id": "LiasettingsCustomBatchRequestEntry", +"properties": { +"accountId": { +"description": "The ID of the account for which to get/update account LIA settings.", +"format": "uint64", +"type": "string" +}, +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"contactEmail": { +"description": "Inventory validation contact email. Required only for SetInventoryValidationContact.", +"type": "string" +}, +"contactName": { +"description": "Inventory validation contact name. Required only for SetInventoryValidationContact.", +"type": "string" +}, +"country": { +"description": "The country code. Required only for RequestInventoryVerification.", +"type": "string" +}, +"gmbEmail": { +"description": "The Business Profile. Required only for RequestGmbAccess.", +"type": "string" +}, +"liaSettings": { +"$ref": "LiaSettings", +"description": "The account Lia settings to update. Only defined if the method is `update`." +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`get`\" - \"`getAccessibleGmbAccounts`\" - \"`requestGmbAccess`\" - \"`requestInventoryVerification`\" - \"`setInventoryVerificationContact`\" - \"`update`\" ", +"type": "string" +}, +"omnichannelExperience": { +"$ref": "LiaOmnichannelExperience", +"description": "The omnichannel experience for a country. Required only for SetOmnichannelExperience." +}, +"posDataProviderId": { +"description": "The ID of POS data provider. Required only for SetPosProvider.", +"format": "uint64", +"type": "string" +}, +"posExternalAccountId": { +"description": "The account ID by which this merchant is known to the POS provider.", +"type": "string" +} +}, +"type": "object" +}, +"LiasettingsCustomBatchResponse": { +"id": "LiasettingsCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "LiasettingsCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liasettingsCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"LiasettingsCustomBatchResponseEntry": { +"id": "LiasettingsCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry to which this entry responds.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors defined if, and only if, the request failed." +}, +"gmbAccounts": { +"$ref": "GmbAccounts", +"description": "The list of accessible Business Profiles." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liasettingsCustomBatchResponseEntry`\"", +"type": "string" +}, +"liaSettings": { +"$ref": "LiaSettings", +"description": "The retrieved or updated Lia settings." +}, +"omnichannelExperience": { +"$ref": "LiaOmnichannelExperience", +"description": "The updated omnichannel experience for a country." +}, +"posDataProviders": { +"description": "The list of POS data providers.", +"items": { +"$ref": "PosDataProviders" +}, +"type": "array" +} +}, +"type": "object" +}, +"LiasettingsGetAccessibleGmbAccountsResponse": { +"id": "LiasettingsGetAccessibleGmbAccountsResponse", +"properties": { +"accountId": { +"description": "The ID of the Merchant Center account.", +"format": "uint64", +"type": "string" +}, +"gmbAccounts": { +"description": "A list of Business Profiles which are available to the merchant.", +"items": { +"$ref": "GmbAccountsGmbAccount" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liasettingsGetAccessibleGmbAccountsResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"LiasettingsListPosDataProvidersResponse": { +"id": "LiasettingsListPosDataProvidersResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liasettingsListPosDataProvidersResponse`\".", +"type": "string" +}, +"posDataProviders": { +"description": "The list of POS data providers for each eligible country", +"items": { +"$ref": "PosDataProviders" +}, +"type": "array" +} +}, +"type": "object" +}, +"LiasettingsListResponse": { +"id": "LiasettingsListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liasettingsListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of LIA settings.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "LiaSettings" +}, +"type": "array" +} +}, +"type": "object" +}, +"LiasettingsRequestGmbAccessResponse": { +"id": "LiasettingsRequestGmbAccessResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liasettingsRequestGmbAccessResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"LiasettingsRequestInventoryVerificationResponse": { +"id": "LiasettingsRequestInventoryVerificationResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liasettingsRequestInventoryVerificationResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"LiasettingsSetInventoryVerificationContactResponse": { +"id": "LiasettingsSetInventoryVerificationContactResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liasettingsSetInventoryVerificationContactResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"LiasettingsSetPosDataProviderResponse": { +"id": "LiasettingsSetPosDataProviderResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#liasettingsSetPosDataProviderResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"LinkService": { +"id": "LinkService", +"properties": { +"service": { +"description": "Service provided to or by the linked account. Acceptable values are: - \"`shoppingActionsOrderManagement`\" - \"`shoppingActionsProductManagement`\" - \"`shoppingAdsProductManagement`\" - \"`paymentProcessing`\" ", +"type": "string" +}, +"status": { +"description": "Status of the link Acceptable values are: - \"`active`\" - \"`inactive`\" - \"`pending`\" ", +"type": "string" +} +}, +"type": "object" +}, +"LinkedAccount": { +"id": "LinkedAccount", +"properties": { +"linkedAccountId": { +"description": "The ID of the linked account.", +"type": "string" +}, +"services": { +"description": "List of provided services.", +"items": { +"$ref": "LinkService" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListAccountLabelsResponse": { +"description": "Response message for the `ListAccountLabels` method.", +"id": "ListAccountLabelsResponse", +"properties": { +"accountLabels": { +"description": "The labels from the specified account.", +"items": { +"$ref": "AccountLabel" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListAccountReturnCarrierResponse": { +"description": "Response for listing account return carriers.", +"id": "ListAccountReturnCarrierResponse", +"properties": { +"accountReturnCarriers": { +"description": "List of all available account return carriers for the merchant.", +"items": { +"$ref": "AccountReturnCarrier" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListCollectionStatusesResponse": { +"description": "Response message for the ListCollectionStatuses method.", +"id": "ListCollectionStatusesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"resources": { +"description": "The collectionstatuses listed.", +"items": { +"$ref": "CollectionStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListCollectionsResponse": { +"description": "Response message for the ListCollections method.", +"id": "ListCollectionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"resources": { +"description": "The collections listed.", +"items": { +"$ref": "Collection" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListConversionSourcesResponse": { +"description": "Response message for the ListConversionSources method.", +"id": "ListConversionSourcesResponse", +"properties": { +"conversionSources": { +"description": "List of conversion sources.", +"items": { +"$ref": "ConversionSource" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to be used to fetch the next results page.", +"type": "string" +} +}, +"type": "object" +}, +"ListCssesResponse": { +"description": "The response message for the `ListCsses` method", +"id": "ListCssesResponse", +"properties": { +"csses": { +"description": "The CSS domains affiliated with the specified CSS group.", +"items": { +"$ref": "Css" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListMethodQuotasResponse": { +"description": "Response message for the ListMethodQuotas method.", +"id": "ListMethodQuotasResponse", +"properties": { +"methodQuotas": { +"description": "The current quota usage and limits per each method.", +"items": { +"$ref": "MethodQuota" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListPromotionResponse": { +"description": "Response message for Promotions.List method.", +"id": "ListPromotionResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"promotions": { +"description": "List of all available promotions for the merchant.", +"items": { +"$ref": "Promotion" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRegionsResponse": { +"description": "Response message for the `ListRegions` method.", +"id": "ListRegionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"regions": { +"description": "The regions from the specified merchant.", +"items": { +"$ref": "Region" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListReturnPolicyOnlineResponse": { +"description": "Response message for the `ListReturnPolicyOnline` method.", +"id": "ListReturnPolicyOnlineResponse", +"properties": { +"returnPolicies": { +"description": "The retrieved return policies.", +"items": { +"$ref": "ReturnPolicyOnline" +}, +"type": "array" +} +}, +"type": "object" +}, +"LocalInventory": { +"description": "Local inventory resource. For accepted attribute values, see the local product inventory feed specification.", +"id": "LocalInventory", +"properties": { +"availability": { +"description": "The availability of the product. For accepted attribute values, see the local product inventory feed specification.", +"type": "string" +}, +"customAttributes": { +"description": "A list of custom (merchant-provided) attributes. Can also be used to submit any attribute of the feed specification in its generic form, for example, `{ \"name\": \"size type\", \"value\": \"regular\" }`.", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"instoreProductLocation": { +"description": "The in-store product location.", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#localInventory`\"", +"type": "string" +}, +"pickupMethod": { +"description": "The supported pickup method for this offer. Unless the value is \"not supported\", this field must be submitted together with `pickupSla`. For accepted attribute values, see the local product inventory feed specification.", +"type": "string" +}, +"pickupSla": { +"description": "The expected date that an order will be ready for pickup relative to the order date. Must be submitted together with `pickupMethod`. For accepted attribute values, see the local product inventory feed specification.", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "The price of the product." +}, +"quantity": { +"description": "The quantity of the product. Must be nonnegative.", +"format": "uint32", +"type": "integer" +}, +"salePrice": { +"$ref": "Price", +"description": "The sale price of the product. Mandatory if `sale_price_effective_date` is defined." +}, +"salePriceEffectiveDate": { +"description": "A date range represented by a pair of ISO 8601 dates separated by a space, comma, or slash. Both dates may be specified as 'null' if undecided.", +"type": "string" +}, +"storeCode": { +"description": "Required. The store code of this local inventory resource.", +"type": "string" +} +}, +"type": "object" +}, +"LocalinventoryCustomBatchRequest": { +"id": "LocalinventoryCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "LocalinventoryCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"LocalinventoryCustomBatchRequestEntry": { +"description": "Batch entry encoding a single local inventory update request.", +"id": "LocalinventoryCustomBatchRequestEntry", +"properties": { +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"localInventory": { +"$ref": "LocalInventory", +"description": "Local inventory of the product." +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "Method of the batch request entry. Acceptable values are: - \"`insert`\" ", +"type": "string" +}, +"productId": { +"description": "The ID of the product for which to update local inventory.", +"type": "string" +} +}, +"type": "object" +}, +"LocalinventoryCustomBatchResponse": { +"id": "LocalinventoryCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "LocalinventoryCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#localinventoryCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"LocalinventoryCustomBatchResponseEntry": { +"description": "Batch entry encoding a single local inventory update response.", +"id": "LocalinventoryCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry this entry responds to.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#localinventoryCustomBatchResponseEntry`\"", +"type": "string" +} +}, +"type": "object" +}, +"LocationIdSet": { +"id": "LocationIdSet", +"properties": { +"locationIds": { +"description": "A non-empty list of location IDs. They must all be of the same location type (for example, state).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoyaltyProgram": { +"description": "Allows the setting up of loyalty program benefits (for example price or points). https://support.google.com/merchants/answer/12922446", +"id": "LoyaltyProgram", +"properties": { +"cashbackForFutureUse": { +"$ref": "Price", +"description": "Optional. The cashback that can be used for future purchases." +}, +"loyaltyPoints": { +"description": "Optional. The amount of loyalty points earned on a purchase.", +"format": "int64", +"type": "string" +}, +"memberPriceEffectiveDate": { +"description": "Optional. A date range during which the item is eligible for member price. If not specified, the member price is always applicable. The date range is represented by a pair of ISO 8601 dates separated by a space, comma, or slash.", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Optional. The price for members of the given tier (instant discount price). Must be smaller or equal to the regular price." +}, +"programLabel": { +"description": "Required. The label of the loyalty program. This is an internal label that uniquely identifies the relationship between a merchant entity and a loyalty program entity. It must be provided so that system can associate the assets below (for example, price and points) with a merchant. The corresponding program must be linked to the merchant account.", +"type": "string" +}, +"shippingLabel": { +"description": "Optional. The shipping label for the loyalty program. You can use this label to indicate whether this offer has the loyalty shipping benefit. If not specified, the item is not eligible for loyalty shipping for the given loyalty tier.", +"type": "string" +}, +"tierLabel": { +"description": "Required. The label of the tier within the loyalty program. Must match one of the labels within the program.", +"type": "string" +} +}, +"type": "object" +}, +"MerchantCenterDestination": { +"description": "\"Merchant Center Destination\" sources can be used to send conversion events from a website using a Google tag directly to a Merchant Center account where the source is created.", +"id": "MerchantCenterDestination", +"properties": { +"attributionSettings": { +"$ref": "AttributionSettings", +"description": "Required. Attribution settings being used for the Merchant Center Destination." +}, +"currencyCode": { +"description": "Required. Three-letter currency code (ISO 4217). The currency code defines in which currency the conversions sent to this destination will be reported in Merchant Center.", +"type": "string" +}, +"destinationId": { +"description": "Output only. Merchant Center Destination ID.", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. Merchant-specified display name for the destination. This is the name that identifies the conversion source within the Merchant Center UI. Limited to 64 characters.", +"type": "string" +} +}, +"type": "object" +}, +"MethodQuota": { +"description": "The quota information per method in the Content API.", +"id": "MethodQuota", +"properties": { +"method": { +"description": "Output only. The method name, for example `products.list`. Method name does not contain version because quota can be shared between different API versions of the same method.", +"readOnly": true, +"type": "string" +}, +"quotaLimit": { +"description": "Output only. The maximum number of calls allowed per day for the method.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"quotaMinuteLimit": { +"description": "Output only. The maximum number of calls allowed per minute for the method.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"quotaUsage": { +"description": "Output only. The current quota usage, meaning the number of calls already made to the method per day. Usage is reset every day at 12 PM midday UTC.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Metrics": { +"description": "Performance metrics. Values are only set for metrics requested explicitly in the request's search query.", +"id": "Metrics", +"properties": { +"aos": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Average order size - the average number of items in an order. **This metric cannot be segmented by product dimensions and customer_country_code.**", +"format": "double", +"type": "number" +}, +"aovMicros": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Average order value in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) - the average value (total price of items) of all placed orders. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by product dimensions and customer_country_code.**", +"format": "double", +"type": "number" +}, +"clicks": { +"description": "Number of clicks.", +"format": "int64", +"type": "string" +}, +"conversionRate": { +"description": "Number of conversions divided by the number of clicks, reported on the impression date. The metric is currently available only for the `FREE_PRODUCT_LISTING` program.", +"format": "double", +"type": "number" +}, +"conversionValueMicros": { +"description": "Value of conversions in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) attributed to the product, reported on the conversion date. The metric is currently available only for the `FREE_PRODUCT_LISTING` program. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response.", +"format": "int64", +"type": "string" +}, +"conversions": { +"description": "Number of conversions attributed to the product, reported on the conversion date. Depending on the attribution model, a conversion might be distributed across multiple clicks, where each click gets its own credit assigned. This metric is a sum of all such credits. The metric is currently available only for the `FREE_PRODUCT_LISTING` program.", +"format": "double", +"type": "number" +}, +"ctr": { +"description": "Click-through rate - the number of clicks merchant's products receive (clicks) divided by the number of times the products are shown (impressions).", +"format": "double", +"type": "number" +}, +"daysToShip": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Average number of days between an order being placed and the order being fully shipped, reported on the last shipment date. **This metric cannot be segmented by product dimensions and customer_country_code.**", +"format": "double", +"type": "number" +}, +"impressions": { +"description": "Number of times merchant's products are shown.", +"format": "int64", +"type": "string" +}, +"itemDaysToShip": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Average number of days between an item being ordered and the item being **This metric cannot be segmented by customer_country_code.**", +"format": "double", +"type": "number" +}, +"itemFillRate": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Percentage of shipped items in relation to all finalized items (shipped or rejected by the merchant; unshipped items are not taken into account), reported on the order date. Item fill rate is lowered by merchant rejections. **This metric cannot be segmented by customer_country_code.**", +"format": "double", +"type": "number" +}, +"orderedItemSalesMicros": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Total price of ordered items in micros (1 millionth of a standard unit, 1 USD = 1000000 micros). Excludes shipping, taxes (US only), and customer cancellations that happened within 30 minutes of placing the order. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by customer_country_code.**", +"format": "int64", +"type": "string" +}, +"orderedItems": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Number of ordered items. Excludes customer cancellations that happened within 30 minutes of placing the order. **This metric cannot be segmented by customer_country_code.**", +"format": "int64", +"type": "string" +}, +"orders": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Number of placed orders. Excludes customer cancellations that happened within 30 minutes of placing the order. **This metric cannot be segmented by product dimensions and customer_country_code.**", +"format": "int64", +"type": "string" +}, +"rejectedItems": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Number of ordered items canceled by the merchant, reported on the order date. **This metric cannot be segmented by customer_country_code.**", +"format": "int64", +"type": "string" +}, +"returnRate": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Total price of returned items divided by the total price of shipped items, reported on the order date. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by customer_country_code.**", +"format": "double", +"type": "number" +}, +"returnedItems": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Number of ordered items sent back for return, reported on the date when the merchant accepted the return. **This metric cannot be segmented by customer_country_code.**", +"format": "int64", +"type": "string" +}, +"returnsMicros": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Total price of ordered items sent back for return in micros (1 millionth of a standard unit, 1 USD = 1000000 micros), reported on the date when the merchant accepted the return. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by customer_country_code.**", +"format": "int64", +"type": "string" +}, +"shippedItemSalesMicros": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Total price of shipped items in micros (1 millionth of a standard unit, 1 USD = 1000000 micros), reported on the order date. Excludes shipping and taxes (US only). The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by customer_country_code.**", +"format": "int64", +"type": "string" +}, +"shippedItems": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Number of shipped items, reported on the shipment date. **This metric cannot be segmented by customer_country_code.**", +"format": "int64", +"type": "string" +}, +"shippedOrders": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Number of fully shipped orders, reported on the last shipment date. **This metric cannot be segmented by product dimensions and customer_country_code.**", +"format": "int64", +"type": "string" +}, +"unshippedItems": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Number of ordered items not shipped up until the end of the queried day. If a multi-day period is specified in the search query, the returned value is the average number of unshipped items over the days in the queried period. **This metric cannot be segmented by customer_country_code.**", +"format": "double", +"type": "number" +}, +"unshippedOrders": { +"description": "*Deprecated*: This field is no longer supported and retrieving it returns 0 starting from May 2024. Number of orders not shipped or partially shipped up until the end of the queried day. If a multi-day period is specified in the search query, the returned value is the average number of unshipped orders over the days in the queried period. **This metric cannot be segmented by product dimensions and customer_country_code.**", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"MinimumOrderValueTable": { +"id": "MinimumOrderValueTable", +"properties": { +"storeCodeSetWithMovs": { +"items": { +"$ref": "MinimumOrderValueTableStoreCodeSetWithMov" +}, +"type": "array" +} +}, +"type": "object" +}, +"MinimumOrderValueTableStoreCodeSetWithMov": { +"description": "A list of store code sets sharing the same minimum order value. At least two sets are required and the last one must be empty, which signifies 'MOV for all other stores'. Each store code can only appear once across all the sets. All prices within a service must have the same currency.", +"id": "MinimumOrderValueTableStoreCodeSetWithMov", +"properties": { +"storeCodes": { +"description": "A list of unique store codes or empty for the catch all.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"$ref": "Price", +"description": "The minimum order value for the given stores." +} +}, +"type": "object" +}, +"OrderTrackingSignal": { +"description": "Represents a merchant trade from which signals are extracted, e.g. shipping.", +"id": "OrderTrackingSignal", +"properties": { +"customerShippingFee": { +"$ref": "PriceAmount", +"description": "The shipping fee of the order; this value should be set to zero in the case of free shipping." +}, +"deliveryPostalCode": { +"description": "Required. The delivery postal code, as a continuous string without spaces or dashes, e.g. \"95016\". This field will be anonymized in returned OrderTrackingSignal creation response.", +"type": "string" +}, +"deliveryRegionCode": { +"description": "Required. The [CLDR territory code] (http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) for the shipping destination.", +"type": "string" +}, +"lineItems": { +"description": "Information about line items in the order.", +"items": { +"$ref": "OrderTrackingSignalLineItemDetails" +}, +"type": "array" +}, +"merchantId": { +"description": "The Google merchant ID of this order tracking signal. This value is optional. If left unset, the caller's merchant ID is used. You must request access in order to provide data on behalf of another merchant. For more information, see [Submitting Order Tracking Signals](/shopping-content/guides/order-tracking-signals).", +"format": "int64", +"type": "string" +}, +"orderCreatedTime": { +"$ref": "DateTime", +"description": "Required. The time when the order was created on the merchant side. Include the year and timezone string, if available." +}, +"orderId": { +"description": "Required. The ID of the order on the merchant side. This field will be hashed in returned OrderTrackingSignal creation response.", +"type": "string" +}, +"orderTrackingSignalId": { +"description": "Output only. The ID that uniquely identifies this order tracking signal.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"shipmentLineItemMapping": { +"description": "The mapping of the line items to the shipment information.", +"items": { +"$ref": "OrderTrackingSignalShipmentLineItemMapping" +}, +"type": "array" +}, +"shippingInfo": { +"description": "The shipping information for the order.", +"items": { +"$ref": "OrderTrackingSignalShippingInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"OrderTrackingSignalLineItemDetails": { +"description": "The line items of the order.", +"id": "OrderTrackingSignalLineItemDetails", +"properties": { +"brand": { +"description": "Brand of the product.", +"type": "string" +}, +"gtin": { +"description": "The Global Trade Item Number.", +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID for this line item.", +"type": "string" +}, +"mpn": { +"description": "The manufacturer part number.", +"type": "string" +}, +"productDescription": { +"deprecated": true, +"description": "Plain text description of this product (deprecated: Please use product_title instead).", +"type": "string" +}, +"productId": { +"description": "Required. The Content API REST ID of the product, in the form channel:contentLanguage:targetCountry:offerId.", +"type": "string" +}, +"productTitle": { +"description": "Plain text title of this product.", +"type": "string" +}, +"quantity": { +"description": "The quantity of the line item in the order.", +"format": "int64", +"type": "string" +}, +"sku": { +"deprecated": true, +"description": "Merchant SKU for this item (deprecated).", +"type": "string" +}, +"upc": { +"deprecated": true, +"description": "Universal product code for this item (deprecated: Please use GTIN instead).", +"type": "string" +} +}, +"type": "object" +}, +"OrderTrackingSignalShipmentLineItemMapping": { +"description": "Represents how many items are in the shipment for the given shipment_id and line_item_id.", +"id": "OrderTrackingSignalShipmentLineItemMapping", +"properties": { +"lineItemId": { +"description": "Required. The line item ID.", +"type": "string" +}, +"quantity": { +"description": "The line item quantity in the shipment.", +"format": "int64", +"type": "string" +}, +"shipmentId": { +"description": "Required. The shipment ID. This field will be hashed in returned OrderTrackingSignal creation response.", +"type": "string" +} +}, +"type": "object" +}, +"OrderTrackingSignalShippingInfo": { +"description": "The shipping information for the order.", +"id": "OrderTrackingSignalShippingInfo", +"properties": { +"actualDeliveryTime": { +"$ref": "DateTime", +"description": "The time when the shipment was actually delivered. Include the year and timezone string, if available. This field is required, if one of the following fields is absent: tracking_id or carrier_name." +}, +"carrierName": { +"description": "The name of the shipping carrier for the delivery. This field is required if one of the following fields is absent: earliest_delivery_promise_time, latest_delivery_promise_time, and actual_delivery_time.", +"type": "string" +}, +"carrierServiceName": { +"description": "The service type for fulfillment, e.g., GROUND, FIRST_CLASS, etc.", +"type": "string" +}, +"earliestDeliveryPromiseTime": { +"$ref": "DateTime", +"description": "The earliest delivery promised time. Include the year and timezone string, if available. This field is required, if one of the following fields is absent: tracking_id or carrier_name." +}, +"latestDeliveryPromiseTime": { +"$ref": "DateTime", +"description": "The latest delivery promised time. Include the year and timezone string, if available. This field is required, if one of the following fields is absent: tracking_id or carrier_name." +}, +"originPostalCode": { +"description": "The origin postal code, as a continuous string without spaces or dashes, e.g. \"95016\". This field will be anonymized in returned OrderTrackingSignal creation response.", +"type": "string" +}, +"originRegionCode": { +"description": "The [CLDR territory code] (http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) for the shipping origin.", +"type": "string" +}, +"shipmentId": { +"description": "Required. The shipment ID. This field will be hashed in returned OrderTrackingSignal creation response.", +"type": "string" +}, +"shippedTime": { +"$ref": "DateTime", +"description": "The time when the shipment was shipped. Include the year and timezone string, if available." +}, +"shippingStatus": { +"description": "The status of the shipment.", +"enum": [ +"SHIPPING_STATE_UNSPECIFIED", +"SHIPPED", +"DELIVERED" +], +"enumDescriptions": [ +"The shipping status is not known to merchant.", +"All items are shipped.", +"The shipment is already delivered." +], +"type": "string" +}, +"trackingId": { +"description": "The tracking ID of the shipment. This field is required if one of the following fields is absent: earliest_delivery_promise_time, latest_delivery_promise_time, and actual_delivery_time.", +"type": "string" +} +}, +"type": "object" +}, +"PaymentServiceProviderLinkInfo": { +"description": "Additional information required for PAYMENT_SERVICE_PROVIDER link type.", +"id": "PaymentServiceProviderLinkInfo", +"properties": { +"externalAccountBusinessCountry": { +"description": "The business country of the merchant account as identified by the third party service provider.", +"type": "string" +}, +"externalAccountId": { +"description": "The id used by the third party service provider to identify the merchant.", +"type": "string" +} +}, +"type": "object" +}, +"PickupCarrierService": { +"id": "PickupCarrierService", +"properties": { +"carrierName": { +"description": "The name of the pickup carrier (for example, `\"UPS\"`). Required.", +"type": "string" +}, +"serviceName": { +"description": "The name of the pickup service (for example, `\"Access point\"`). Required.", +"type": "string" +} +}, +"type": "object" +}, +"PickupServicesPickupService": { +"id": "PickupServicesPickupService", +"properties": { +"carrierName": { +"description": "The name of the carrier (for example, `\"UPS\"`). Always present.", +"type": "string" +}, +"country": { +"description": "The CLDR country code of the carrier (for example, \"US\"). Always present.", +"type": "string" +}, +"serviceName": { +"description": "The name of the pickup service (for example, `\"Access point\"`). Always present.", +"type": "string" +} +}, +"type": "object" +}, +"PosCustomBatchRequest": { +"id": "PosCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "PosCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"PosCustomBatchRequestEntry": { +"id": "PosCustomBatchRequestEntry", +"properties": { +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"inventory": { +"$ref": "PosInventory", +"description": "The inventory to submit. This should be set only if the method is `inventory`." +}, +"merchantId": { +"description": "The ID of the POS data provider.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`delete`\" - \"`get`\" - \"`insert`\" - \"`inventory`\" - \"`sale`\" ", +"type": "string" +}, +"sale": { +"$ref": "PosSale", +"description": "The sale information to submit. This should be set only if the method is `sale`." +}, +"store": { +"$ref": "PosStore", +"description": "The store information to submit. This should be set only if the method is `insert`." +}, +"storeCode": { +"description": "The store code. This should be set only if the method is `delete` or `get`.", +"type": "string" +}, +"targetMerchantId": { +"description": "The ID of the account for which to get/submit data.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"PosCustomBatchResponse": { +"id": "PosCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "PosCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"PosCustomBatchResponseEntry": { +"id": "PosCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry to which this entry responds.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors defined if, and only if, the request failed." +}, +"inventory": { +"$ref": "PosInventory", +"description": "The updated inventory information." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posCustomBatchResponseEntry`\"", +"type": "string" +}, +"sale": { +"$ref": "PosSale", +"description": "The updated sale information." +}, +"store": { +"$ref": "PosStore", +"description": "The retrieved or updated store information." +} +}, +"type": "object" +}, +"PosDataProviders": { +"id": "PosDataProviders", +"properties": { +"country": { +"description": "Country code.", +"type": "string" +}, +"posDataProviders": { +"description": "A list of POS data providers.", +"items": { +"$ref": "PosDataProvidersPosDataProvider" +}, +"type": "array" +} +}, +"type": "object" +}, +"PosDataProvidersPosDataProvider": { +"id": "PosDataProvidersPosDataProvider", +"properties": { +"displayName": { +"description": "The display name of Pos data Provider.", +"type": "string" +}, +"fullName": { +"description": "The full name of this POS data Provider.", +"type": "string" +}, +"providerId": { +"description": "The ID of the account.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"PosInventory": { +"description": "The absolute quantity of an item available at the given store.", +"id": "PosInventory", +"properties": { +"contentLanguage": { +"description": "Required. The two-letter ISO 639-1 language code for the item.", +"type": "string" +}, +"gtin": { +"description": "Global Trade Item Number.", +"type": "string" +}, +"itemId": { +"description": "Required. A unique identifier for the item.", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posInventory`\"", +"type": "string" +}, +"pickupMethod": { +"description": "Optional. Supported pickup method for this offer. Unless the value is \"not supported\", this field must be submitted together with `pickupSla`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", +"type": "string" +}, +"pickupSla": { +"description": "Optional. Expected date that an order will be ready for pickup relative to the order date. Must be submitted together with `pickupMethod`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Required. The current price of the item." +}, +"quantity": { +"description": "Required. The available quantity of the item.", +"format": "int64", +"type": "string" +}, +"storeCode": { +"description": "Required. The identifier of the merchant's store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.", +"type": "string" +}, +"targetCountry": { +"description": "Required. The CLDR territory code for the item.", +"type": "string" +}, +"timestamp": { +"description": "Required. The inventory timestamp, in ISO 8601 format.", +"type": "string" +} +}, +"type": "object" +}, +"PosInventoryRequest": { +"id": "PosInventoryRequest", +"properties": { +"contentLanguage": { +"description": "Required. The two-letter ISO 639-1 language code for the item.", +"type": "string" +}, +"gtin": { +"description": "Global Trade Item Number.", +"type": "string" +}, +"itemId": { +"description": "Required. A unique identifier for the item.", +"type": "string" +}, +"pickupMethod": { +"description": "Optional. Supported pickup method for this offer. Unless the value is \"not supported\", this field must be submitted together with `pickupSla`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", +"type": "string" +}, +"pickupSla": { +"description": "Optional. Expected date that an order will be ready for pickup relative to the order date. Must be submitted together with `pickupMethod`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Required. The current price of the item." +}, +"quantity": { +"description": "Required. The available quantity of the item.", +"format": "int64", +"type": "string" +}, +"storeCode": { +"description": "Required. The identifier of the merchant's store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.", +"type": "string" +}, +"targetCountry": { +"description": "Required. The CLDR territory code for the item.", +"type": "string" +}, +"timestamp": { +"description": "Required. The inventory timestamp, in ISO 8601 format.", +"type": "string" +} +}, +"type": "object" +}, +"PosInventoryResponse": { +"id": "PosInventoryResponse", +"properties": { +"contentLanguage": { +"description": "Required. The two-letter ISO 639-1 language code for the item.", +"type": "string" +}, +"gtin": { +"description": "Global Trade Item Number.", +"type": "string" +}, +"itemId": { +"description": "Required. A unique identifier for the item.", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posInventoryResponse`\".", +"type": "string" +}, +"pickupMethod": { +"description": "Optional. Supported pickup method for this offer. Unless the value is \"not supported\", this field must be submitted together with `pickupSla`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", +"type": "string" +}, +"pickupSla": { +"description": "Optional. Expected date that an order will be ready for pickup relative to the order date. Must be submitted together with `pickupMethod`. For accepted attribute values, see the [local product inventory feed specification](https://support.google.com/merchants/answer/3061342).", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Required. The current price of the item." +}, +"quantity": { +"description": "Required. The available quantity of the item.", +"format": "int64", +"type": "string" +}, +"storeCode": { +"description": "Required. The identifier of the merchant's store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.", +"type": "string" +}, +"targetCountry": { +"description": "Required. The CLDR territory code for the item.", +"type": "string" +}, +"timestamp": { +"description": "Required. The inventory timestamp, in ISO 8601 format.", +"type": "string" +} +}, +"type": "object" +}, +"PosListResponse": { +"id": "PosListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posListResponse`\".", +"type": "string" +}, +"resources": { +"items": { +"$ref": "PosStore" +}, +"type": "array" +} +}, +"type": "object" +}, +"PosSale": { +"description": "The change of the available quantity of an item at the given store.", +"id": "PosSale", +"properties": { +"contentLanguage": { +"description": "Required. The two-letter ISO 639-1 language code for the item.", +"type": "string" +}, +"gtin": { +"description": "Global Trade Item Number.", +"type": "string" +}, +"itemId": { +"description": "Required. A unique identifier for the item.", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posSale`\"", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Required. The price of the item." +}, +"quantity": { +"description": "Required. The relative change of the available quantity. Negative for items returned.", +"format": "int64", +"type": "string" +}, +"saleId": { +"description": "A unique ID to group items from the same sale event.", +"type": "string" +}, +"storeCode": { +"description": "Required. The identifier of the merchant's store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.", +"type": "string" +}, +"targetCountry": { +"description": "Required. The CLDR territory code for the item.", +"type": "string" +}, +"timestamp": { +"description": "Required. The inventory timestamp, in ISO 8601 format.", +"type": "string" +} +}, +"type": "object" +}, +"PosSaleRequest": { +"id": "PosSaleRequest", +"properties": { +"contentLanguage": { +"description": "Required. The two-letter ISO 639-1 language code for the item.", +"type": "string" +}, +"gtin": { +"description": "Global Trade Item Number.", +"type": "string" +}, +"itemId": { +"description": "Required. A unique identifier for the item.", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Required. The price of the item." +}, +"quantity": { +"description": "Required. The relative change of the available quantity. Negative for items returned.", +"format": "int64", +"type": "string" +}, +"saleId": { +"description": "A unique ID to group items from the same sale event.", +"type": "string" +}, +"storeCode": { +"description": "Required. The identifier of the merchant's store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.", +"type": "string" +}, +"targetCountry": { +"description": "Required. The CLDR territory code for the item.", +"type": "string" +}, +"timestamp": { +"description": "Required. The inventory timestamp, in ISO 8601 format.", +"type": "string" +} +}, +"type": "object" +}, +"PosSaleResponse": { +"id": "PosSaleResponse", +"properties": { +"contentLanguage": { +"description": "Required. The two-letter ISO 639-1 language code for the item.", +"type": "string" +}, +"gtin": { +"description": "Global Trade Item Number.", +"type": "string" +}, +"itemId": { +"description": "Required. A unique identifier for the item.", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posSaleResponse`\".", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Required. The price of the item." +}, +"quantity": { +"description": "Required. The relative change of the available quantity. Negative for items returned.", +"format": "int64", +"type": "string" +}, +"saleId": { +"description": "A unique ID to group items from the same sale event.", +"type": "string" +}, +"storeCode": { +"description": "Required. The identifier of the merchant's store. Either a `storeCode` inserted through the API or the code of the store in a Business Profile.", +"type": "string" +}, +"targetCountry": { +"description": "Required. The CLDR territory code for the item.", +"type": "string" +}, +"timestamp": { +"description": "Required. The inventory timestamp, in ISO 8601 format.", +"type": "string" +} +}, +"type": "object" +}, +"PosStore": { +"description": "Store resource.", +"id": "PosStore", +"properties": { +"gcidCategory": { +"description": "The business type of the store.", +"items": { +"type": "string" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posStore`\"", +"type": "string" +}, +"matchingStatus": { +"description": "Output only. The matching status of POS store and Google Business Profile store. Possible values are: - \"`matched`\": The POS store is successfully matched with the Google Business Profile store. - \"`failed`\": The POS store is not matched with the Google Business Profile store. See matching_status_hint for further details. Note that there is up to 48 hours propagation delay for changes in Merchant Center (e.g. creation of new account, accounts linking) and Google Business Profile (e.g. store address update) which may affect the matching status. In such cases, after a delay call [pos.list](https://developers.google.com/shopping-content/reference/rest/v2.1/pos/list) to retrieve the updated matching status. ", +"readOnly": true, +"type": "string" +}, +"matchingStatusHint": { +"description": "Output only. The hint of why the matching has failed. This is only set when matching_status=failed. Possible values are: - \"`linked-store-not-found`\": There aren't any Google Business Profile stores available for matching. Connect your Merchant Center account with the Google Business Profile account. Or add a new Google Business Profile store corresponding to the POS store. - \"`store-match-not-found`\": The provided POS store couldn't be matched to any of the connected Google Business Profile stores. Merchant Center account is connected correctly and stores are available on Google Business Profile, but POS store location address does not match with Google Business Profile stores' addresses. Update POS store address or Google Business Profile store address to match correctly. - \"`store-match-unverified`\": The provided POS store couldn't be matched to any of the connected Google Business Profile stores, as the matched Google Business Profile store is unverified. Go through the Google Business Profile verification process to match correctly. ", +"readOnly": true, +"type": "string" +}, +"phoneNumber": { +"description": "The store phone number.", +"type": "string" +}, +"placeId": { +"description": "The Google Place Id of the store location.", +"type": "string" +}, +"storeAddress": { +"description": "Required. The street address of the store.", +"type": "string" +}, +"storeCode": { +"description": "Required. A store identifier that is unique for the given merchant.", +"type": "string" +}, +"storeName": { +"description": "The merchant or store name.", +"type": "string" +}, +"websiteUrl": { +"description": "The website url for the store or merchant.", +"type": "string" +} +}, +"type": "object" +}, +"PostalCodeGroup": { +"id": "PostalCodeGroup", +"properties": { +"country": { +"description": "The CLDR territory code of the country the postal code group applies to. Required.", +"type": "string" +}, +"name": { +"description": "The name of the postal code group, referred to in headers. Required.", +"type": "string" +}, +"postalCodeRanges": { +"description": "A range of postal codes. Required.", +"items": { +"$ref": "PostalCodeRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"PostalCodeRange": { +"id": "PostalCodeRange", +"properties": { +"postalCodeRangeBegin": { +"description": "A postal code or a pattern of the form `prefix*` denoting the inclusive lower bound of the range defining the area. Examples values: `\"94108\"`, `\"9410*\"`, `\"9*\"`. Required.", +"type": "string" +}, +"postalCodeRangeEnd": { +"description": "A postal code or a pattern of the form `prefix*` denoting the inclusive upper bound of the range defining the area. It must have the same length as `postalCodeRangeBegin`: if `postalCodeRangeBegin` is a postal code then `postalCodeRangeEnd` must be a postal code too; if `postalCodeRangeBegin` is a pattern then `postalCodeRangeEnd` must be a pattern with the same prefix length. Optional: if not set, then the area is defined as being all the postal codes matching `postalCodeRangeBegin`.", +"type": "string" +} +}, +"type": "object" +}, +"Price": { +"id": "Price", +"properties": { +"currency": { +"description": "The currency of the price.", +"type": "string" +}, +"value": { +"description": "The price represented as a number.", +"type": "string" +} +}, +"type": "object" +}, +"PriceAmount": { +"description": "The price represented as a number and currency.", +"id": "PriceAmount", +"properties": { +"currency": { +"description": "The currency of the price.", +"type": "string" +}, +"value": { +"description": "The price represented as a number.", +"type": "string" +} +}, +"type": "object" +}, +"PriceCompetitiveness": { +"description": "Price competitiveness fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceCompetitivenessProductView`. https://support.google.com/merchants/answer/9626903", +"id": "PriceCompetitiveness", +"properties": { +"benchmarkPriceCurrencyCode": { +"description": "The price benchmark currency (ISO 4217 code).", +"type": "string" +}, +"benchmarkPriceMicros": { +"description": "The latest available price benchmark in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) for the product's catalog in the benchmark country.", +"format": "int64", +"type": "string" +}, +"countryCode": { +"description": "The country of the price benchmark (ISO 3166 code).", +"type": "string" +} +}, +"type": "object" +}, +"PriceInsights": { +"description": "Price insights fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceInsightsProductView`. https://support.google.com/merchants/answer/11916926", +"id": "PriceInsights", +"properties": { +"effectiveness": { +"description": "The predicted effectiveness of applying the price suggestion, bucketed.", +"enum": [ +"EFFECTIVENESS_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH" +], +"enumDescriptions": [ +"Effectiveness is unknown.", +"Effectiveness is low.", +"Effectiveness is medium.", +"Effectiveness is high." +], +"type": "string" +}, +"predictedClicksChangeFraction": { +"description": "The predicted change in clicks as a fraction after introducing the suggested price compared to current active price. For example, 0.05 is a 5% predicted increase in clicks.", +"format": "double", +"type": "number" +}, +"predictedConversionsChangeFraction": { +"description": "The predicted change in conversions as a fraction after introducing the suggested price compared to current active price. For example, 0.05 is a 5% predicted increase in conversions).", +"format": "double", +"type": "number" +}, +"predictedGrossProfitChangeFraction": { +"description": "*Deprecated*: This field is no longer supported and will start returning 0. The predicted change in gross profit as a fraction after introducing the suggested price compared to current active price. For example, 0.05 is a 5% predicted increase in gross profit.", +"format": "double", +"type": "number" +}, +"predictedImpressionsChangeFraction": { +"description": "The predicted change in impressions as a fraction after introducing the suggested price compared to current active price. For example, 0.05 is a 5% predicted increase in impressions.", +"format": "double", +"type": "number" +}, +"predictedMonthlyGrossProfitChangeCurrencyCode": { +"description": "*Deprecated*: This field is no longer supported and will start returning USD for all requests. The predicted monthly gross profit change currency (ISO 4217 code).", +"type": "string" +}, +"predictedMonthlyGrossProfitChangeMicros": { +"description": "*Deprecated*: This field is no longer supported and will start returning 0. The predicted change in gross profit in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) after introducing the suggested price for a month compared to current active price.", +"format": "int64", +"type": "string" +}, +"suggestedPriceCurrencyCode": { +"description": "The suggested price currency (ISO 4217 code).", +"type": "string" +}, +"suggestedPriceMicros": { +"description": "The latest suggested price in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) for the product.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Product": { +"description": " Required product attributes are primarily defined by the product data specification. See the Product Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.", +"id": "Product", +"properties": { +"additionalImageLinks": { +"description": "Additional URLs of images of the item.", +"items": { +"type": "string" +}, +"type": "array" +}, +"additionalSizeType": { +"description": "Additional cut of the item. Used together with size_type to represent combined size types for apparel items.", +"type": "string" +}, +"adsGrouping": { +"description": "Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.", +"type": "string" +}, +"adsLabels": { +"description": "Similar to ads_grouping, but only works on CPC.", +"items": { +"type": "string" +}, +"type": "array" +}, +"adsRedirect": { +"description": "Allows advertisers to override the item URL when the product is shown within the context of Product Ads.", +"type": "string" +}, +"adult": { +"description": "Should be set to true if the item is targeted towards adults.", +"type": "boolean" +}, +"ageGroup": { +"description": "Target age group of the item.", +"type": "string" +}, +"autoPricingMinPrice": { +"$ref": "Price", +"description": "A safeguard in the [Automated Discounts](//support.google.com/merchants/answer/10295759) and [Dynamic Promotions](//support.google.com/merchants/answer/13949249) projects, ensuring that discounts on merchants' offers do not fall below this value, thereby preserving the offer's value and profitability." +}, +"availability": { +"description": "Availability status of the item.", +"type": "string" +}, +"availabilityDate": { +"description": "The day a pre-ordered product becomes available for delivery, in ISO 8601 format.", +"type": "string" +}, +"brand": { +"description": "Brand of the item.", +"type": "string" +}, +"canonicalLink": { +"description": "URL for the canonical version of your item's landing page.", +"type": "string" +}, +"certifications": { +"description": "Product [certification](https://support.google.com/merchants/answer/13528839), introduced for EU energy efficiency labeling compliance using the [EU EPREL](https://eprel.ec.europa.eu/screen/home) database.", +"items": { +"$ref": "ProductCertification" +}, +"type": "array" +}, +"channel": { +"description": "Required. The item's channel (online or local). Acceptable values are: - \"`local`\" - \"`online`\" ", +"type": "string" +}, +"cloudExportAdditionalProperties": { +"description": "Extra fields to export to the Cloud Retail program.", +"items": { +"$ref": "CloudExportAdditionalProperties" +}, +"type": "array" +}, +"color": { +"description": "Color of the item.", +"type": "string" +}, +"condition": { +"description": "Condition or state of the item.", +"type": "string" +}, +"contentLanguage": { +"description": "Required. The two-letter ISO 639-1 language code for the item.", +"type": "string" +}, +"costOfGoodsSold": { +"$ref": "Price", +"description": "Cost of goods sold. Used for gross profit reporting." +}, +"customAttributes": { +"description": "A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (for example, `{ \"name\": \"size type\", \"value\": \"regular\" }`). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"customLabel0": { +"description": "Custom label 0 for custom grouping of items in a Shopping campaign.", +"type": "string" +}, +"customLabel1": { +"description": "Custom label 1 for custom grouping of items in a Shopping campaign.", +"type": "string" +}, +"customLabel2": { +"description": "Custom label 2 for custom grouping of items in a Shopping campaign.", +"type": "string" +}, +"customLabel3": { +"description": "Custom label 3 for custom grouping of items in a Shopping campaign.", +"type": "string" +}, +"customLabel4": { +"description": "Custom label 4 for custom grouping of items in a Shopping campaign.", +"type": "string" +}, +"description": { +"description": "Description of the item.", +"type": "string" +}, +"disclosureDate": { +"description": "The date time when an offer becomes visible in search results across Google\u2019s YouTube surfaces, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format. See [Disclosure date](https://support.google.com/merchants/answer/13034208) for more information.", +"type": "string" +}, +"displayAdsId": { +"description": "An identifier for an item for dynamic remarketing campaigns.", +"type": "string" +}, +"displayAdsLink": { +"description": "URL directly to your item's landing page for dynamic remarketing campaigns.", +"type": "string" +}, +"displayAdsSimilarIds": { +"description": "Advertiser-specified recommendations.", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayAdsTitle": { +"description": "Title of an item for dynamic remarketing campaigns.", +"type": "string" +}, +"displayAdsValue": { +"description": "Offer margin for dynamic remarketing campaigns.", +"format": "double", +"type": "number" +}, +"energyEfficiencyClass": { +"description": "The energy efficiency class as defined in EU directive 2010/30/EU.", +"type": "string" +}, +"excludedDestinations": { +"description": "The list of [destinations to exclude](//support.google.com/merchants/answer/6324486) for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.", +"items": { +"type": "string" +}, +"type": "array" +}, +"expirationDate": { +"description": "Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.", +"type": "string" +}, +"externalSellerId": { +"description": "Required for multi-seller accounts. Use this attribute if you're a marketplace uploading products for various sellers to your multi-seller account.", +"type": "string" +}, +"feedLabel": { +"description": "Feed label for the item. Either `targetCountry` or `feedLabel` is required. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-).", +"type": "string" +}, +"freeShippingThreshold": { +"description": "Optional. Conditions to be met for a product to have free shipping.", +"items": { +"$ref": "FreeShippingThreshold" +}, +"type": "array" +}, +"gender": { +"description": "Target gender of the item.", +"type": "string" +}, +"googleProductCategory": { +"description": "Google's category of the item (see [Google product taxonomy](https://support.google.com/merchants/answer/1705911)). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.", +"type": "string" +}, +"gtin": { +"description": "Global Trade Item Number (GTIN) of the item.", +"type": "string" +}, +"id": { +"description": "The REST ID of the product. Content API methods that operate on products take this as their `productId` parameter. The REST ID for a product has one of the 2 forms channel:contentLanguage: targetCountry: offerId or channel:contentLanguage:feedLabel: offerId.", +"type": "string" +}, +"identifierExists": { +"description": "False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.", +"type": "boolean" +}, +"imageLink": { +"description": "URL of an image of the item.", +"type": "string" +}, +"includedDestinations": { +"description": "The list of [destinations to include](//support.google.com/merchants/answer/7501026) for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"installment": { +"$ref": "Installment", +"description": "Number and amount of installments to pay for an item." +}, +"isBundle": { +"description": "Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.", +"type": "boolean" +}, +"itemGroupId": { +"description": "Shared identifier for all variants of the same product.", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#product`\"", +"type": "string" +}, +"lifestyleImageLinks": { +"description": "Additional URLs of lifestyle images of the item. Used to explicitly identify images that showcase your item in a real-world context. See the Help Center article for more information.", +"items": { +"type": "string" +}, +"type": "array" +}, +"link": { +"description": "URL directly linking to your item's page on your website.", +"type": "string" +}, +"linkTemplate": { +"description": "URL template for merchant hosted local storefront.", +"type": "string" +}, +"loyaltyProgram": { +"$ref": "LoyaltyProgram", +"description": "Loyalty program information that is used to surface loyalty benefits ( for example, better pricing, points, etc) to the user of this item. This signular field points to the latest uploaded loyalty program info. This field will be deprecated in the coming weeks and should not be used in favor of the plural 'LoyaltyProgram' field below." +}, +"loyaltyPrograms": { +"description": "Optional. A list of loyalty program information that is used to surface loyalty benefits (for example, better pricing, points, etc) to the user of this item.", +"items": { +"$ref": "LoyaltyProgram" +}, +"type": "array" +}, +"material": { +"description": "The material of which the item is made.", +"type": "string" +}, +"maxEnergyEfficiencyClass": { +"description": "The energy efficiency class as defined in EU directive 2010/30/EU.", +"type": "string" +}, +"maxHandlingTime": { +"description": "Maximal product handling time (in business days).", +"format": "int64", +"type": "string" +}, +"minEnergyEfficiencyClass": { +"description": "The energy efficiency class as defined in EU directive 2010/30/EU.", +"type": "string" +}, +"minHandlingTime": { +"description": "Minimal product handling time (in business days).", +"format": "int64", +"type": "string" +}, +"mobileLink": { +"description": "URL for the mobile-optimized version of your item's landing page.", +"type": "string" +}, +"mobileLinkTemplate": { +"description": "URL template for merchant hosted local storefront optimized for mobile devices.", +"type": "string" +}, +"mpn": { +"description": "Manufacturer Part Number (MPN) of the item.", +"type": "string" +}, +"multipack": { +"description": "The number of identical products in a merchant-defined multipack.", +"format": "int64", +"type": "string" +}, +"offerId": { +"description": "Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details. *Note:* Content API methods that operate on products take the REST ID of the product, *not* this identifier.", +"type": "string" +}, +"pattern": { +"description": "The item's pattern (for example, polka dots).", +"type": "string" +}, +"pause": { +"description": "Publication of this item should be temporarily paused. Acceptable values are: - \"`ads`\" ", +"type": "string" +}, +"pickupMethod": { +"description": "The pick up option for the item. Acceptable values are: - \"`buy`\" - \"`reserve`\" - \"`ship to store`\" - \"`not supported`\" ", +"type": "string" +}, +"pickupSla": { +"description": "Item store pickup timeline. Acceptable values are: - \"`same day`\" - \"`next day`\" - \"`2-day`\" - \"`3-day`\" - \"`4-day`\" - \"`5-day`\" - \"`6-day`\" - \"`7-day`\" - \"`multi-week`\" ", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Price of the item." +}, +"productDetails": { +"description": "Technical specification or additional product details.", +"items": { +"$ref": "ProductProductDetail" +}, +"type": "array" +}, +"productHeight": { +"$ref": "ProductDimension", +"description": "The height of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive)." +}, +"productHighlights": { +"description": "Bullet points describing the most relevant highlights of a product.", +"items": { +"type": "string" +}, +"type": "array" +}, +"productLength": { +"$ref": "ProductDimension", +"description": "The length of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive)." +}, +"productTypes": { +"description": "Categories of the item (formatted as in product data specification).", +"items": { +"type": "string" +}, +"type": "array" +}, +"productWeight": { +"$ref": "ProductWeight", +"description": "The weight of the product in the units provided. The value must be between 0 (exclusive) and 2000 (inclusive)." +}, +"productWidth": { +"$ref": "ProductDimension", +"description": "The width of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive)." +}, +"promotionIds": { +"description": "The unique ID of a promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"salePrice": { +"$ref": "Price", +"description": "Advertised sale price of the item." +}, +"salePriceEffectiveDate": { +"description": "Date range during which the item is on sale (see product data specification ).", +"type": "string" +}, +"sellOnGoogleQuantity": { +"description": "The quantity of the product that is available for selling on Google. Supported only for online products.", +"format": "int64", +"type": "string" +}, +"shipping": { +"description": "Shipping rules.", +"items": { +"$ref": "ProductShipping" +}, +"type": "array" +}, +"shippingHeight": { +"$ref": "ProductShippingDimension", +"description": "Height of the item for shipping." +}, +"shippingLabel": { +"description": "The shipping label of the product, used to group product in account-level shipping rules.", +"type": "string" +}, +"shippingLength": { +"$ref": "ProductShippingDimension", +"description": "Length of the item for shipping." +}, +"shippingWeight": { +"$ref": "ProductShippingWeight", +"description": "Weight of the item for shipping." +}, +"shippingWidth": { +"$ref": "ProductShippingDimension", +"description": "Width of the item for shipping." +}, +"shoppingAdsExcludedCountries": { +"description": "List of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sizeSystem": { +"description": "System in which the size is specified. Recommended for apparel items.", +"type": "string" +}, +"sizeType": { +"description": "The cut of the item. Recommended for apparel items.", +"type": "string" +}, +"sizes": { +"description": "Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same `itemGroupId` value (see size definition).", +"items": { +"type": "string" +}, +"type": "array" +}, +"source": { +"description": "Output only. The source of the offer, that is, how the offer was created. Acceptable values are: - \"`api`\" - \"`crawl`\" - \"`feed`\" ", +"type": "string" +}, +"structuredDescription": { +"$ref": "ProductStructuredDescription", +"description": "Structured description, for algorithmically (AI)-generated descriptions." +}, +"structuredTitle": { +"$ref": "ProductStructuredTitle", +"description": "Structured title, for algorithmically (AI)-generated titles." +}, +"subscriptionCost": { +"$ref": "ProductSubscriptionCost", +"description": "Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract." +}, +"sustainabilityIncentives": { +"description": "Optional. The list of sustainability incentive programs.", +"items": { +"$ref": "ProductSustainabilityIncentive" +}, +"type": "array" +}, +"targetCountry": { +"description": "Required. The CLDR territory code for the item's country of sale.", +"type": "string" +}, +"taxCategory": { +"description": "The tax category of the product, used to configure detailed tax nexus in account-level tax settings.", +"type": "string" +}, +"taxes": { +"description": "Tax information.", +"items": { +"$ref": "ProductTax" +}, +"type": "array" +}, +"title": { +"description": "Title of the item.", +"type": "string" +}, +"transitTimeLabel": { +"description": "The transit time label of the product, used to group product in account-level transit time tables.", +"type": "string" +}, +"unitPricingBaseMeasure": { +"$ref": "ProductUnitPricingBaseMeasure", +"description": "The preference of the denominator of the unit price." +}, +"unitPricingMeasure": { +"$ref": "ProductUnitPricingMeasure", +"description": "The measure and dimension of an item." +}, +"virtualModelLink": { +"description": "URL of the 3D model of the item to provide more visuals.", +"type": "string" +} +}, +"type": "object" +}, +"ProductCertification": { +"description": "Product [certification](https://support.google.com/merchants/answer/13528839), introduced for EU energy efficiency labeling compliance using the [EU EPREL](https://eprel.ec.europa.eu/screen/home) database.", +"id": "ProductCertification", +"properties": { +"certificationAuthority": { +"description": "The certification authority, for example \"European_Commission\". Maximum length is 2000 characters.", +"type": "string" +}, +"certificationCode": { +"description": "The certification code, for eaxample \"123456\". Maximum length is 2000 characters.", +"type": "string" +}, +"certificationName": { +"description": "The name of the certification, for example \"EPREL\". Maximum length is 2000 characters.", +"type": "string" +}, +"certificationValue": { +"description": "The certification value (also known as class, level or grade), for example \"A+\", \"C\", \"gold\". Maximum length is 2000 characters.", +"type": "string" +} +}, +"type": "object" +}, +"ProductCluster": { +"description": "Product cluster fields. A product cluster is a grouping for different offers that represent the same product. Values are only set for fields requested explicitly in the request's search query.", +"id": "ProductCluster", +"properties": { +"brand": { +"description": "Brand of the product cluster.", +"type": "string" +}, +"brandInventoryStatus": { +"description": "Tells if there is at least one product of the brand currently `IN_STOCK` in your product feed across multiple countries, all products are `OUT_OF_STOCK` in your product feed, or `NOT_IN_INVENTORY`. The field doesn't take the Best Sellers report country filter into account.", +"enum": [ +"INVENTORY_STATUS_UNSPECIFIED", +"IN_STOCK", +"OUT_OF_STOCK", +"NOT_IN_INVENTORY" +], +"enumDescriptions": [ +"Inventory status is unknown.", +"Merchant has a product for this product cluster or brand in stock.", +"Merchant has a product for this product cluster or brand in inventory but it is currently out of stock.", +"Merchant does not have a product for this product cluster or brand in inventory." +], +"type": "string" +}, +"categoryL1": { +"description": "Product category (1st level) of the product cluster, represented in Google's product taxonomy.", +"type": "string" +}, +"categoryL2": { +"description": "Product category (2nd level) of the product cluster, represented in Google's product taxonomy.", +"type": "string" +}, +"categoryL3": { +"description": "Product category (3rd level) of the product cluster, represented in Google's product taxonomy.", +"type": "string" +}, +"categoryL4": { +"description": "Product category (4th level) of the product cluster, represented in Google's product taxonomy.", +"type": "string" +}, +"categoryL5": { +"description": "Product category (5th level) of the product cluster, represented in Google's product taxonomy.", +"type": "string" +}, +"inventoryStatus": { +"description": "Tells whether the product cluster is `IN_STOCK` in your product feed across multiple countries, `OUT_OF_STOCK` in your product feed, or `NOT_IN_INVENTORY` at all. The field doesn't take the Best Sellers report country filter into account.", +"enum": [ +"INVENTORY_STATUS_UNSPECIFIED", +"IN_STOCK", +"OUT_OF_STOCK", +"NOT_IN_INVENTORY" +], +"enumDescriptions": [ +"Inventory status is unknown.", +"Merchant has a product for this product cluster or brand in stock.", +"Merchant has a product for this product cluster or brand in inventory but it is currently out of stock.", +"Merchant does not have a product for this product cluster or brand in inventory." +], +"type": "string" +}, +"title": { +"description": "Title of the product cluster.", +"type": "string" +}, +"variantGtins": { +"description": "GTINs of example variants of the product cluster.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProductDeliveryTime": { +"description": "The estimated days to deliver a product after an order is placed. Only authorized shipping signals partners working with a merchant can use this resource. Merchants should use the [`products`](https://developers.google.com/shopping-content/reference/rest/v2.1/products#productshipping) resource instead.", +"id": "ProductDeliveryTime", +"properties": { +"areaDeliveryTimes": { +"description": "Required. A set of associations between `DeliveryArea` and `DeliveryTime` entries. The total number of `areaDeliveryTimes` can be at most 100.", +"items": { +"$ref": "ProductDeliveryTimeAreaDeliveryTime" +}, +"type": "array" +}, +"productId": { +"$ref": "ProductId", +"description": "Required. The `id` of the product." +} +}, +"type": "object" +}, +"ProductDeliveryTimeAreaDeliveryTime": { +"description": "A pairing of `DeliveryArea` associated with a `DeliveryTime` for this product.", +"id": "ProductDeliveryTimeAreaDeliveryTime", +"properties": { +"deliveryArea": { +"$ref": "DeliveryArea", +"description": "Required. The delivery area associated with `deliveryTime` for this product." +}, +"deliveryTime": { +"$ref": "ProductDeliveryTimeAreaDeliveryTimeDeliveryTime", +"description": "Required. The delivery time associated with `deliveryArea` for this product." +} +}, +"type": "object" +}, +"ProductDeliveryTimeAreaDeliveryTimeDeliveryTime": { +"description": "A delivery time for this product.", +"id": "ProductDeliveryTimeAreaDeliveryTimeDeliveryTime", +"properties": { +"maxHandlingTimeDays": { +"description": "Required. The maximum number of business days (inclusive) between when an order is placed and when the product ships. If a product ships in the same day, set this value to 0.", +"format": "int32", +"type": "integer" +}, +"maxTransitTimeDays": { +"description": "Required. The maximum number of business days (inclusive) between when the product ships and when the product is delivered.", +"format": "int32", +"type": "integer" +}, +"minHandlingTimeDays": { +"description": "Required. The minimum number of business days (inclusive) between when an order is placed and when the product ships. If a product ships in the same day, set this value to 0.", +"format": "int32", +"type": "integer" +}, +"minTransitTimeDays": { +"description": "Required. The minimum number of business days (inclusive) between when the product ships and when the product is delivered.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ProductDimension": { +"id": "ProductDimension", +"properties": { +"unit": { +"description": "Required. The length units. Acceptable values are: - \"`in`\" - \"`cm`\" ", +"type": "string" +}, +"value": { +"description": "Required. The length value represented as a number. The value can have a maximum precision of four decimal places.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ProductId": { +"description": "The Content API ID of the product.", +"id": "ProductId", +"properties": { +"productId": { +"description": "The Content API ID of the product, in the form `channel:contentLanguage:targetCountry:offerId`.", +"type": "string" +} +}, +"type": "object" +}, +"ProductIssue": { +"description": "An issue affecting specific product.", +"id": "ProductIssue", +"properties": { +"actions": { +"description": "A list of actionable steps that can be executed to solve the issue. An example is requesting a re-review or providing arguments when merchant disagrees with the issue. Actions that are supported in (your) third-party application can be rendered as buttons and should be available to merchant when they expand the issue.", +"items": { +"$ref": "Action" +}, +"type": "array" +}, +"impact": { +"$ref": "ProductIssueImpact", +"description": "Clarifies the severity of the issue. The summarizing message, if present, should be shown right under the title for each issue. It helps merchants to quickly understand the impact of the issue. The detailed breakdown helps the merchant to fully understand the impact of the issue. It can be rendered as dialog that opens when the merchant mouse over the summarized impact statement. Issues with different severity can be styled differently. They may use a different color or icon to signal the difference between `ERROR`, `WARNING` and `INFO`." +}, +"prerenderedContent": { +"description": "Details of the issue as a pre-rendered HTML. HTML elements contain CSS classes that can be used to customize the style of the content. Always sanitize the HTML before embedding it directly to your application. The sanitizer needs to allow basic HTML tags, such as: `div`, `span`, `p`, `a`, `ul`, `li`, `table`, `tr`, `td`. For example, you can use [DOMPurify](https://www.npmjs.com/package/dompurify). CSS classes: * `issue-detail` - top level container for the detail of the issue * `callout-banners` - section of the `issue-detail` with callout banners * `callout-banner` - single callout banner, inside `callout-banners` * `callout-banner-info` - callout with important information (default) * `callout-banner-warning` - callout with a warning * `callout-banner-error` - callout informing about an error (most severe) * `issue-content` - section of the `issue-detail`, contains multiple `content-element` * `content-element` - content element such as a list, link or paragraph, inside `issue-content` * `root-causes` - unordered list with items describing root causes of the issue, inside `issue-content` * `root-causes-intro` - intro text before the `root-causes` list, inside `issue-content` * `segment` - section of the text, `span` inside paragraph * `segment-attribute` - section of the text that represents a product attribute, for example 'image\\_link' * `segment-literal` - section of the text that contains a special value, for example '0-1000 kg' * `segment-bold` - section of the text that should be rendered as bold * `segment-italic` - section of the text that should be rendered as italic * `tooltip` - used on paragraphs that should be rendered with a tooltip. A section of the text in such a paragraph will have a class `tooltip-text` and is intended to be shown in a mouse over dialog. If the style is not used, the `tooltip-text` section would be shown on a new line, after the main part of the text. * `tooltip-text` - marks a section of the text within a `tooltip`, that is intended to be shown in a mouse over dialog. * `tooltip-icon` - marks a section of the text within a `tooltip`, that can be replaced with a tooltip icon, for example '?' or 'i'. By default, this section contains a `br` tag, that is separating the main text and the tooltip text when the style is not used. * `tooltip-style-question` - the tooltip shows helpful information, can use the '?' as an icon. * `tooltip-style-info` - the tooltip adds additional information fitting to the context, can use the 'i' as an icon. * `content-moderation` - marks the paragraph that explains how the issue was identified. * `list-intro` - marks the paragraph that contains an intro for a list. This paragraph will be always followed by a list. * `new-element` - Present for new elements added to the pre-rendered content in the future. To make sure that a new content element does not break your style, you can hide everything with this class.", +"type": "string" +}, +"title": { +"description": "Title of the issue.", +"type": "string" +} +}, +"type": "object" +}, +"ProductIssueImpact": { +"description": "Overall impact of product issue.", +"id": "ProductIssueImpact", +"properties": { +"breakdowns": { +"description": "Detailed impact breakdown. Explains the types of restriction the issue has in different shopping destinations and territory. If present, it should be rendered to the merchant. Can be shown as a mouse over dropdown or a dialog. Each breakdown item represents a group of regions with the same impact details.", +"items": { +"$ref": "Breakdown" +}, +"type": "array" +}, +"message": { +"description": "Optional. Message summarizing the overall impact of the issue. If present, it should be rendered to the merchant. For example: \"Limits visibility in France\"", +"type": "string" +}, +"severity": { +"description": "The severity of the issue.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"ERROR", +"WARNING", +"INFO" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Causes either an account suspension or an item disapproval. Errors should be resolved as soon as possible to ensure items are eligible to appear in results again.", +"Warnings can negatively impact the performance of ads and can lead to item or account suspensions in the future unless the issue is resolved.", +"Infos are suggested optimizations to increase data quality. Resolving these issues is recommended, but not required." +], +"type": "string" +} +}, +"type": "object" +}, +"ProductProductDetail": { +"id": "ProductProductDetail", +"properties": { +"attributeName": { +"description": "The name of the product detail.", +"type": "string" +}, +"attributeValue": { +"description": "The value of the product detail.", +"type": "string" +}, +"sectionName": { +"description": "The section header used to group a set of product details.", +"type": "string" +} +}, +"type": "object" +}, +"ProductShipping": { +"id": "ProductShipping", +"properties": { +"country": { +"description": "The CLDR territory code of the country to which an item will ship.", +"type": "string" +}, +"locationGroupName": { +"description": "The location where the shipping is applicable, represented by a location group name.", +"type": "string" +}, +"locationId": { +"description": "The numeric ID of a location that the shipping rate applies to as defined in the Google Ads API.", +"format": "int64", +"type": "string" +}, +"maxHandlingTime": { +"description": "Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it's received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.", +"format": "int64", +"type": "string" +}, +"maxTransitTime": { +"description": "Maximum transit time (inclusive) between when the order has shipped and when it's delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.", +"format": "int64", +"type": "string" +}, +"minHandlingTime": { +"description": "Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it's received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it's not required if maxHandlingTime is present.", +"format": "int64", +"type": "string" +}, +"minTransitTime": { +"description": "Minimum transit time (inclusive) between when the order has shipped and when it's delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it's not required if maxTransitTime is present.", +"format": "int64", +"type": "string" +}, +"postalCode": { +"description": "The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Fixed shipping price, represented as a number." +}, +"region": { +"description": "The geographic region to which a shipping rate applies.", +"type": "string" +}, +"service": { +"description": "A free-form description of the service class or delivery speed.", +"type": "string" +} +}, +"type": "object" +}, +"ProductShippingDimension": { +"id": "ProductShippingDimension", +"properties": { +"unit": { +"description": "The unit of value.", +"type": "string" +}, +"value": { +"description": "The dimension of the product used to calculate the shipping cost of the item.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ProductShippingWeight": { +"id": "ProductShippingWeight", +"properties": { +"unit": { +"description": "The unit of value.", +"type": "string" +}, +"value": { +"description": "The weight of the product used to calculate the shipping cost of the item.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ProductStatus": { +"description": "The status of a product, that is, information about a product computed asynchronously.", +"id": "ProductStatus", +"properties": { +"creationDate": { +"description": "Date on which the item has been created, in ISO 8601 format.", +"type": "string" +}, +"destinationStatuses": { +"description": "The intended destinations for the product.", +"items": { +"$ref": "ProductStatusDestinationStatus" +}, +"type": "array" +}, +"googleExpirationDate": { +"description": "Date on which the item expires in Google Shopping, in ISO 8601 format.", +"type": "string" +}, +"itemLevelIssues": { +"description": "A list of all issues associated with the product.", +"items": { +"$ref": "ProductStatusItemLevelIssue" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#productStatus`\"", +"type": "string" +}, +"lastUpdateDate": { +"description": "Date on which the item has been last updated, in ISO 8601 format.", +"type": "string" +}, +"link": { +"description": "The link to the product.", +"type": "string" +}, +"productId": { +"description": "The ID of the product for which status is reported.", +"type": "string" +}, +"title": { +"description": "The title of the product.", +"type": "string" +} +}, +"type": "object" +}, +"ProductStatusDestinationStatus": { +"id": "ProductStatusDestinationStatus", +"properties": { +"approvedCountries": { +"description": "List of country codes (ISO 3166-1 alpha-2) where the offer is approved.", +"items": { +"type": "string" +}, +"type": "array" +}, +"destination": { +"description": "The name of the destination", +"type": "string" +}, +"disapprovedCountries": { +"description": "List of country codes (ISO 3166-1 alpha-2) where the offer is disapproved.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pendingCountries": { +"description": "List of country codes (ISO 3166-1 alpha-2) where the offer is pending approval.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"deprecated": true, +"description": "Deprecated. Destination approval status in `targetCountry` of the offer.", +"type": "string" +} +}, +"type": "object" +}, +"ProductStatusItemLevelIssue": { +"id": "ProductStatusItemLevelIssue", +"properties": { +"applicableCountries": { +"description": "List of country codes (ISO 3166-1 alpha-2) where issue applies to the offer.", +"items": { +"type": "string" +}, +"type": "array" +}, +"attributeName": { +"description": "The attribute's name, if the issue is caused by a single attribute.", +"type": "string" +}, +"code": { +"description": "The error code of the issue.", +"type": "string" +}, +"description": { +"description": "A short issue description in English.", +"type": "string" +}, +"destination": { +"description": "The destination the issue applies to.", +"type": "string" +}, +"detail": { +"description": "A detailed issue description in English.", +"type": "string" +}, +"documentation": { +"description": "The URL of a web page to help with resolving this issue.", +"type": "string" +}, +"resolution": { +"description": "Whether the issue can be resolved by the merchant.", +"type": "string" +}, +"servability": { +"description": "How this issue affects serving of the offer.", +"type": "string" +} +}, +"type": "object" +}, +"ProductStructuredDescription": { +"description": "Structured description, for algorithmically (AI)-generated descriptions. See [description](https://support.google.com/merchants/answer/6324468#When_to_use) for more information.", +"id": "ProductStructuredDescription", +"properties": { +"content": { +"description": "Required. The description text. Maximum length is 5000 characters.", +"type": "string" +}, +"digitalSourceType": { +"description": "Optional. The digital source type. Acceptable values are: - \"`trained_algorithmic_media`\" - \"`default`\" ", +"type": "string" +} +}, +"type": "object" +}, +"ProductStructuredTitle": { +"description": "Structured title, for algorithmically (AI)-generated titles. See [title](https://support.google.com/merchants/answer/6324415#Whentouse) for more information.", +"id": "ProductStructuredTitle", +"properties": { +"content": { +"description": "Required. The title text. Maximum length is 150 characters.", +"type": "string" +}, +"digitalSourceType": { +"description": "Optional. The digital source type. Acceptable values are: - \"`trained_algorithmic_media`\" - \"`default`\" ", +"type": "string" +} +}, +"type": "object" +}, +"ProductSubscriptionCost": { +"id": "ProductSubscriptionCost", +"properties": { +"amount": { +"$ref": "Price", +"description": "The amount the buyer has to pay per subscription period." +}, +"period": { +"description": "The type of subscription period. - \"`month`\" - \"`year`\" ", +"type": "string" +}, +"periodLength": { +"description": "The number of subscription periods the buyer has to pay.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ProductSustainabilityIncentive": { +"description": "Information regarding sustainability related incentive programs such as rebates or tax relief.", +"id": "ProductSustainabilityIncentive", +"properties": { +"amount": { +"$ref": "Price", +"description": "Optional. The fixed amount of the incentive." +}, +"percentage": { +"description": "Optional. The percentage of the sale price that the incentive is applied to.", +"format": "double", +"type": "number" +}, +"type": { +"description": "Required. Sustainability incentive program.", +"enum": [ +"TYPE_UNSPECIFIED", +"EV_TAX_CREDIT", +"EV_PRICE_DISCOUNT" +], +"enumDescriptions": [ +"Unspecified or unknown sustainability incentive type.", +"Program offering tax liability reductions for electric vehicles and, in some countries, plug-in hybrids. These reductions can be based on a specific amount or a percentage of the sale price.", +"A subsidy program, often called an environmental bonus, provides a purchase grant for electric vehicles and, in some countries, plug-in hybrids. The grant amount may be a fixed sum or a percentage of the sale price." +], +"type": "string" +} +}, +"type": "object" +}, +"ProductTax": { +"id": "ProductTax", +"properties": { +"country": { +"description": "The country within which the item is taxed, specified as a CLDR territory code.", +"type": "string" +}, +"locationId": { +"description": "The numeric ID of a location that the tax rate applies to as defined in the Google Ads API.", +"format": "int64", +"type": "string" +}, +"postalCode": { +"description": "The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.", +"type": "string" +}, +"rate": { +"description": "The percentage of tax rate that applies to the item price.", +"format": "double", +"type": "number" +}, +"region": { +"description": "The geographic region to which the tax rate applies.", +"type": "string" +}, +"taxShip": { +"description": "Should be set to true if tax is charged on shipping.", +"type": "boolean" +} +}, +"type": "object" +}, +"ProductUnitPricingBaseMeasure": { +"id": "ProductUnitPricingBaseMeasure", +"properties": { +"unit": { +"description": "The unit of the denominator.", +"type": "string" +}, +"value": { +"description": "The denominator of the unit price.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ProductUnitPricingMeasure": { +"id": "ProductUnitPricingMeasure", +"properties": { +"unit": { +"description": "The unit of the measure.", +"type": "string" +}, +"value": { +"description": "The measure of an item.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ProductView": { +"description": "Product fields. Values are only set for fields requested explicitly in the request's search query.", +"id": "ProductView", +"properties": { +"aggregatedDestinationStatus": { +"description": "Aggregated destination status.", +"enum": [ +"AGGREGATED_STATUS_UNSPECIFIED", +"NOT_ELIGIBLE_OR_DISAPPROVED", +"PENDING", +"ELIGIBLE_LIMITED", +"ELIGIBLE" +], +"enumDescriptions": [ +"Undefined aggregated status.", +"Offer isn't eligible, or is disapproved for all destinations.", +"Offer's status is pending in all destinations.", +"Offer is eligible for some (but not all) destinations.", +"Offer is eligible for all destinations." +], +"type": "string" +}, +"availability": { +"description": "Availability of the product.", +"type": "string" +}, +"brand": { +"description": "Brand of the product.", +"type": "string" +}, +"categoryL1": { +"description": "First level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"categoryL2": { +"description": "Second level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"categoryL3": { +"description": "Third level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"categoryL4": { +"description": "Fourth level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"categoryL5": { +"description": "Fifth level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"channel": { +"description": "Channel of the product (online versus local).", +"enum": [ +"CHANNEL_UNSPECIFIED", +"LOCAL", +"ONLINE" +], +"enumDescriptions": [ +"Indicates that the channel is unspecified.", +"Indicates that the channel is local.", +"Indicates that the channel is online." +], +"type": "string" +}, +"clickPotential": { +"description": "Estimated performance potential compared to highest performing products of the merchant.", +"enum": [ +"CLICK_POTENTIAL_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH" +], +"enumDescriptions": [ +"Unknown predicted clicks impact.", +"Potential to receive a low number of clicks compared to the highest performing products of the merchant.", +"Potential to receive a moderate number of clicks compared to the highest performing products of the merchant.", +"Potential to receive a similar number of clicks as the highest performing products of the merchant." +], +"type": "string" +}, +"clickPotentialRank": { +"description": "Rank of the product based on its click potential. A product with `click_potential_rank` 1 has the highest click potential among the merchant's products that fulfill the search query conditions.", +"format": "int64", +"type": "string" +}, +"condition": { +"description": "Condition of the product.", +"type": "string" +}, +"creationTime": { +"description": "The time the merchant created the product in timestamp seconds.", +"format": "google-datetime", +"type": "string" +}, +"currencyCode": { +"description": "Product price currency code (for example, ISO 4217). Absent if product price is not available.", +"type": "string" +}, +"expirationDate": { +"$ref": "Date", +"description": "Expiration date for the product. Specified on insertion." +}, +"gtin": { +"description": "GTIN of the product.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "The REST ID of the product, in the form of channel:contentLanguage:targetCountry:offerId. Content API methods that operate on products take this as their productId parameter. Should always be included in the SELECT clause.", +"type": "string" +}, +"itemGroupId": { +"description": "Item group ID provided by the merchant for grouping variants together.", +"type": "string" +}, +"itemIssues": { +"description": "List of item issues for the product.", +"items": { +"$ref": "ProductViewItemIssue" +}, +"type": "array" +}, +"languageCode": { +"description": "Language code of the product in BCP 47 format.", +"type": "string" +}, +"offerId": { +"description": "Merchant-provided id of the product.", +"type": "string" +}, +"priceMicros": { +"description": "Product price specified as micros (1 millionth of a standard unit, 1 USD = 1000000 micros) in the product currency. Absent in case the information about the price of the product is not available.", +"format": "int64", +"type": "string" +}, +"productTypeL1": { +"description": "First level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"productTypeL2": { +"description": "Second level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"productTypeL3": { +"description": "Third level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"productTypeL4": { +"description": "Fourth level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"productTypeL5": { +"description": "Fifth level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", +"type": "string" +}, +"shippingLabel": { +"description": "The normalized shipping label specified in the feed", +"type": "string" +}, +"title": { +"description": "Title of the product.", +"type": "string" +} +}, +"type": "object" +}, +"ProductViewItemIssue": { +"description": "Item issue associated with the product.", +"id": "ProductViewItemIssue", +"properties": { +"issueType": { +"$ref": "ProductViewItemIssueItemIssueType", +"description": "Item issue type." +}, +"resolution": { +"description": "Item issue resolution.", +"enum": [ +"UNKNOWN", +"MERCHANT_ACTION", +"PENDING_PROCESSING" +], +"enumDescriptions": [ +"Unknown resolution type.", +"The merchant has to fix the issue.", +"The issue will be resolved automatically (for example, image crawl), or Google review. No merchant action is required now. Resolution might lead to another issue (for example, if crawl fails)." +], +"type": "string" +}, +"severity": { +"$ref": "ProductViewItemIssueItemIssueSeverity", +"description": "Item issue severity." +} +}, +"type": "object" +}, +"ProductViewItemIssueIssueSeverityPerDestination": { +"description": "Issue severity for all affected regions in a destination.", +"id": "ProductViewItemIssueIssueSeverityPerDestination", +"properties": { +"demotedCountries": { +"description": "List of demoted countries in the destination.", +"items": { +"type": "string" +}, +"type": "array" +}, +"destination": { +"description": "Issue destination.", +"type": "string" +}, +"disapprovedCountries": { +"description": "List of disapproved countries in the destination.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProductViewItemIssueItemIssueSeverity": { +"description": "Severity of an issue per destination in a region, and aggregated severity.", +"id": "ProductViewItemIssueItemIssueSeverity", +"properties": { +"aggregatedSeverity": { +"description": "Severity of an issue aggregated for destination.", +"enum": [ +"AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED", +"DISAPPROVED", +"DEMOTED", +"PENDING" +], +"enumDescriptions": [ +"Undefined Issue severity.", +"Issue disapproves the product in at least one of the selected destinations.", +"Issue demotes the product in all selected destinations it affects.", +"Issue resolution is `PENDING_PROCESSING`." +], +"type": "string" +}, +"severityPerDestination": { +"description": "Item issue severity for every destination.", +"items": { +"$ref": "ProductViewItemIssueIssueSeverityPerDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProductViewItemIssueItemIssueType": { +"description": "Type of the item issue.", +"id": "ProductViewItemIssueItemIssueType", +"properties": { +"canonicalAttribute": { +"description": "Canonical attribute name for attribute-specific issues.", +"type": "string" +}, +"code": { +"description": "Error code of the issue.", +"type": "string" +} +}, +"type": "object" +}, +"ProductWeight": { +"id": "ProductWeight", +"properties": { +"unit": { +"description": "Required. The weight unit. Acceptable values are: - \"`g`\" - \"`kg`\" - \"`oz`\" - \"`lb`\" ", +"type": "string" +}, +"value": { +"description": "Required. The weight represented as a number. The weight can have a maximum precision of four decimal places.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ProductsCustomBatchRequest": { +"id": "ProductsCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "ProductsCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProductsCustomBatchRequestEntry": { +"description": "A batch entry encoding a single non-batch products request.", +"id": "ProductsCustomBatchRequestEntry", +"properties": { +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"feedId": { +"description": "The Content API Supplemental Feed ID. If present then product insertion or deletion applies to a supplemental feed instead of primary Content API feed.", +"format": "uint64", +"type": "string" +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`delete`\" - \"`get`\" - \"`insert`\" - \"`update`\" ", +"type": "string" +}, +"product": { +"$ref": "Product", +"description": "The product to insert or update. Only required if the method is `insert` or `update`. If the `update` method is used with `updateMask` only to delete a field, then this isn't required. For example, setting `salePrice` on the `updateMask` and not providing a `product` will result in an existing sale price on the product specified by `productId` being deleted." +}, +"productId": { +"description": "The ID of the product to get or mutate. Only defined if the method is `get`, `delete`, or `update`.", +"type": "string" +}, +"updateMask": { +"description": "The comma-separated list of product attributes to be updated. Example: `\"title,salePrice\"`. Attributes specified in the update mask without a value specified in the body will be deleted from the product. *You must specify the update mask to delete attributes.* Only top-level product attributes can be updated. If not defined, product attributes with set values will be updated and other attributes will stay unchanged. Only defined if the method is `update`.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"ProductsCustomBatchResponse": { +"id": "ProductsCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "ProductsCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#productsCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"ProductsCustomBatchResponseEntry": { +"description": "A batch entry encoding a single non-batch products response.", +"id": "ProductsCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry this entry responds to.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#productsCustomBatchResponseEntry`\"", +"type": "string" +}, +"product": { +"$ref": "Product", +"description": "The inserted product. Only defined if the method is `insert` and if the request was successful." +} +}, +"type": "object" +}, +"ProductsListResponse": { +"id": "ProductsListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#productsListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of products.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "Product" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProductstatusesCustomBatchRequest": { +"id": "ProductstatusesCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "ProductstatusesCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProductstatusesCustomBatchRequestEntry": { +"description": "A batch entry encoding a single non-batch productstatuses request.", +"id": "ProductstatusesCustomBatchRequestEntry", +"properties": { +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"destinations": { +"description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.", +"items": { +"type": "string" +}, +"type": "array" +}, +"includeAttributes": { +"deprecated": true, +"description": "Deprecated: Setting this field has no effect and attributes are never included.", +"type": "boolean" +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`get`\" ", +"type": "string" +}, +"productId": { +"description": "The ID of the product whose status to get.", +"type": "string" +} +}, +"type": "object" +}, +"ProductstatusesCustomBatchResponse": { +"id": "ProductstatusesCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "ProductstatusesCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#productstatusesCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"ProductstatusesCustomBatchResponseEntry": { +"description": "A batch entry encoding a single non-batch productstatuses response.", +"id": "ProductstatusesCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry this entry responds to.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#productstatusesCustomBatchResponseEntry`\"", +"type": "string" +}, +"productStatus": { +"$ref": "ProductStatus", +"description": "The requested product status. Only defined if the request was successful." +} +}, +"type": "object" +}, +"ProductstatusesListResponse": { +"id": "ProductstatusesListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#productstatusesListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of products statuses.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "ProductStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"Promotion": { +"description": "Represents a promotion. See the following articles for more details. * [Promotions feed specification](https://support.google.com/merchants/answer/2906014) * [Local promotions feed specification](https://support.google.com/merchants/answer/10146130) * [Promotions on Buy on Google product data specification](https://support.google.com/merchants/answer/9173673)", +"id": "Promotion", +"properties": { +"brand": { +"description": "Product filter by brand for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"brandExclusion": { +"description": "Product filter by brand exclusion for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"contentLanguage": { +"description": "Required. The content language used as part of the unique identifier. `en` content language is available for all target countries. `fr` content language is available for `CA` and `FR` target countries. `de` content language is available for `DE` target country. `nl` content language is available for `NL` target country. `it` content language is available for `IT` target country. `pt` content language is available for `BR` target country. `ja` content language is available for `JP` target country. `ko` content language is available for `KR` target country.", +"type": "string" +}, +"couponValueType": { +"description": "Required. Coupon value type for the promotion.", +"enum": [ +"COUPON_VALUE_TYPE_UNSPECIFIED", +"MONEY_OFF", +"PERCENT_OFF", +"BUY_M_GET_N_MONEY_OFF", +"BUY_M_GET_N_PERCENT_OFF", +"BUY_M_GET_MONEY_OFF", +"BUY_M_GET_PERCENT_OFF", +"FREE_GIFT", +"FREE_GIFT_WITH_VALUE", +"FREE_GIFT_WITH_ITEM_ID", +"FREE_SHIPPING_STANDARD", +"FREE_SHIPPING_OVERNIGHT", +"FREE_SHIPPING_TWO_DAY" +], +"enumDescriptions": [ +"Indicates that the coupon value type is unspecified.", +"Money off coupon value type.", +"Percent off coupon value type.", +"Buy M quantity, get N money off coupon value type. `buy_this_quantity` and `get_this_quantity` must be present. `money_off_amount` must also be present.", +"Buy M quantity, get N percent off coupon value type. `buy_this_quantity` and `get_this_quantity` must be present. `percent_off_percentage` must also be present.", +"Buy M quantity, get money off. `buy_this_quantity` and `money_off_amount` must be present.", +"Buy M quantity, get money off. `buy_this_quantity` and `percent_off_percentage` must be present.", +"Free gift with description only.", +"Free gift with value (description is optional).", +"Free gift with item ID (description is optional).", +"Standard free shipping coupon value type.", +"Overnight free shipping coupon value type.", +"Two day free shipping coupon value type." +], +"type": "string" +}, +"freeGiftDescription": { +"description": "Free gift description for the promotion.", +"type": "string" +}, +"freeGiftItemId": { +"description": "Free gift item ID for the promotion.", +"type": "string" +}, +"freeGiftValue": { +"$ref": "PriceAmount", +"description": "Free gift value for the promotion." +}, +"genericRedemptionCode": { +"description": "Generic redemption code for the promotion. To be used with the `offerType` field.", +"type": "string" +}, +"getThisQuantityDiscounted": { +"description": "The number of items discounted in the promotion.", +"format": "int32", +"type": "integer" +}, +"id": { +"description": "Output only. The REST promotion ID to uniquely identify the promotion. Content API methods that operate on promotions take this as their `promotionId` parameter. The REST ID for a promotion is of the form channel:contentLanguage:targetCountry:promotionId The `channel` field has a value of `\"online\"`, `\"in_store\"`, or `\"online_in_store\"`.", +"readOnly": true, +"type": "string" +}, +"itemGroupId": { +"description": "Product filter by item group ID for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"itemGroupIdExclusion": { +"description": "Product filter by item group ID exclusion for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"itemId": { +"description": "Product filter by item ID for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"itemIdExclusion": { +"description": "Product filter by item ID exclusion for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"limitQuantity": { +"description": "Maximum purchase quantity for the promotion.", +"format": "int32", +"type": "integer" +}, +"limitValue": { +"$ref": "PriceAmount", +"description": "Maximum purchase value for the promotion." +}, +"longTitle": { +"description": "Required. Long title for the promotion.", +"type": "string" +}, +"minimumPurchaseAmount": { +"$ref": "PriceAmount", +"description": "Minimum purchase amount for the promotion." +}, +"minimumPurchaseQuantity": { +"description": "Minimum purchase quantity for the promotion.", +"format": "int32", +"type": "integer" +}, +"moneyBudget": { +"$ref": "PriceAmount", +"description": "Cost cap for the promotion." +}, +"moneyOffAmount": { +"$ref": "PriceAmount", +"description": "The money off amount offered in the promotion." +}, +"offerType": { +"description": "Required. Type of the promotion.", +"enum": [ +"OFFER_TYPE_UNSPECIFIED", +"NO_CODE", +"GENERIC_CODE" +], +"enumDescriptions": [ +"Unknown offer type.", +"Offer type without a code.", +"Offer type with a code." +], +"type": "string" +}, +"orderLimit": { +"description": "Order limit for the promotion.", +"format": "int32", +"type": "integer" +}, +"percentOff": { +"description": "The percentage discount offered in the promotion.", +"format": "int32", +"type": "integer" +}, +"productApplicability": { +"description": "Required. Applicability of the promotion to either all products or only specific products.", +"enum": [ +"PRODUCT_APPLICABILITY_UNSPECIFIED", +"ALL_PRODUCTS", +"SPECIFIC_PRODUCTS" +], +"enumDescriptions": [ +"Which products the promotion applies to is unknown.", +"Applicable to all products.", +"Applicable to only a single product or list of products." +], +"type": "string" +}, +"productType": { +"description": "Product filter by product type for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"productTypeExclusion": { +"description": "Product filter by product type exclusion for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"promotionDestinationIds": { +"description": "Destination ID for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"promotionDisplayDates": { +"deprecated": true, +"description": "String representation of the promotion display dates. Deprecated. Use `promotion_display_time_period` instead.", +"type": "string" +}, +"promotionDisplayTimePeriod": { +"$ref": "TimePeriod", +"description": "`TimePeriod` representation of the promotion's display dates." +}, +"promotionEffectiveDates": { +"deprecated": true, +"description": "String representation of the promotion effective dates. Deprecated. Use `promotion_effective_time_period` instead.", +"type": "string" +}, +"promotionEffectiveTimePeriod": { +"$ref": "TimePeriod", +"description": "Required. `TimePeriod` representation of the promotion's effective dates." +}, +"promotionId": { +"description": "Required. The user provided promotion ID to uniquely identify the promotion.", +"type": "string" +}, +"promotionStatus": { +"$ref": "PromotionPromotionStatus", +"description": "Output only. The current status of the promotion.", +"readOnly": true +}, +"promotionUrl": { +"description": "URL to the page on the merchant's site where the promotion shows. Local Inventory ads promotions throw an error if no promo url is included. URL is used to confirm that the promotion is valid and can be redeemed.", +"type": "string" +}, +"redemptionChannel": { +"description": "Required. Redemption channel for the promotion. At least one channel is required.", +"items": { +"enum": [ +"REDEMPTION_CHANNEL_UNSPECIFIED", +"IN_STORE", +"ONLINE" +], +"enumDescriptions": [ +"Indicates that the channel is unspecified.", +"Indicates that the channel is in store.", +"Indicates that the channel is online." +], +"type": "string" +}, +"type": "array" +}, +"shippingServiceNames": { +"description": "Shipping service names for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"storeApplicability": { +"description": "Whether the promotion applies to all stores, or only specified stores. Local Inventory ads promotions throw an error if no store applicability is included. An INVALID_ARGUMENT error is thrown if store_applicability is set to ALL_STORES and store_code or score_code_exclusion is set to a value.", +"enum": [ +"STORE_APPLICABILITY_UNSPECIFIED", +"ALL_STORES", +"SPECIFIC_STORES" +], +"enumDescriptions": [ +"Which store codes the promotion applies to is unknown.", +"Promotion applies to all stores.", +"Promotion applies to only the specified stores." +], +"type": "string" +}, +"storeCode": { +"description": "Store codes to include for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"storeCodeExclusion": { +"description": "Store codes to exclude for the promotion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetCountry": { +"description": "Required. The target country used as part of the unique identifier. Can be `AU`, `CA`, `DE`, `FR`, `GB`, `IN`, `US`, `BR`, `ES`, `NL`, `JP`, `IT` or `KR`.", +"type": "string" +} +}, +"type": "object" +}, +"PromotionPromotionStatus": { +"description": "The status of the promotion.", +"id": "PromotionPromotionStatus", +"properties": { +"creationDate": { +"description": "Date on which the promotion has been created in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, for example \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", +"type": "string" +}, +"destinationStatuses": { +"description": "The intended destinations for the promotion.", +"items": { +"$ref": "PromotionPromotionStatusDestinationStatus" +}, +"type": "array" +}, +"lastUpdateDate": { +"description": "Date on which the promotion status has been last updated in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, for example \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", +"type": "string" +}, +"promotionIssue": { +"description": "A list of issues associated with the promotion.", +"items": { +"$ref": "PromotionPromotionStatusPromotionIssue" +}, +"type": "array" +} +}, +"type": "object" +}, +"PromotionPromotionStatusDestinationStatus": { +"description": "The destination status of the promotion.", +"id": "PromotionPromotionStatusDestinationStatus", +"properties": { +"destination": { +"description": "The name of the destination.", +"type": "string" +}, +"status": { +"description": "The status for the specified destination.", +"enum": [ +"STATE_UNSPECIFIED", +"IN_REVIEW", +"REJECTED", +"LIVE", +"STOPPED", +"EXPIRED", +"PENDING" +], +"enumDescriptions": [ +"Unknown promotion state.", +"The promotion is under review.", +"The promotion is disapproved", +"The promotion is approved and active.", +"The promotion is stopped by merchant.", +"The promotion is no longer active.", +"The promotion is not stopped, and all reviews are approved, but the active date is in the future." +], +"type": "string" +} +}, +"type": "object" +}, +"PromotionPromotionStatusPromotionIssue": { +"description": "The issue associated with the promotion.", +"id": "PromotionPromotionStatusPromotionIssue", +"properties": { +"code": { +"description": "Code of the issue.", +"type": "string" +}, +"detail": { +"description": "Explanation of the issue.", +"type": "string" +} +}, +"type": "object" +}, +"PubsubNotificationSettings": { +"description": "Settings for Pub/Sub notifications, all methods require that the caller is a direct user of the merchant center account.", +"id": "PubsubNotificationSettings", +"properties": { +"cloudTopicName": { +"description": "Cloud pub/sub topic to which notifications are sent (read-only).", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#pubsubNotificationSettings`\"", +"type": "string" +}, +"registeredEvents": { +"description": "List of event types. Acceptable values are: - \"`orderPendingShipment`\" ", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RateGroup": { +"id": "RateGroup", +"properties": { +"applicableShippingLabels": { +"description": "A list of shipping labels defining the products to which this rate group applies to. This is a disjunction: only one of the labels has to match for the rate group to apply. May only be empty for the last rate group of a service. Required.", +"items": { +"type": "string" +}, +"type": "array" +}, +"carrierRates": { +"description": "A list of carrier rates that can be referred to by `mainTable` or `singleValue`.", +"items": { +"$ref": "CarrierRate" +}, +"type": "array" +}, +"mainTable": { +"$ref": "Table", +"description": "A table defining the rate group, when `singleValue` is not expressive enough. Can only be set if `singleValue` is not set." +}, +"name": { +"description": "Name of the rate group. Optional. If set has to be unique within shipping service.", +"type": "string" +}, +"singleValue": { +"$ref": "Value", +"description": "The value of the rate group (for example, flat rate $10). Can only be set if `mainTable` and `subtables` are not set." +}, +"subtables": { +"description": "A list of subtables referred to by `mainTable`. Can only be set if `mainTable` is set.", +"items": { +"$ref": "Table" +}, +"type": "array" +} +}, +"type": "object" +}, +"Recommendation": { +"description": "Recommendations are suggested ways to improve your merchant account's performance. For example, to engage with a feature, or start using a new Google product.", +"id": "Recommendation", +"properties": { +"additionalCallToAction": { +"description": "Output only. CTAs of this recommendation. Repeated.", +"items": { +"$ref": "RecommendationCallToAction" +}, +"readOnly": true, +"type": "array" +}, +"additionalDescriptions": { +"description": "Output only. List of additional localized descriptions for a recommendation. Localication uses the `languageCode` field in `GenerateRecommendations` requests. Not all description types are guaranteed to be present and we recommend to rely on default description.", +"items": { +"$ref": "RecommendationDescription" +}, +"readOnly": true, +"type": "array" +}, +"creative": { +"description": "Output only. Any creatives attached to the recommendation. Repeated.", +"items": { +"$ref": "RecommendationCreative" +}, +"readOnly": true, +"type": "array" +}, +"defaultCallToAction": { +"$ref": "RecommendationCallToAction", +"description": "Optional. Default CTA of the recommendation." +}, +"defaultDescription": { +"description": "Optional. Localized recommendation description. The localization the {@link `GenerateRecommendationsRequest.language_code`} field in {@link `GenerateRecommendationsRequest`} requests.", +"type": "string" +}, +"numericalImpact": { +"description": "Optional. A numerical score of the impact from the recommendation's description. For example, a recommendation might suggest an upward trend in sales for a certain product. Higher number means larger impact.", +"format": "int32", +"type": "integer" +}, +"paid": { +"description": "Optional. Indicates whether a user needs to pay when they complete the user journey suggested by the recommendation.", +"type": "boolean" +}, +"recommendationName": { +"description": "Optional. Localized recommendation name. The localization uses the {@link `GenerateRecommendationsRequest.language_code`} field in {@link `GenerateRecommendationsRequest`} requests.", +"type": "string" +}, +"subType": { +"description": "Optional. Subtype of the recommendations. Only applicable when multiple recommendations can be generated per type, and is used as an identifier of recommendation under the same recommendation type.", +"type": "string" +}, +"title": { +"description": "Optional. Localized Recommendation Title. Localization uses the {@link `GenerateRecommendationsRequest.language_code`} field in {@link `GenerateRecommendationsRequest`} requests.", +"type": "string" +}, +"type": { +"description": "Output only. Type of the recommendation. List of currently available recommendation types: - OPPORTUNITY_CREATE_NEW_COLLECTION - OPPORTUNITY_CREATE_EMAIL_CAMPAIGN", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RecommendationCallToAction": { +"description": "Call to action (CTA) that explains how a merchant can implement this recommendation", +"id": "RecommendationCallToAction", +"properties": { +"intent": { +"description": "Output only. Intent of the action. This value describes the intent (for example, `OPEN_CREATE_EMAIL_CAMPAIGN_FLOW`) and can vary from recommendation to recommendation. This value can change over time for the same recommendation. Currently available intent values: - OPEN_CREATE_EMAIL_CAMPAIGN_FLOW: Opens a user journey where they can create a marketing email campaign. (No default URL) - OPEN_CREATE_COLLECTION_TAB: Opens a user journey where they can [create a collection](https://support.google.com/merchants/answer/9703228) for their Merchant account. (No default URL)", +"readOnly": true, +"type": "string" +}, +"localizedText": { +"description": "Output only. Localized text of the CTA. Optional.", +"readOnly": true, +"type": "string" +}, +"uri": { +"description": "Optional. URL of the CTA. This field will only be set for some recommendations where there is a suggested landing URL. Otherwise it will be set to an empty string. We recommend developers to use their own custom landing page according to the description of the intent field above when this uri field is empty.", +"type": "string" +} +}, +"type": "object" +}, +"RecommendationCreative": { +"description": "Creative is a multimedia attachment to recommendation that can be used on the frontend.", +"id": "RecommendationCreative", +"properties": { +"type": { +"description": "Type of the creative.", +"enum": [ +"CREATIVE_TYPE_UNSPECIFIED", +"VIDEO", +"PHOTO" +], +"enumDescriptions": [ +"Default value. If provided, shall be considered invalid.", +"Video creatives.", +"Photo creatives." +], +"type": "string" +}, +"uri": { +"description": "URL of the creative.", +"type": "string" +} +}, +"type": "object" +}, +"RecommendationDescription": { +"description": "Google-provided description for the recommendation.", +"id": "RecommendationDescription", +"properties": { +"text": { +"description": "Output only. Text of the description.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. Type of the description.", +"enum": [ +"DESCRIPTION_TYPE_UNSPECIFIED", +"SHORT", +"LONG" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Short description.", +"Long description." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Region": { +"description": "Represents a geographic region that you can use as a target with both the `RegionalInventory` and `ShippingSettings` services. You can define regions as collections of either postal codes or, in some countries, using predefined geotargets.", +"id": "Region", +"properties": { +"displayName": { +"description": "The display name of the region.", +"type": "string" +}, +"geotargetArea": { +"$ref": "RegionGeoTargetArea", +"description": "A list of geotargets that defines the region area." +}, +"merchantId": { +"description": "Output only. Immutable. Merchant that owns the region.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"postalCodeArea": { +"$ref": "RegionPostalCodeArea", +"description": "A list of postal codes that defines the region area." +}, +"regionId": { +"description": "Output only. Immutable. The ID uniquely identifying each region.", +"readOnly": true, +"type": "string" +}, +"regionalInventoryEligible": { +"description": "Output only. Indicates if the region is eligible to use in the Regional Inventory configuration.", +"readOnly": true, +"type": "boolean" +}, +"shippingEligible": { +"description": "Output only. Indicates if the region is eligible to use in the Shipping Services configuration.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"RegionGeoTargetArea": { +"description": "A list of geotargets that defines the region area.", +"id": "RegionGeoTargetArea", +"properties": { +"geotargetCriteriaIds": { +"description": "Required. A non-empty list of [location IDs](https://developers.google.com/adwords/api/docs/appendix/geotargeting). They must all be of the same location type (e.g., state).", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RegionPostalCodeArea": { +"description": "A list of postal codes that defines the region area. Note: All regions defined using postal codes are accessible via the account's `ShippingSettings.postalCodeGroups` resource.", +"id": "RegionPostalCodeArea", +"properties": { +"postalCodes": { +"description": "Required. A range of postal codes.", +"items": { +"$ref": "RegionPostalCodeAreaPostalCodeRange" +}, +"type": "array" +}, +"regionCode": { +"description": "Required. CLDR territory code or the country the postal code group applies to.", +"type": "string" +} +}, +"type": "object" +}, +"RegionPostalCodeAreaPostalCodeRange": { +"description": "A range of postal codes that defines the region area.", +"id": "RegionPostalCodeAreaPostalCodeRange", +"properties": { +"begin": { +"description": "Required. A postal code or a pattern of the form prefix* denoting the inclusive lower bound of the range defining the area. Examples values: \"94108\", \"9410*\", \"9*\".", +"type": "string" +}, +"end": { +"description": "Optional. A postal code or a pattern of the form prefix* denoting the inclusive upper bound of the range defining the area. It must have the same length as postalCodeRangeBegin: if postalCodeRangeBegin is a postal code then postalCodeRangeEnd must be a postal code too; if postalCodeRangeBegin is a pattern then postalCodeRangeEnd must be a pattern with the same prefix length. Optional: if not set, then the area is defined as being all the postal codes matching postalCodeRangeBegin.", +"type": "string" +} +}, +"type": "object" +}, +"RegionalInventory": { +"description": "Regional inventory resource. contains the regional name and all attributes which are overridden for the specified region.", +"id": "RegionalInventory", +"properties": { +"availability": { +"description": "The availability of the product.", +"type": "string" +}, +"customAttributes": { +"description": "A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form.", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#regionalInventory`\".", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "The price of the product." +}, +"regionId": { +"description": "The ID uniquely identifying each region.", +"type": "string" +}, +"salePrice": { +"$ref": "Price", +"description": "The sale price of the product. Mandatory if `sale_price_effective_date` is defined." +}, +"salePriceEffectiveDate": { +"description": "A date range represented by a pair of ISO 8601 dates separated by a space, comma, or slash. Both dates might be specified as 'null' if undecided.", +"type": "string" +} +}, +"type": "object" +}, +"RegionalinventoryCustomBatchRequest": { +"id": "RegionalinventoryCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "RegionalinventoryCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"RegionalinventoryCustomBatchRequestEntry": { +"description": "A batch entry encoding a single non-batch regional inventory request.", +"id": "RegionalinventoryCustomBatchRequestEntry", +"properties": { +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "Method of the batch request entry. Acceptable values are: - \"`insert`\" ", +"type": "string" +}, +"productId": { +"description": "The ID of the product for which to update price and availability.", +"type": "string" +}, +"regionalInventory": { +"$ref": "RegionalInventory", +"description": "Price and availability of the product." +} +}, +"type": "object" +}, +"RegionalinventoryCustomBatchResponse": { +"id": "RegionalinventoryCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "RegionalinventoryCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#regionalinventoryCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"RegionalinventoryCustomBatchResponseEntry": { +"description": "A batch entry encoding a single non-batch regional inventory response.", +"id": "RegionalinventoryCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry this entry responds to.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#regionalinventoryCustomBatchResponseEntry`\".", +"type": "string" +}, +"regionalInventory": { +"$ref": "RegionalInventory", +"description": "Price and availability of the product." +} +}, +"type": "object" +}, +"RenderAccountIssuesRequestPayload": { +"description": "The payload for configuring how the content should be rendered.", +"id": "RenderAccountIssuesRequestPayload", +"properties": { +"contentOption": { +"description": "Optional. How the detailed content should be returned. Default option is to return the content as a pre-rendered HTML text.", +"enum": [ +"CONTENT_OPTION_UNSPECIFIED", +"PRE_RENDERED_HTML" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Returns the detail of the issue as a pre-rendered HTML text." +], +"type": "string" +}, +"userInputActionOption": { +"description": "Optional. How actions with user input form should be handled. If not provided, actions will be returned as links that points merchant to Merchant Center where they can request the action.", +"enum": [ +"USER_INPUT_ACTION_RENDERING_OPTION_UNSPECIFIED", +"REDIRECT_TO_MERCHANT_CENTER", +"BUILT_IN_USER_INPUT_ACTIONS" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Actions that require user input are represented only as links that points merchant to Merchant Center where they can request the action. Provides easier to implement alternative to `BUILT_IN_USER_INPUT_ACTIONS`.", +"Returns content and input form definition for each complex action. Your application needs to display this content and input form to the merchant before they can request processing of the action. To start the action, your application needs to call the `triggeraction` method." +], +"type": "string" +} +}, +"type": "object" +}, +"RenderAccountIssuesResponse": { +"description": "Response containing support content and actions for listed account issues.", +"id": "RenderAccountIssuesResponse", +"properties": { +"alternateDisputeResolution": { +"$ref": "AlternateDisputeResolution", +"description": "The Alternate Dispute Resolution (ADR) contains a link to a page where merchant can bring their appeal to an [external body](https://support.google.com/european-union-digital-services-act-redress-options/answer/13535501). If the ADR is present, it MUST be available to the merchant on the page that shows the list with their account issues." +}, +"issues": { +"description": "List of account issues for a given account. This list can be shown with compressed, expandable items. In the compressed form, the title and impact should be shown for each issue. Once the issue is expanded, the detailed content and available actions should be rendered.", +"items": { +"$ref": "AccountIssue" +}, +"type": "array" +} +}, +"type": "object" +}, +"RenderProductIssuesRequestPayload": { +"description": "The payload for configuring how the content should be rendered.", +"id": "RenderProductIssuesRequestPayload", +"properties": { +"contentOption": { +"description": "Optional. How the detailed content should be returned. Default option is to return the content as a pre-rendered HTML text.", +"enum": [ +"CONTENT_OPTION_UNSPECIFIED", +"PRE_RENDERED_HTML" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Returns the detail of the issue as a pre-rendered HTML text." +], +"type": "string" +}, +"userInputActionOption": { +"description": "Optional. How actions with user input form should be handled. If not provided, actions will be returned as links that points merchant to Merchant Center where they can request the action.", +"enum": [ +"USER_INPUT_ACTION_RENDERING_OPTION_UNSPECIFIED", +"REDIRECT_TO_MERCHANT_CENTER", +"BUILT_IN_USER_INPUT_ACTIONS" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Actions that require user input are represented only as links that points merchant to Merchant Center where they can request the action. Provides easier to implement alternative to `BUILT_IN_USER_INPUT_ACTIONS`.", +"Returns content and input form definition for each complex action. Your application needs to display this content and input form to the merchant before they can request processing of the action. To start the action, your application needs to call the `triggeraction` method." +], +"type": "string" +} +}, +"type": "object" +}, +"RenderProductIssuesResponse": { +"description": "Response containing support content and actions for listed product issues.", +"id": "RenderProductIssuesResponse", +"properties": { +"alternateDisputeResolution": { +"$ref": "AlternateDisputeResolution", +"description": "The Alternate Dispute Resolution (ADR) contains a link to a page where merchant can bring their appeal to an [external body](https://support.google.com/european-union-digital-services-act-redress-options/answer/13535501). If present, the link should be shown on the same page as the list of issues." +}, +"issues": { +"description": "List of issues for a given product. This list can be shown with compressed, expandable items. In the compressed form, the title and impact should be shown for each issue. Once the issue is expanded, the detailed content and available actions should be rendered.", +"items": { +"$ref": "ProductIssue" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReportInteractionRequest": { +"description": "Request to report interactions on a recommendation.", +"id": "ReportInteractionRequest", +"properties": { +"interactionType": { +"description": "Required. Type of the interaction that is reported, for example INTERACTION_CLICK.", +"enum": [ +"INTERACTION_TYPE_UNSPECIFIED", +"INTERACTION_DISMISS", +"INTERACTION_CLICK" +], +"enumDescriptions": [ +"Default value. If provided, the service will throw ApiError with description \"Required parameter: interactionType\".", +"When a recommendation is dismissed.", +"When a recommendation is clicked." +], +"type": "string" +}, +"responseToken": { +"description": "Required. Token of the response when recommendation was returned.", +"type": "string" +}, +"subtype": { +"description": "Optional. Subtype of the recommendations this interaction happened on. This field must be set only to the value that is returned by {@link `RecommendationsService.GenerateRecommendations`} call.", +"type": "string" +}, +"type": { +"description": "Required. Type of the recommendations on which this interaction happened. This field must be set only to the value that is returned by {@link `GenerateRecommendationsResponse`} call.", +"type": "string" +} +}, +"type": "object" +}, +"ReportRow": { +"description": "Result row returned from the search query.", +"id": "ReportRow", +"properties": { +"bestSellers": { +"$ref": "BestSellers", +"description": "Best sellers fields requested by the merchant in the query. Field values are only set if the merchant queries `BestSellersProductClusterView` or `BestSellersBrandView`." +}, +"brand": { +"$ref": "Brand", +"description": "Brand fields requested by the merchant in the query. Field values are only set if the merchant queries `BestSellersBrandView`." +}, +"competitiveVisibility": { +"$ref": "CompetitiveVisibility", +"description": "Competitive visibility fields requested by the merchant in the query. Field values are only set if the merchant queries `CompetitiveVisibilityTopMerchantView`, `CompetitiveVisibilityBenchmarkView` or `CompetitiveVisibilityCompetitorView`." +}, +"metrics": { +"$ref": "Metrics", +"description": "Metrics requested by the merchant in the query. Metric values are only set for metrics requested explicitly in the query." +}, +"priceCompetitiveness": { +"$ref": "PriceCompetitiveness", +"description": "Price competitiveness fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceCompetitivenessProductView`." +}, +"priceInsights": { +"$ref": "PriceInsights", +"description": "Price insights fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceInsightsProductView`." +}, +"productCluster": { +"$ref": "ProductCluster", +"description": "Product cluster fields requested by the merchant in the query. Field values are only set if the merchant queries `BestSellersProductClusterView`." +}, +"productView": { +"$ref": "ProductView", +"description": "Product fields requested by the merchant in the query. Field values are only set if the merchant queries `ProductView`." +}, +"segments": { +"$ref": "Segments", +"description": "Segmentation dimensions requested by the merchant in the query. Dimension values are only set for dimensions requested explicitly in the query." +}, +"topicTrends": { +"$ref": "TopicTrends", +"description": "[Topic trends](https://support.google.com/merchants/answer/13542370) fields requested by the merchant in the query. Field values are only set if the merchant queries `TopicTrendsView`." +} +}, +"type": "object" +}, +"RequestPhoneVerificationRequest": { +"description": "Request message for the RequestPhoneVerification method.", +"id": "RequestPhoneVerificationRequest", +"properties": { +"languageCode": { +"description": "Language code [IETF BCP 47 syntax](https://tools.ietf.org/html/bcp47) (for example, en-US). Language code is used to provide localized `SMS` and `PHONE_CALL`. Default language used is en-US if not provided.", +"type": "string" +}, +"phoneNumber": { +"description": "Phone number to be verified.", +"type": "string" +}, +"phoneRegionCode": { +"description": "Required. Two letter country code for the phone number, for example `CA` for Canadian numbers. See the [ISO 3166-1 alpha-2](https://wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) officially assigned codes.", +"type": "string" +}, +"phoneVerificationMethod": { +"description": "Verification method to receive verification code.", +"enum": [ +"PHONE_VERIFICATION_METHOD_UNSPECIFIED", +"SMS", +"PHONE_CALL" +], +"enumDescriptions": [ +"Unknown method.", +"Receive verification code by SMS.", +"Receive verification code by phone call." +], +"type": "string" +} +}, +"type": "object" +}, +"RequestPhoneVerificationResponse": { +"description": "Response message for the RequestPhoneVerification method.", +"id": "RequestPhoneVerificationResponse", +"properties": { +"verificationId": { +"description": "The verification ID to use in subsequent calls to `verifyphonenumber`.", +"type": "string" +} +}, +"type": "object" +}, +"RequestReviewFreeListingsRequest": { +"description": "Request message for the RequestReviewFreeListings Program method.", +"id": "RequestReviewFreeListingsRequest", +"properties": { +"regionCode": { +"description": "The code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country for which review is to be requested.", +"type": "string" +} +}, +"type": "object" +}, +"RequestReviewShoppingAdsRequest": { +"description": "Request message for the RequestReviewShoppingAds program method.", +"id": "RequestReviewShoppingAdsRequest", +"properties": { +"regionCode": { +"description": "The code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country for which review is to be requested.", +"type": "string" +} +}, +"type": "object" +}, +"ReturnAddress": { +"description": "Return address resource.", +"id": "ReturnAddress", +"properties": { +"address": { +"$ref": "ReturnAddressAddress", +"description": "Required. The address." +}, +"country": { +"description": "Required. The country of sale where the return address is applicable.", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#returnAddress`\"", +"type": "string" +}, +"label": { +"description": "Required. The user-defined label of the return address. For the default address, use the label \"default\".", +"type": "string" +}, +"phoneNumber": { +"description": "Required. The merchant's contact phone number regarding the return.", +"type": "string" +}, +"returnAddressId": { +"description": "Return address ID generated by Google.", +"type": "string" +} +}, +"type": "object" +}, +"ReturnAddressAddress": { +"id": "ReturnAddressAddress", +"properties": { +"country": { +"description": "CLDR country code (for example, \"US\").", +"type": "string" +}, +"locality": { +"description": "City, town or commune. May also include dependent localities or sublocalities (for example, neighborhoods or suburbs).", +"type": "string" +}, +"postalCode": { +"description": "Postal code or ZIP (for example, \"94043\").", +"type": "string" +}, +"recipientName": { +"description": "Name of the recipient to address returns to.", +"type": "string" +}, +"region": { +"description": "Top-level administrative subdivision of the country. For example, a state like California (\"CA\") or a province like Quebec (\"QC\").", +"type": "string" +}, +"streetAddress": { +"description": "Street-level part of the address. May be up to two lines, each line specified as an array element.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReturnPolicy": { +"description": "Return policy resource.", +"id": "ReturnPolicy", +"properties": { +"country": { +"description": "Required. The country of sale where the return policy is applicable.", +"type": "string" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#returnPolicy`\"", +"type": "string" +}, +"label": { +"description": "Required. The user-defined label of the return policy. For the default policy, use the label \"default\".", +"type": "string" +}, +"name": { +"description": "Required. The name of the policy as shown in Merchant Center.", +"type": "string" +}, +"nonFreeReturnReasons": { +"description": "Return reasons that will incur return fees.", +"items": { +"type": "string" +}, +"type": "array" +}, +"policy": { +"$ref": "ReturnPolicyPolicy", +"description": "Required. The policy." +}, +"returnPolicyId": { +"description": "Return policy ID generated by Google.", +"type": "string" +}, +"returnShippingFee": { +"$ref": "Price", +"description": "The return shipping fee that will apply to non free return reasons." +}, +"seasonalOverrides": { +"description": "An optional list of seasonal overrides.", +"items": { +"$ref": "ReturnPolicySeasonalOverride" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReturnPolicyOnline": { +"description": "Return policy online object. This is currently used to represent return policies for ads and free listings programs.", +"id": "ReturnPolicyOnline", +"properties": { +"countries": { +"description": "The countries of sale where the return policy is applicable. The values must be a valid 2 letter ISO 3166 code, e.g. \"US\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"itemConditions": { +"description": "The item conditions that are accepted for returns. This is required to not be empty unless the type of return policy is noReturns.", +"items": { +"enum": [ +"ITEM_CONDITION_UNSPECIFIED", +"NEW", +"USED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"New.", +"Used." +], +"type": "string" +}, +"type": "array" +}, +"label": { +"description": "The unique user-defined label of the return policy. The same label cannot be used in different return policies for the same country. Policies with the label 'default' will apply to all products, unless a product specifies a return_policy_label attribute.", +"type": "string" +}, +"name": { +"description": "The name of the policy as shown in Merchant Center.", +"type": "string" +}, +"policy": { +"$ref": "ReturnPolicyOnlinePolicy", +"description": "The return policy." +}, +"restockingFee": { +"$ref": "ReturnPolicyOnlineRestockingFee", +"description": "The restocking fee that applies to all return reason categories. This would be treated as a free restocking fee if the value is not set." +}, +"returnMethods": { +"description": "The return methods of how customers can return an item. This value is required to not be empty unless the type of return policy is noReturns.", +"items": { +"enum": [ +"RETURN_METHOD_UNSPECIFIED", +"BY_MAIL", +"IN_STORE", +"AT_A_KIOSK" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"By mail.", +"In store.", +"At a kiosk." +], +"type": "string" +}, +"type": "array" +}, +"returnPolicyId": { +"description": "Output only. Return policy ID generated by Google.", +"readOnly": true, +"type": "string" +}, +"returnPolicyUri": { +"description": "The return policy uri. This can used by Google to do a sanity check for the policy.", +"type": "string" +}, +"returnReasonCategoryInfo": { +"description": "The return reason category information. This required to not be empty unless the type of return policy is noReturns.", +"items": { +"$ref": "ReturnPolicyOnlineReturnReasonCategoryInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReturnPolicyOnlinePolicy": { +"description": "The available policies.", +"id": "ReturnPolicyOnlinePolicy", +"properties": { +"days": { +"description": "The number of days items can be returned after delivery, where one day is defined to be 24 hours after the delivery timestamp. Required for `numberOfDaysAfterDelivery` returns.", +"format": "int64", +"type": "string" +}, +"type": { +"description": "Policy type.", +"enum": [ +"TYPE_UNSPECIFIED", +"NUMBER_OF_DAYS_AFTER_DELIVERY", +"NO_RETURNS", +"LIFETIME_RETURNS" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Number of days after a return is delivered.", +"No returns.", +"Life time returns." +], +"type": "string" +} +}, +"type": "object" +}, +"ReturnPolicyOnlineRestockingFee": { +"description": "The restocking fee. This can either be a fixed fee or a micro percent.", +"id": "ReturnPolicyOnlineRestockingFee", +"properties": { +"fixedFee": { +"$ref": "PriceAmount", +"description": "Fixed restocking fee." +}, +"microPercent": { +"description": "Percent of total price in micros. 15,000,000 means 15% of the total price would be charged.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ReturnPolicyOnlineReturnReasonCategoryInfo": { +"description": "The return reason category info wrapper.", +"id": "ReturnPolicyOnlineReturnReasonCategoryInfo", +"properties": { +"returnLabelSource": { +"description": "The corresponding return label source.", +"enum": [ +"RETURN_LABEL_SOURCE_UNSPECIFIED", +"DOWNLOAD_AND_PRINT", +"IN_THE_BOX", +"CUSTOMER_RESPONSIBILITY" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Download and print the label.", +"Label in the box.", +"Customers' responsibility to get the label." +], +"type": "string" +}, +"returnReasonCategory": { +"description": "The return reason category.", +"enum": [ +"RETURN_REASON_CATEGORY_UNSPECIFIED", +"BUYER_REMORSE", +"ITEM_DEFECT" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Buyer remorse.", +"Item defect." +], +"type": "string" +}, +"returnShippingFee": { +"$ref": "ReturnPolicyOnlineReturnShippingFee", +"description": "The corresponding return shipping fee. This is only applicable when returnLabelSource is not the customer's responsibility." +} +}, +"type": "object" +}, +"ReturnPolicyOnlineReturnShippingFee": { +"description": "The return shipping fee. This can either be a fixed fee or a boolean to indicate that the customer pays the actual shipping cost.", +"id": "ReturnPolicyOnlineReturnShippingFee", +"properties": { +"fixedFee": { +"$ref": "PriceAmount", +"description": "Fixed return shipping fee amount. This value is only applicable when type is FIXED. We will treat the return shipping fee as free if type is FIXED and this value is not set." +}, +"type": { +"description": "Type of return shipping fee.", +"enum": [ +"TYPE_UNSPECIFIED", +"FIXED", +"CUSTOMER_PAYING_ACTUAL_FEE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The return shipping fee is a fixed value.", +"Customer will pay the actual return shipping fee." +], +"type": "string" +} +}, +"type": "object" +}, +"ReturnPolicyPolicy": { +"id": "ReturnPolicyPolicy", +"properties": { +"lastReturnDate": { +"description": "Required. Last day for returning the items. In ISO 8601 format. When specifying the return window like this, set the policy type to \"lastReturnDate\". Use this for seasonal overrides only.", +"type": "string" +}, +"numberOfDays": { +"description": "The number of days items can be returned after delivery, where one day is defined to be 24 hours after the delivery timestamp. When specifying the return window like this, set the policy type to \"numberOfDaysAfterDelivery\". Acceptable values are 30, 45, 60, 90, 100, 180, 270 and 365 for the default policy. Additional policies further allow 14, 15, 21 and 28 days, but note that for most items a minimum of 30 days is required for returns. Exceptions may be made for electronics. A policy of less than 30 days can only be applied to those items.", +"format": "int64", +"type": "string" +}, +"type": { +"description": "Policy type. Use \"lastReturnDate\" for seasonal overrides only. Note that for most items a minimum of 30 days is required for returns. Exceptions may be made for electronics or non-returnable items such as food, perishables, and living things. A policy of less than 30 days can only be applied to those items. Acceptable values are: - \"`lastReturnDate`\" - \"`lifetimeReturns`\" - \"`noReturns`\" - \"`numberOfDaysAfterDelivery`\" ", +"type": "string" +} +}, +"type": "object" +}, +"ReturnPolicySeasonalOverride": { +"id": "ReturnPolicySeasonalOverride", +"properties": { +"endDate": { +"description": "Required. Last day on which the override applies. In ISO 8601 format.", +"type": "string" +}, +"name": { +"description": "Required. The name of the seasonal override as shown in Merchant Center.", +"type": "string" +}, +"policy": { +"$ref": "ReturnPolicyPolicy", +"description": "Required. The policy which is in effect during that time." +}, +"startDate": { +"description": "Required. First day on which the override applies. In ISO 8601 format.", +"type": "string" +} +}, +"type": "object" +}, +"ReturnaddressCustomBatchRequest": { +"id": "ReturnaddressCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "ReturnaddressCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReturnaddressCustomBatchRequestEntry": { +"id": "ReturnaddressCustomBatchRequestEntry", +"properties": { +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"merchantId": { +"description": "The Merchant Center account ID.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "Method of the batch request entry. Acceptable values are: - \"`delete`\" - \"`get`\" - \"`insert`\" ", +"type": "string" +}, +"returnAddress": { +"$ref": "ReturnAddress", +"description": "The return address to submit. This should be set only if the method is `insert`." +}, +"returnAddressId": { +"description": "The return address ID. This should be set only if the method is `delete` or `get`.", +"type": "string" +} +}, +"type": "object" +}, +"ReturnaddressCustomBatchResponse": { +"id": "ReturnaddressCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "ReturnaddressCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#returnaddressCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"ReturnaddressCustomBatchResponseEntry": { +"id": "ReturnaddressCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry to which this entry responds.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors defined if, and only if, the request failed." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#returnaddressCustomBatchResponseEntry`\"", +"type": "string" +}, +"returnAddress": { +"$ref": "ReturnAddress", +"description": "The retrieved return address." +} +}, +"type": "object" +}, +"ReturnaddressListResponse": { +"id": "ReturnaddressListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#returnaddressListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of addresses.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "ReturnAddress" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReturnpolicyCustomBatchRequest": { +"id": "ReturnpolicyCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "ReturnpolicyCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReturnpolicyCustomBatchRequestEntry": { +"id": "ReturnpolicyCustomBatchRequestEntry", +"properties": { +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"merchantId": { +"description": "The Merchant Center account ID.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "Method of the batch request entry. Acceptable values are: - \"`delete`\" - \"`get`\" - \"`insert`\" ", +"type": "string" +}, +"returnPolicy": { +"$ref": "ReturnPolicy", +"description": "The return policy to submit. This should be set only if the method is `insert`." +}, +"returnPolicyId": { +"description": "The return policy ID. This should be set only if the method is `delete` or `get`.", +"type": "string" +} +}, +"type": "object" +}, +"ReturnpolicyCustomBatchResponse": { +"id": "ReturnpolicyCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "ReturnpolicyCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#returnpolicyCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"ReturnpolicyCustomBatchResponseEntry": { +"id": "ReturnpolicyCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry to which this entry responds.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors defined if, and only if, the request failed." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#returnpolicyCustomBatchResponseEntry`\"", +"type": "string" +}, +"returnPolicy": { +"$ref": "ReturnPolicy", +"description": "The retrieved return policy." +} +}, +"type": "object" +}, +"ReturnpolicyListResponse": { +"id": "ReturnpolicyListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#returnpolicyListResponse`\".", +"type": "string" +}, +"resources": { +"items": { +"$ref": "ReturnPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"Row": { +"id": "Row", +"properties": { +"cells": { +"description": "The list of cells that constitute the row. Must have the same length as `columnHeaders` for two-dimensional tables, a length of 1 for one-dimensional tables. Required.", +"items": { +"$ref": "Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchRequest": { +"description": "Request message for the ReportService.Search method.", +"id": "SearchRequest", +"properties": { +"pageSize": { +"description": "Number of ReportRows to retrieve in a single page. Defaults to 1000. Values above 5000 are coerced to 5000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Token of the page to retrieve. If not specified, the first page of results is returned. In order to request the next page of results, the value obtained from `next_page_token` in the previous response should be used.", +"type": "string" +}, +"query": { +"description": "Required. Query that defines performance metrics to retrieve and dimensions according to which the metrics are to be segmented. For details on how to construct your query, see the [Query Language guide](https://developers.google.com/shopping-content/guides/reports/query-language/overview).", +"type": "string" +} +}, +"type": "object" +}, +"SearchResponse": { +"description": "Response message for the ReportService.Search method.", +"id": "SearchResponse", +"properties": { +"nextPageToken": { +"description": "Token which can be sent as `page_token` to retrieve the next page. If omitted, there are no subsequent pages.", +"type": "string" +}, +"results": { +"description": "Rows that matched the search query.", +"items": { +"$ref": "ReportRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"Segments": { +"description": "Dimensions according to which metrics are segmented in the response. Values of product dimensions, such as `offer_id`, reflect the state of a product at the time of the corresponding event, for example, impression or order. Segment fields cannot be selected in queries without also selecting at least one metric field. Values are only set for dimensions requested explicitly in the request's search query.", +"id": "Segments", +"properties": { +"brand": { +"description": "Brand of the product.", +"type": "string" +}, +"categoryL1": { +"description": "[Product category (1st level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", +"type": "string" +}, +"categoryL2": { +"description": "[Product category (2nd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", +"type": "string" +}, +"categoryL3": { +"description": "[Product category (3rd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", +"type": "string" +}, +"categoryL4": { +"description": "[Product category (4th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", +"type": "string" +}, +"categoryL5": { +"description": "[Product category (5th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in Google's product taxonomy.", +"type": "string" +}, +"currencyCode": { +"description": "Currency in which price metrics are represented, for example, if you select `ordered_item_sales_micros`, the returned value will be represented by this currency.", +"type": "string" +}, +"customLabel0": { +"description": "Custom label 0 for custom grouping of products.", +"type": "string" +}, +"customLabel1": { +"description": "Custom label 1 for custom grouping of products.", +"type": "string" +}, +"customLabel2": { +"description": "Custom label 2 for custom grouping of products.", +"type": "string" +}, +"customLabel3": { +"description": "Custom label 3 for custom grouping of products.", +"type": "string" +}, +"customLabel4": { +"description": "Custom label 4 for custom grouping of products.", +"type": "string" +}, +"customerCountryCode": { +"description": "Code of the country where the customer is located at the time of the event. Represented in the ISO 3166 format. If the customer country cannot be determined, a special 'ZZ' code is returned.", +"type": "string" +}, +"date": { +"$ref": "Date", +"description": "Date in the merchant timezone to which metrics apply." +}, +"offerId": { +"description": "Merchant-provided id of the product.", +"type": "string" +}, +"productTypeL1": { +"description": "[Product type (1st level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", +"type": "string" +}, +"productTypeL2": { +"description": "[Product type (2nd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", +"type": "string" +}, +"productTypeL3": { +"description": "[Product type (3rd level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", +"type": "string" +}, +"productTypeL4": { +"description": "[Product type (4th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", +"type": "string" +}, +"productTypeL5": { +"description": "[Product type (5th level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) in merchant's own product taxonomy.", +"type": "string" +}, +"program": { +"description": "Program to which metrics apply, for example, Free Product Listing.", +"enum": [ +"PROGRAM_UNSPECIFIED", +"SHOPPING_ADS", +"FREE_PRODUCT_LISTING", +"FREE_LOCAL_PRODUCT_LISTING", +"BUY_ON_GOOGLE_LISTING" +], +"enumDescriptions": [ +"Not specified.", +"Shopping Ads.", +"Free Product Listing.", +"Free Local Product Listing.", +"*Deprecated*: This value is no longer supported. Retrieving all metrics for the `BUY_ON_GOOGLE_LISTING` program returns 0 starting from May 2024. Buy on Google Listing." +], +"type": "string" +}, +"title": { +"description": "Title of the product.", +"type": "string" +}, +"week": { +"$ref": "Date", +"description": "First day of the week (Monday) of the metrics date in the merchant timezone." +} +}, +"type": "object" +}, +"Service": { +"id": "Service", +"properties": { +"active": { +"description": "A boolean exposing the active status of the shipping service. Required.", +"type": "boolean" +}, +"currency": { +"description": "The CLDR code of the currency to which this service applies. Must match that of the prices in rate groups.", +"type": "string" +}, +"deliveryCountry": { +"description": "The CLDR territory code of the country to which the service applies. Required.", +"type": "string" +}, +"deliveryTime": { +"$ref": "DeliveryTime", +"description": "Time spent in various aspects from order to the delivery of the product. Required." +}, +"eligibility": { +"description": "Eligibility for this service. Acceptable values are: - \"`All scenarios`\" - \"`All scenarios except Shopping Actions`\" - \"`Shopping Actions`\" ", +"type": "string" +}, +"minimumOrderValue": { +"$ref": "Price", +"description": "Minimum order value for this service. If set, indicates that customers will have to spend at least this amount. All prices within a service must have the same currency. Cannot be set together with minimum_order_value_table." +}, +"minimumOrderValueTable": { +"$ref": "MinimumOrderValueTable", +"description": "Table of per store minimum order values for the pickup fulfillment type. Cannot be set together with minimum_order_value." +}, +"name": { +"description": "Free-form name of the service. Must be unique within target account. Required.", +"type": "string" +}, +"pickupService": { +"$ref": "PickupCarrierService", +"description": "The carrier-service pair delivering items to collection points. The list of supported pickup services can be retrieved through the `getSupportedPickupServices` method. Required if and only if the service delivery type is `pickup`." +}, +"rateGroups": { +"description": "Shipping rate group definitions. Only the last one is allowed to have an empty `applicableShippingLabels`, which means \"everything else\". The other `applicableShippingLabels` must not overlap.", +"items": { +"$ref": "RateGroup" +}, +"type": "array" +}, +"shipmentType": { +"description": "Type of locations this service ships orders to. Acceptable values are: - \"`delivery`\" - \"`pickup` (deprecated)\" - \"`local_delivery`\" - \"`collection_point`\" ", +"type": "string" +}, +"storeConfig": { +"$ref": "ServiceStoreConfig", +"description": "A list of stores your products are delivered from. This is only available for the local delivery shipment type." +} +}, +"type": "object" +}, +"ServiceStoreConfig": { +"description": "Stores that provide local delivery. Only valid with local delivery fulfillment.", +"id": "ServiceStoreConfig", +"properties": { +"cutoffConfig": { +"$ref": "ServiceStoreConfigCutoffConfig", +"description": "Time local delivery ends for the day. This can be either `local_cutoff_time` or `store_close_offset_hours`, if both are provided an error is thrown." +}, +"serviceRadius": { +"$ref": "Distance", +"description": "Maximum delivery radius. Only needed for local delivery fulfillment type." +}, +"storeCodes": { +"description": "A list of store codes that provide local delivery. If empty, then `store_service_type` must be `all_stores`, or an error is thrown. If not empty, then `store_service_type` must be `selected_stores`, or an error is thrown.", +"items": { +"type": "string" +}, +"type": "array" +}, +"storeServiceType": { +"description": "Indicates whether all stores listed by this merchant provide local delivery or not. Acceptable values are `all stores` and `selected stores`", +"type": "string" +} +}, +"type": "object" +}, +"ServiceStoreConfigCutoffConfig": { +"description": "Time local delivery ends for the day based on the local timezone of the store. `local_cutoff_time` and `store_close_offset_hours` are mutually exclusive.", +"id": "ServiceStoreConfigCutoffConfig", +"properties": { +"localCutoffTime": { +"$ref": "ServiceStoreConfigCutoffConfigLocalCutoffTime", +"description": "Time in hours and minutes in the local timezone when local delivery ends." +}, +"noDeliveryPostCutoff": { +"description": "Merchants can opt-out of showing n+1 day local delivery when they have a shipping service configured to n day local delivery. For example, if the shipping service defines same-day delivery, and it's past the cut-off, setting this field to `true` results in the calculated shipping service rate returning `NO_DELIVERY_POST_CUTOFF`. In the same example, setting this field to `false` results in the calculated shipping time being one day. This is only for local delivery.", +"type": "boolean" +}, +"storeCloseOffsetHours": { +"description": "Represents cutoff time as the number of hours before store closing. Mutually exclusive with other fields (hour and minute).", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ServiceStoreConfigCutoffConfigLocalCutoffTime": { +"description": "Time in hours and minutes in the local timezone when local delivery ends.", +"id": "ServiceStoreConfigCutoffConfigLocalCutoffTime", +"properties": { +"hour": { +"description": "Hour local delivery orders must be placed by to process the same day.", +"format": "int64", +"type": "string" +}, +"minute": { +"description": "Minute local delivery orders must be placed by to process the same day.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ShippingSettings": { +"description": "The merchant account's shipping settings. All methods except getsupportedcarriers and getsupportedholidays require the admin role.", +"id": "ShippingSettings", +"properties": { +"accountId": { +"description": "The ID of the account to which these account shipping settings belong. Ignored upon update, always present in get request responses.", +"format": "uint64", +"type": "string" +}, +"postalCodeGroups": { +"description": "A list of postal code groups that can be referred to in `services`. Optional.", +"items": { +"$ref": "PostalCodeGroup" +}, +"type": "array" +}, +"services": { +"description": "The target account's list of services. Optional.", +"items": { +"$ref": "Service" +}, +"type": "array" +}, +"warehouses": { +"description": "Optional. A list of warehouses which can be referred to in `services`.", +"items": { +"$ref": "Warehouse" +}, +"type": "array" +} +}, +"type": "object" +}, +"ShippingsettingsCustomBatchRequest": { +"id": "ShippingsettingsCustomBatchRequest", +"properties": { +"entries": { +"description": "The request entries to be processed in the batch.", +"items": { +"$ref": "ShippingsettingsCustomBatchRequestEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"ShippingsettingsCustomBatchRequestEntry": { +"description": "A batch entry encoding a single non-batch shippingsettings request.", +"id": "ShippingsettingsCustomBatchRequestEntry", +"properties": { +"accountId": { +"description": "The ID of the account for which to get/update account shipping settings.", +"format": "uint64", +"type": "string" +}, +"batchId": { +"description": "An entry ID, unique within the batch request.", +"format": "uint32", +"type": "integer" +}, +"merchantId": { +"description": "The ID of the managing account.", +"format": "uint64", +"type": "string" +}, +"method": { +"description": "The method of the batch entry. Acceptable values are: - \"`get`\" - \"`update`\" ", +"type": "string" +}, +"shippingSettings": { +"$ref": "ShippingSettings", +"description": "The account shipping settings to update. Only defined if the method is `update`." +} +}, +"type": "object" +}, +"ShippingsettingsCustomBatchResponse": { +"id": "ShippingsettingsCustomBatchResponse", +"properties": { +"entries": { +"description": "The result of the execution of the batch requests.", +"items": { +"$ref": "ShippingsettingsCustomBatchResponseEntry" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#shippingsettingsCustomBatchResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"ShippingsettingsCustomBatchResponseEntry": { +"description": "A batch entry encoding a single non-batch shipping settings response.", +"id": "ShippingsettingsCustomBatchResponseEntry", +"properties": { +"batchId": { +"description": "The ID of the request entry to which this entry responds.", +"format": "uint32", +"type": "integer" +}, +"errors": { +"$ref": "Errors", +"description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#shippingsettingsCustomBatchResponseEntry`\"", +"type": "string" +}, +"shippingSettings": { +"$ref": "ShippingSettings", +"description": "The retrieved or updated account shipping settings." +} +}, +"type": "object" +}, +"ShippingsettingsGetSupportedCarriersResponse": { +"id": "ShippingsettingsGetSupportedCarriersResponse", +"properties": { +"carriers": { +"description": "A list of supported carriers. May be empty.", +"items": { +"$ref": "CarriersCarrier" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#shippingsettingsGetSupportedCarriersResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"ShippingsettingsGetSupportedHolidaysResponse": { +"id": "ShippingsettingsGetSupportedHolidaysResponse", +"properties": { +"holidays": { +"description": "A list of holidays applicable for delivery guarantees. May be empty.", +"items": { +"$ref": "HolidaysHoliday" +}, +"type": "array" +}, +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#shippingsettingsGetSupportedHolidaysResponse`\".", +"type": "string" +} +}, +"type": "object" +}, +"ShippingsettingsGetSupportedPickupServicesResponse": { +"id": "ShippingsettingsGetSupportedPickupServicesResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#shippingsettingsGetSupportedPickupServicesResponse`\".", +"type": "string" +}, +"pickupServices": { +"description": "A list of supported pickup services. May be empty.", +"items": { +"$ref": "PickupServicesPickupService" +}, +"type": "array" +} +}, +"type": "object" +}, +"ShippingsettingsListResponse": { +"id": "ShippingsettingsListResponse", +"properties": { +"kind": { +"description": "Identifies what kind of resource this is. Value: the fixed string \"`content#shippingsettingsListResponse`\".", +"type": "string" +}, +"nextPageToken": { +"description": "The token for the retrieval of the next page of shipping settings.", +"type": "string" +}, +"resources": { +"items": { +"$ref": "ShippingSettings" +}, +"type": "array" +} +}, +"type": "object" +}, +"ShoppingAdsProgramStatus": { +"description": "Response message for GetShoppingAdsProgramStatus.", +"id": "ShoppingAdsProgramStatus", +"properties": { +"globalState": { +"description": "State of the program. `ENABLED` if there are offers for at least one region.", +"enum": [ +"PROGRAM_STATE_UNSPECIFIED", +"NOT_ENABLED", +"NO_OFFERS_UPLOADED", +"ENABLED" +], +"enumDescriptions": [ +"State is unknown.", +"Program is not enabled for any country.", +"No products have been uploaded for any region. Upload products to Merchant Center.", +"Program is enabled and offers are uploaded for at least one country." +], +"type": "string" +}, +"regionStatuses": { +"description": "Status of the program in each region. Regions with the same status and review eligibility are grouped together in `regionCodes`.", +"items": { +"$ref": "ShoppingAdsProgramStatusRegionStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"ShoppingAdsProgramStatusRegionStatus": { +"description": "Status of program and region.", +"id": "ShoppingAdsProgramStatusRegionStatus", +"properties": { +"disapprovalDate": { +"description": "Date by which eligibilityStatus will go from `WARNING` to `DISAPPROVED`. Only visible when your eligibilityStatus is WARNING. In [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DD`.", +"type": "string" +}, +"eligibilityStatus": { +"description": "Eligibility status of the Shopping Ads program.", +"enum": [ +"STATE_UNSPECIFIED", +"APPROVED", +"DISAPPROVED", +"WARNING", +"UNDER_REVIEW", +"PENDING_REVIEW", +"ONBOARDING" +], +"enumDescriptions": [ +"State is not known.", +"If the account has no issues and review is completed successfully.", +"There are one or more issues that needs to be resolved for account to be active for the program. Detailed list of account issues are available in [accountstatuses](https://developers.google.com/shopping-content/reference/rest/v2.1/accountstatuses) API.", +"If account has issues but offers are servable. Some of the issue can make account DISAPPROVED after a certain deadline.", +"Account is under review.", +"Account is waiting for review to start.", +"Program is currently onboarding. Upload valid offers to complete onboarding." +], +"type": "string" +}, +"onboardingIssues": { +"description": "Issues that must be fixed to be eligible for review.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCodes": { +"description": "The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) codes for all the regions with the same `eligibilityStatus` and `reviewEligibility`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"reviewEligibilityStatus": { +"description": "If a program is eligible for review in a specific region. Only visible if `eligibilityStatus` is `DISAPPROVED`.", +"enum": [ +"REVIEW_ELIGIBILITY_UNSPECIFIED", +"ELIGIBLE", +"INELIGIBLE" +], +"enumDescriptions": [ +"Review eligibility state is unknown.", +"Account is eligible for review for a specified region code.", +"Account is not eligible for review for a specified region code." +], +"type": "string" +}, +"reviewIneligibilityReason": { +"description": "Review ineligibility reason if account is not eligible for review.", +"enum": [ +"REVIEW_INELIGIBILITY_REASON_UNSPECIFIED", +"ONBOARDING_ISSUES", +"NOT_ENOUGH_OFFERS", +"IN_COOLDOWN_PERIOD", +"ALREADY_UNDER_REVIEW", +"NO_REVIEW_REQUIRED", +"WILL_BE_REVIEWED_AUTOMATICALLY", +"IS_RETIRED", +"ALREADY_REVIEWED" +], +"enumDescriptions": [ +"Requesting a review from Google is not possible.", +"All onboarding issues needs to be fixed.", +"Not enough offers uploaded for this country.", +"Cooldown period applies. Wait until cooldown period ends.", +"Account is already under review.", +"No issues available to review.", +"Account will be automatically reviewed at the end of the grace period.", +"Account is retired. Should not appear in MC.", +"Account has already been reviewed. You can't request further reviews." +], +"type": "string" +}, +"reviewIneligibilityReasonDescription": { +"description": "Reason a program in a specific region isn\u2019t eligible for review. Only visible if `reviewEligibilityStatus` is `INELIGIBLE`.", +"type": "string" +}, +"reviewIneligibilityReasonDetails": { +"$ref": "ShoppingAdsProgramStatusReviewIneligibilityReasonDetails", +"description": "Additional information for ineligibility. If `reviewIneligibilityReason` is `IN_COOLDOWN_PERIOD`, a timestamp for the end of the cooldown period is provided." +}, +"reviewIssues": { +"description": "Issues evaluated in the review process. Fix all issues before requesting a review.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ShoppingAdsProgramStatusReviewIneligibilityReasonDetails": { +"description": "Additional details for review ineligibility reasons.", +"id": "ShoppingAdsProgramStatusReviewIneligibilityReasonDetails", +"properties": { +"cooldownTime": { +"description": "This timestamp represents end of cooldown period for review ineligbility reason `IN_COOLDOWN_PERIOD`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Table": { +"id": "Table", +"properties": { +"columnHeaders": { +"$ref": "Headers", +"description": "Headers of the table's columns. Optional: if not set then the table has only one dimension." +}, +"name": { +"description": "Name of the table. Required for subtables, ignored for the main table.", +"type": "string" +}, +"rowHeaders": { +"$ref": "Headers", +"description": "Headers of the table's rows. Required." +}, +"rows": { +"description": "The list of rows that constitute the table. Must have the same length as `rowHeaders`. Required.", +"items": { +"$ref": "Row" +}, +"type": "array" +} +}, +"type": "object" +}, +"TextWithTooltip": { +"description": "Block of text that may contain a tooltip with more information.", +"id": "TextWithTooltip", +"properties": { +"simpleTooltipValue": { +"description": "Value of the tooltip as a simple text.", +"type": "string" +}, +"simpleValue": { +"description": "Value of the message as a simple text.", +"type": "string" +}, +"tooltipIconStyle": { +"description": "The suggested type of an icon for tooltip, if a tooltip is present.", +"enum": [ +"TOOLTIP_ICON_STYLE_UNSPECIFIED", +"INFO", +"QUESTION" +], +"enumDescriptions": [ +"Default value. Will never be provided by the API.", +"Used when the tooltip adds additional information to the context, the 'i' can be used as an icon.", +"Used when the tooltip shows helpful information, the '?' can be used as an icon." +], +"type": "string" +} +}, +"type": "object" +}, +"TimePeriod": { +"description": "A message that represents a time period.", +"id": "TimePeriod", +"properties": { +"endTime": { +"description": "The ending timestamp.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The starting timestamp.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"TimeZone": { +"description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", +"id": "TimeZone", +"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" +} +}, +"type": "object" +}, +"TopicTrends": { +"description": "Topic trends fields requested by the merchant in the query. Field values are only set if the merchant queries `TopicTrendsView`. Forecast data can be queried up to 13 weeks by passing a future date in the `date` field. Historical data is measured daily, and forecasted data is projected weekly. All data points are normalized based on the highest data points returned in the response. If you make separate queries with different date ranges, you might see different values for the same date in each response. The recommended way to get a trend score of a topic is `last7_days_search_interest / last{$day}_days_search_interest - 1`. You can view trends for up to eight topics at a time.", +"id": "TopicTrends", +"properties": { +"customerCountryCode": { +"description": "Country trends are calculated for. Must be a two-letter country code (ISO 3166-1-alpha-2 code), for example, `\u201cUS\u201d`.", +"type": "string" +}, +"date": { +"$ref": "Date", +"description": "Date the trend score was retrieved." +}, +"last120DaysSearchInterest": { +"description": "Search interest in the last 120 days, with the same normalization as search_interest. This field is only present for a past date.", +"format": "double", +"type": "number" +}, +"last30DaysSearchInterest": { +"description": "Search interest in the last 30 days, with the same normalization as search_interest. This field is only present for a past date.", +"format": "double", +"type": "number" +}, +"last7DaysSearchInterest": { +"description": "Search interest in the last 7 days, with the same normalization as search_interest. This field is only present for a past date.", +"format": "double", +"type": "number" +}, +"last90DaysSearchInterest": { +"description": "Search interest in the last 90 days, with the same normalization as search_interest. This field is only present for a past date.", +"format": "double", +"type": "number" +}, +"next7DaysSearchInterest": { +"description": "Estimated search interest in the next 7 days, with the same normalization as search_interest. This field is only present for a future date.", +"format": "double", +"type": "number" +}, +"searchInterest": { +"description": "Daily search interest, normalized to the time and country to make comparisons easier, with 100 representing peak popularity (from 0 to 100) for the requested time period and location.", +"format": "double", +"type": "number" +}, +"topic": { +"description": "Google-provided topic trends are calculated for. Only top eight topics are returned. Topic is what shoppers are searching for on Google, grouped by the same concept.", +"type": "string" +} +}, +"type": "object" +}, +"TransitTable": { +"id": "TransitTable", +"properties": { +"postalCodeGroupNames": { +"description": "A list of postal group names. The last value can be `\"all other locations\"`. Example: `[\"zone 1\", \"zone 2\", \"all other locations\"]`. The referred postal code groups must match the delivery country of the service.", +"items": { +"type": "string" +}, +"type": "array" +}, +"rows": { +"items": { +"$ref": "TransitTableTransitTimeRow" +}, +"type": "array" +}, +"transitTimeLabels": { +"description": "A list of transit time labels. The last value can be `\"all other labels\"`. Example: `[\"food\", \"electronics\", \"all other labels\"]`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TransitTableTransitTimeRow": { +"id": "TransitTableTransitTimeRow", +"properties": { +"values": { +"items": { +"$ref": "TransitTableTransitTimeRowTransitTimeValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"TransitTableTransitTimeRowTransitTimeValue": { +"id": "TransitTableTransitTimeRowTransitTimeValue", +"properties": { +"maxTransitTimeInDays": { +"description": "Must be greater than or equal to `minTransitTimeInDays`.", +"format": "uint32", +"type": "integer" +}, +"minTransitTimeInDays": { +"description": "Transit time range (min-max) in business days. 0 means same day delivery, 1 means next day delivery.", +"format": "uint32", +"type": "integer" +} +}, +"type": "object" +}, +"TriggerActionPayload": { +"description": "The payload for the triggered action.", +"id": "TriggerActionPayload", +"properties": { +"actionContext": { +"description": "Required. The context from the selected action. The value is obtained from rendered issues and needs to be sent back to identify the action that is being triggered.", +"type": "string" +}, +"actionInput": { +"$ref": "ActionInput", +"description": "Required. Input provided by the merchant." +} +}, +"type": "object" +}, +"TriggerActionResponse": { +"description": "Response informing about the started action.", +"id": "TriggerActionResponse", +"properties": { +"message": { +"description": "The message for merchant.", +"type": "string" +} +}, +"type": "object" +}, +"UndeleteConversionSourceRequest": { +"description": "Request message for the UndeleteConversionSource method.", +"id": "UndeleteConversionSourceRequest", +"properties": {}, +"type": "object" +}, +"UrlSettings": { +"description": "Specifications related to the `Checkout` URL. The `UriTemplate` is of the form `https://www.mystore.com/checkout?item_id={id}` where `{id}` will be automatically replaced with data from the merchant account with this attribute [offer_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.offer_id)", +"id": "UrlSettings", +"properties": { +"cartUriTemplate": { +"description": "URL template when the placeholders are expanded will redirect the buyer to the cart page on the merchant website with the selected item in cart.", +"type": "string" +}, +"checkoutUriTemplate": { +"description": "URL template when the placeholders are expanded will redirect the buyer to the merchant checkout page with the item in the cart.", +"type": "string" +} +}, +"type": "object" +}, +"Value": { +"description": "The single value of a rate group or the value of a rate group table's cell. Exactly one of `noShipping`, `flatRate`, `pricePercentage`, `carrierRateName`, `subtableName` must be set.", +"id": "Value", +"properties": { +"carrierRateName": { +"description": "The name of a carrier rate referring to a carrier rate defined in the same rate group. Can only be set if all other fields are not set.", +"type": "string" +}, +"flatRate": { +"$ref": "Price", +"description": "A flat rate. Can only be set if all other fields are not set." +}, +"noShipping": { +"description": "If true, then the product can't ship. Must be true when set, can only be set if all other fields are not set.", +"type": "boolean" +}, +"pricePercentage": { +"description": "A percentage of the price represented as a number in decimal notation (for example, `\"5.4\"`). Can only be set if all other fields are not set.", +"type": "string" +}, +"subtableName": { +"description": "The name of a subtable. Can only be set in table cells (not for single values), and only if all other fields are not set.", +"type": "string" +} +}, +"type": "object" +}, +"VerifyPhoneNumberRequest": { +"description": "Request message for the VerifyPhoneNumber method.", +"id": "VerifyPhoneNumberRequest", +"properties": { +"phoneVerificationMethod": { +"description": "Verification method used to receive verification code.", +"enum": [ +"PHONE_VERIFICATION_METHOD_UNSPECIFIED", +"SMS", +"PHONE_CALL" +], +"enumDescriptions": [ +"Unknown method.", +"Receive verification code by SMS.", +"Receive verification code by phone call." +], +"type": "string" +}, +"verificationCode": { +"description": "The verification code that was sent to the phone number for validation.", +"type": "string" +}, +"verificationId": { +"description": "The verification ID returned by `requestphoneverification`.", +"type": "string" +} +}, +"type": "object" +}, +"VerifyPhoneNumberResponse": { +"description": "Response message for the VerifyPhoneNumber method.", +"id": "VerifyPhoneNumberResponse", +"properties": { +"verifiedPhoneNumber": { +"description": "Verified phone number if verification is successful. This phone number can only be replaced by another verified phone number.", +"type": "string" +} +}, +"type": "object" +}, +"Warehouse": { +"description": "A fulfillment warehouse, which stores and handles inventory.", +"id": "Warehouse", +"properties": { +"businessDayConfig": { +"$ref": "BusinessDayConfig", +"description": "Business days of the warehouse. If not set, will be Monday to Friday by default." +}, +"cutoffTime": { +"$ref": "WarehouseCutoffTime", +"description": "Required. The latest time of day that an order can be accepted and begin processing. Later orders will be processed in the next day. The time is based on the warehouse postal code." +}, +"handlingDays": { +"description": "Required. The number of days it takes for this warehouse to pack up and ship an item. This is on the warehouse level, but can be overridden on the offer level based on the attributes of an item.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Required. The name of the warehouse. Must be unique within account.", +"type": "string" +}, +"shippingAddress": { +"$ref": "Address", +"description": "Required. Shipping address of the warehouse." +} +}, +"type": "object" +}, +"WarehouseBasedDeliveryTime": { +"id": "WarehouseBasedDeliveryTime", +"properties": { +"carrier": { +"description": "Required. Carrier, such as `\"UPS\"` or `\"Fedex\"`. The list of supported carriers can be retrieved through the `listSupportedCarriers` method.", +"type": "string" +}, +"carrierService": { +"description": "Required. Carrier service, such as `\"ground\"` or `\"2 days\"`. The list of supported services for a carrier can be retrieved through the `listSupportedCarriers` method. The name of the service must be in the eddSupportedServices list.", +"type": "string" +}, +"originAdministrativeArea": { +"description": "Shipping origin's state.", +"type": "string" +}, +"originCity": { +"description": "Shipping origin's city.", +"type": "string" +}, +"originCountry": { +"description": "Shipping origin's country represented as a [CLDR territory code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml).", +"type": "string" +}, +"originPostalCode": { +"description": "Shipping origin.", +"type": "string" +}, +"originStreetAddress": { +"description": "Shipping origin's street address.", +"type": "string" +}, +"warehouseName": { +"description": "The name of the warehouse. Warehouse name need to be matched with name. If warehouseName is set, the below fields will be ignored. The warehouse info will be read from warehouse.", +"type": "string" +} +}, +"type": "object" +}, +"WarehouseCutoffTime": { +"id": "WarehouseCutoffTime", +"properties": { +"hour": { +"description": "Required. Hour (24-hour clock) of the cutoff time until which an order has to be placed to be processed in the same day by the warehouse. Hour is based on the timezone of warehouse.", +"format": "int32", +"type": "integer" +}, +"minute": { +"description": "Required. Minute of the cutoff time until which an order has to be placed to be processed in the same day by the warehouse. Minute is based on the timezone of warehouse.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Weight": { +"id": "Weight", +"properties": { +"unit": { +"description": "Required. The weight unit. Acceptable values are: - \"`kg`\" - \"`lb`\" ", +"type": "string" +}, +"value": { +"description": "Required. The weight represented as a number. The weight can have a maximum precision of four decimal places.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "content/v2.1/", +"title": "Content API for Shopping", +"version": "v2.1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataflow.v1b3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataflow.v1b3.json new file mode 100644 index 0000000000000000000000000000000000000000..e3b8e32cc383ba7e183e6425707fc656ca5adc48 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataflow.v1b3.json @@ -0,0 +1,8076 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/compute": { +"description": "View and manage your Google Compute Engine resources" +} +} +} +}, +"basePath": "", +"baseUrl": "https://dataflow.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Dataflow", +"description": "Manages Google Cloud Dataflow projects on Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/dataflow", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataflow.us-west8.rep.googleapis.com/", +"location": "us-west8" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "dataflow:v1b3", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://dataflow.mtls.googleapis.com/", +"name": "dataflow", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"methods": { +"deleteSnapshots": { +"description": "Deletes a snapshot.", +"flatPath": "v1b3/projects/{projectId}/snapshots", +"httpMethod": "DELETE", +"id": "dataflow.projects.deleteSnapshots", +"parameterOrder": [ +"projectId" +], +"parameters": { +"location": { +"description": "The location that contains this snapshot.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the snapshot belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"snapshotId": { +"description": "The ID of the snapshot.", +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/snapshots", +"response": { +"$ref": "DeleteSnapshotResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"workerMessages": { +"description": "Send a worker_message to the service.", +"flatPath": "v1b3/projects/{projectId}/WorkerMessages", +"httpMethod": "POST", +"id": "dataflow.projects.workerMessages", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "The project to send the WorkerMessages to.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/WorkerMessages", +"request": { +"$ref": "SendWorkerMessagesRequest" +}, +"response": { +"$ref": "SendWorkerMessagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +}, +"resources": { +"jobs": { +"methods": { +"aggregated": { +"description": "List the jobs of a project across all regions. **Note:** This method doesn't support filtering the list of jobs by name.", +"flatPath": "v1b3/projects/{projectId}/jobs:aggregated", +"httpMethod": "GET", +"id": "dataflow.projects.jobs.aggregated", +"parameterOrder": [ +"projectId" +], +"parameters": { +"filter": { +"description": "The kind of filter to use.", +"enum": [ +"UNKNOWN", +"ALL", +"TERMINATED", +"ACTIVE" +], +"enumDescriptions": [ +"The filter isn't specified, or is unknown. This returns all jobs ordered on descending `JobUuid`.", +"Returns all running jobs first ordered on creation timestamp, then returns all terminated jobs ordered on the termination timestamp.", +"Filters the jobs that have a terminated state, ordered on the termination timestamp. Example terminated states: `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.", +"Filters the jobs that are running ordered on the creation timestamp." +], +"location": "query", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Optional. The job name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Set this to the 'next_page_token' field of a previous response to request additional results in a long list.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "The project which owns the jobs.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"deprecated": true, +"description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.", +"enum": [ +"JOB_VIEW_UNKNOWN", +"JOB_VIEW_SUMMARY", +"JOB_VIEW_ALL", +"JOB_VIEW_DESCRIPTION" +], +"enumDescriptions": [ +"The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", +"Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", +"Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", +"Request summary info and limited job description data for steps, labels and environment." +], +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs:aggregated", +"response": { +"$ref": "ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"create": { +"description": "Creates a Cloud Dataflow job. To create a job, we recommend using `projects.locations.jobs.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.create` is not recommended, as your job will always start in `us-central1`. Do not enter confidential information when you supply string values using the API.", +"flatPath": "v1b3/projects/{projectId}/jobs", +"httpMethod": "POST", +"id": "dataflow.projects.jobs.create", +"parameterOrder": [ +"projectId" +], +"parameters": { +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"replaceJobId": { +"description": "Deprecated. This field is now in the Job message.", +"location": "query", +"type": "string" +}, +"view": { +"description": "The level of information requested in response.", +"enum": [ +"JOB_VIEW_UNKNOWN", +"JOB_VIEW_SUMMARY", +"JOB_VIEW_ALL", +"JOB_VIEW_DESCRIPTION" +], +"enumDescriptions": [ +"The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", +"Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", +"Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", +"Request summary info and limited job description data for steps, labels and environment." +], +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"get": { +"description": "Gets the state of the specified Cloud Dataflow job. To get the state of a job, we recommend using `projects.locations.jobs.get` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.get` is not recommended, as you can only get the state of jobs that are running in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/jobs/{jobId}", +"httpMethod": "GET", +"id": "dataflow.projects.jobs.get", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job ID.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "The level of information requested in response.", +"enum": [ +"JOB_VIEW_UNKNOWN", +"JOB_VIEW_SUMMARY", +"JOB_VIEW_ALL", +"JOB_VIEW_DESCRIPTION" +], +"enumDescriptions": [ +"The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", +"Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", +"Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", +"Request summary info and limited job description data for steps, labels and environment." +], +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs/{jobId}", +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"getMetrics": { +"description": "Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.getMetrics` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.getMetrics` is not recommended, as you can only request the status of jobs that are running in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/metrics", +"httpMethod": "GET", +"id": "dataflow.projects.jobs.getMetrics", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job to get metrics for.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "A project id.", +"location": "path", +"required": true, +"type": "string" +}, +"startTime": { +"description": "Return only metric data that has changed since this time. Default is to return all information about all metrics for the job.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs/{jobId}/metrics", +"response": { +"$ref": "JobMetrics" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"list": { +"description": "List the jobs of a project. To list the jobs of a project in a region, we recommend using `projects.locations.jobs.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use `projects.jobs.aggregated`. Using `projects.jobs.list` is not recommended, because you can only get the list of jobs that are running in `us-central1`. `projects.locations.jobs.list` and `projects.jobs.list` support filtering the list of jobs by name. Filtering by name isn't supported by `projects.jobs.aggregated`.", +"flatPath": "v1b3/projects/{projectId}/jobs", +"httpMethod": "GET", +"id": "dataflow.projects.jobs.list", +"parameterOrder": [ +"projectId" +], +"parameters": { +"filter": { +"description": "The kind of filter to use.", +"enum": [ +"UNKNOWN", +"ALL", +"TERMINATED", +"ACTIVE" +], +"enumDescriptions": [ +"The filter isn't specified, or is unknown. This returns all jobs ordered on descending `JobUuid`.", +"Returns all running jobs first ordered on creation timestamp, then returns all terminated jobs ordered on the termination timestamp.", +"Filters the jobs that have a terminated state, ordered on the termination timestamp. Example terminated states: `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.", +"Filters the jobs that are running ordered on the creation timestamp." +], +"location": "query", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Optional. The job name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Set this to the 'next_page_token' field of a previous response to request additional results in a long list.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "The project which owns the jobs.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"deprecated": true, +"description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.", +"enum": [ +"JOB_VIEW_UNKNOWN", +"JOB_VIEW_SUMMARY", +"JOB_VIEW_ALL", +"JOB_VIEW_DESCRIPTION" +], +"enumDescriptions": [ +"The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", +"Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", +"Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", +"Request summary info and limited job description data for steps, labels and environment." +], +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs", +"response": { +"$ref": "ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"snapshot": { +"description": "Snapshot the state of a streaming job.", +"flatPath": "v1b3/projects/{projectId}/jobs/{jobId}:snapshot", +"httpMethod": "POST", +"id": "dataflow.projects.jobs.snapshot", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job to be snapshotted.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project which owns the job to be snapshotted.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs/{jobId}:snapshot", +"request": { +"$ref": "SnapshotJobRequest" +}, +"response": { +"$ref": "Snapshot" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"update": { +"description": "Updates the state of an existing Cloud Dataflow job. To update the state of an existing job, we recommend using `projects.locations.jobs.update` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.update` is not recommended, as you can only update the state of jobs that are running in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/jobs/{jobId}", +"httpMethod": "PUT", +"id": "dataflow.projects.jobs.update", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job ID.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to update relative to Job. If empty, only RequestedJobState will be considered for update. If the FieldMask is not empty and RequestedJobState is none/empty, The fields specified in the update mask will be the only ones considered for update. If both RequestedJobState and update_mask are specified, an error will be returned as we cannot update both state and mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs/{jobId}", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +}, +"resources": { +"debug": { +"methods": { +"getConfig": { +"description": "Get encoded debug configuration for component. Not cacheable.", +"flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig", +"httpMethod": "POST", +"id": "dataflow.projects.jobs.debug.getConfig", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job id.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project id.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig", +"request": { +"$ref": "GetDebugConfigRequest" +}, +"response": { +"$ref": "GetDebugConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"sendCapture": { +"description": "Send encoded debug capture data for component.", +"flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture", +"httpMethod": "POST", +"id": "dataflow.projects.jobs.debug.sendCapture", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job id.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project id.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture", +"request": { +"$ref": "SendDebugCaptureRequest" +}, +"response": { +"$ref": "SendDebugCaptureResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +}, +"messages": { +"methods": { +"list": { +"description": "Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.messages.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.messages.list` is not recommended, as you can only request the status of jobs that are running in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/messages", +"httpMethod": "GET", +"id": "dataflow.projects.jobs.messages.list", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"endTime": { +"description": "Return only messages with timestamps < end_time. The default is now (i.e. return up to the latest messages available).", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"jobId": { +"description": "The job to get messages about.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"location": "query", +"type": "string" +}, +"minimumImportance": { +"description": "Filter to only get messages with importance >= level", +"enum": [ +"JOB_MESSAGE_IMPORTANCE_UNKNOWN", +"JOB_MESSAGE_DEBUG", +"JOB_MESSAGE_DETAILED", +"JOB_MESSAGE_BASIC", +"JOB_MESSAGE_WARNING", +"JOB_MESSAGE_ERROR" +], +"enumDescriptions": [ +"The message importance isn't specified, or is unknown.", +"The message is at the 'debug' level: typically only useful for software engineers working on the code the job is running. Typically, Dataflow pipeline runners do not display log messages at this level by default.", +"The message is at the 'detailed' level: somewhat verbose, but potentially useful to users. Typically, Dataflow pipeline runners do not display log messages at this level by default. These messages are displayed by default in the Dataflow monitoring UI.", +"The message is at the 'basic' level: useful for keeping track of the execution of a Dataflow pipeline. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.", +"The message is at the 'warning' level: indicating a condition pertaining to a job which may require human intervention. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.", +"The message is at the 'error' level: indicating a condition preventing a job from succeeding. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI." +], +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "If specified, determines the maximum number of messages to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "A project id.", +"location": "path", +"required": true, +"type": "string" +}, +"startTime": { +"description": "If specified, return only messages with timestamps >= start_time. The default is the job creation time (i.e. beginning of messages).", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs/{jobId}/messages", +"response": { +"$ref": "ListJobMessagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +}, +"workItems": { +"methods": { +"lease": { +"description": "Leases a dataflow WorkItem to run.", +"flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease", +"httpMethod": "POST", +"id": "dataflow.projects.jobs.workItems.lease", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "Identifies the workflow job this worker belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Identifies the project this worker belongs to.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease", +"request": { +"$ref": "LeaseWorkItemRequest" +}, +"response": { +"$ref": "LeaseWorkItemResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"reportStatus": { +"description": "Reports the status of dataflow WorkItems leased by a worker.", +"flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus", +"httpMethod": "POST", +"id": "dataflow.projects.jobs.workItems.reportStatus", +"parameterOrder": [ +"projectId", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job which the WorkItem is part of.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project which owns the WorkItem's job.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus", +"request": { +"$ref": "ReportWorkItemStatusRequest" +}, +"response": { +"$ref": "ReportWorkItemStatusResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +} +} +}, +"locations": { +"methods": { +"workerMessages": { +"description": "Send a worker_message to the service.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages", +"httpMethod": "POST", +"id": "dataflow.projects.locations.workerMessages", +"parameterOrder": [ +"projectId", +"location" +], +"parameters": { +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project to send the WorkerMessages to.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages", +"request": { +"$ref": "SendWorkerMessagesRequest" +}, +"response": { +"$ref": "SendWorkerMessagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +}, +"resources": { +"flexTemplates": { +"methods": { +"launch": { +"description": "Launch a job with a FlexTemplate.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/flexTemplates:launch", +"httpMethod": "POST", +"id": "dataflow.projects.locations.flexTemplates.launch", +"parameterOrder": [ +"projectId", +"location" +], +"parameters": { +"location": { +"description": "Required. The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request. E.g., us-central1, us-west1.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/flexTemplates:launch", +"request": { +"$ref": "LaunchFlexTemplateRequest" +}, +"response": { +"$ref": "LaunchFlexTemplateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +}, +"jobs": { +"methods": { +"create": { +"description": "Creates a Cloud Dataflow job. To create a job, we recommend using `projects.locations.jobs.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.create` is not recommended, as your job will always start in `us-central1`. Do not enter confidential information when you supply string values using the API.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs", +"httpMethod": "POST", +"id": "dataflow.projects.locations.jobs.create", +"parameterOrder": [ +"projectId", +"location" +], +"parameters": { +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"replaceJobId": { +"description": "Deprecated. This field is now in the Job message.", +"location": "query", +"type": "string" +}, +"view": { +"description": "The level of information requested in response.", +"enum": [ +"JOB_VIEW_UNKNOWN", +"JOB_VIEW_SUMMARY", +"JOB_VIEW_ALL", +"JOB_VIEW_DESCRIPTION" +], +"enumDescriptions": [ +"The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", +"Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", +"Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", +"Request summary info and limited job description data for steps, labels and environment." +], +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"get": { +"description": "Gets the state of the specified Cloud Dataflow job. To get the state of a job, we recommend using `projects.locations.jobs.get` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.get` is not recommended, as you can only get the state of jobs that are running in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", +"httpMethod": "GET", +"id": "dataflow.projects.locations.jobs.get", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job ID.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "The level of information requested in response.", +"enum": [ +"JOB_VIEW_UNKNOWN", +"JOB_VIEW_SUMMARY", +"JOB_VIEW_ALL", +"JOB_VIEW_DESCRIPTION" +], +"enumDescriptions": [ +"The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", +"Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", +"Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", +"Request summary info and limited job description data for steps, labels and environment." +], +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"getExecutionDetails": { +"description": "Request detailed information about the execution status of the job. EXPERIMENTAL. This API is subject to change or removal without notice.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/executionDetails", +"httpMethod": "GET", +"id": "dataflow.projects.locations.jobs.getExecutionDetails", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job to get execution details for.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "If specified, determines the maximum number of stages to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "A project id.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/executionDetails", +"response": { +"$ref": "JobExecutionDetails" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"getMetrics": { +"description": "Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.getMetrics` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.getMetrics` is not recommended, as you can only request the status of jobs that are running in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics", +"httpMethod": "GET", +"id": "dataflow.projects.locations.jobs.getMetrics", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job to get metrics for.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "A project id.", +"location": "path", +"required": true, +"type": "string" +}, +"startTime": { +"description": "Return only metric data that has changed since this time. Default is to return all information about all metrics for the job.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics", +"response": { +"$ref": "JobMetrics" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"list": { +"description": "List the jobs of a project. To list the jobs of a project in a region, we recommend using `projects.locations.jobs.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use `projects.jobs.aggregated`. Using `projects.jobs.list` is not recommended, because you can only get the list of jobs that are running in `us-central1`. `projects.locations.jobs.list` and `projects.jobs.list` support filtering the list of jobs by name. Filtering by name isn't supported by `projects.jobs.aggregated`.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs", +"httpMethod": "GET", +"id": "dataflow.projects.locations.jobs.list", +"parameterOrder": [ +"projectId", +"location" +], +"parameters": { +"filter": { +"description": "The kind of filter to use.", +"enum": [ +"UNKNOWN", +"ALL", +"TERMINATED", +"ACTIVE" +], +"enumDescriptions": [ +"The filter isn't specified, or is unknown. This returns all jobs ordered on descending `JobUuid`.", +"Returns all running jobs first ordered on creation timestamp, then returns all terminated jobs ordered on the termination timestamp.", +"Filters the jobs that have a terminated state, ordered on the termination timestamp. Example terminated states: `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.", +"Filters the jobs that are running ordered on the creation timestamp." +], +"location": "query", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "Optional. The job name.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Set this to the 'next_page_token' field of a previous response to request additional results in a long list.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "The project which owns the jobs.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"deprecated": true, +"description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.", +"enum": [ +"JOB_VIEW_UNKNOWN", +"JOB_VIEW_SUMMARY", +"JOB_VIEW_ALL", +"JOB_VIEW_DESCRIPTION" +], +"enumDescriptions": [ +"The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.", +"Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.", +"Request all information available for this job. When the job is in `JOB_STATE_PENDING`, the job has been created but is not yet running, and not all job information is available. For complete job information, wait until the job in is `JOB_STATE_RUNNING`. For more information, see [JobState](https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.jobs#jobstate).", +"Request summary info and limited job description data for steps, labels and environment." +], +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs", +"response": { +"$ref": "ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"snapshot": { +"description": "Snapshot the state of a streaming job.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}:snapshot", +"httpMethod": "POST", +"id": "dataflow.projects.locations.jobs.snapshot", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job to be snapshotted.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The location that contains this job.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project which owns the job to be snapshotted.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}:snapshot", +"request": { +"$ref": "SnapshotJobRequest" +}, +"response": { +"$ref": "Snapshot" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"update": { +"description": "Updates the state of an existing Cloud Dataflow job. To update the state of an existing job, we recommend using `projects.locations.jobs.update` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.update` is not recommended, as you can only update the state of jobs that are running in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", +"httpMethod": "PUT", +"id": "dataflow.projects.locations.jobs.update", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job ID.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to update relative to Job. If empty, only RequestedJobState will be considered for update. If the FieldMask is not empty and RequestedJobState is none/empty, The fields specified in the update mask will be the only ones considered for update. If both RequestedJobState and update_mask are specified, an error will be returned as we cannot update both state and mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +}, +"resources": { +"debug": { +"methods": { +"getConfig": { +"description": "Get encoded debug configuration for component. Not cacheable.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig", +"httpMethod": "POST", +"id": "dataflow.projects.locations.jobs.debug.getConfig", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job id.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project id.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig", +"request": { +"$ref": "GetDebugConfigRequest" +}, +"response": { +"$ref": "GetDebugConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"sendCapture": { +"description": "Send encoded debug capture data for component.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture", +"httpMethod": "POST", +"id": "dataflow.projects.locations.jobs.debug.sendCapture", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job id.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project id.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture", +"request": { +"$ref": "SendDebugCaptureRequest" +}, +"response": { +"$ref": "SendDebugCaptureResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +}, +"messages": { +"methods": { +"list": { +"description": "Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.messages.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.messages.list` is not recommended, as you can only request the status of jobs that are running in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages", +"httpMethod": "GET", +"id": "dataflow.projects.locations.jobs.messages.list", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"endTime": { +"description": "Return only messages with timestamps < end_time. The default is now (i.e. return up to the latest messages available).", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"jobId": { +"description": "The job to get messages about.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"location": "path", +"required": true, +"type": "string" +}, +"minimumImportance": { +"description": "Filter to only get messages with importance >= level", +"enum": [ +"JOB_MESSAGE_IMPORTANCE_UNKNOWN", +"JOB_MESSAGE_DEBUG", +"JOB_MESSAGE_DETAILED", +"JOB_MESSAGE_BASIC", +"JOB_MESSAGE_WARNING", +"JOB_MESSAGE_ERROR" +], +"enumDescriptions": [ +"The message importance isn't specified, or is unknown.", +"The message is at the 'debug' level: typically only useful for software engineers working on the code the job is running. Typically, Dataflow pipeline runners do not display log messages at this level by default.", +"The message is at the 'detailed' level: somewhat verbose, but potentially useful to users. Typically, Dataflow pipeline runners do not display log messages at this level by default. These messages are displayed by default in the Dataflow monitoring UI.", +"The message is at the 'basic' level: useful for keeping track of the execution of a Dataflow pipeline. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.", +"The message is at the 'warning' level: indicating a condition pertaining to a job which may require human intervention. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.", +"The message is at the 'error' level: indicating a condition preventing a job from succeeding. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI." +], +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "If specified, determines the maximum number of messages to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "A project id.", +"location": "path", +"required": true, +"type": "string" +}, +"startTime": { +"description": "If specified, return only messages with timestamps >= start_time. The default is the job creation time (i.e. beginning of messages).", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages", +"response": { +"$ref": "ListJobMessagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +}, +"snapshots": { +"methods": { +"list": { +"description": "Lists snapshots.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/snapshots", +"httpMethod": "GET", +"id": "dataflow.projects.locations.jobs.snapshots.list", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "If specified, list snapshots created from this job.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The location to list snapshots in.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project ID to list snapshots for.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/snapshots", +"response": { +"$ref": "ListSnapshotsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +}, +"stages": { +"methods": { +"getExecutionDetails": { +"description": "Request detailed information about the execution status of a stage of the job. EXPERIMENTAL. This API is subject to change or removal without notice.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/stages/{stageId}/executionDetails", +"httpMethod": "GET", +"id": "dataflow.projects.locations.jobs.stages.getExecutionDetails", +"parameterOrder": [ +"projectId", +"location", +"jobId", +"stageId" +], +"parameters": { +"endTime": { +"description": "Upper time bound of work items to include, by start time.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"jobId": { +"description": "The job to get execution details for.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"location": "path", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "If specified, determines the maximum number of work items to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "A project id.", +"location": "path", +"required": true, +"type": "string" +}, +"stageId": { +"description": "The stage for which to fetch information.", +"location": "path", +"required": true, +"type": "string" +}, +"startTime": { +"description": "Lower time bound of work items to include, by start time.", +"format": "google-datetime", +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/stages/{stageId}/executionDetails", +"response": { +"$ref": "StageExecutionDetails" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +}, +"workItems": { +"methods": { +"lease": { +"description": "Leases a dataflow WorkItem to run.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease", +"httpMethod": "POST", +"id": "dataflow.projects.locations.jobs.workItems.lease", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "Identifies the workflow job this worker belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the WorkItem's job.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Identifies the project this worker belongs to.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease", +"request": { +"$ref": "LeaseWorkItemRequest" +}, +"response": { +"$ref": "LeaseWorkItemResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"reportStatus": { +"description": "Reports the status of dataflow WorkItems leased by a worker.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus", +"httpMethod": "POST", +"id": "dataflow.projects.locations.jobs.workItems.reportStatus", +"parameterOrder": [ +"projectId", +"location", +"jobId" +], +"parameters": { +"jobId": { +"description": "The job which the WorkItem is part of.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the WorkItem's job.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project which owns the WorkItem's job.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus", +"request": { +"$ref": "ReportWorkItemStatusRequest" +}, +"response": { +"$ref": "ReportWorkItemStatusResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +} +} +}, +"snapshots": { +"methods": { +"delete": { +"description": "Deletes a snapshot.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}", +"httpMethod": "DELETE", +"id": "dataflow.projects.locations.snapshots.delete", +"parameterOrder": [ +"projectId", +"location", +"snapshotId" +], +"parameters": { +"location": { +"description": "The location that contains this snapshot.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the snapshot belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"snapshotId": { +"description": "The ID of the snapshot.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}", +"response": { +"$ref": "DeleteSnapshotResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"get": { +"description": "Gets information about a snapshot.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}", +"httpMethod": "GET", +"id": "dataflow.projects.locations.snapshots.get", +"parameterOrder": [ +"projectId", +"location", +"snapshotId" +], +"parameters": { +"location": { +"description": "The location that contains this snapshot.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the snapshot belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"snapshotId": { +"description": "The ID of the snapshot.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}", +"response": { +"$ref": "Snapshot" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"list": { +"description": "Lists snapshots.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/snapshots", +"httpMethod": "GET", +"id": "dataflow.projects.locations.snapshots.list", +"parameterOrder": [ +"projectId", +"location" +], +"parameters": { +"jobId": { +"description": "If specified, list snapshots created from this job.", +"location": "query", +"type": "string" +}, +"location": { +"description": "The location to list snapshots in.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "The project ID to list snapshots for.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/snapshots", +"response": { +"$ref": "ListSnapshotsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +}, +"templates": { +"methods": { +"create": { +"description": "Creates a Cloud Dataflow job from a template. Do not enter confidential information when you supply string values using the API. To create a job, we recommend using `projects.locations.templates.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.templates.create` is not recommended, because your job will always start in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/templates", +"httpMethod": "POST", +"id": "dataflow.projects.locations.templates.create", +"parameterOrder": [ +"projectId", +"location" +], +"parameters": { +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/templates", +"request": { +"$ref": "CreateJobFromTemplateRequest" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"get": { +"description": "Get the template associated with a template. To get the template, we recommend using `projects.locations.templates.get` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.templates.get` is not recommended, because only templates that are running in `us-central1` are retrieved.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:get", +"httpMethod": "GET", +"id": "dataflow.projects.locations.templates.get", +"parameterOrder": [ +"projectId", +"location" +], +"parameters": { +"gcsPath": { +"description": "Required. A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.", +"location": "query", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "The view to retrieve. Defaults to METADATA_ONLY.", +"enum": [ +"METADATA_ONLY" +], +"enumDescriptions": [ +"Template view that retrieves only the metadata associated with the template." +], +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/templates:get", +"response": { +"$ref": "GetTemplateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"launch": { +"description": "Launches a template. To launch a template, we recommend using `projects.locations.templates.launch` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.templates.launch` is not recommended, because jobs launched from the template will always start in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:launch", +"httpMethod": "POST", +"id": "dataflow.projects.locations.templates.launch", +"parameterOrder": [ +"projectId", +"location" +], +"parameters": { +"dynamicTemplate.gcsPath": { +"description": "Path to the dynamic template specification file on Cloud Storage. The file must be a JSON serialized `DynamicTemplateFileSpec` object.", +"location": "query", +"type": "string" +}, +"dynamicTemplate.stagingLocation": { +"description": "Cloud Storage path for staging dependencies. Must be a valid Cloud Storage URL, beginning with `gs://`.", +"location": "query", +"type": "string" +}, +"gcsPath": { +"description": "A Cloud Storage path to the template to use to create the job. Must be valid Cloud Storage URL, beginning with `gs://`.", +"location": "query", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.", +"location": "path", +"required": true, +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If true, the request is validated but not actually executed. Defaults to false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1b3/projects/{projectId}/locations/{location}/templates:launch", +"request": { +"$ref": "LaunchTemplateParameters" +}, +"response": { +"$ref": "LaunchTemplateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +} +} +}, +"snapshots": { +"methods": { +"get": { +"description": "Gets information about a snapshot.", +"flatPath": "v1b3/projects/{projectId}/snapshots/{snapshotId}", +"httpMethod": "GET", +"id": "dataflow.projects.snapshots.get", +"parameterOrder": [ +"projectId", +"snapshotId" +], +"parameters": { +"location": { +"description": "The location that contains this snapshot.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "The ID of the Cloud Platform project that the snapshot belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"snapshotId": { +"description": "The ID of the snapshot.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/snapshots/{snapshotId}", +"response": { +"$ref": "Snapshot" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"list": { +"description": "Lists snapshots.", +"flatPath": "v1b3/projects/{projectId}/snapshots", +"httpMethod": "GET", +"id": "dataflow.projects.snapshots.list", +"parameterOrder": [ +"projectId" +], +"parameters": { +"jobId": { +"description": "If specified, list snapshots created from this job.", +"location": "query", +"type": "string" +}, +"location": { +"description": "The location to list snapshots in.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "The project ID to list snapshots for.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/snapshots", +"response": { +"$ref": "ListSnapshotsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +}, +"templates": { +"methods": { +"create": { +"description": "Creates a Cloud Dataflow job from a template. Do not enter confidential information when you supply string values using the API. To create a job, we recommend using `projects.locations.templates.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.templates.create` is not recommended, because your job will always start in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/templates", +"httpMethod": "POST", +"id": "dataflow.projects.templates.create", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/templates", +"request": { +"$ref": "CreateJobFromTemplateRequest" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"get": { +"description": "Get the template associated with a template. To get the template, we recommend using `projects.locations.templates.get` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.templates.get` is not recommended, because only templates that are running in `us-central1` are retrieved.", +"flatPath": "v1b3/projects/{projectId}/templates:get", +"httpMethod": "GET", +"id": "dataflow.projects.templates.get", +"parameterOrder": [ +"projectId" +], +"parameters": { +"gcsPath": { +"description": "Required. A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.", +"location": "query", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"view": { +"description": "The view to retrieve. Defaults to METADATA_ONLY.", +"enum": [ +"METADATA_ONLY" +], +"enumDescriptions": [ +"Template view that retrieves only the metadata associated with the template." +], +"location": "query", +"type": "string" +} +}, +"path": "v1b3/projects/{projectId}/templates:get", +"response": { +"$ref": "GetTemplateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +}, +"launch": { +"description": "Launches a template. To launch a template, we recommend using `projects.locations.templates.launch` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.templates.launch` is not recommended, because jobs launched from the template will always start in `us-central1`.", +"flatPath": "v1b3/projects/{projectId}/templates:launch", +"httpMethod": "POST", +"id": "dataflow.projects.templates.launch", +"parameterOrder": [ +"projectId" +], +"parameters": { +"dynamicTemplate.gcsPath": { +"description": "Path to the dynamic template specification file on Cloud Storage. The file must be a JSON serialized `DynamicTemplateFileSpec` object.", +"location": "query", +"type": "string" +}, +"dynamicTemplate.stagingLocation": { +"description": "Cloud Storage path for staging dependencies. Must be a valid Cloud Storage URL, beginning with `gs://`.", +"location": "query", +"type": "string" +}, +"gcsPath": { +"description": "A Cloud Storage path to the template to use to create the job. Must be valid Cloud Storage URL, beginning with `gs://`.", +"location": "query", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.", +"location": "query", +"type": "string" +}, +"projectId": { +"description": "Required. The ID of the Cloud Platform project that the job belongs to.", +"location": "path", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If true, the request is validated but not actually executed. Defaults to false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1b3/projects/{projectId}/templates:launch", +"request": { +"$ref": "LaunchTemplateParameters" +}, +"response": { +"$ref": "LaunchTemplateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/compute" +] +} +} +} +} +} +}, +"revision": "20250106", +"rootUrl": "https://dataflow.googleapis.com/", +"schemas": { +"ApproximateProgress": { +"description": "Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest.", +"id": "ApproximateProgress", +"properties": { +"percentComplete": { +"deprecated": true, +"description": "Obsolete.", +"format": "float", +"type": "number" +}, +"position": { +"$ref": "Position", +"deprecated": true, +"description": "Obsolete." +}, +"remainingTime": { +"deprecated": true, +"description": "Obsolete.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"ApproximateReportedProgress": { +"description": "A progress measurement of a WorkItem by a worker.", +"id": "ApproximateReportedProgress", +"properties": { +"consumedParallelism": { +"$ref": "ReportedParallelism", +"description": "Total amount of parallelism in the portion of input of this task that has already been consumed and is no longer active. In the first two examples above (see remaining_parallelism), the value should be 29 or 2 respectively. The sum of remaining_parallelism and consumed_parallelism should equal the total amount of parallelism in this work item. If specified, must be finite." +}, +"fractionConsumed": { +"description": "Completion as fraction of the input consumed, from 0.0 (beginning, nothing consumed), to 1.0 (end of the input, entire input consumed).", +"format": "double", +"type": "number" +}, +"position": { +"$ref": "Position", +"description": "A Position within the work to represent a progress." +}, +"remainingParallelism": { +"$ref": "ReportedParallelism", +"description": "Total amount of parallelism in the input of this task that remains, (i.e. can be delegated to this task and any new tasks via dynamic splitting). Always at least 1 for non-finished work items and 0 for finished. \"Amount of parallelism\" refers to how many non-empty parts of the input can be read in parallel. This does not necessarily equal number of records. An input that can be read in parallel down to the individual records is called \"perfectly splittable\". An example of non-perfectly parallelizable input is a block-compressed file format where a block of records has to be read as a whole, but different blocks can be read in parallel. Examples: * If we are processing record #30 (starting at 1) out of 50 in a perfectly splittable 50-record input, this value should be 21 (20 remaining + 1 current). * If we are reading through block 3 in a block-compressed file consisting of 5 blocks, this value should be 3 (since blocks 4 and 5 can be processed in parallel by new tasks via dynamic splitting and the current task remains processing block 3). * If we are reading through the last block in a block-compressed file, or reading or processing the last record in a perfectly splittable input, this value should be 1, because apart from the current task, no additional remainder can be split off." +} +}, +"type": "object" +}, +"ApproximateSplitRequest": { +"description": "A suggestion by the service to the worker to dynamically split the WorkItem.", +"id": "ApproximateSplitRequest", +"properties": { +"fractionConsumed": { +"description": "A fraction at which to split the work item, from 0.0 (beginning of the input) to 1.0 (end of the input).", +"format": "double", +"type": "number" +}, +"fractionOfRemainder": { +"description": "The fraction of the remainder of work to split the work item at, from 0.0 (split at the current position) to 1.0 (end of the input).", +"format": "double", +"type": "number" +}, +"position": { +"$ref": "Position", +"description": "A Position at which to split the work item." +} +}, +"type": "object" +}, +"AutoscalingEvent": { +"description": "A structured message reporting an autoscaling decision made by the Dataflow service.", +"id": "AutoscalingEvent", +"properties": { +"currentNumWorkers": { +"description": "The current number of workers the job has.", +"format": "int64", +"type": "string" +}, +"description": { +"$ref": "StructuredMessage", +"description": "A message describing why the system decided to adjust the current number of workers, why it failed, or why the system decided to not make any changes to the number of workers." +}, +"eventType": { +"description": "The type of autoscaling event to report.", +"enum": [ +"TYPE_UNKNOWN", +"TARGET_NUM_WORKERS_CHANGED", +"CURRENT_NUM_WORKERS_CHANGED", +"ACTUATION_FAILURE", +"NO_CHANGE" +], +"enumDescriptions": [ +"Default type for the enum. Value should never be returned.", +"The TARGET_NUM_WORKERS_CHANGED type should be used when the target worker pool size has changed at the start of an actuation. An event should always be specified as TARGET_NUM_WORKERS_CHANGED if it reflects a change in the target_num_workers.", +"The CURRENT_NUM_WORKERS_CHANGED type should be used when actual worker pool size has been changed, but the target_num_workers has not changed.", +"The ACTUATION_FAILURE type should be used when we want to report an error to the user indicating why the current number of workers in the pool could not be changed. Displayed in the current status and history widgets.", +"Used when we want to report to the user a reason why we are not currently adjusting the number of workers. Should specify both target_num_workers, current_num_workers and a decision_message." +], +"type": "string" +}, +"targetNumWorkers": { +"description": "The target number of workers the worker pool wants to resize to use.", +"format": "int64", +"type": "string" +}, +"time": { +"description": "The time this event was emitted to indicate a new target or current num_workers value.", +"format": "google-datetime", +"type": "string" +}, +"workerPool": { +"description": "A short and friendly name for the worker pool this event refers to.", +"type": "string" +} +}, +"type": "object" +}, +"AutoscalingSettings": { +"description": "Settings for WorkerPool autoscaling.", +"id": "AutoscalingSettings", +"properties": { +"algorithm": { +"description": "The algorithm to use for autoscaling.", +"enum": [ +"AUTOSCALING_ALGORITHM_UNKNOWN", +"AUTOSCALING_ALGORITHM_NONE", +"AUTOSCALING_ALGORITHM_BASIC" +], +"enumDescriptions": [ +"The algorithm is unknown, or unspecified.", +"Disable autoscaling.", +"Increase worker count over time to reduce job execution time." +], +"type": "string" +}, +"maxNumWorkers": { +"description": "The maximum number of workers to cap scaling at.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Base2Exponent": { +"description": "Exponential buckets where the growth factor between buckets is `2**(2**-scale)`. e.g. for `scale=1` growth factor is `2**(2**(-1))=sqrt(2)`. `n` buckets will have the following boundaries. - 0th: [0, gf) - i in [1, n-1]: [gf^(i), gf^(i+1))", +"id": "Base2Exponent", +"properties": { +"numberOfBuckets": { +"description": "Must be greater than 0.", +"format": "int32", +"type": "integer" +}, +"scale": { +"description": "Must be between -3 and 3. This forces the growth factor of the bucket boundaries to be between `2^(1/8)` and `256`.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BigQueryIODetails": { +"description": "Metadata for a BigQuery connector used by the job.", +"id": "BigQueryIODetails", +"properties": { +"dataset": { +"description": "Dataset accessed in the connection.", +"type": "string" +}, +"projectId": { +"description": "Project accessed in the connection.", +"type": "string" +}, +"query": { +"description": "Query used to access data in the connection.", +"type": "string" +}, +"table": { +"description": "Table accessed in the connection.", +"type": "string" +} +}, +"type": "object" +}, +"BigTableIODetails": { +"description": "Metadata for a Cloud Bigtable connector used by the job.", +"id": "BigTableIODetails", +"properties": { +"instanceId": { +"description": "InstanceId accessed in the connection.", +"type": "string" +}, +"projectId": { +"description": "ProjectId accessed in the connection.", +"type": "string" +}, +"tableId": { +"description": "TableId accessed in the connection.", +"type": "string" +} +}, +"type": "object" +}, +"BoundedTrie": { +"description": "The message type used for encoding metrics of type bounded trie.", +"id": "BoundedTrie", +"properties": { +"bound": { +"description": "The maximum number of elements to store before truncation.", +"format": "int32", +"type": "integer" +}, +"root": { +"$ref": "BoundedTrieNode", +"description": "A compact representation of all the elements in this trie." +}, +"singleton": { +"description": "A more efficient representation for metrics consisting of a single value.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BoundedTrieNode": { +"description": "A single node in a BoundedTrie.", +"id": "BoundedTrieNode", +"properties": { +"children": { +"additionalProperties": { +"$ref": "BoundedTrieNode" +}, +"description": "Children of this node. Must be empty if truncated is true.", +"type": "object" +}, +"truncated": { +"description": "Whether this node has been truncated. A truncated leaf represents possibly many children with the same prefix.", +"type": "boolean" +} +}, +"type": "object" +}, +"BucketOptions": { +"description": "`BucketOptions` describes the bucket boundaries used in the histogram.", +"id": "BucketOptions", +"properties": { +"exponential": { +"$ref": "Base2Exponent", +"description": "Bucket boundaries grow exponentially." +}, +"linear": { +"$ref": "Linear", +"description": "Bucket boundaries grow linearly." +} +}, +"type": "object" +}, +"CPUTime": { +"description": "Modeled after information exposed by /proc/stat.", +"id": "CPUTime", +"properties": { +"rate": { +"description": "Average CPU utilization rate (% non-idle cpu / second) since previous sample.", +"format": "double", +"type": "number" +}, +"timestamp": { +"description": "Timestamp of the measurement.", +"format": "google-datetime", +"type": "string" +}, +"totalMs": { +"description": "Total active CPU time across all cores (ie., non-idle) in milliseconds since start-up.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"ComponentSource": { +"description": "Description of an interstitial value between transforms in an execution stage.", +"id": "ComponentSource", +"properties": { +"name": { +"description": "Dataflow service generated name for this source.", +"type": "string" +}, +"originalTransformOrCollection": { +"description": "User name for the original user transform or collection with which this source is most closely associated.", +"type": "string" +}, +"userName": { +"description": "Human-readable name for this transform; may be user or system generated.", +"type": "string" +} +}, +"type": "object" +}, +"ComponentTransform": { +"description": "Description of a transform executed as part of an execution stage.", +"id": "ComponentTransform", +"properties": { +"name": { +"description": "Dataflow service generated name for this source.", +"type": "string" +}, +"originalTransform": { +"description": "User name for the original user transform with which this transform is most closely associated.", +"type": "string" +}, +"userName": { +"description": "Human-readable name for this transform; may be user or system generated.", +"type": "string" +} +}, +"type": "object" +}, +"ComputationTopology": { +"description": "All configuration data for a particular Computation.", +"id": "ComputationTopology", +"properties": { +"computationId": { +"description": "The ID of the computation.", +"type": "string" +}, +"inputs": { +"description": "The inputs to the computation.", +"items": { +"$ref": "StreamLocation" +}, +"type": "array" +}, +"keyRanges": { +"description": "The key ranges processed by the computation.", +"items": { +"$ref": "KeyRangeLocation" +}, +"type": "array" +}, +"outputs": { +"description": "The outputs from the computation.", +"items": { +"$ref": "StreamLocation" +}, +"type": "array" +}, +"stateFamilies": { +"description": "The state family values.", +"items": { +"$ref": "StateFamilyConfig" +}, +"type": "array" +}, +"systemStageName": { +"description": "The system stage name.", +"type": "string" +} +}, +"type": "object" +}, +"ConcatPosition": { +"description": "A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources.", +"id": "ConcatPosition", +"properties": { +"index": { +"description": "Index of the inner source.", +"format": "int32", +"type": "integer" +}, +"position": { +"$ref": "Position", +"description": "Position within the inner source." +} +}, +"type": "object" +}, +"ContainerSpec": { +"description": "Container Spec.", +"id": "ContainerSpec", +"properties": { +"defaultEnvironment": { +"$ref": "FlexTemplateRuntimeEnvironment", +"description": "Default runtime environment for the job." +}, +"image": { +"description": "Name of the docker container image. E.g., gcr.io/project/some-image", +"type": "string" +}, +"imageRepositoryCertPath": { +"description": "Cloud Storage path to self-signed certificate of private registry.", +"type": "string" +}, +"imageRepositoryPasswordSecretId": { +"description": "Secret Manager secret id for password to authenticate to private registry.", +"type": "string" +}, +"imageRepositoryUsernameSecretId": { +"description": "Secret Manager secret id for username to authenticate to private registry.", +"type": "string" +}, +"metadata": { +"$ref": "TemplateMetadata", +"description": "Metadata describing a template including description and validation rules." +}, +"sdkInfo": { +"$ref": "SDKInfo", +"description": "Required. SDK info of the Flex Template." +} +}, +"type": "object" +}, +"CounterMetadata": { +"description": "CounterMetadata includes all static non-name non-value counter attributes.", +"id": "CounterMetadata", +"properties": { +"description": { +"description": "Human-readable description of the counter semantics.", +"type": "string" +}, +"kind": { +"description": "Counter aggregation kind.", +"enum": [ +"INVALID", +"SUM", +"MAX", +"MIN", +"MEAN", +"OR", +"AND", +"SET", +"DISTRIBUTION", +"LATEST_VALUE" +], +"enumDescriptions": [ +"Counter aggregation kind was not set.", +"Aggregated value is the sum of all contributed values.", +"Aggregated value is the max of all contributed values.", +"Aggregated value is the min of all contributed values.", +"Aggregated value is the mean of all contributed values.", +"Aggregated value represents the logical 'or' of all contributed values.", +"Aggregated value represents the logical 'and' of all contributed values.", +"Aggregated value is a set of unique contributed values.", +"Aggregated value captures statistics about a distribution.", +"Aggregated value tracks the latest value of a variable." +], +"type": "string" +}, +"otherUnits": { +"description": "A string referring to the unit type.", +"type": "string" +}, +"standardUnits": { +"description": "System defined Units, see above enum.", +"enum": [ +"BYTES", +"BYTES_PER_SEC", +"MILLISECONDS", +"MICROSECONDS", +"NANOSECONDS", +"TIMESTAMP_MSEC", +"TIMESTAMP_USEC", +"TIMESTAMP_NSEC" +], +"enumDescriptions": [ +"Counter returns a value in bytes.", +"Counter returns a value in bytes per second.", +"Counter returns a value in milliseconds.", +"Counter returns a value in microseconds.", +"Counter returns a value in nanoseconds.", +"Counter returns a timestamp in milliseconds.", +"Counter returns a timestamp in microseconds.", +"Counter returns a timestamp in nanoseconds." +], +"type": "string" +} +}, +"type": "object" +}, +"CounterStructuredName": { +"description": "Identifies a counter within a per-job namespace. Counters whose structured names are the same get merged into a single value for the job.", +"id": "CounterStructuredName", +"properties": { +"componentStepName": { +"description": "Name of the optimized step being executed by the workers.", +"type": "string" +}, +"executionStepName": { +"description": "Name of the stage. An execution step contains multiple component steps.", +"type": "string" +}, +"inputIndex": { +"description": "Index of an input collection that's being read from/written to as a side input. The index identifies a step's side inputs starting by 1 (e.g. the first side input has input_index 1, the third has input_index 3). Side inputs are identified by a pair of (original_step_name, input_index). This field helps uniquely identify them.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Counter name. Not necessarily globally-unique, but unique within the context of the other fields. Required.", +"type": "string" +}, +"origin": { +"description": "One of the standard Origins defined above.", +"enum": [ +"SYSTEM", +"USER" +], +"enumDescriptions": [ +"Counter was created by the Dataflow system.", +"Counter was created by the user." +], +"type": "string" +}, +"originNamespace": { +"description": "A string containing a more specific namespace of the counter's origin.", +"type": "string" +}, +"originalRequestingStepName": { +"description": "The step name requesting an operation, such as GBK. I.e. the ParDo causing a read/write from shuffle to occur, or a read from side inputs.", +"type": "string" +}, +"originalStepName": { +"description": "System generated name of the original step in the user's graph, before optimization.", +"type": "string" +}, +"portion": { +"description": "Portion of this counter, either key or value.", +"enum": [ +"ALL", +"KEY", +"VALUE" +], +"enumDescriptions": [ +"Counter portion has not been set.", +"Counter reports a key.", +"Counter reports a value." +], +"type": "string" +}, +"workerId": { +"description": "ID of a particular worker.", +"type": "string" +} +}, +"type": "object" +}, +"CounterStructuredNameAndMetadata": { +"description": "A single message which encapsulates structured name and metadata for a given counter.", +"id": "CounterStructuredNameAndMetadata", +"properties": { +"metadata": { +"$ref": "CounterMetadata", +"description": "Metadata associated with a counter" +}, +"name": { +"$ref": "CounterStructuredName", +"description": "Structured name of the counter." +} +}, +"type": "object" +}, +"CounterUpdate": { +"description": "An update to a Counter sent from a worker. Next ID: 17", +"id": "CounterUpdate", +"properties": { +"boolean": { +"description": "Boolean value for And, Or.", +"type": "boolean" +}, +"boundedTrie": { +"$ref": "BoundedTrie", +"description": "Bounded trie data" +}, +"cumulative": { +"description": "True if this counter is reported as the total cumulative aggregate value accumulated since the worker started working on this WorkItem. By default this is false, indicating that this counter is reported as a delta.", +"type": "boolean" +}, +"distribution": { +"$ref": "DistributionUpdate", +"description": "Distribution data" +}, +"floatingPoint": { +"description": "Floating point value for Sum, Max, Min.", +"format": "double", +"type": "number" +}, +"floatingPointList": { +"$ref": "FloatingPointList", +"description": "List of floating point numbers, for Set." +}, +"floatingPointMean": { +"$ref": "FloatingPointMean", +"description": "Floating point mean aggregation value for Mean." +}, +"integer": { +"$ref": "SplitInt64", +"description": "Integer value for Sum, Max, Min." +}, +"integerGauge": { +"$ref": "IntegerGauge", +"description": "Gauge data" +}, +"integerList": { +"$ref": "IntegerList", +"description": "List of integers, for Set." +}, +"integerMean": { +"$ref": "IntegerMean", +"description": "Integer mean aggregation value for Mean." +}, +"internal": { +"description": "Value for internally-defined counters used by the Dataflow service.", +"type": "any" +}, +"nameAndKind": { +"$ref": "NameAndKind", +"description": "Counter name and aggregation type." +}, +"shortId": { +"description": "The service-generated short identifier for this counter. The short_id -> (name, metadata) mapping is constant for the lifetime of a job.", +"format": "int64", +"type": "string" +}, +"stringList": { +"$ref": "StringList", +"description": "List of strings, for Set." +}, +"structuredNameAndMetadata": { +"$ref": "CounterStructuredNameAndMetadata", +"description": "Counter structured name and metadata." +} +}, +"type": "object" +}, +"CreateJobFromTemplateRequest": { +"description": "A request to create a Cloud Dataflow job from a template.", +"id": "CreateJobFromTemplateRequest", +"properties": { +"environment": { +"$ref": "RuntimeEnvironment", +"description": "The runtime environment for the job." +}, +"gcsPath": { +"description": "Required. A Cloud Storage path to the template from which to create the job. Must be a valid Cloud Storage URL, beginning with `gs://`.", +"type": "string" +}, +"jobName": { +"description": "Required. The job name to use for the created job.", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"type": "string" +}, +"description": "The runtime parameters to pass to the job.", +"type": "object" +} +}, +"type": "object" +}, +"CustomSourceLocation": { +"description": "Identifies the location of a custom souce.", +"id": "CustomSourceLocation", +"properties": { +"stateful": { +"description": "Whether this source is stateful.", +"type": "boolean" +} +}, +"type": "object" +}, +"DataDiskAssignment": { +"description": "Data disk assignment for a given VM instance.", +"id": "DataDiskAssignment", +"properties": { +"dataDisks": { +"description": "Mounted data disks. The order is important a data disk's 0-based index in this list defines which persistent directory the disk is mounted to, for example the list of { \"myproject-1014-104817-4c2-harness-0-disk-0\" }, { \"myproject-1014-104817-4c2-harness-0-disk-1\" }.", +"items": { +"type": "string" +}, +"type": "array" +}, +"vmInstance": { +"description": "VM instance name the data disks mounted to, for example \"myproject-1014-104817-4c2-harness-0\".", +"type": "string" +} +}, +"type": "object" +}, +"DataSamplingConfig": { +"description": "Configuration options for sampling elements.", +"id": "DataSamplingConfig", +"properties": { +"behaviors": { +"description": "List of given sampling behaviors to enable. For example, specifying behaviors = [ALWAYS_ON] samples in-flight elements but does not sample exceptions. Can be used to specify multiple behaviors like, behaviors = [ALWAYS_ON, EXCEPTIONS] for specifying periodic sampling and exception sampling. If DISABLED is in the list, then sampling will be disabled and ignore the other given behaviors. Ordering does not matter.", +"items": { +"enum": [ +"DATA_SAMPLING_BEHAVIOR_UNSPECIFIED", +"DISABLED", +"ALWAYS_ON", +"EXCEPTIONS" +], +"enumDescriptions": [ +"If given, has no effect on sampling behavior. Used as an unknown or unset sentinel value.", +"When given, disables element sampling. Has same behavior as not setting the behavior.", +"When given, enables sampling in-flight from all PCollections.", +"When given, enables sampling input elements when a user-defined DoFn causes an exception." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DataSamplingReport": { +"description": "Contains per-worker telemetry about the data sampling feature.", +"id": "DataSamplingReport", +"properties": { +"bytesWrittenDelta": { +"description": "Optional. Delta of bytes written to file from previous report.", +"format": "int64", +"type": "string" +}, +"elementsSampledBytes": { +"description": "Optional. Delta of bytes sampled from previous report.", +"format": "int64", +"type": "string" +}, +"elementsSampledCount": { +"description": "Optional. Delta of number of elements sampled from previous report.", +"format": "int64", +"type": "string" +}, +"exceptionsSampledCount": { +"description": "Optional. Delta of number of samples taken from user code exceptions from previous report.", +"format": "int64", +"type": "string" +}, +"pcollectionsSampledCount": { +"description": "Optional. Delta of number of PCollections sampled from previous report.", +"format": "int64", +"type": "string" +}, +"persistenceErrorsCount": { +"description": "Optional. Delta of errors counts from persisting the samples from previous report.", +"format": "int64", +"type": "string" +}, +"translationErrorsCount": { +"description": "Optional. Delta of errors counts from retrieving, or translating the samples from previous report.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"DataflowGaugeValue": { +"description": "The gauge value of a metric.", +"id": "DataflowGaugeValue", +"properties": { +"measuredTime": { +"description": "The timestamp when the gauge was recorded.", +"format": "google-datetime", +"type": "string" +}, +"value": { +"description": "The value of the gauge.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"DataflowHistogramValue": { +"description": "Summary statistics for a population of values. HistogramValue contains a sequence of buckets and gives a count of values that fall into each bucket. Bucket boundares are defined by a formula and bucket widths are either fixed or exponentially increasing.", +"id": "DataflowHistogramValue", +"properties": { +"bucketCounts": { +"description": "Optional. The number of values in each bucket of the histogram, as described in `bucket_options`. `bucket_counts` should contain N values, where N is the number of buckets specified in `bucket_options`. If `bucket_counts` has fewer than N values, the remaining values are assumed to be 0.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"bucketOptions": { +"$ref": "BucketOptions", +"description": "Describes the bucket boundaries used in the histogram." +}, +"count": { +"description": "Number of values recorded in this histogram.", +"format": "int64", +"type": "string" +}, +"outlierStats": { +"$ref": "OutlierStats", +"description": "Statistics on the values recorded in the histogram that fall out of the bucket boundaries." +} +}, +"type": "object" +}, +"DatastoreIODetails": { +"description": "Metadata for a Datastore connector used by the job.", +"id": "DatastoreIODetails", +"properties": { +"namespace": { +"description": "Namespace used in the connection.", +"type": "string" +}, +"projectId": { +"description": "ProjectId accessed in the connection.", +"type": "string" +} +}, +"type": "object" +}, +"DebugOptions": { +"description": "Describes any options that have an effect on the debugging of pipelines.", +"id": "DebugOptions", +"properties": { +"dataSampling": { +"$ref": "DataSamplingConfig", +"description": "Configuration options for sampling elements from a running pipeline." +}, +"enableHotKeyLogging": { +"description": "Optional. When true, enables the logging of the literal hot key to the user's Cloud Logging.", +"type": "boolean" +} +}, +"type": "object" +}, +"DeleteSnapshotResponse": { +"description": "Response from deleting a snapshot.", +"id": "DeleteSnapshotResponse", +"properties": {}, +"type": "object" +}, +"DerivedSource": { +"description": "Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split.", +"id": "DerivedSource", +"properties": { +"derivationMode": { +"description": "What source to base the produced source on (if any).", +"enum": [ +"SOURCE_DERIVATION_MODE_UNKNOWN", +"SOURCE_DERIVATION_MODE_INDEPENDENT", +"SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT", +"SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" +], +"enumDescriptions": [ +"The source derivation is unknown, or unspecified.", +"Produce a completely independent Source with no base.", +"Produce a Source based on the Source being split.", +"Produce a Source based on the base of the Source being split." +], +"type": "string" +}, +"source": { +"$ref": "Source", +"description": "Specification of the source." +} +}, +"type": "object" +}, +"Disk": { +"description": "Describes the data disk used by a workflow job.", +"id": "Disk", +"properties": { +"diskType": { +"description": "Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in \"pd-standard\". If SSD persistent disks are available, the resource name typically ends with \"pd-ssd\". The actual valid values are defined the Google Compute Engine API, not by the Cloud Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard", +"type": "string" +}, +"mountPoint": { +"description": "Directory in a VM where disk is mounted.", +"type": "string" +}, +"sizeGb": { +"description": "Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DisplayData": { +"description": "Data provided with a pipeline or transform to provide descriptive info.", +"id": "DisplayData", +"properties": { +"boolValue": { +"description": "Contains value if the data is of a boolean type.", +"type": "boolean" +}, +"durationValue": { +"description": "Contains value if the data is of duration type.", +"format": "google-duration", +"type": "string" +}, +"floatValue": { +"description": "Contains value if the data is of float type.", +"format": "float", +"type": "number" +}, +"int64Value": { +"description": "Contains value if the data is of int64 type.", +"format": "int64", +"type": "string" +}, +"javaClassValue": { +"description": "Contains value if the data is of java class type.", +"type": "string" +}, +"key": { +"description": "The key identifying the display data. This is intended to be used as a label for the display data when viewed in a dax monitoring system.", +"type": "string" +}, +"label": { +"description": "An optional label to display in a dax UI for the element.", +"type": "string" +}, +"namespace": { +"description": "The namespace for the key. This is usually a class name or programming language namespace (i.e. python module) which defines the display data. This allows a dax monitoring system to specially handle the data and perform custom rendering.", +"type": "string" +}, +"shortStrValue": { +"description": "A possible additional shorter value to display. For example a java_class_name_value of com.mypackage.MyDoFn will be stored with MyDoFn as the short_str_value and com.mypackage.MyDoFn as the java_class_name value. short_str_value can be displayed and java_class_name_value will be displayed as a tooltip.", +"type": "string" +}, +"strValue": { +"description": "Contains value if the data is of string type.", +"type": "string" +}, +"timestampValue": { +"description": "Contains value if the data is of timestamp type.", +"format": "google-datetime", +"type": "string" +}, +"url": { +"description": "An optional full URL.", +"type": "string" +} +}, +"type": "object" +}, +"DistributionUpdate": { +"description": "A metric value representing a distribution.", +"id": "DistributionUpdate", +"properties": { +"count": { +"$ref": "SplitInt64", +"description": "The count of the number of elements present in the distribution." +}, +"histogram": { +"$ref": "Histogram", +"description": "(Optional) Histogram of value counts for the distribution." +}, +"max": { +"$ref": "SplitInt64", +"description": "The maximum value present in the distribution." +}, +"min": { +"$ref": "SplitInt64", +"description": "The minimum value present in the distribution." +}, +"sum": { +"$ref": "SplitInt64", +"description": "Use an int64 since we'd prefer the added precision. If overflow is a common problem we can detect it and use an additional int64 or a double." +}, +"sumOfSquares": { +"description": "Use a double since the sum of squares is likely to overflow int64.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"DynamicSourceSplit": { +"description": "When a task splits using WorkItemStatus.dynamic_source_split, this message describes the two parts of the split relative to the description of the current task's input.", +"id": "DynamicSourceSplit", +"properties": { +"primary": { +"$ref": "DerivedSource", +"description": "Primary part (continued to be processed by worker). Specified relative to the previously-current source. Becomes current." +}, +"residual": { +"$ref": "DerivedSource", +"description": "Residual part (returned to the pool of work). Specified relative to the previously-current source." +} +}, +"type": "object" +}, +"Environment": { +"description": "Describes the environment in which a Dataflow Job runs.", +"id": "Environment", +"properties": { +"clusterManagerApiService": { +"description": "The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. \"compute.googleapis.com\".", +"type": "string" +}, +"dataset": { +"description": "Optional. The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}", +"type": "string" +}, +"debugOptions": { +"$ref": "DebugOptions", +"description": "Optional. Any debugging options to be supplied to the job." +}, +"experiments": { +"description": "The list of experiments to enable. This field should be used for SDK related experiments and not for service related experiments. The proper field for service related experiments is service_options.", +"items": { +"type": "string" +}, +"type": "array" +}, +"flexResourceSchedulingGoal": { +"description": "Optional. Which Flexible Resource Scheduling mode to run in.", +"enum": [ +"FLEXRS_UNSPECIFIED", +"FLEXRS_SPEED_OPTIMIZED", +"FLEXRS_COST_OPTIMIZED" +], +"enumDescriptions": [ +"Run in the default mode.", +"Optimize for lower execution time.", +"Optimize for lower cost." +], +"type": "string" +}, +"internalExperiments": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Experimental settings.", +"type": "object" +}, +"sdkPipelineOptions": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The Cloud Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.", +"type": "object" +}, +"serviceAccountEmail": { +"description": "Optional. Identity to run virtual machines as. Defaults to the default account.", +"type": "string" +}, +"serviceKmsKeyName": { +"description": "Optional. If set, contains the Cloud KMS key identifier used to encrypt data at rest, AKA a Customer Managed Encryption Key (CMEK). Format: projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY", +"type": "string" +}, +"serviceOptions": { +"description": "Optional. The list of service options to enable. This field should be used for service related experiments only. These experiments, when graduating to GA, should be replaced by dedicated fields or become default (i.e. always on).", +"items": { +"type": "string" +}, +"type": "array" +}, +"shuffleMode": { +"description": "Output only. The shuffle mode used for the job.", +"enum": [ +"SHUFFLE_MODE_UNSPECIFIED", +"VM_BASED", +"SERVICE_BASED" +], +"enumDescriptions": [ +"Shuffle mode information is not available.", +"Shuffle is done on the worker VMs.", +"Shuffle is done on the service side." +], +"readOnly": true, +"type": "string" +}, +"streamingMode": { +"description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case. For more information, see [Set the pipeline streaming mode](https://cloud.google.com/dataflow/docs/guides/streaming-modes).", +"enum": [ +"STREAMING_MODE_UNSPECIFIED", +"STREAMING_MODE_EXACTLY_ONCE", +"STREAMING_MODE_AT_LEAST_ONCE" +], +"enumDescriptions": [ +"Run in the default mode.", +"In this mode, message deduplication is performed against persistent state to make sure each message is processed and committed to storage exactly once.", +"Message deduplication is not performed. Messages might be processed multiple times, and the results are applied multiple times. Note: Setting this value also enables Streaming Engine and Streaming Engine resource-based billing." +], +"type": "string" +}, +"tempStoragePrefix": { +"description": "The prefix of the resources the system should use for temporary storage. The system will append the suffix \"/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}", +"type": "string" +}, +"useStreamingEngineResourceBasedBilling": { +"description": "Output only. Whether the job uses the Streaming Engine resource-based billing model.", +"readOnly": true, +"type": "boolean" +}, +"userAgent": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "A description of the process that generated the request.", +"type": "object" +}, +"version": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "A structure describing which components and their versions of the service are required in order to run the job.", +"type": "object" +}, +"workerPools": { +"description": "The worker pools. At least one \"harness\" worker pool must be specified in order for the job to have workers.", +"items": { +"$ref": "WorkerPool" +}, +"type": "array" +}, +"workerRegion": { +"description": "Optional. The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1\". Mutually exclusive with worker_zone. If neither worker_region nor worker_zone is specified, default to the control plane's region.", +"type": "string" +}, +"workerZone": { +"description": "Optional. The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1-a\". Mutually exclusive with worker_region. If neither worker_region nor worker_zone is specified, a zone in the control plane's region is chosen based on available capacity.", +"type": "string" +} +}, +"type": "object" +}, +"ExecutionStageState": { +"description": "A message describing the state of a particular execution stage.", +"id": "ExecutionStageState", +"properties": { +"currentStateTime": { +"description": "The time at which the stage transitioned to this state.", +"format": "google-datetime", +"type": "string" +}, +"executionStageName": { +"description": "The name of the execution stage.", +"type": "string" +}, +"executionStageState": { +"description": "Executions stage states allow the same set of values as JobState.", +"enum": [ +"JOB_STATE_UNKNOWN", +"JOB_STATE_STOPPED", +"JOB_STATE_RUNNING", +"JOB_STATE_DONE", +"JOB_STATE_FAILED", +"JOB_STATE_CANCELLED", +"JOB_STATE_UPDATED", +"JOB_STATE_DRAINING", +"JOB_STATE_DRAINED", +"JOB_STATE_PENDING", +"JOB_STATE_CANCELLING", +"JOB_STATE_QUEUED", +"JOB_STATE_RESOURCE_CLEANING_UP" +], +"enumDescriptions": [ +"The job's run state isn't specified.", +"`JOB_STATE_STOPPED` indicates that the job has not yet started to run.", +"`JOB_STATE_RUNNING` indicates that the job is currently running.", +"`JOB_STATE_DONE` indicates that the job has successfully completed. This is a terminal job state. This state may be set by the Cloud Dataflow service, as a transition from `JOB_STATE_RUNNING`. It may also be set via a Cloud Dataflow `UpdateJob` call, if the job has not yet reached a terminal state.", +"`JOB_STATE_FAILED` indicates that the job has failed. This is a terminal job state. This state may only be set by the Cloud Dataflow service, and only as a transition from `JOB_STATE_RUNNING`.", +"`JOB_STATE_CANCELLED` indicates that the job has been explicitly cancelled. This is a terminal job state. This state may only be set via a Cloud Dataflow `UpdateJob` call, and only if the job has not yet reached another terminal state.", +"`JOB_STATE_UPDATED` indicates that the job was successfully updated, meaning that this job was stopped and another job was started, inheriting state from this one. This is a terminal job state. This state may only be set by the Cloud Dataflow service, and only as a transition from `JOB_STATE_RUNNING`.", +"`JOB_STATE_DRAINING` indicates that the job is in the process of draining. A draining job has stopped pulling from its input sources and is processing any data that remains in-flight. This state may be set via a Cloud Dataflow `UpdateJob` call, but only as a transition from `JOB_STATE_RUNNING`. Jobs that are draining may only transition to `JOB_STATE_DRAINED`, `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.", +"`JOB_STATE_DRAINED` indicates that the job has been drained. A drained job terminated by stopping pulling from its input sources and processing any data that remained in-flight when draining was requested. This state is a terminal state, may only be set by the Cloud Dataflow service, and only as a transition from `JOB_STATE_DRAINING`.", +"`JOB_STATE_PENDING` indicates that the job has been created but is not yet running. Jobs that are pending may only transition to `JOB_STATE_RUNNING`, or `JOB_STATE_FAILED`.", +"`JOB_STATE_CANCELLING` indicates that the job has been explicitly cancelled and is in the process of stopping. Jobs that are cancelling may only transition to `JOB_STATE_CANCELLED` or `JOB_STATE_FAILED`.", +"`JOB_STATE_QUEUED` indicates that the job has been created but is being delayed until launch. Jobs that are queued may only transition to `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.", +"`JOB_STATE_RESOURCE_CLEANING_UP` indicates that the batch job's associated resources are currently being cleaned up after a successful run. Currently, this is an opt-in feature, please reach out to Cloud support team if you are interested." +], +"type": "string" +} +}, +"type": "object" +}, +"ExecutionStageSummary": { +"description": "Description of the composing transforms, names/ids, and input/outputs of a stage of execution. Some composing transforms and sources may have been generated by the Dataflow service during execution planning.", +"id": "ExecutionStageSummary", +"properties": { +"componentSource": { +"description": "Collections produced and consumed by component transforms of this stage.", +"items": { +"$ref": "ComponentSource" +}, +"type": "array" +}, +"componentTransform": { +"description": "Transforms that comprise this execution stage.", +"items": { +"$ref": "ComponentTransform" +}, +"type": "array" +}, +"id": { +"description": "Dataflow service generated id for this stage.", +"type": "string" +}, +"inputSource": { +"description": "Input sources for this stage.", +"items": { +"$ref": "StageSource" +}, +"type": "array" +}, +"kind": { +"description": "Type of transform this stage is executing.", +"enum": [ +"UNKNOWN_KIND", +"PAR_DO_KIND", +"GROUP_BY_KEY_KIND", +"FLATTEN_KIND", +"READ_KIND", +"WRITE_KIND", +"CONSTANT_KIND", +"SINGLETON_KIND", +"SHUFFLE_KIND" +], +"enumDescriptions": [ +"Unrecognized transform type.", +"ParDo transform.", +"Group By Key transform.", +"Flatten transform.", +"Read transform.", +"Write transform.", +"Constructs from a constant value, such as with Create.of.", +"Creates a Singleton view of a collection.", +"Opening or closing a shuffle session, often as part of a GroupByKey." +], +"type": "string" +}, +"name": { +"description": "Dataflow service generated name for this stage.", +"type": "string" +}, +"outputSource": { +"description": "Output sources for this stage.", +"items": { +"$ref": "StageSource" +}, +"type": "array" +}, +"prerequisiteStage": { +"description": "Other stages that must complete before this stage can run.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"FailedLocation": { +"description": "Indicates which [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) failed to respond to a request for data.", +"id": "FailedLocation", +"properties": { +"name": { +"description": "The name of the [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that failed to respond.", +"type": "string" +} +}, +"type": "object" +}, +"FileIODetails": { +"description": "Metadata for a File connector used by the job.", +"id": "FileIODetails", +"properties": { +"filePattern": { +"description": "File Pattern used to access files by the connector.", +"type": "string" +} +}, +"type": "object" +}, +"FlattenInstruction": { +"description": "An instruction that copies its inputs (zero or more) to its (single) output.", +"id": "FlattenInstruction", +"properties": { +"inputs": { +"description": "Describes the inputs to the flatten instruction.", +"items": { +"$ref": "InstructionInput" +}, +"type": "array" +} +}, +"type": "object" +}, +"FlexTemplateRuntimeEnvironment": { +"description": "The environment values to be set at runtime for flex template.", +"id": "FlexTemplateRuntimeEnvironment", +"properties": { +"additionalExperiments": { +"description": "Additional experiment flags for the job.", +"items": { +"type": "string" +}, +"type": "array" +}, +"additionalUserLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional user labels to be specified for the job. Keys and values must follow the restrictions specified in the [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) page. An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1kg\", \"count\": \"3\" }.", +"type": "object" +}, +"autoscalingAlgorithm": { +"description": "The algorithm to use for autoscaling", +"enum": [ +"AUTOSCALING_ALGORITHM_UNKNOWN", +"AUTOSCALING_ALGORITHM_NONE", +"AUTOSCALING_ALGORITHM_BASIC" +], +"enumDescriptions": [ +"The algorithm is unknown, or unspecified.", +"Disable autoscaling.", +"Increase worker count over time to reduce job execution time." +], +"type": "string" +}, +"diskSizeGb": { +"description": "Worker disk size, in gigabytes.", +"format": "int32", +"type": "integer" +}, +"dumpHeapOnOom": { +"description": "If true, when processing time is spent almost entirely on garbage collection (GC), saves a heap dump before ending the thread or process. If false, ends the thread or process without saving a heap dump. Does not save a heap dump when the Java Virtual Machine (JVM) has an out of memory error during processing. The location of the heap file is either echoed back to the user, or the user is given the opportunity to download the heap file.", +"type": "boolean" +}, +"enableLauncherVmSerialPortLogging": { +"description": "If true serial port logging will be enabled for the launcher VM.", +"type": "boolean" +}, +"enableStreamingEngine": { +"description": "Whether to enable Streaming Engine for the job.", +"type": "boolean" +}, +"flexrsGoal": { +"description": "Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/flexrs", +"enum": [ +"FLEXRS_UNSPECIFIED", +"FLEXRS_SPEED_OPTIMIZED", +"FLEXRS_COST_OPTIMIZED" +], +"enumDescriptions": [ +"Run in the default mode.", +"Optimize for lower execution time.", +"Optimize for lower cost." +], +"type": "string" +}, +"ipConfiguration": { +"description": "Configuration for VM IPs.", +"enum": [ +"WORKER_IP_UNSPECIFIED", +"WORKER_IP_PUBLIC", +"WORKER_IP_PRIVATE" +], +"enumDescriptions": [ +"The configuration is unknown, or unspecified.", +"Workers should have public IP addresses.", +"Workers should have private IP addresses." +], +"type": "string" +}, +"kmsKeyName": { +"description": "Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings//cryptoKeys/", +"type": "string" +}, +"launcherMachineType": { +"description": "The machine type to use for launching the job. The default is n1-standard-1.", +"type": "string" +}, +"machineType": { +"description": "The machine type to use for the job. Defaults to the value from the template if not specified.", +"type": "string" +}, +"maxWorkers": { +"description": "The maximum number of Google Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.", +"format": "int32", +"type": "integer" +}, +"network": { +"description": "Network to which VMs will be assigned. If empty or unspecified, the service will use the network \"default\".", +"type": "string" +}, +"numWorkers": { +"description": "The initial number of Google Compute Engine instances for the job.", +"format": "int32", +"type": "integer" +}, +"saveHeapDumpsToGcsPath": { +"description": "Cloud Storage bucket (directory) to upload heap dumps to. Enabling this field implies that `dump_heap_on_oom` is set to true.", +"type": "string" +}, +"sdkContainerImage": { +"description": "Docker registry location of container image to use for the 'worker harness. Default is the container for the version of the SDK. Note this field is only valid for portable pipelines.", +"type": "string" +}, +"serviceAccountEmail": { +"description": "The email address of the service account to run the job as.", +"type": "string" +}, +"stagingLocation": { +"description": "The Cloud Storage path for staging local files. Must be a valid Cloud Storage URL, beginning with `gs://`.", +"type": "string" +}, +"streamingMode": { +"description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case. For more information, see [Set the pipeline streaming mode](https://cloud.google.com/dataflow/docs/guides/streaming-modes).", +"enum": [ +"STREAMING_MODE_UNSPECIFIED", +"STREAMING_MODE_EXACTLY_ONCE", +"STREAMING_MODE_AT_LEAST_ONCE" +], +"enumDescriptions": [ +"Run in the default mode.", +"In this mode, message deduplication is performed against persistent state to make sure each message is processed and committed to storage exactly once.", +"Message deduplication is not performed. Messages might be processed multiple times, and the results are applied multiple times. Note: Setting this value also enables Streaming Engine and Streaming Engine resource-based billing." +], +"type": "string" +}, +"subnetwork": { +"description": "Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form \"https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK\" or \"regions/REGION/subnetworks/SUBNETWORK\". If the subnetwork is located in a Shared VPC network, you must use the complete URL.", +"type": "string" +}, +"tempLocation": { +"description": "The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with `gs://`.", +"type": "string" +}, +"workerRegion": { +"description": "The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1\". Mutually exclusive with worker_zone. If neither worker_region nor worker_zone is specified, default to the control plane's region.", +"type": "string" +}, +"workerZone": { +"description": "The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1-a\". Mutually exclusive with worker_region. If neither worker_region nor worker_zone is specified, a zone in the control plane's region is chosen based on available capacity. If both `worker_zone` and `zone` are set, `worker_zone` takes precedence.", +"type": "string" +}, +"zone": { +"description": "The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones) for launching worker instances to run your pipeline. In the future, worker_zone will take precedence.", +"type": "string" +} +}, +"type": "object" +}, +"FloatingPointList": { +"description": "A metric value representing a list of floating point numbers.", +"id": "FloatingPointList", +"properties": { +"elements": { +"description": "Elements of the list.", +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +} +}, +"type": "object" +}, +"FloatingPointMean": { +"description": "A representation of a floating point mean metric contribution.", +"id": "FloatingPointMean", +"properties": { +"count": { +"$ref": "SplitInt64", +"description": "The number of values being aggregated." +}, +"sum": { +"description": "The sum of all values being aggregated.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GPUUsage": { +"description": "Information about the GPU usage on the worker.", +"id": "GPUUsage", +"properties": { +"timestamp": { +"description": "Required. Timestamp of the measurement.", +"format": "google-datetime", +"type": "string" +}, +"utilization": { +"$ref": "GPUUtilization", +"description": "Required. Utilization info about the GPU." +} +}, +"type": "object" +}, +"GPUUtilization": { +"description": "Utilization details about the GPU.", +"id": "GPUUtilization", +"properties": { +"rate": { +"description": "Required. GPU utilization rate of any kernel over the last sample period in the range of [0, 1].", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GetDebugConfigRequest": { +"description": "Request to get updated debug configuration for component.", +"id": "GetDebugConfigRequest", +"properties": { +"componentId": { +"description": "The internal component id for which debug configuration is requested.", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"type": "string" +}, +"workerId": { +"description": "The worker id, i.e., VM hostname.", +"type": "string" +} +}, +"type": "object" +}, +"GetDebugConfigResponse": { +"description": "Response to a get debug configuration request.", +"id": "GetDebugConfigResponse", +"properties": { +"config": { +"description": "The encoded debug configuration for the requested component.", +"type": "string" +} +}, +"type": "object" +}, +"GetTemplateResponse": { +"description": "The response to a GetTemplate request.", +"id": "GetTemplateResponse", +"properties": { +"metadata": { +"$ref": "TemplateMetadata", +"description": "The template metadata describing the template name, available parameters, etc." +}, +"runtimeMetadata": { +"$ref": "RuntimeMetadata", +"description": "Describes the runtime metadata with SDKInfo and available parameters." +}, +"status": { +"$ref": "Status", +"description": "The status of the get template request. Any problems with the request will be indicated in the error_details." +}, +"templateType": { +"description": "Template Type.", +"enum": [ +"UNKNOWN", +"LEGACY", +"FLEX" +], +"enumDescriptions": [ +"Unknown Template Type.", +"Legacy Template.", +"Flex Template." +], +"type": "string" +} +}, +"type": "object" +}, +"Histogram": { +"description": "Histogram of value counts for a distribution. Buckets have an inclusive lower bound and exclusive upper bound and use \"1,2,5 bucketing\": The first bucket range is from [0,1) and all subsequent bucket boundaries are powers of ten multiplied by 1, 2, or 5. Thus, bucket boundaries are 0, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, ... Negative values are not supported.", +"id": "Histogram", +"properties": { +"bucketCounts": { +"description": "Counts of values in each bucket. For efficiency, prefix and trailing buckets with count = 0 are elided. Buckets can store the full range of values of an unsigned long, with ULLONG_MAX falling into the 59th bucket with range [1e19, 2e19).", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"firstBucketOffset": { +"description": "Starting index of first stored bucket. The non-inclusive upper-bound of the ith bucket is given by: pow(10,(i-first_bucket_offset)/3) * (1,2,5)[(i-first_bucket_offset)%3]", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"HotKeyDebuggingInfo": { +"description": "Information useful for debugging a hot key detection.", +"id": "HotKeyDebuggingInfo", +"properties": { +"detectedHotKeys": { +"additionalProperties": { +"$ref": "HotKeyInfo" +}, +"description": "Debugging information for each detected hot key. Keyed by a hash of the key.", +"type": "object" +} +}, +"type": "object" +}, +"HotKeyDetection": { +"description": "Proto describing a hot key detected on a given WorkItem.", +"id": "HotKeyDetection", +"properties": { +"hotKeyAge": { +"description": "The age of the hot key measured from when it was first detected.", +"format": "google-duration", +"type": "string" +}, +"systemName": { +"description": "System-defined name of the step containing this hot key. Unique across the workflow.", +"type": "string" +}, +"userStepName": { +"description": "User-provided name of the step that contains this hot key.", +"type": "string" +} +}, +"type": "object" +}, +"HotKeyInfo": { +"description": "Information about a hot key.", +"id": "HotKeyInfo", +"properties": { +"hotKeyAge": { +"description": "The age of the hot key measured from when it was first detected.", +"format": "google-duration", +"type": "string" +}, +"key": { +"description": "A detected hot key that is causing limited parallelism. This field will be populated only if the following flag is set to true: \"--enable_hot_key_logging\".", +"type": "string" +}, +"keyTruncated": { +"description": "If true, then the above key is truncated and cannot be deserialized. This occurs if the key above is populated and the key size is >5MB.", +"type": "boolean" +} +}, +"type": "object" +}, +"InstructionInput": { +"description": "An input of an instruction, as a reference to an output of a producer instruction.", +"id": "InstructionInput", +"properties": { +"outputNum": { +"description": "The output index (origin zero) within the producer.", +"format": "int32", +"type": "integer" +}, +"producerInstructionIndex": { +"description": "The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"InstructionOutput": { +"description": "An output of an instruction.", +"id": "InstructionOutput", +"properties": { +"codec": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The codec to use to encode data being written via this output.", +"type": "object" +}, +"name": { +"description": "The user-provided name of this output.", +"type": "string" +}, +"onlyCountKeyBytes": { +"description": "For system-generated byte and mean byte metrics, certain instructions should only report the key size.", +"type": "boolean" +}, +"onlyCountValueBytes": { +"description": "For system-generated byte and mean byte metrics, certain instructions should only report the value size.", +"type": "boolean" +}, +"originalName": { +"description": "System-defined name for this output in the original workflow graph. Outputs that do not contribute to an original instruction do not set this.", +"type": "string" +}, +"systemName": { +"description": "System-defined name of this output. Unique across the workflow.", +"type": "string" +} +}, +"type": "object" +}, +"IntegerGauge": { +"description": "A metric value representing temporal values of a variable.", +"id": "IntegerGauge", +"properties": { +"timestamp": { +"description": "The time at which this value was measured. Measured as msecs from epoch.", +"format": "google-datetime", +"type": "string" +}, +"value": { +"$ref": "SplitInt64", +"description": "The value of the variable represented by this gauge." +} +}, +"type": "object" +}, +"IntegerList": { +"description": "A metric value representing a list of integers.", +"id": "IntegerList", +"properties": { +"elements": { +"description": "Elements of the list.", +"items": { +"$ref": "SplitInt64" +}, +"type": "array" +} +}, +"type": "object" +}, +"IntegerMean": { +"description": "A representation of an integer mean metric contribution.", +"id": "IntegerMean", +"properties": { +"count": { +"$ref": "SplitInt64", +"description": "The number of values being aggregated." +}, +"sum": { +"$ref": "SplitInt64", +"description": "The sum of all values being aggregated." +} +}, +"type": "object" +}, +"Job": { +"description": "Defines a job to be run by the Cloud Dataflow service. Do not enter confidential information when you supply string values using the API.", +"id": "Job", +"properties": { +"clientRequestId": { +"description": "The client's unique identifier of the job, re-used across retried attempts. If this field is set, the service will ensure its uniqueness. The request to create a job will fail if the service has knowledge of a previously submitted job with the same client's ID and job name. The caller may use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.", +"type": "string" +}, +"createTime": { +"description": "The timestamp when the job was initially created. Immutable and set by the Cloud Dataflow service.", +"format": "google-datetime", +"type": "string" +}, +"createdFromSnapshotId": { +"description": "If this is specified, the job's initial state is populated from the given snapshot.", +"type": "string" +}, +"currentState": { +"description": "The current state of the job. Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise specified. A job in the `JOB_STATE_RUNNING` state may asynchronously enter a terminal state. After a job has reached a terminal state, no further state updates may be made. This field might be mutated by the Dataflow service; callers cannot mutate it.", +"enum": [ +"JOB_STATE_UNKNOWN", +"JOB_STATE_STOPPED", +"JOB_STATE_RUNNING", +"JOB_STATE_DONE", +"JOB_STATE_FAILED", +"JOB_STATE_CANCELLED", +"JOB_STATE_UPDATED", +"JOB_STATE_DRAINING", +"JOB_STATE_DRAINED", +"JOB_STATE_PENDING", +"JOB_STATE_CANCELLING", +"JOB_STATE_QUEUED", +"JOB_STATE_RESOURCE_CLEANING_UP" +], +"enumDescriptions": [ +"The job's run state isn't specified.", +"`JOB_STATE_STOPPED` indicates that the job has not yet started to run.", +"`JOB_STATE_RUNNING` indicates that the job is currently running.", +"`JOB_STATE_DONE` indicates that the job has successfully completed. This is a terminal job state. This state may be set by the Cloud Dataflow service, as a transition from `JOB_STATE_RUNNING`. It may also be set via a Cloud Dataflow `UpdateJob` call, if the job has not yet reached a terminal state.", +"`JOB_STATE_FAILED` indicates that the job has failed. This is a terminal job state. This state may only be set by the Cloud Dataflow service, and only as a transition from `JOB_STATE_RUNNING`.", +"`JOB_STATE_CANCELLED` indicates that the job has been explicitly cancelled. This is a terminal job state. This state may only be set via a Cloud Dataflow `UpdateJob` call, and only if the job has not yet reached another terminal state.", +"`JOB_STATE_UPDATED` indicates that the job was successfully updated, meaning that this job was stopped and another job was started, inheriting state from this one. This is a terminal job state. This state may only be set by the Cloud Dataflow service, and only as a transition from `JOB_STATE_RUNNING`.", +"`JOB_STATE_DRAINING` indicates that the job is in the process of draining. A draining job has stopped pulling from its input sources and is processing any data that remains in-flight. This state may be set via a Cloud Dataflow `UpdateJob` call, but only as a transition from `JOB_STATE_RUNNING`. Jobs that are draining may only transition to `JOB_STATE_DRAINED`, `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.", +"`JOB_STATE_DRAINED` indicates that the job has been drained. A drained job terminated by stopping pulling from its input sources and processing any data that remained in-flight when draining was requested. This state is a terminal state, may only be set by the Cloud Dataflow service, and only as a transition from `JOB_STATE_DRAINING`.", +"`JOB_STATE_PENDING` indicates that the job has been created but is not yet running. Jobs that are pending may only transition to `JOB_STATE_RUNNING`, or `JOB_STATE_FAILED`.", +"`JOB_STATE_CANCELLING` indicates that the job has been explicitly cancelled and is in the process of stopping. Jobs that are cancelling may only transition to `JOB_STATE_CANCELLED` or `JOB_STATE_FAILED`.", +"`JOB_STATE_QUEUED` indicates that the job has been created but is being delayed until launch. Jobs that are queued may only transition to `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.", +"`JOB_STATE_RESOURCE_CLEANING_UP` indicates that the batch job's associated resources are currently being cleaned up after a successful run. Currently, this is an opt-in feature, please reach out to Cloud support team if you are interested." +], +"type": "string" +}, +"currentStateTime": { +"description": "The timestamp associated with the current state.", +"format": "google-datetime", +"type": "string" +}, +"environment": { +"$ref": "Environment", +"description": "Optional. The environment for the job." +}, +"executionInfo": { +"$ref": "JobExecutionInfo", +"description": "Deprecated." +}, +"id": { +"description": "The unique ID of this job. This field is set by the Dataflow service when the job is created, and is immutable for the life of the job.", +"type": "string" +}, +"jobMetadata": { +"$ref": "JobMetadata", +"description": "This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \\p{Ll}\\p{Lo}{0,62} * Values must conform to regexp: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.", +"type": "object" +}, +"location": { +"description": "Optional. The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.", +"type": "string" +}, +"name": { +"description": "Optional. The user-specified Dataflow job name. Only one active job with a given name can exist in a project within one region at any given time. Jobs in different regions can have the same name. If a caller attempts to create a job with the same name as an active job that already exists, the attempt returns the existing job. The name must match the regular expression `[a-z]([-a-z0-9]{0,1022}[a-z0-9])?`", +"type": "string" +}, +"pipelineDescription": { +"$ref": "PipelineDescription", +"description": "Preliminary field: The format of this data may change at any time. A description of the user pipeline and stages through which it is executed. Created by Cloud Dataflow service. Only retrieved with JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL." +}, +"projectId": { +"description": "The ID of the Google Cloud project that the job belongs to.", +"type": "string" +}, +"replaceJobId": { +"description": "If this job is an update of an existing job, this field is the job ID of the job it replaced. When sending a `CreateJobRequest`, you can update a job by specifying it here. The job named here is stopped, and its intermediate state is transferred to this job.", +"type": "string" +}, +"replacedByJobId": { +"description": "If another job is an update of this job (and thus, this job is in `JOB_STATE_UPDATED`), this field contains the ID of that job.", +"type": "string" +}, +"requestedState": { +"description": "The job's requested state. Applies to `UpdateJob` requests. Set `requested_state` with `UpdateJob` requests to switch between the states `JOB_STATE_STOPPED` and `JOB_STATE_RUNNING`. You can also use `UpdateJob` requests to change a job's state from `JOB_STATE_RUNNING` to `JOB_STATE_CANCELLED`, `JOB_STATE_DONE`, or `JOB_STATE_DRAINED`. These states irrevocably terminate the job if it hasn't already reached a terminal state. This field has no effect on `CreateJob` requests.", +"enum": [ +"JOB_STATE_UNKNOWN", +"JOB_STATE_STOPPED", +"JOB_STATE_RUNNING", +"JOB_STATE_DONE", +"JOB_STATE_FAILED", +"JOB_STATE_CANCELLED", +"JOB_STATE_UPDATED", +"JOB_STATE_DRAINING", +"JOB_STATE_DRAINED", +"JOB_STATE_PENDING", +"JOB_STATE_CANCELLING", +"JOB_STATE_QUEUED", +"JOB_STATE_RESOURCE_CLEANING_UP" +], +"enumDescriptions": [ +"The job's run state isn't specified.", +"`JOB_STATE_STOPPED` indicates that the job has not yet started to run.", +"`JOB_STATE_RUNNING` indicates that the job is currently running.", +"`JOB_STATE_DONE` indicates that the job has successfully completed. This is a terminal job state. This state may be set by the Cloud Dataflow service, as a transition from `JOB_STATE_RUNNING`. It may also be set via a Cloud Dataflow `UpdateJob` call, if the job has not yet reached a terminal state.", +"`JOB_STATE_FAILED` indicates that the job has failed. This is a terminal job state. This state may only be set by the Cloud Dataflow service, and only as a transition from `JOB_STATE_RUNNING`.", +"`JOB_STATE_CANCELLED` indicates that the job has been explicitly cancelled. This is a terminal job state. This state may only be set via a Cloud Dataflow `UpdateJob` call, and only if the job has not yet reached another terminal state.", +"`JOB_STATE_UPDATED` indicates that the job was successfully updated, meaning that this job was stopped and another job was started, inheriting state from this one. This is a terminal job state. This state may only be set by the Cloud Dataflow service, and only as a transition from `JOB_STATE_RUNNING`.", +"`JOB_STATE_DRAINING` indicates that the job is in the process of draining. A draining job has stopped pulling from its input sources and is processing any data that remains in-flight. This state may be set via a Cloud Dataflow `UpdateJob` call, but only as a transition from `JOB_STATE_RUNNING`. Jobs that are draining may only transition to `JOB_STATE_DRAINED`, `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.", +"`JOB_STATE_DRAINED` indicates that the job has been drained. A drained job terminated by stopping pulling from its input sources and processing any data that remained in-flight when draining was requested. This state is a terminal state, may only be set by the Cloud Dataflow service, and only as a transition from `JOB_STATE_DRAINING`.", +"`JOB_STATE_PENDING` indicates that the job has been created but is not yet running. Jobs that are pending may only transition to `JOB_STATE_RUNNING`, or `JOB_STATE_FAILED`.", +"`JOB_STATE_CANCELLING` indicates that the job has been explicitly cancelled and is in the process of stopping. Jobs that are cancelling may only transition to `JOB_STATE_CANCELLED` or `JOB_STATE_FAILED`.", +"`JOB_STATE_QUEUED` indicates that the job has been created but is being delayed until launch. Jobs that are queued may only transition to `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.", +"`JOB_STATE_RESOURCE_CLEANING_UP` indicates that the batch job's associated resources are currently being cleaned up after a successful run. Currently, this is an opt-in feature, please reach out to Cloud support team if you are interested." +], +"type": "string" +}, +"runtimeUpdatableParams": { +"$ref": "RuntimeUpdatableParams", +"description": "This field may ONLY be modified at runtime using the projects.jobs.update method to adjust job behavior. This field has no effect when specified at job creation." +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.", +"type": "boolean" +}, +"serviceResources": { +"$ref": "ServiceResources", +"description": "Output only. Resources used by the Dataflow Service to run the job.", +"readOnly": true +}, +"stageStates": { +"description": "This field may be mutated by the Cloud Dataflow service; callers cannot mutate it.", +"items": { +"$ref": "ExecutionStageState" +}, +"type": "array" +}, +"startTime": { +"description": "The timestamp when the job was started (transitioned to JOB_STATE_PENDING). Flexible resource scheduling jobs are started with some delay after job creation, so start_time is unset before start and is updated when the job is started by the Cloud Dataflow service. For other jobs, start_time always equals to create_time and is immutable and set by the Cloud Dataflow service.", +"format": "google-datetime", +"type": "string" +}, +"steps": { +"description": "Exactly one of step or steps_location should be specified. The top-level steps that constitute the entire job. Only retrieved with JOB_VIEW_ALL.", +"items": { +"$ref": "Step" +}, +"type": "array" +}, +"stepsLocation": { +"description": "The Cloud Storage location where the steps are stored.", +"type": "string" +}, +"tempFiles": { +"description": "A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}", +"items": { +"type": "string" +}, +"type": "array" +}, +"transformNameMapping": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.", +"type": "object" +}, +"type": { +"description": "Optional. The type of Dataflow job.", +"enum": [ +"JOB_TYPE_UNKNOWN", +"JOB_TYPE_BATCH", +"JOB_TYPE_STREAMING" +], +"enumDescriptions": [ +"The type of the job is unspecified, or unknown.", +"A batch job with a well-defined end point: data is read, data is processed, data is written, and the job is done.", +"A continuously streaming job with no end: data is read, processed, and written continuously." +], +"type": "string" +} +}, +"type": "object" +}, +"JobExecutionDetails": { +"description": "Information about the execution of a job.", +"id": "JobExecutionDetails", +"properties": { +"nextPageToken": { +"description": "If present, this response does not contain all requested tasks. To obtain the next page of results, repeat the request with page_token set to this value.", +"type": "string" +}, +"stages": { +"description": "The stages of the job execution.", +"items": { +"$ref": "StageSummary" +}, +"type": "array" +} +}, +"type": "object" +}, +"JobExecutionInfo": { +"description": "Additional information about how a Cloud Dataflow job will be executed that isn't contained in the submitted job.", +"id": "JobExecutionInfo", +"properties": { +"stages": { +"additionalProperties": { +"$ref": "JobExecutionStageInfo" +}, +"description": "A mapping from each stage to the information about that stage.", +"type": "object" +} +}, +"type": "object" +}, +"JobExecutionStageInfo": { +"description": "Contains information about how a particular google.dataflow.v1beta3.Step will be executed.", +"id": "JobExecutionStageInfo", +"properties": { +"stepName": { +"description": "The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"JobMessage": { +"description": "A particular message pertaining to a Dataflow job.", +"id": "JobMessage", +"properties": { +"id": { +"description": "Deprecated.", +"type": "string" +}, +"messageImportance": { +"description": "Importance level of the message.", +"enum": [ +"JOB_MESSAGE_IMPORTANCE_UNKNOWN", +"JOB_MESSAGE_DEBUG", +"JOB_MESSAGE_DETAILED", +"JOB_MESSAGE_BASIC", +"JOB_MESSAGE_WARNING", +"JOB_MESSAGE_ERROR" +], +"enumDescriptions": [ +"The message importance isn't specified, or is unknown.", +"The message is at the 'debug' level: typically only useful for software engineers working on the code the job is running. Typically, Dataflow pipeline runners do not display log messages at this level by default.", +"The message is at the 'detailed' level: somewhat verbose, but potentially useful to users. Typically, Dataflow pipeline runners do not display log messages at this level by default. These messages are displayed by default in the Dataflow monitoring UI.", +"The message is at the 'basic' level: useful for keeping track of the execution of a Dataflow pipeline. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.", +"The message is at the 'warning' level: indicating a condition pertaining to a job which may require human intervention. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.", +"The message is at the 'error' level: indicating a condition preventing a job from succeeding. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI." +], +"type": "string" +}, +"messageText": { +"description": "The text of the message.", +"type": "string" +}, +"time": { +"description": "The timestamp of the message.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"JobMetadata": { +"description": "Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view.", +"id": "JobMetadata", +"properties": { +"bigTableDetails": { +"description": "Identification of a Cloud Bigtable source used in the Dataflow job.", +"items": { +"$ref": "BigTableIODetails" +}, +"type": "array" +}, +"bigqueryDetails": { +"description": "Identification of a BigQuery source used in the Dataflow job.", +"items": { +"$ref": "BigQueryIODetails" +}, +"type": "array" +}, +"datastoreDetails": { +"description": "Identification of a Datastore source used in the Dataflow job.", +"items": { +"$ref": "DatastoreIODetails" +}, +"type": "array" +}, +"fileDetails": { +"description": "Identification of a File source used in the Dataflow job.", +"items": { +"$ref": "FileIODetails" +}, +"type": "array" +}, +"pubsubDetails": { +"description": "Identification of a Pub/Sub source used in the Dataflow job.", +"items": { +"$ref": "PubSubIODetails" +}, +"type": "array" +}, +"sdkVersion": { +"$ref": "SdkVersion", +"description": "The SDK version used to run the job." +}, +"spannerDetails": { +"description": "Identification of a Spanner source used in the Dataflow job.", +"items": { +"$ref": "SpannerIODetails" +}, +"type": "array" +}, +"userDisplayProperties": { +"additionalProperties": { +"type": "string" +}, +"description": "List of display properties to help UI filter jobs.", +"type": "object" +} +}, +"type": "object" +}, +"JobMetrics": { +"description": "JobMetrics contains a collection of metrics describing the detailed progress of a Dataflow job. Metrics correspond to user-defined and system-defined metrics in the job. For more information, see [Dataflow job metrics] (https://cloud.google.com/dataflow/docs/guides/using-monitoring-intf). This resource captures only the most recent values of each metric; time-series data can be queried for them (under the same metric names) from Cloud Monitoring.", +"id": "JobMetrics", +"properties": { +"metricTime": { +"description": "Timestamp as of which metric values are current.", +"format": "google-datetime", +"type": "string" +}, +"metrics": { +"description": "All metrics for this job.", +"items": { +"$ref": "MetricUpdate" +}, +"type": "array" +} +}, +"type": "object" +}, +"KeyRangeDataDiskAssignment": { +"description": "Data disk assignment information for a specific key-range of a sharded computation. Currently we only support UTF-8 character splits to simplify encoding into JSON.", +"id": "KeyRangeDataDiskAssignment", +"properties": { +"dataDisk": { +"description": "The name of the data disk where data for this range is stored. This name is local to the Google Cloud Platform project and uniquely identifies the disk within that project, for example \"myproject-1014-104817-4c2-harness-0-disk-1\".", +"type": "string" +}, +"end": { +"description": "The end (exclusive) of the key range.", +"type": "string" +}, +"start": { +"description": "The start (inclusive) of the key range.", +"type": "string" +} +}, +"type": "object" +}, +"KeyRangeLocation": { +"description": "Location information for a specific key-range of a sharded computation. Currently we only support UTF-8 character splits to simplify encoding into JSON.", +"id": "KeyRangeLocation", +"properties": { +"dataDisk": { +"description": "The name of the data disk where data for this range is stored. This name is local to the Google Cloud Platform project and uniquely identifies the disk within that project, for example \"myproject-1014-104817-4c2-harness-0-disk-1\".", +"type": "string" +}, +"deliveryEndpoint": { +"description": "The physical location of this range assignment to be used for streaming computation cross-worker message delivery.", +"type": "string" +}, +"deprecatedPersistentDirectory": { +"deprecated": true, +"description": "DEPRECATED. The location of the persistent state for this range, as a persistent directory in the worker local filesystem.", +"type": "string" +}, +"end": { +"description": "The end (exclusive) of the key range.", +"type": "string" +}, +"start": { +"description": "The start (inclusive) of the key range.", +"type": "string" +} +}, +"type": "object" +}, +"LaunchFlexTemplateParameter": { +"description": "Launch FlexTemplate Parameter.", +"id": "LaunchFlexTemplateParameter", +"properties": { +"containerSpec": { +"$ref": "ContainerSpec", +"description": "Spec about the container image to launch." +}, +"containerSpecGcsPath": { +"description": "Cloud Storage path to a file with json serialized ContainerSpec as content.", +"type": "string" +}, +"environment": { +"$ref": "FlexTemplateRuntimeEnvironment", +"description": "The runtime environment for the FlexTemplate job" +}, +"jobName": { +"description": "Required. The job name to use for the created job. For update job request, job name should be same as the existing running job.", +"type": "string" +}, +"launchOptions": { +"additionalProperties": { +"type": "string" +}, +"description": "Launch options for this flex template job. This is a common set of options across languages and templates. This should not be used to pass job parameters.", +"type": "object" +}, +"parameters": { +"additionalProperties": { +"type": "string" +}, +"description": "The parameters for FlexTemplate. Ex. {\"num_workers\":\"5\"}", +"type": "object" +}, +"transformNameMappings": { +"additionalProperties": { +"type": "string" +}, +"description": "Use this to pass transform_name_mappings for streaming update jobs. Ex:{\"oldTransformName\":\"newTransformName\",...}'", +"type": "object" +}, +"update": { +"description": "Set this to true if you are sending a request to update a running streaming job. When set, the job name should be the same as the running job.", +"type": "boolean" +} +}, +"type": "object" +}, +"LaunchFlexTemplateRequest": { +"description": "A request to launch a Cloud Dataflow job from a FlexTemplate.", +"id": "LaunchFlexTemplateRequest", +"properties": { +"launchParameter": { +"$ref": "LaunchFlexTemplateParameter", +"description": "Required. Parameter to launch a job form Flex Template." +}, +"validateOnly": { +"description": "If true, the request is validated but not actually executed. Defaults to false.", +"type": "boolean" +} +}, +"type": "object" +}, +"LaunchFlexTemplateResponse": { +"description": "Response to the request to launch a job from Flex Template.", +"id": "LaunchFlexTemplateResponse", +"properties": { +"job": { +"$ref": "Job", +"description": "The job that was launched, if the request was not a dry run and the job was successfully launched." +} +}, +"type": "object" +}, +"LaunchTemplateParameters": { +"description": "Parameters to provide to the template being launched. Note that the [metadata in the pipeline code] (https://cloud.google.com/dataflow/docs/guides/templates/creating-templates#metadata) determines which runtime parameters are valid.", +"id": "LaunchTemplateParameters", +"properties": { +"environment": { +"$ref": "RuntimeEnvironment", +"description": "The runtime environment for the job." +}, +"jobName": { +"description": "Required. The job name to use for the created job. The name must match the regular expression `[a-z]([-a-z0-9]{0,1022}[a-z0-9])?`", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"type": "string" +}, +"description": "The runtime parameters to pass to the job.", +"type": "object" +}, +"transformNameMapping": { +"additionalProperties": { +"type": "string" +}, +"description": "Only applicable when updating a pipeline. Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.", +"type": "object" +}, +"update": { +"description": "If set, replace the existing pipeline with the name specified by jobName with this pipeline, preserving state.", +"type": "boolean" +} +}, +"type": "object" +}, +"LaunchTemplateResponse": { +"description": "Response to the request to launch a template.", +"id": "LaunchTemplateResponse", +"properties": { +"job": { +"$ref": "Job", +"description": "The job that was launched, if the request was not a dry run and the job was successfully launched." +} +}, +"type": "object" +}, +"LeaseWorkItemRequest": { +"description": "Request to lease WorkItems.", +"id": "LeaseWorkItemRequest", +"properties": { +"currentWorkerTime": { +"description": "The current timestamp at the worker.", +"format": "google-datetime", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the WorkItem's job.", +"type": "string" +}, +"projectNumber": { +"description": "Optional. The project number of the project this worker belongs to.", +"format": "int64", +"type": "string" +}, +"requestedLeaseDuration": { +"description": "The initial lease period.", +"format": "google-duration", +"type": "string" +}, +"unifiedWorkerRequest": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Untranslated bag-of-bytes WorkRequest from UnifiedWorker.", +"type": "object" +}, +"workItemTypes": { +"description": "Filter for WorkItem type.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workerCapabilities": { +"description": "Worker capabilities. WorkItems might be limited to workers with specific capabilities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workerId": { +"description": "Identifies the worker leasing work -- typically the ID of the virtual machine running the worker.", +"type": "string" +} +}, +"type": "object" +}, +"LeaseWorkItemResponse": { +"description": "Response to a request to lease WorkItems.", +"id": "LeaseWorkItemResponse", +"properties": { +"unifiedWorkerResponse": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Untranslated bag-of-bytes WorkResponse for UnifiedWorker.", +"type": "object" +}, +"workItems": { +"description": "A list of the leased WorkItems.", +"items": { +"$ref": "WorkItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"Linear": { +"description": "Linear buckets with the following boundaries for indices in 0 to n-1. - i in [0, n-1]: [start + (i)*width, start + (i+1)*width)", +"id": "Linear", +"properties": { +"numberOfBuckets": { +"description": "Must be greater than 0.", +"format": "int32", +"type": "integer" +}, +"start": { +"description": "Lower bound of the first bucket.", +"format": "double", +"type": "number" +}, +"width": { +"description": "Distance between bucket boundaries. Must be greater than 0.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ListJobMessagesResponse": { +"description": "Response to a request to list job messages.", +"id": "ListJobMessagesResponse", +"properties": { +"autoscalingEvents": { +"description": "Autoscaling events in ascending timestamp order.", +"items": { +"$ref": "AutoscalingEvent" +}, +"type": "array" +}, +"jobMessages": { +"description": "Messages in ascending timestamp order.", +"items": { +"$ref": "JobMessage" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token to obtain the next page of results if there are more.", +"type": "string" +} +}, +"type": "object" +}, +"ListJobsResponse": { +"description": "Response to a request to list Cloud Dataflow jobs in a project. This might be a partial response, depending on the page size in the ListJobsRequest. However, if the project does not have any jobs, an instance of ListJobsResponse is not returned and the requests's response body is empty {}.", +"id": "ListJobsResponse", +"properties": { +"failedLocation": { +"description": "Zero or more messages describing the [regional endpoints] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that failed to respond.", +"items": { +"$ref": "FailedLocation" +}, +"type": "array" +}, +"jobs": { +"description": "A subset of the requested job information.", +"items": { +"$ref": "Job" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Set if there may be more results than fit in this response.", +"type": "string" +} +}, +"type": "object" +}, +"ListSnapshotsResponse": { +"description": "List of snapshots.", +"id": "ListSnapshotsResponse", +"properties": { +"snapshots": { +"description": "Returned snapshots.", +"items": { +"$ref": "Snapshot" +}, +"type": "array" +} +}, +"type": "object" +}, +"MapTask": { +"description": "MapTask consists of an ordered set of instructions, each of which describes one particular low-level operation for the worker to perform in order to accomplish the MapTask's WorkItem. Each instruction must appear in the list before any instructions which depends on its output.", +"id": "MapTask", +"properties": { +"counterPrefix": { +"description": "Counter prefix that can be used to prefix counters. Not currently used in Dataflow.", +"type": "string" +}, +"instructions": { +"description": "The instructions in the MapTask.", +"items": { +"$ref": "ParallelInstruction" +}, +"type": "array" +}, +"stageName": { +"description": "System-defined name of the stage containing this MapTask. Unique across the workflow.", +"type": "string" +}, +"systemName": { +"description": "System-defined name of this MapTask. Unique across the workflow.", +"type": "string" +} +}, +"type": "object" +}, +"MemInfo": { +"description": "Information about the memory usage of a worker or a container within a worker.", +"id": "MemInfo", +"properties": { +"currentLimitBytes": { +"description": "Instantenous memory limit in bytes.", +"format": "uint64", +"type": "string" +}, +"currentOoms": { +"description": "Number of Out of Memory (OOM) events recorded since the previous measurement.", +"format": "int64", +"type": "string" +}, +"currentRssBytes": { +"description": "Instantenous memory (RSS) size in bytes.", +"format": "uint64", +"type": "string" +}, +"timestamp": { +"description": "Timestamp of the measurement.", +"format": "google-datetime", +"type": "string" +}, +"totalGbMs": { +"description": "Total memory (RSS) usage since start up in GB * ms.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"MetricShortId": { +"description": "The metric short id is returned to the user alongside an offset into ReportWorkItemStatusRequest", +"id": "MetricShortId", +"properties": { +"metricIndex": { +"description": "The index of the corresponding metric in the ReportWorkItemStatusRequest. Required.", +"format": "int32", +"type": "integer" +}, +"shortId": { +"description": "The service-generated short identifier for the metric.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"MetricStructuredName": { +"description": "Identifies a metric, by describing the source which generated the metric.", +"id": "MetricStructuredName", +"properties": { +"context": { +"additionalProperties": { +"type": "string" +}, +"description": "Zero or more labeled fields which identify the part of the job this metric is associated with, such as the name of a step or collection. For example, built-in counters associated with steps will have context['step'] = . Counters associated with PCollections in the SDK will have context['pcollection'] = .", +"type": "object" +}, +"name": { +"description": "Worker-defined metric name.", +"type": "string" +}, +"origin": { +"description": "Origin (namespace) of metric name. May be blank for user-define metrics; will be \"dataflow\" for metrics defined by the Dataflow service or SDK.", +"type": "string" +} +}, +"type": "object" +}, +"MetricUpdate": { +"description": "Describes the state of a metric. Next ID: 14", +"id": "MetricUpdate", +"properties": { +"cumulative": { +"description": "True if this metric is reported as the total cumulative aggregate value accumulated since the worker started working on this WorkItem. By default this is false, indicating that this metric is reported as a delta that is not associated with any WorkItem.", +"type": "boolean" +}, +"distribution": { +"description": "A struct value describing properties of a distribution of numeric values.", +"type": "any" +}, +"gauge": { +"description": "A struct value describing properties of a Gauge. Metrics of gauge type show the value of a metric across time, and is aggregated based on the newest value.", +"type": "any" +}, +"internal": { +"description": "Worker-computed aggregate value for internal use by the Dataflow service.", +"type": "any" +}, +"kind": { +"description": "Metric aggregation kind. The possible metric aggregation kinds are \"Sum\", \"Max\", \"Min\", \"Mean\", \"Set\", \"And\", \"Or\", and \"Distribution\". The specified aggregation kind is case-insensitive. If omitted, this is not an aggregated value but instead a single metric sample value.", +"type": "string" +}, +"meanCount": { +"description": "Worker-computed aggregate value for the \"Mean\" aggregation kind. This holds the count of the aggregated values and is used in combination with mean_sum above to obtain the actual mean aggregate value. The only possible value type is Long.", +"type": "any" +}, +"meanSum": { +"description": "Worker-computed aggregate value for the \"Mean\" aggregation kind. This holds the sum of the aggregated values and is used in combination with mean_count below to obtain the actual mean aggregate value. The only possible value types are Long and Double.", +"type": "any" +}, +"name": { +"$ref": "MetricStructuredName", +"description": "Name of the metric." +}, +"scalar": { +"description": "Worker-computed aggregate value for aggregation kinds \"Sum\", \"Max\", \"Min\", \"And\", and \"Or\". The possible value types are Long, Double, and Boolean.", +"type": "any" +}, +"set": { +"description": "Worker-computed aggregate value for the \"Set\" aggregation kind. The only possible value type is a list of Values whose type can be Long, Double, String, or BoundedTrie according to the metric's type. All Values in the list must be of the same type.", +"type": "any" +}, +"trie": { +"description": "Worker-computed aggregate value for the \"Trie\" aggregation kind. The only possible value type is a BoundedTrieNode.", +"type": "any" +}, +"updateTime": { +"description": "Timestamp associated with the metric value. Optional when workers are reporting work progress; it will be filled in responses from the metrics API.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"MetricValue": { +"description": "The value of a metric along with its name and labels.", +"id": "MetricValue", +"properties": { +"metric": { +"description": "Base name for this metric.", +"type": "string" +}, +"metricLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of metric labels for this metric.", +"type": "object" +}, +"valueGauge64": { +"$ref": "DataflowGaugeValue", +"description": "Non-cumulative int64 value of this metric." +}, +"valueHistogram": { +"$ref": "DataflowHistogramValue", +"description": "Histogram value of this metric." +}, +"valueInt64": { +"description": "Integer value of this metric.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"MountedDataDisk": { +"description": "Describes mounted data disk.", +"id": "MountedDataDisk", +"properties": { +"dataDisk": { +"description": "The name of the data disk. This name is local to the Google Cloud Platform project and uniquely identifies the disk within that project, for example \"myproject-1014-104817-4c2-harness-0-disk-1\".", +"type": "string" +} +}, +"type": "object" +}, +"MultiOutputInfo": { +"description": "Information about an output of a multi-output DoFn.", +"id": "MultiOutputInfo", +"properties": { +"tag": { +"description": "The id of the tag the user code will emit to this output by; this should correspond to the tag of some SideInputInfo.", +"type": "string" +} +}, +"type": "object" +}, +"NameAndKind": { +"description": "Basic metadata about a counter.", +"id": "NameAndKind", +"properties": { +"kind": { +"description": "Counter aggregation kind.", +"enum": [ +"INVALID", +"SUM", +"MAX", +"MIN", +"MEAN", +"OR", +"AND", +"SET", +"DISTRIBUTION", +"LATEST_VALUE" +], +"enumDescriptions": [ +"Counter aggregation kind was not set.", +"Aggregated value is the sum of all contributed values.", +"Aggregated value is the max of all contributed values.", +"Aggregated value is the min of all contributed values.", +"Aggregated value is the mean of all contributed values.", +"Aggregated value represents the logical 'or' of all contributed values.", +"Aggregated value represents the logical 'and' of all contributed values.", +"Aggregated value is a set of unique contributed values.", +"Aggregated value captures statistics about a distribution.", +"Aggregated value tracks the latest value of a variable." +], +"type": "string" +}, +"name": { +"description": "Name of the counter.", +"type": "string" +} +}, +"type": "object" +}, +"OutlierStats": { +"description": "Statistics for the underflow and overflow bucket.", +"id": "OutlierStats", +"properties": { +"overflowCount": { +"description": "Number of values that are larger than the upper bound of the largest bucket.", +"format": "int64", +"type": "string" +}, +"overflowMean": { +"description": "Mean of values in the overflow bucket.", +"format": "double", +"type": "number" +}, +"underflowCount": { +"description": "Number of values that are smaller than the lower bound of the smallest bucket.", +"format": "int64", +"type": "string" +}, +"underflowMean": { +"description": "Mean of values in the undeflow bucket.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Package": { +"description": "The packages that must be installed in order for a worker to run the steps of the Cloud Dataflow job that will be assigned to its worker pool. This is the mechanism by which the Cloud Dataflow SDK causes code to be loaded onto the workers. For example, the Cloud Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc.) required in order for that code to run.", +"id": "Package", +"properties": { +"location": { +"description": "The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/", +"type": "string" +}, +"name": { +"description": "The name of the package.", +"type": "string" +} +}, +"type": "object" +}, +"ParDoInstruction": { +"description": "An instruction that does a ParDo operation. Takes one main input and zero or more side inputs, and produces zero or more outputs. Runs user code.", +"id": "ParDoInstruction", +"properties": { +"input": { +"$ref": "InstructionInput", +"description": "The input." +}, +"multiOutputInfos": { +"description": "Information about each of the outputs, if user_fn is a MultiDoFn.", +"items": { +"$ref": "MultiOutputInfo" +}, +"type": "array" +}, +"numOutputs": { +"description": "The number of outputs.", +"format": "int32", +"type": "integer" +}, +"sideInputs": { +"description": "Zero or more side inputs.", +"items": { +"$ref": "SideInputInfo" +}, +"type": "array" +}, +"userFn": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The user function to invoke.", +"type": "object" +} +}, +"type": "object" +}, +"ParallelInstruction": { +"description": "Describes a particular operation comprising a MapTask.", +"id": "ParallelInstruction", +"properties": { +"flatten": { +"$ref": "FlattenInstruction", +"description": "Additional information for Flatten instructions." +}, +"name": { +"description": "User-provided name of this operation.", +"type": "string" +}, +"originalName": { +"description": "System-defined name for the operation in the original workflow graph.", +"type": "string" +}, +"outputs": { +"description": "Describes the outputs of the instruction.", +"items": { +"$ref": "InstructionOutput" +}, +"type": "array" +}, +"parDo": { +"$ref": "ParDoInstruction", +"description": "Additional information for ParDo instructions." +}, +"partialGroupByKey": { +"$ref": "PartialGroupByKeyInstruction", +"description": "Additional information for PartialGroupByKey instructions." +}, +"read": { +"$ref": "ReadInstruction", +"description": "Additional information for Read instructions." +}, +"systemName": { +"description": "System-defined name of this operation. Unique across the workflow.", +"type": "string" +}, +"write": { +"$ref": "WriteInstruction", +"description": "Additional information for Write instructions." +} +}, +"type": "object" +}, +"Parameter": { +"description": "Structured data associated with this message.", +"id": "Parameter", +"properties": { +"key": { +"description": "Key or name for this parameter.", +"type": "string" +}, +"value": { +"description": "Value for this parameter.", +"type": "any" +} +}, +"type": "object" +}, +"ParameterMetadata": { +"description": "Metadata for a specific parameter.", +"id": "ParameterMetadata", +"properties": { +"customMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Additional metadata for describing this parameter.", +"type": "object" +}, +"defaultValue": { +"description": "Optional. The default values will pre-populate the parameter with the given value from the proto. If default_value is left empty, the parameter will be populated with a default of the relevant type, e.g. false for a boolean.", +"type": "string" +}, +"enumOptions": { +"description": "Optional. The options shown when ENUM ParameterType is specified.", +"items": { +"$ref": "ParameterMetadataEnumOption" +}, +"type": "array" +}, +"groupName": { +"description": "Optional. Specifies a group name for this parameter to be rendered under. Group header text will be rendered exactly as specified in this field. Only considered when parent_name is NOT provided.", +"type": "string" +}, +"helpText": { +"description": "Required. The help text to display for the parameter.", +"type": "string" +}, +"hiddenUi": { +"description": "Optional. Whether the parameter should be hidden in the UI.", +"type": "boolean" +}, +"isOptional": { +"description": "Optional. Whether the parameter is optional. Defaults to false.", +"type": "boolean" +}, +"label": { +"description": "Required. The label to display for the parameter.", +"type": "string" +}, +"name": { +"description": "Required. The name of the parameter.", +"type": "string" +}, +"paramType": { +"description": "Optional. The type of the parameter. Used for selecting input picker.", +"enum": [ +"DEFAULT", +"TEXT", +"GCS_READ_BUCKET", +"GCS_WRITE_BUCKET", +"GCS_READ_FILE", +"GCS_WRITE_FILE", +"GCS_READ_FOLDER", +"GCS_WRITE_FOLDER", +"PUBSUB_TOPIC", +"PUBSUB_SUBSCRIPTION", +"BIGQUERY_TABLE", +"JAVASCRIPT_UDF_FILE", +"SERVICE_ACCOUNT", +"MACHINE_TYPE", +"KMS_KEY_NAME", +"WORKER_REGION", +"WORKER_ZONE", +"BOOLEAN", +"ENUM", +"NUMBER", +"KAFKA_TOPIC", +"KAFKA_READ_TOPIC", +"KAFKA_WRITE_TOPIC" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +true, +false, +false +], +"enumDescriptions": [ +"Default input type.", +"The parameter specifies generic text input.", +"The parameter specifies a Cloud Storage Bucket to read from.", +"The parameter specifies a Cloud Storage Bucket to write to.", +"The parameter specifies a Cloud Storage file path to read from.", +"The parameter specifies a Cloud Storage file path to write to.", +"The parameter specifies a Cloud Storage folder path to read from.", +"The parameter specifies a Cloud Storage folder to write to.", +"The parameter specifies a Pub/Sub Topic.", +"The parameter specifies a Pub/Sub Subscription.", +"The parameter specifies a BigQuery table.", +"The parameter specifies a JavaScript UDF in Cloud Storage.", +"The parameter specifies a Service Account email.", +"The parameter specifies a Machine Type.", +"The parameter specifies a KMS Key name.", +"The parameter specifies a Worker Region.", +"The parameter specifies a Worker Zone.", +"The parameter specifies a boolean input.", +"The parameter specifies an enum input.", +"The parameter specifies a number input.", +"Deprecated. Please use KAFKA_READ_TOPIC instead.", +"The parameter specifies the fully-qualified name of an Apache Kafka topic. This can be either a Google Managed Kafka topic or a non-managed Kafka topic.", +"The parameter specifies the fully-qualified name of an Apache Kafka topic. This can be an existing Google Managed Kafka topic, the name for a new Google Managed Kafka topic, or an existing non-managed Kafka topic." +], +"type": "string" +}, +"parentName": { +"description": "Optional. Specifies the name of the parent parameter. Used in conjunction with 'parent_trigger_values' to make this parameter conditional (will only be rendered conditionally). Should be mappable to a ParameterMetadata.name field.", +"type": "string" +}, +"parentTriggerValues": { +"description": "Optional. The value(s) of the 'parent_name' parameter which will trigger this parameter to be shown. If left empty, ANY non-empty value in parent_name will trigger this parameter to be shown. Only considered when this parameter is conditional (when 'parent_name' has been provided).", +"items": { +"type": "string" +}, +"type": "array" +}, +"regexes": { +"description": "Optional. Regexes that the parameter must match.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ParameterMetadataEnumOption": { +"description": "ParameterMetadataEnumOption specifies the option shown in the enum form.", +"id": "ParameterMetadataEnumOption", +"properties": { +"description": { +"description": "Optional. The description to display for the enum option.", +"type": "string" +}, +"label": { +"description": "Optional. The label to display for the enum option.", +"type": "string" +}, +"value": { +"description": "Required. The value of the enum option.", +"type": "string" +} +}, +"type": "object" +}, +"PartialGroupByKeyInstruction": { +"description": "An instruction that does a partial group-by-key. One input and one output.", +"id": "PartialGroupByKeyInstruction", +"properties": { +"input": { +"$ref": "InstructionInput", +"description": "Describes the input to the partial group-by-key instruction." +}, +"inputElementCodec": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The codec to use for interpreting an element in the input PTable.", +"type": "object" +}, +"originalCombineValuesInputStoreName": { +"description": "If this instruction includes a combining function this is the name of the intermediate store between the GBK and the CombineValues.", +"type": "string" +}, +"originalCombineValuesStepName": { +"description": "If this instruction includes a combining function, this is the name of the CombineValues instruction lifted into this instruction.", +"type": "string" +}, +"sideInputs": { +"description": "Zero or more side inputs.", +"items": { +"$ref": "SideInputInfo" +}, +"type": "array" +}, +"valueCombiningFn": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The value combining function to invoke.", +"type": "object" +} +}, +"type": "object" +}, +"PerStepNamespaceMetrics": { +"description": "Metrics for a particular unfused step and namespace. A metric is uniquely identified by the `metrics_namespace`, `original_step`, `metric name` and `metric_labels`.", +"id": "PerStepNamespaceMetrics", +"properties": { +"metricValues": { +"description": "Optional. Metrics that are recorded for this namespace and unfused step.", +"items": { +"$ref": "MetricValue" +}, +"type": "array" +}, +"metricsNamespace": { +"description": "The namespace of these metrics on the worker.", +"type": "string" +}, +"originalStep": { +"description": "The original system name of the unfused step that these metrics are reported from.", +"type": "string" +} +}, +"type": "object" +}, +"PerWorkerMetrics": { +"description": "Per worker metrics.", +"id": "PerWorkerMetrics", +"properties": { +"perStepNamespaceMetrics": { +"description": "Optional. Metrics for a particular unfused step and namespace.", +"items": { +"$ref": "PerStepNamespaceMetrics" +}, +"type": "array" +} +}, +"type": "object" +}, +"PipelineDescription": { +"description": "A descriptive representation of submitted pipeline as well as the executed form. This data is provided by the Dataflow service for ease of visualizing the pipeline and interpreting Dataflow provided metrics.", +"id": "PipelineDescription", +"properties": { +"displayData": { +"description": "Pipeline level display data.", +"items": { +"$ref": "DisplayData" +}, +"type": "array" +}, +"executionPipelineStage": { +"description": "Description of each stage of execution of the pipeline.", +"items": { +"$ref": "ExecutionStageSummary" +}, +"type": "array" +}, +"originalPipelineTransform": { +"description": "Description of each transform in the pipeline and collections between them.", +"items": { +"$ref": "TransformSummary" +}, +"type": "array" +}, +"stepNamesHash": { +"description": "A hash value of the submitted pipeline portable graph step names if exists.", +"type": "string" +} +}, +"type": "object" +}, +"Point": { +"description": "A point in the timeseries.", +"id": "Point", +"properties": { +"time": { +"description": "The timestamp of the point.", +"format": "google-datetime", +"type": "string" +}, +"value": { +"description": "The value of the point.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Position": { +"description": "Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index.", +"id": "Position", +"properties": { +"byteOffset": { +"description": "Position is a byte offset.", +"format": "int64", +"type": "string" +}, +"concatPosition": { +"$ref": "ConcatPosition", +"description": "CloudPosition is a concat position." +}, +"end": { +"description": "Position is past all other positions. Also useful for the end position of an unbounded range.", +"type": "boolean" +}, +"key": { +"description": "Position is a string key, ordered lexicographically.", +"type": "string" +}, +"recordIndex": { +"description": "Position is a record index.", +"format": "int64", +"type": "string" +}, +"shufflePosition": { +"description": "CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).", +"type": "string" +} +}, +"type": "object" +}, +"ProgressTimeseries": { +"description": "Information about the progress of some component of job execution.", +"id": "ProgressTimeseries", +"properties": { +"currentProgress": { +"description": "The current progress of the component, in the range [0,1].", +"format": "double", +"type": "number" +}, +"dataPoints": { +"description": "History of progress for the component. Points are sorted by time.", +"items": { +"$ref": "Point" +}, +"type": "array" +} +}, +"type": "object" +}, +"PubSubIODetails": { +"description": "Metadata for a Pub/Sub connector used by the job.", +"id": "PubSubIODetails", +"properties": { +"subscription": { +"description": "Subscription used in the connection.", +"type": "string" +}, +"topic": { +"description": "Topic accessed in the connection.", +"type": "string" +} +}, +"type": "object" +}, +"PubsubLocation": { +"description": "Identifies a pubsub location to use for transferring data into or out of a streaming Dataflow job.", +"id": "PubsubLocation", +"properties": { +"dropLateData": { +"description": "Indicates whether the pipeline allows late-arriving data.", +"type": "boolean" +}, +"dynamicDestinations": { +"description": "If true, then this location represents dynamic topics.", +"type": "boolean" +}, +"idLabel": { +"description": "If set, contains a pubsub label from which to extract record ids. If left empty, record deduplication will be strictly best effort.", +"type": "string" +}, +"subscription": { +"description": "A pubsub subscription, in the form of \"pubsub.googleapis.com/subscriptions//\"", +"type": "string" +}, +"timestampLabel": { +"description": "If set, contains a pubsub label from which to extract record timestamps. If left empty, record timestamps will be generated upon arrival.", +"type": "string" +}, +"topic": { +"description": "A pubsub topic, in the form of \"pubsub.googleapis.com/topics//\"", +"type": "string" +}, +"trackingSubscription": { +"description": "If set, specifies the pubsub subscription that will be used for tracking custom time timestamps for watermark estimation.", +"type": "string" +}, +"withAttributes": { +"description": "If true, then the client has requested to get pubsub attributes.", +"type": "boolean" +} +}, +"type": "object" +}, +"PubsubSnapshotMetadata": { +"description": "Represents a Pubsub snapshot.", +"id": "PubsubSnapshotMetadata", +"properties": { +"expireTime": { +"description": "The expire time of the Pubsub snapshot.", +"format": "google-datetime", +"type": "string" +}, +"snapshotName": { +"description": "The name of the Pubsub snapshot.", +"type": "string" +}, +"topicName": { +"description": "The name of the Pubsub topic.", +"type": "string" +} +}, +"type": "object" +}, +"ReadInstruction": { +"description": "An instruction that reads records. Takes no inputs, produces one output.", +"id": "ReadInstruction", +"properties": { +"source": { +"$ref": "Source", +"description": "The source to read from." +} +}, +"type": "object" +}, +"ReportWorkItemStatusRequest": { +"description": "Request to report the status of WorkItems.", +"id": "ReportWorkItemStatusRequest", +"properties": { +"currentWorkerTime": { +"description": "The current timestamp at the worker.", +"format": "google-datetime", +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the WorkItem's job.", +"type": "string" +}, +"projectNumber": { +"description": "Optional. The project number of the project which owns the WorkItem's job.", +"format": "int64", +"type": "string" +}, +"unifiedWorkerRequest": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Untranslated bag-of-bytes WorkProgressUpdateRequest from UnifiedWorker.", +"type": "object" +}, +"workItemStatuses": { +"description": "The order is unimportant, except that the order of the WorkItemServiceState messages in the ReportWorkItemStatusResponse corresponds to the order of WorkItemStatus messages here.", +"items": { +"$ref": "WorkItemStatus" +}, +"type": "array" +}, +"workerId": { +"description": "The ID of the worker reporting the WorkItem status. If this does not match the ID of the worker which the Dataflow service believes currently has the lease on the WorkItem, the report will be dropped (with an error response).", +"type": "string" +} +}, +"type": "object" +}, +"ReportWorkItemStatusResponse": { +"description": "Response from a request to report the status of WorkItems.", +"id": "ReportWorkItemStatusResponse", +"properties": { +"unifiedWorkerResponse": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Untranslated bag-of-bytes WorkProgressUpdateResponse for UnifiedWorker.", +"type": "object" +}, +"workItemServiceStates": { +"description": "A set of messages indicating the service-side state for each WorkItem whose status was reported, in the same order as the WorkItemStatus messages in the ReportWorkItemStatusRequest which resulting in this response.", +"items": { +"$ref": "WorkItemServiceState" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReportedParallelism": { +"description": "Represents the level of parallelism in a WorkItem's input, reported by the worker.", +"id": "ReportedParallelism", +"properties": { +"isInfinite": { +"description": "Specifies whether the parallelism is infinite. If true, \"value\" is ignored. Infinite parallelism means the service will assume that the work item can always be split into more non-empty work items by dynamic splitting. This is a work-around for lack of support for infinity by the current JSON-based Java RPC stack.", +"type": "boolean" +}, +"value": { +"description": "Specifies the level of parallelism in case it is finite.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ResourceUtilizationReport": { +"description": "Worker metrics exported from workers. This contains resource utilization metrics accumulated from a variety of sources. For more information, see go/df-resource-signals.", +"id": "ResourceUtilizationReport", +"properties": { +"containers": { +"additionalProperties": { +"$ref": "ResourceUtilizationReport" +}, +"description": "Per container information. Key: container name.", +"type": "object" +}, +"cpuTime": { +"description": "CPU utilization samples.", +"items": { +"$ref": "CPUTime" +}, +"type": "array" +}, +"gpuUsage": { +"description": "Optional. GPU usage samples.", +"items": { +"$ref": "GPUUsage" +}, +"type": "array" +}, +"memoryInfo": { +"description": "Memory utilization samples.", +"items": { +"$ref": "MemInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourceUtilizationReportResponse": { +"description": "Service-side response to WorkerMessage reporting resource utilization.", +"id": "ResourceUtilizationReportResponse", +"properties": {}, +"type": "object" +}, +"RuntimeEnvironment": { +"description": "The environment values to set at runtime.", +"id": "RuntimeEnvironment", +"properties": { +"additionalExperiments": { +"description": "Optional. Additional experiment flags for the job, specified with the `--experiments` option.", +"items": { +"type": "string" +}, +"type": "array" +}, +"additionalUserLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) page. An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1kg\", \"count\": \"3\" }.", +"type": "object" +}, +"bypassTempDirValidation": { +"description": "Optional. Whether to bypass the safety checks for the job's temporary directory. Use with caution.", +"type": "boolean" +}, +"diskSizeGb": { +"description": "Optional. The disk size, in gigabytes, to use on each remote Compute Engine worker instance.", +"format": "int32", +"type": "integer" +}, +"enableStreamingEngine": { +"description": "Optional. Whether to enable Streaming Engine for the job.", +"type": "boolean" +}, +"ipConfiguration": { +"description": "Optional. Configuration for VM IPs.", +"enum": [ +"WORKER_IP_UNSPECIFIED", +"WORKER_IP_PUBLIC", +"WORKER_IP_PRIVATE" +], +"enumDescriptions": [ +"The configuration is unknown, or unspecified.", +"Workers should have public IP addresses.", +"Workers should have private IP addresses." +], +"type": "string" +}, +"kmsKeyName": { +"description": "Optional. Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings//cryptoKeys/", +"type": "string" +}, +"machineType": { +"description": "Optional. The machine type to use for the job. Defaults to the value from the template if not specified.", +"type": "string" +}, +"maxWorkers": { +"description": "Optional. The maximum number of Google Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000. The default value is 1.", +"format": "int32", +"type": "integer" +}, +"network": { +"description": "Optional. Network to which VMs will be assigned. If empty or unspecified, the service will use the network \"default\".", +"type": "string" +}, +"numWorkers": { +"description": "Optional. The initial number of Google Compute Engine instances for the job. The default value is 11.", +"format": "int32", +"type": "integer" +}, +"serviceAccountEmail": { +"description": "Optional. The email address of the service account to run the job as.", +"type": "string" +}, +"streamingMode": { +"description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case. For more information, see [Set the pipeline streaming mode](https://cloud.google.com/dataflow/docs/guides/streaming-modes).", +"enum": [ +"STREAMING_MODE_UNSPECIFIED", +"STREAMING_MODE_EXACTLY_ONCE", +"STREAMING_MODE_AT_LEAST_ONCE" +], +"enumDescriptions": [ +"Run in the default mode.", +"In this mode, message deduplication is performed against persistent state to make sure each message is processed and committed to storage exactly once.", +"Message deduplication is not performed. Messages might be processed multiple times, and the results are applied multiple times. Note: Setting this value also enables Streaming Engine and Streaming Engine resource-based billing." +], +"type": "string" +}, +"subnetwork": { +"description": "Optional. Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form \"https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK\" or \"regions/REGION/subnetworks/SUBNETWORK\". If the subnetwork is located in a Shared VPC network, you must use the complete URL.", +"type": "string" +}, +"tempLocation": { +"description": "Required. The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with `gs://`.", +"type": "string" +}, +"workerRegion": { +"description": "Required. The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1\". Mutually exclusive with worker_zone. If neither worker_region nor worker_zone is specified, default to the control plane's region.", +"type": "string" +}, +"workerZone": { +"description": "Optional. The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1-a\". Mutually exclusive with worker_region. If neither worker_region nor worker_zone is specified, a zone in the control plane's region is chosen based on available capacity. If both `worker_zone` and `zone` are set, `worker_zone` takes precedence.", +"type": "string" +}, +"zone": { +"description": "Optional. The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones) for launching worker instances to run your pipeline. In the future, worker_zone will take precedence.", +"type": "string" +} +}, +"type": "object" +}, +"RuntimeMetadata": { +"description": "RuntimeMetadata describing a runtime environment.", +"id": "RuntimeMetadata", +"properties": { +"parameters": { +"description": "The parameters for the template.", +"items": { +"$ref": "ParameterMetadata" +}, +"type": "array" +}, +"sdkInfo": { +"$ref": "SDKInfo", +"description": "SDK Info for the template." +} +}, +"type": "object" +}, +"RuntimeUpdatableParams": { +"description": "Additional job parameters that can only be updated during runtime using the projects.jobs.update method. These fields have no effect when specified during job creation.", +"id": "RuntimeUpdatableParams", +"properties": { +"maxNumWorkers": { +"description": "The maximum number of workers to cap autoscaling at. This field is currently only supported for Streaming Engine jobs.", +"format": "int32", +"type": "integer" +}, +"minNumWorkers": { +"description": "The minimum number of workers to scale down to. This field is currently only supported for Streaming Engine jobs.", +"format": "int32", +"type": "integer" +}, +"workerUtilizationHint": { +"description": "Target worker utilization, compared against the aggregate utilization of the worker pool by autoscaler, to determine upscaling and downscaling when absent other constraints such as backlog. For more information, see [Update an existing pipeline](https://cloud.google.com/dataflow/docs/guides/updating-a-pipeline).", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"SDKInfo": { +"description": "SDK Information.", +"id": "SDKInfo", +"properties": { +"language": { +"description": "Required. The SDK Language.", +"enum": [ +"UNKNOWN", +"JAVA", +"PYTHON", +"GO" +], +"enumDescriptions": [ +"UNKNOWN Language.", +"Java.", +"Python.", +"Go." +], +"type": "string" +}, +"version": { +"description": "Optional. The SDK version.", +"type": "string" +} +}, +"type": "object" +}, +"SdkBug": { +"description": "A bug found in the Dataflow SDK.", +"id": "SdkBug", +"properties": { +"severity": { +"description": "Output only. How severe the SDK bug is.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"NOTICE", +"WARNING", +"SEVERE" +], +"enumDescriptions": [ +"A bug of unknown severity.", +"A minor bug that that may reduce reliability or performance for some jobs. Impact will be minimal or non-existent for most jobs.", +"A bug that has some likelihood of causing performance degradation, data loss, or job failures.", +"A bug with extremely significant impact. Jobs may fail erroneously, performance may be severely degraded, and data loss may be very likely." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. Describes the impact of this SDK bug.", +"enum": [ +"TYPE_UNSPECIFIED", +"GENERAL", +"PERFORMANCE", +"DATALOSS" +], +"enumDescriptions": [ +"Unknown issue with this SDK.", +"Catch-all for SDK bugs that don't fit in the below categories.", +"Using this version of the SDK may result in degraded performance.", +"Using this version of the SDK may cause data loss." +], +"readOnly": true, +"type": "string" +}, +"uri": { +"description": "Output only. Link to more information on the bug.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SdkHarnessContainerImage": { +"description": "Defines an SDK harness container for executing Dataflow pipelines.", +"id": "SdkHarnessContainerImage", +"properties": { +"capabilities": { +"description": "The set of capabilities enumerated in the above Environment proto. See also [beam_runner_api.proto](https://github.com/apache/beam/blob/master/model/pipeline/src/main/proto/org/apache/beam/model/pipeline/v1/beam_runner_api.proto)", +"items": { +"type": "string" +}, +"type": "array" +}, +"containerImage": { +"description": "A docker container image that resides in Google Container Registry.", +"type": "string" +}, +"environmentId": { +"description": "Environment ID for the Beam runner API proto Environment that corresponds to the current SDK Harness.", +"type": "string" +}, +"useSingleCorePerContainer": { +"description": "If true, recommends the Dataflow service to use only one core per SDK container instance with this image. If false (or unset) recommends using more than one core per SDK container instance with this image for efficiency. Note that Dataflow service may choose to override this property if needed.", +"type": "boolean" +} +}, +"type": "object" +}, +"SdkVersion": { +"description": "The version of the SDK used to run the job.", +"id": "SdkVersion", +"properties": { +"bugs": { +"description": "Output only. Known bugs found in this SDK version.", +"items": { +"$ref": "SdkBug" +}, +"readOnly": true, +"type": "array" +}, +"sdkSupportStatus": { +"description": "The support status for this SDK version.", +"enum": [ +"UNKNOWN", +"SUPPORTED", +"STALE", +"DEPRECATED", +"UNSUPPORTED" +], +"enumDescriptions": [ +"Cloud Dataflow is unaware of this version.", +"This is a known version of an SDK, and is supported.", +"A newer version of the SDK family exists, and an update is recommended.", +"This version of the SDK is deprecated and will eventually be unsupported.", +"Support for this SDK version has ended and it should no longer be used." +], +"type": "string" +}, +"version": { +"description": "The version of the SDK used to run the job.", +"type": "string" +}, +"versionDisplayName": { +"description": "A readable string describing the version of the SDK.", +"type": "string" +} +}, +"type": "object" +}, +"SendDebugCaptureRequest": { +"description": "Request to send encoded debug information. Next ID: 8", +"id": "SendDebugCaptureRequest", +"properties": { +"componentId": { +"description": "The internal component id for which debug information is sent.", +"type": "string" +}, +"data": { +"description": "The encoded debug information.", +"type": "string" +}, +"dataFormat": { +"description": "Format for the data field above (id=5).", +"enum": [ +"DATA_FORMAT_UNSPECIFIED", +"RAW", +"JSON", +"ZLIB", +"BROTLI" +], +"enumDescriptions": [ +"Format unspecified, parsing is determined based upon page type and legacy encoding. (go/protodosdonts#do-include-an-unspecified-value-in-an-enum)", +"Raw HTML string.", +"JSON-encoded string.", +"Websafe encoded zlib-compressed string.", +"Websafe encoded brotli-compressed string." +], +"type": "string" +}, +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", +"type": "string" +}, +"workerId": { +"description": "The worker id, i.e., VM hostname.", +"type": "string" +} +}, +"type": "object" +}, +"SendDebugCaptureResponse": { +"description": "Response to a send capture request. nothing", +"id": "SendDebugCaptureResponse", +"properties": {}, +"type": "object" +}, +"SendWorkerMessagesRequest": { +"description": "A request for sending worker messages to the service.", +"id": "SendWorkerMessagesRequest", +"properties": { +"location": { +"description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job.", +"type": "string" +}, +"workerMessages": { +"description": "The WorkerMessages to send.", +"items": { +"$ref": "WorkerMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"SendWorkerMessagesResponse": { +"description": "The response to the worker messages.", +"id": "SendWorkerMessagesResponse", +"properties": { +"workerMessageResponses": { +"description": "The servers response to the worker messages.", +"items": { +"$ref": "WorkerMessageResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"SeqMapTask": { +"description": "Describes a particular function to invoke.", +"id": "SeqMapTask", +"properties": { +"inputs": { +"description": "Information about each of the inputs.", +"items": { +"$ref": "SideInputInfo" +}, +"type": "array" +}, +"name": { +"description": "The user-provided name of the SeqDo operation.", +"type": "string" +}, +"outputInfos": { +"description": "Information about each of the outputs.", +"items": { +"$ref": "SeqMapTaskOutputInfo" +}, +"type": "array" +}, +"stageName": { +"description": "System-defined name of the stage containing the SeqDo operation. Unique across the workflow.", +"type": "string" +}, +"systemName": { +"description": "System-defined name of the SeqDo operation. Unique across the workflow.", +"type": "string" +}, +"userFn": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The user function to invoke.", +"type": "object" +} +}, +"type": "object" +}, +"SeqMapTaskOutputInfo": { +"description": "Information about an output of a SeqMapTask.", +"id": "SeqMapTaskOutputInfo", +"properties": { +"sink": { +"$ref": "Sink", +"description": "The sink to write the output value to." +}, +"tag": { +"description": "The id of the TupleTag the user code will tag the output value by.", +"type": "string" +} +}, +"type": "object" +}, +"ServiceResources": { +"description": "Resources used by the Dataflow Service to run the job.", +"id": "ServiceResources", +"properties": { +"zones": { +"description": "Output only. List of Cloud Zones being used by the Dataflow Service for this job. Example: us-central1-c", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ShellTask": { +"description": "A task which consists of a shell command for the worker to execute.", +"id": "ShellTask", +"properties": { +"command": { +"description": "The shell command to run.", +"type": "string" +}, +"exitCode": { +"description": "Exit code for the task.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SideInputInfo": { +"description": "Information about a side input of a DoFn or an input of a SeqDoFn.", +"id": "SideInputInfo", +"properties": { +"kind": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "How to interpret the source element(s) as a side input value.", +"type": "object" +}, +"sources": { +"description": "The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.", +"items": { +"$ref": "Source" +}, +"type": "array" +}, +"tag": { +"description": "The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.", +"type": "string" +} +}, +"type": "object" +}, +"Sink": { +"description": "A sink that records can be encoded and written to.", +"id": "Sink", +"properties": { +"codec": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The codec to use to encode data written to the sink.", +"type": "object" +}, +"spec": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The sink to write to, plus its parameters.", +"type": "object" +} +}, +"type": "object" +}, +"Snapshot": { +"description": "Represents a snapshot of a job.", +"id": "Snapshot", +"properties": { +"creationTime": { +"description": "The time this snapshot was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "User specified description of the snapshot. Maybe empty.", +"type": "string" +}, +"diskSizeBytes": { +"description": "The disk byte size of the snapshot. Only available for snapshots in READY state.", +"format": "int64", +"type": "string" +}, +"id": { +"description": "The unique ID of this snapshot.", +"type": "string" +}, +"projectId": { +"description": "The project this snapshot belongs to.", +"type": "string" +}, +"pubsubMetadata": { +"description": "Pub/Sub snapshot metadata.", +"items": { +"$ref": "PubsubSnapshotMetadata" +}, +"type": "array" +}, +"region": { +"description": "Cloud region where this snapshot lives in, e.g., \"us-central1\".", +"type": "string" +}, +"sourceJobId": { +"description": "The job this snapshot was created from.", +"type": "string" +}, +"state": { +"description": "State of the snapshot.", +"enum": [ +"UNKNOWN_SNAPSHOT_STATE", +"PENDING", +"RUNNING", +"READY", +"FAILED", +"DELETED" +], +"enumDescriptions": [ +"Unknown state.", +"Snapshot intent to create has been persisted, snapshotting of state has not yet started.", +"Snapshotting is being performed.", +"Snapshot has been created and is ready to be used.", +"Snapshot failed to be created.", +"Snapshot has been deleted." +], +"type": "string" +}, +"ttl": { +"description": "The time after which this snapshot will be automatically deleted.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"SnapshotJobRequest": { +"description": "Request to create a snapshot of a job.", +"id": "SnapshotJobRequest", +"properties": { +"description": { +"description": "User specified description of the snapshot. Maybe empty.", +"type": "string" +}, +"location": { +"description": "The location that contains this job.", +"type": "string" +}, +"snapshotSources": { +"description": "If true, perform snapshots for sources which support this.", +"type": "boolean" +}, +"ttl": { +"description": "TTL for the snapshot.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Source": { +"description": "A source that records can be read and decoded from.", +"id": "Source", +"properties": { +"baseSpecs": { +"description": "While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).", +"items": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"codec": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The codec to use to decode data read from the source.", +"type": "object" +}, +"doesNotNeedSplitting": { +"description": "Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.", +"type": "boolean" +}, +"metadata": { +"$ref": "SourceMetadata", +"description": "Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated." +}, +"spec": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The source to read from, plus its parameters.", +"type": "object" +} +}, +"type": "object" +}, +"SourceFork": { +"description": "DEPRECATED in favor of DynamicSourceSplit.", +"id": "SourceFork", +"properties": { +"primary": { +"$ref": "SourceSplitShard", +"description": "DEPRECATED" +}, +"primarySource": { +"$ref": "DerivedSource", +"description": "DEPRECATED" +}, +"residual": { +"$ref": "SourceSplitShard", +"description": "DEPRECATED" +}, +"residualSource": { +"$ref": "DerivedSource", +"description": "DEPRECATED" +} +}, +"type": "object" +}, +"SourceGetMetadataRequest": { +"description": "A request to compute the SourceMetadata of a Source.", +"id": "SourceGetMetadataRequest", +"properties": { +"source": { +"$ref": "Source", +"description": "Specification of the source whose metadata should be computed." +} +}, +"type": "object" +}, +"SourceGetMetadataResponse": { +"description": "The result of a SourceGetMetadataOperation.", +"id": "SourceGetMetadataResponse", +"properties": { +"metadata": { +"$ref": "SourceMetadata", +"description": "The computed metadata." +} +}, +"type": "object" +}, +"SourceMetadata": { +"description": "Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc.", +"id": "SourceMetadata", +"properties": { +"estimatedSizeBytes": { +"description": "An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.", +"format": "int64", +"type": "string" +}, +"infinite": { +"description": "Specifies that the size of this source is known to be infinite (this is a streaming source).", +"type": "boolean" +}, +"producesSortedKeys": { +"description": "Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.", +"type": "boolean" +} +}, +"type": "object" +}, +"SourceOperationRequest": { +"description": "A work item that represents the different operations that can be performed on a user-defined Source specification.", +"id": "SourceOperationRequest", +"properties": { +"getMetadata": { +"$ref": "SourceGetMetadataRequest", +"description": "Information about a request to get metadata about a source." +}, +"name": { +"description": "User-provided name of the Read instruction for this source.", +"type": "string" +}, +"originalName": { +"description": "System-defined name for the Read instruction for this source in the original workflow graph.", +"type": "string" +}, +"split": { +"$ref": "SourceSplitRequest", +"description": "Information about a request to split a source." +}, +"stageName": { +"description": "System-defined name of the stage containing the source operation. Unique across the workflow.", +"type": "string" +}, +"systemName": { +"description": "System-defined name of the Read instruction for this source. Unique across the workflow.", +"type": "string" +} +}, +"type": "object" +}, +"SourceOperationResponse": { +"description": "The result of a SourceOperationRequest, specified in ReportWorkItemStatusRequest.source_operation when the work item is completed.", +"id": "SourceOperationResponse", +"properties": { +"getMetadata": { +"$ref": "SourceGetMetadataResponse", +"description": "A response to a request to get metadata about a source." +}, +"split": { +"$ref": "SourceSplitResponse", +"description": "A response to a request to split a source." +} +}, +"type": "object" +}, +"SourceSplitOptions": { +"description": "Hints for splitting a Source into bundles (parts for parallel processing) using SourceSplitRequest.", +"id": "SourceSplitOptions", +"properties": { +"desiredBundleSizeBytes": { +"description": "The source should be split into a set of bundles where the estimated size of each is approximately this many bytes.", +"format": "int64", +"type": "string" +}, +"desiredShardSizeBytes": { +"deprecated": true, +"description": "DEPRECATED in favor of desired_bundle_size_bytes.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SourceSplitRequest": { +"description": "Represents the operation to split a high-level Source specification into bundles (parts for parallel processing). At a high level, splitting of a source into bundles happens as follows: SourceSplitRequest is applied to the source. If it returns SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and the source is used \"as is\". Otherwise, splitting is applied recursively to each produced DerivedSource. As an optimization, for any Source, if its does_not_need_splitting is true, the framework assumes that splitting this source would return SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a SourceSplitRequest. This applies both to the initial source being split and to bundles produced from it.", +"id": "SourceSplitRequest", +"properties": { +"options": { +"$ref": "SourceSplitOptions", +"description": "Hints for tuning the splitting process." +}, +"source": { +"$ref": "Source", +"description": "Specification of the source to be split." +} +}, +"type": "object" +}, +"SourceSplitResponse": { +"description": "The response to a SourceSplitRequest.", +"id": "SourceSplitResponse", +"properties": { +"bundles": { +"description": "If outcome is SPLITTING_HAPPENED, then this is a list of bundles into which the source was split. Otherwise this field is ignored. This list can be empty, which means the source represents an empty input.", +"items": { +"$ref": "DerivedSource" +}, +"type": "array" +}, +"outcome": { +"description": "Indicates whether splitting happened and produced a list of bundles. If this is USE_CURRENT_SOURCE_AS_IS, the current source should be processed \"as is\" without splitting. \"bundles\" is ignored in this case. If this is SPLITTING_HAPPENED, then \"bundles\" contains a list of bundles into which the source was split.", +"enum": [ +"SOURCE_SPLIT_OUTCOME_UNKNOWN", +"SOURCE_SPLIT_OUTCOME_USE_CURRENT", +"SOURCE_SPLIT_OUTCOME_SPLITTING_HAPPENED" +], +"enumDescriptions": [ +"The source split outcome is unknown, or unspecified.", +"The current source should be processed \"as is\" without splitting.", +"Splitting produced a list of bundles." +], +"type": "string" +}, +"shards": { +"deprecated": true, +"description": "DEPRECATED in favor of bundles.", +"items": { +"$ref": "SourceSplitShard" +}, +"type": "array" +} +}, +"type": "object" +}, +"SourceSplitShard": { +"description": "DEPRECATED in favor of DerivedSource.", +"id": "SourceSplitShard", +"properties": { +"derivationMode": { +"description": "DEPRECATED", +"enum": [ +"SOURCE_DERIVATION_MODE_UNKNOWN", +"SOURCE_DERIVATION_MODE_INDEPENDENT", +"SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT", +"SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" +], +"enumDescriptions": [ +"The source derivation is unknown, or unspecified.", +"Produce a completely independent Source with no base.", +"Produce a Source based on the Source being split.", +"Produce a Source based on the base of the Source being split." +], +"type": "string" +}, +"source": { +"$ref": "Source", +"description": "DEPRECATED" +} +}, +"type": "object" +}, +"SpannerIODetails": { +"description": "Metadata for a Spanner connector used by the job.", +"id": "SpannerIODetails", +"properties": { +"databaseId": { +"description": "DatabaseId accessed in the connection.", +"type": "string" +}, +"instanceId": { +"description": "InstanceId accessed in the connection.", +"type": "string" +}, +"projectId": { +"description": "ProjectId accessed in the connection.", +"type": "string" +} +}, +"type": "object" +}, +"SplitInt64": { +"description": "A representation of an int64, n, that is immune to precision loss when encoded in JSON.", +"id": "SplitInt64", +"properties": { +"highBits": { +"description": "The high order bits, including the sign: n >> 32.", +"format": "int32", +"type": "integer" +}, +"lowBits": { +"description": "The low order bits: n & 0xffffffff.", +"format": "uint32", +"type": "integer" +} +}, +"type": "object" +}, +"StageExecutionDetails": { +"description": "Information about the workers and work items within a stage.", +"id": "StageExecutionDetails", +"properties": { +"nextPageToken": { +"description": "If present, this response does not contain all requested tasks. To obtain the next page of results, repeat the request with page_token set to this value.", +"type": "string" +}, +"workers": { +"description": "Workers that have done work on the stage.", +"items": { +"$ref": "WorkerDetails" +}, +"type": "array" +} +}, +"type": "object" +}, +"StageSource": { +"description": "Description of an input or output of an execution stage.", +"id": "StageSource", +"properties": { +"name": { +"description": "Dataflow service generated name for this source.", +"type": "string" +}, +"originalTransformOrCollection": { +"description": "User name for the original user transform or collection with which this source is most closely associated.", +"type": "string" +}, +"sizeBytes": { +"description": "Size of the source, if measurable.", +"format": "int64", +"type": "string" +}, +"userName": { +"description": "Human-readable name for this source; may be user or system generated.", +"type": "string" +} +}, +"type": "object" +}, +"StageSummary": { +"description": "Information about a particular execution stage of a job.", +"id": "StageSummary", +"properties": { +"endTime": { +"description": "End time of this stage. If the work item is completed, this is the actual end time of the stage. Otherwise, it is the predicted end time.", +"format": "google-datetime", +"type": "string" +}, +"metrics": { +"description": "Metrics for this stage.", +"items": { +"$ref": "MetricUpdate" +}, +"type": "array" +}, +"progress": { +"$ref": "ProgressTimeseries", +"description": "Progress for this stage. Only applicable to Batch jobs." +}, +"stageId": { +"description": "ID of this stage", +"type": "string" +}, +"startTime": { +"description": "Start time of this stage.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "State of this stage.", +"enum": [ +"EXECUTION_STATE_UNKNOWN", +"EXECUTION_STATE_NOT_STARTED", +"EXECUTION_STATE_RUNNING", +"EXECUTION_STATE_SUCCEEDED", +"EXECUTION_STATE_FAILED", +"EXECUTION_STATE_CANCELLED" +], +"enumDescriptions": [ +"The component state is unknown or unspecified.", +"The component is not yet running.", +"The component is currently running.", +"The component succeeded.", +"The component failed.", +"Execution of the component was cancelled." +], +"type": "string" +}, +"stragglerSummary": { +"$ref": "StragglerSummary", +"description": "Straggler summary for this stage." +} +}, +"type": "object" +}, +"StateFamilyConfig": { +"description": "State family configuration.", +"id": "StateFamilyConfig", +"properties": { +"isRead": { +"description": "If true, this family corresponds to a read operation.", +"type": "boolean" +}, +"stateFamily": { +"description": "The state family value.", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Step": { +"description": "Defines a particular step within a Cloud Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. **Note:** The properties of this object are not stable and might change. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. Note that the Cloud Dataflow service may be used to run many different types of jobs, not just Map-Reduce.", +"id": "Step", +"properties": { +"kind": { +"description": "The kind of step in the Cloud Dataflow job.", +"type": "string" +}, +"name": { +"description": "The name that identifies the step. This must be unique for each step with respect to all other steps in the Cloud Dataflow job.", +"type": "string" +}, +"properties": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Named properties associated with the step. Each kind of predefined step has its own required set of properties. Must be provided on Create. Only retrieved with JOB_VIEW_ALL.", +"type": "object" +} +}, +"type": "object" +}, +"Straggler": { +"description": "Information for a straggler.", +"id": "Straggler", +"properties": { +"batchStraggler": { +"$ref": "StragglerInfo", +"description": "Batch straggler identification and debugging information." +}, +"streamingStraggler": { +"$ref": "StreamingStragglerInfo", +"description": "Streaming straggler identification and debugging information." +} +}, +"type": "object" +}, +"StragglerDebuggingInfo": { +"description": "Information useful for debugging a straggler. Each type will provide specialized debugging information relevant for a particular cause. The StragglerDebuggingInfo will be 1:1 mapping to the StragglerCause enum.", +"id": "StragglerDebuggingInfo", +"properties": { +"hotKey": { +"$ref": "HotKeyDebuggingInfo", +"description": "Hot key debugging details." +} +}, +"type": "object" +}, +"StragglerInfo": { +"description": "Information useful for straggler identification and debugging.", +"id": "StragglerInfo", +"properties": { +"causes": { +"additionalProperties": { +"$ref": "StragglerDebuggingInfo" +}, +"description": "The straggler causes, keyed by the string representation of the StragglerCause enum and contains specialized debugging information for each straggler cause.", +"type": "object" +}, +"startTime": { +"description": "The time when the work item attempt became a straggler.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"StragglerSummary": { +"description": "Summarized straggler identification details.", +"id": "StragglerSummary", +"properties": { +"recentStragglers": { +"description": "The most recent stragglers.", +"items": { +"$ref": "Straggler" +}, +"type": "array" +}, +"stragglerCauseCount": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Aggregated counts of straggler causes, keyed by the string representation of the StragglerCause enum.", +"type": "object" +}, +"totalStragglerCount": { +"description": "The total count of stragglers.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"StreamLocation": { +"description": "Describes a stream of data, either as input to be processed or as output of a streaming Dataflow job.", +"id": "StreamLocation", +"properties": { +"customSourceLocation": { +"$ref": "CustomSourceLocation", +"description": "The stream is a custom source." +}, +"pubsubLocation": { +"$ref": "PubsubLocation", +"description": "The stream is a pubsub stream." +}, +"sideInputLocation": { +"$ref": "StreamingSideInputLocation", +"description": "The stream is a streaming side input." +}, +"streamingStageLocation": { +"$ref": "StreamingStageLocation", +"description": "The stream is part of another computation within the current streaming Dataflow job." +} +}, +"type": "object" +}, +"StreamingApplianceSnapshotConfig": { +"description": "Streaming appliance snapshot configuration.", +"id": "StreamingApplianceSnapshotConfig", +"properties": { +"importStateEndpoint": { +"description": "Indicates which endpoint is used to import appliance state.", +"type": "string" +}, +"snapshotId": { +"description": "If set, indicates the snapshot id for the snapshot being performed.", +"type": "string" +} +}, +"type": "object" +}, +"StreamingComputationConfig": { +"description": "Configuration information for a single streaming computation.", +"id": "StreamingComputationConfig", +"properties": { +"computationId": { +"description": "Unique identifier for this computation.", +"type": "string" +}, +"instructions": { +"description": "Instructions that comprise the computation.", +"items": { +"$ref": "ParallelInstruction" +}, +"type": "array" +}, +"stageName": { +"description": "Stage name of this computation.", +"type": "string" +}, +"systemName": { +"description": "System defined name for this computation.", +"type": "string" +}, +"transformUserNameToStateFamily": { +"additionalProperties": { +"type": "string" +}, +"description": "Map from user name of stateful transforms in this stage to their state family.", +"type": "object" +} +}, +"type": "object" +}, +"StreamingComputationRanges": { +"description": "Describes full or partial data disk assignment information of the computation ranges.", +"id": "StreamingComputationRanges", +"properties": { +"computationId": { +"description": "The ID of the computation.", +"type": "string" +}, +"rangeAssignments": { +"description": "Data disk assignments for ranges from this computation.", +"items": { +"$ref": "KeyRangeDataDiskAssignment" +}, +"type": "array" +} +}, +"type": "object" +}, +"StreamingComputationTask": { +"description": "A task which describes what action should be performed for the specified streaming computation ranges.", +"id": "StreamingComputationTask", +"properties": { +"computationRanges": { +"description": "Contains ranges of a streaming computation this task should apply to.", +"items": { +"$ref": "StreamingComputationRanges" +}, +"type": "array" +}, +"dataDisks": { +"description": "Describes the set of data disks this task should apply to.", +"items": { +"$ref": "MountedDataDisk" +}, +"type": "array" +}, +"taskType": { +"description": "A type of streaming computation task.", +"enum": [ +"STREAMING_COMPUTATION_TASK_UNKNOWN", +"STREAMING_COMPUTATION_TASK_STOP", +"STREAMING_COMPUTATION_TASK_START" +], +"enumDescriptions": [ +"The streaming computation task is unknown, or unspecified.", +"Stop processing specified streaming computation range(s).", +"Start processing specified streaming computation range(s)." +], +"type": "string" +} +}, +"type": "object" +}, +"StreamingConfigTask": { +"description": "A task that carries configuration information for streaming computations.", +"id": "StreamingConfigTask", +"properties": { +"commitStreamChunkSizeBytes": { +"description": "Chunk size for commit streams from the harness to windmill.", +"format": "int64", +"type": "string" +}, +"getDataStreamChunkSizeBytes": { +"description": "Chunk size for get data streams from the harness to windmill.", +"format": "int64", +"type": "string" +}, +"maxWorkItemCommitBytes": { +"description": "Maximum size for work item commit supported windmill storage layer.", +"format": "int64", +"type": "string" +}, +"operationalLimits": { +"$ref": "StreamingOperationalLimits", +"description": "Operational limits for the streaming job. Can be used by the worker to validate outputs sent to the backend." +}, +"streamingComputationConfigs": { +"description": "Set of computation configuration information.", +"items": { +"$ref": "StreamingComputationConfig" +}, +"type": "array" +}, +"userStepToStateFamilyNameMap": { +"additionalProperties": { +"type": "string" +}, +"description": "Map from user step names to state families.", +"type": "object" +}, +"userWorkerRunnerV1Settings": { +"description": "Binary encoded proto to control runtime behavior of the java runner v1 user worker.", +"format": "byte", +"type": "string" +}, +"userWorkerRunnerV2Settings": { +"description": "Binary encoded proto to control runtime behavior of the runner v2 user worker.", +"format": "byte", +"type": "string" +}, +"windmillServiceEndpoint": { +"description": "If present, the worker must use this endpoint to communicate with Windmill Service dispatchers, otherwise the worker must continue to use whatever endpoint it had been using.", +"type": "string" +}, +"windmillServicePort": { +"description": "If present, the worker must use this port to communicate with Windmill Service dispatchers. Only applicable when windmill_service_endpoint is specified.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"StreamingOperationalLimits": { +"description": "Operational limits imposed on streaming jobs by the backend.", +"id": "StreamingOperationalLimits", +"properties": { +"maxBagElementBytes": { +"description": "The maximum size for an element in bag state.", +"format": "int64", +"type": "string" +}, +"maxGlobalDataBytes": { +"description": "The maximum size for an element in global data.", +"format": "int64", +"type": "string" +}, +"maxKeyBytes": { +"description": "The maximum size allowed for a key.", +"format": "int64", +"type": "string" +}, +"maxProductionOutputBytes": { +"description": "The maximum size for a single output element.", +"format": "int64", +"type": "string" +}, +"maxSortedListElementBytes": { +"description": "The maximum size for an element in sorted list state.", +"format": "int64", +"type": "string" +}, +"maxSourceStateBytes": { +"description": "The maximum size for a source state update.", +"format": "int64", +"type": "string" +}, +"maxTagBytes": { +"description": "The maximum size for a state tag.", +"format": "int64", +"type": "string" +}, +"maxValueBytes": { +"description": "The maximum size for a value state field.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"StreamingScalingReport": { +"description": "Contains per-user worker telemetry used in streaming autoscaling.", +"id": "StreamingScalingReport", +"properties": { +"activeBundleCount": { +"deprecated": true, +"format": "int32", +"type": "integer" +}, +"activeThreadCount": { +"description": "Current acive thread count.", +"format": "int32", +"type": "integer" +}, +"maximumBundleCount": { +"description": "Maximum bundle count.", +"format": "int32", +"type": "integer" +}, +"maximumBytes": { +"description": "Maximum bytes.", +"format": "int64", +"type": "string" +}, +"maximumBytesCount": { +"deprecated": true, +"format": "int32", +"type": "integer" +}, +"maximumThreadCount": { +"description": "Maximum thread count limit.", +"format": "int32", +"type": "integer" +}, +"outstandingBundleCount": { +"description": "Current outstanding bundle count.", +"format": "int32", +"type": "integer" +}, +"outstandingBytes": { +"description": "Current outstanding bytes.", +"format": "int64", +"type": "string" +}, +"outstandingBytesCount": { +"deprecated": true, +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"StreamingScalingReportResponse": { +"description": "Contains per-user-worker streaming scaling recommendation from the backend.", +"id": "StreamingScalingReportResponse", +"properties": { +"maximumThreadCount": { +"description": "Maximum thread count limit;", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"StreamingSetupTask": { +"description": "A task which initializes part of a streaming Dataflow job.", +"id": "StreamingSetupTask", +"properties": { +"drain": { +"description": "The user has requested drain.", +"type": "boolean" +}, +"receiveWorkPort": { +"description": "The TCP port on which the worker should listen for messages from other streaming computation workers.", +"format": "int32", +"type": "integer" +}, +"snapshotConfig": { +"$ref": "StreamingApplianceSnapshotConfig", +"description": "Configures streaming appliance snapshot." +}, +"streamingComputationTopology": { +"$ref": "TopologyConfig", +"description": "The global topology of the streaming Dataflow job." +}, +"workerHarnessPort": { +"description": "The TCP port used by the worker to communicate with the Dataflow worker harness.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"StreamingSideInputLocation": { +"description": "Identifies the location of a streaming side input.", +"id": "StreamingSideInputLocation", +"properties": { +"stateFamily": { +"description": "Identifies the state family where this side input is stored.", +"type": "string" +}, +"tag": { +"description": "Identifies the particular side input within the streaming Dataflow job.", +"type": "string" +} +}, +"type": "object" +}, +"StreamingStageLocation": { +"description": "Identifies the location of a streaming computation stage, for stage-to-stage communication.", +"id": "StreamingStageLocation", +"properties": { +"streamId": { +"description": "Identifies the particular stream within the streaming Dataflow job.", +"type": "string" +} +}, +"type": "object" +}, +"StreamingStragglerInfo": { +"description": "Information useful for streaming straggler identification and debugging.", +"id": "StreamingStragglerInfo", +"properties": { +"dataWatermarkLag": { +"description": "The event-time watermark lag at the time of the straggler detection.", +"format": "google-duration", +"type": "string" +}, +"endTime": { +"description": "End time of this straggler.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Start time of this straggler.", +"format": "google-datetime", +"type": "string" +}, +"systemWatermarkLag": { +"description": "The system watermark lag at the time of the straggler detection.", +"format": "google-duration", +"type": "string" +}, +"workerName": { +"description": "Name of the worker where the straggler was detected.", +"type": "string" +} +}, +"type": "object" +}, +"StringList": { +"description": "A metric value representing a list of strings.", +"id": "StringList", +"properties": { +"elements": { +"description": "Elements of the list.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"StructuredMessage": { +"description": "A rich message format, including a human readable string, a key for identifying the message, and structured data associated with the message for programmatic consumption.", +"id": "StructuredMessage", +"properties": { +"messageKey": { +"description": "Identifier for this message type. Used by external systems to internationalize or personalize message.", +"type": "string" +}, +"messageText": { +"description": "Human-readable version of message.", +"type": "string" +}, +"parameters": { +"description": "The structured data associated with this message.", +"items": { +"$ref": "Parameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"TaskRunnerSettings": { +"description": "Taskrunner configuration settings.", +"id": "TaskRunnerSettings", +"properties": { +"alsologtostderr": { +"description": "Whether to also send taskrunner log info to stderr.", +"type": "boolean" +}, +"baseTaskDir": { +"description": "The location on the worker for task-specific subdirectories.", +"type": "string" +}, +"baseUrl": { +"description": "The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, \"Relative Uniform Resource Locators\". If not specified, the default value is \"http://www.googleapis.com/\"", +"type": "string" +}, +"commandlinesFileName": { +"description": "The file to store preprocessing commands in.", +"type": "string" +}, +"continueOnException": { +"description": "Whether to continue taskrunner if an exception is hit.", +"type": "boolean" +}, +"dataflowApiVersion": { +"description": "The API version of endpoint, e.g. \"v1b3\"", +"type": "string" +}, +"harnessCommand": { +"description": "The command to launch the worker harness.", +"type": "string" +}, +"languageHint": { +"description": "The suggested backend language.", +"type": "string" +}, +"logDir": { +"description": "The directory on the VM to store logs.", +"type": "string" +}, +"logToSerialconsole": { +"description": "Whether to send taskrunner log info to Google Compute Engine VM serial console.", +"type": "boolean" +}, +"logUploadLocation": { +"description": "Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}", +"type": "string" +}, +"oauthScopes": { +"description": "The OAuth2 scopes to be requested by the taskrunner in order to access the Cloud Dataflow API.", +"items": { +"type": "string" +}, +"type": "array" +}, +"parallelWorkerSettings": { +"$ref": "WorkerSettings", +"description": "The settings to pass to the parallel worker harness." +}, +"streamingWorkerMainClass": { +"description": "The streaming worker main class name.", +"type": "string" +}, +"taskGroup": { +"description": "The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. \"wheel\".", +"type": "string" +}, +"taskUser": { +"description": "The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. \"root\".", +"type": "string" +}, +"tempStoragePrefix": { +"description": "The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}", +"type": "string" +}, +"vmId": { +"description": "The ID string of the VM.", +"type": "string" +}, +"workflowFileName": { +"description": "The file to store the workflow in.", +"type": "string" +} +}, +"type": "object" +}, +"TemplateMetadata": { +"description": "Metadata describing a template.", +"id": "TemplateMetadata", +"properties": { +"defaultStreamingMode": { +"description": "Optional. Indicates the default streaming mode for a streaming template. Only valid if both supports_at_least_once and supports_exactly_once are true. Possible values: UNSPECIFIED, EXACTLY_ONCE and AT_LEAST_ONCE", +"type": "string" +}, +"description": { +"description": "Optional. A description of the template.", +"type": "string" +}, +"name": { +"description": "Required. The name of the template.", +"type": "string" +}, +"parameters": { +"description": "The parameters for the template.", +"items": { +"$ref": "ParameterMetadata" +}, +"type": "array" +}, +"streaming": { +"description": "Optional. Indicates if the template is streaming or not.", +"type": "boolean" +}, +"supportsAtLeastOnce": { +"description": "Optional. Indicates if the streaming template supports at least once mode.", +"type": "boolean" +}, +"supportsExactlyOnce": { +"description": "Optional. Indicates if the streaming template supports exactly once mode.", +"type": "boolean" +} +}, +"type": "object" +}, +"TopologyConfig": { +"description": "Global topology of the streaming Dataflow job, including all computations and their sharded locations.", +"id": "TopologyConfig", +"properties": { +"computations": { +"description": "The computations associated with a streaming Dataflow job.", +"items": { +"$ref": "ComputationTopology" +}, +"type": "array" +}, +"dataDiskAssignments": { +"description": "The disks assigned to a streaming Dataflow job.", +"items": { +"$ref": "DataDiskAssignment" +}, +"type": "array" +}, +"forwardingKeyBits": { +"description": "The size (in bits) of keys that will be assigned to source messages.", +"format": "int32", +"type": "integer" +}, +"persistentStateVersion": { +"description": "Version number for persistent state.", +"format": "int32", +"type": "integer" +}, +"userStageToComputationNameMap": { +"additionalProperties": { +"type": "string" +}, +"description": "Maps user stage names to stable computation names.", +"type": "object" +} +}, +"type": "object" +}, +"TransformSummary": { +"description": "Description of the type, names/ids, and input/outputs for a transform.", +"id": "TransformSummary", +"properties": { +"displayData": { +"description": "Transform-specific display data.", +"items": { +"$ref": "DisplayData" +}, +"type": "array" +}, +"id": { +"description": "SDK generated id of this transform instance.", +"type": "string" +}, +"inputCollectionName": { +"description": "User names for all collection inputs to this transform.", +"items": { +"type": "string" +}, +"type": "array" +}, +"kind": { +"description": "Type of transform.", +"enum": [ +"UNKNOWN_KIND", +"PAR_DO_KIND", +"GROUP_BY_KEY_KIND", +"FLATTEN_KIND", +"READ_KIND", +"WRITE_KIND", +"CONSTANT_KIND", +"SINGLETON_KIND", +"SHUFFLE_KIND" +], +"enumDescriptions": [ +"Unrecognized transform type.", +"ParDo transform.", +"Group By Key transform.", +"Flatten transform.", +"Read transform.", +"Write transform.", +"Constructs from a constant value, such as with Create.of.", +"Creates a Singleton view of a collection.", +"Opening or closing a shuffle session, often as part of a GroupByKey." +], +"type": "string" +}, +"name": { +"description": "User provided name for this transform instance.", +"type": "string" +}, +"outputCollectionName": { +"description": "User names for all collection outputs to this transform.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"WorkItem": { +"description": "WorkItem represents basic information about a WorkItem to be executed in the cloud.", +"id": "WorkItem", +"properties": { +"configuration": { +"description": "Work item-specific configuration as an opaque blob.", +"type": "string" +}, +"id": { +"description": "Identifies this WorkItem.", +"format": "int64", +"type": "string" +}, +"initialReportIndex": { +"description": "The initial index to use when reporting the status of the WorkItem.", +"format": "int64", +"type": "string" +}, +"jobId": { +"description": "Identifies the workflow job this WorkItem belongs to.", +"type": "string" +}, +"leaseExpireTime": { +"description": "Time when the lease on this Work will expire.", +"format": "google-datetime", +"type": "string" +}, +"mapTask": { +"$ref": "MapTask", +"description": "Additional information for MapTask WorkItems." +}, +"packages": { +"description": "Any required packages that need to be fetched in order to execute this WorkItem.", +"items": { +"$ref": "Package" +}, +"type": "array" +}, +"projectId": { +"description": "Identifies the cloud project this WorkItem belongs to.", +"type": "string" +}, +"reportStatusInterval": { +"description": "Recommended reporting interval.", +"format": "google-duration", +"type": "string" +}, +"seqMapTask": { +"$ref": "SeqMapTask", +"description": "Additional information for SeqMapTask WorkItems." +}, +"shellTask": { +"$ref": "ShellTask", +"description": "Additional information for ShellTask WorkItems." +}, +"sourceOperationTask": { +"$ref": "SourceOperationRequest", +"description": "Additional information for source operation WorkItems." +}, +"streamingComputationTask": { +"$ref": "StreamingComputationTask", +"description": "Additional information for StreamingComputationTask WorkItems." +}, +"streamingConfigTask": { +"$ref": "StreamingConfigTask", +"description": "Additional information for StreamingConfigTask WorkItems." +}, +"streamingSetupTask": { +"$ref": "StreamingSetupTask", +"description": "Additional information for StreamingSetupTask WorkItems." +} +}, +"type": "object" +}, +"WorkItemDetails": { +"description": "Information about an individual work item execution.", +"id": "WorkItemDetails", +"properties": { +"attemptId": { +"description": "Attempt ID of this work item", +"type": "string" +}, +"endTime": { +"description": "End time of this work item attempt. If the work item is completed, this is the actual end time of the work item. Otherwise, it is the predicted end time.", +"format": "google-datetime", +"type": "string" +}, +"metrics": { +"description": "Metrics for this work item.", +"items": { +"$ref": "MetricUpdate" +}, +"type": "array" +}, +"progress": { +"$ref": "ProgressTimeseries", +"description": "Progress of this work item." +}, +"startTime": { +"description": "Start time of this work item attempt.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "State of this work item.", +"enum": [ +"EXECUTION_STATE_UNKNOWN", +"EXECUTION_STATE_NOT_STARTED", +"EXECUTION_STATE_RUNNING", +"EXECUTION_STATE_SUCCEEDED", +"EXECUTION_STATE_FAILED", +"EXECUTION_STATE_CANCELLED" +], +"enumDescriptions": [ +"The component state is unknown or unspecified.", +"The component is not yet running.", +"The component is currently running.", +"The component succeeded.", +"The component failed.", +"Execution of the component was cancelled." +], +"type": "string" +}, +"stragglerInfo": { +"$ref": "StragglerInfo", +"description": "Information about straggler detections for this work item." +}, +"taskId": { +"description": "Name of this work item.", +"type": "string" +} +}, +"type": "object" +}, +"WorkItemServiceState": { +"description": "The Dataflow service's idea of the current state of a WorkItem being processed by a worker.", +"id": "WorkItemServiceState", +"properties": { +"completeWorkStatus": { +"$ref": "Status", +"description": "If set, a request to complete the work item with the given status. This will not be set to OK, unless supported by the specific kind of WorkItem. It can be used for the backend to indicate a WorkItem must terminate, e.g., for aborting work." +}, +"harnessData": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Other data returned by the service, specific to the particular worker harness.", +"type": "object" +}, +"hotKeyDetection": { +"$ref": "HotKeyDetection", +"description": "A hot key is a symptom of poor data distribution in which there are enough elements mapped to a single key to impact pipeline performance. When present, this field includes metadata associated with any hot key." +}, +"leaseExpireTime": { +"description": "Time at which the current lease will expire.", +"format": "google-datetime", +"type": "string" +}, +"metricShortId": { +"description": "The short ids that workers should use in subsequent metric updates. Workers should strive to use short ids whenever possible, but it is ok to request the short_id again if a worker lost track of it (e.g. if the worker is recovering from a crash). NOTE: it is possible that the response may have short ids for a subset of the metrics.", +"items": { +"$ref": "MetricShortId" +}, +"type": "array" +}, +"nextReportIndex": { +"description": "The index value to use for the next report sent by the worker. Note: If the report call fails for whatever reason, the worker should reuse this index for subsequent report attempts.", +"format": "int64", +"type": "string" +}, +"reportStatusInterval": { +"description": "New recommended reporting interval.", +"format": "google-duration", +"type": "string" +}, +"splitRequest": { +"$ref": "ApproximateSplitRequest", +"description": "The progress point in the WorkItem where the Dataflow service suggests that the worker truncate the task." +}, +"suggestedStopPoint": { +"$ref": "ApproximateProgress", +"deprecated": true, +"description": "DEPRECATED in favor of split_request." +}, +"suggestedStopPosition": { +"$ref": "Position", +"deprecated": true, +"description": "Obsolete, always empty." +} +}, +"type": "object" +}, +"WorkItemStatus": { +"description": "Conveys a worker's progress through the work described by a WorkItem.", +"id": "WorkItemStatus", +"properties": { +"completed": { +"description": "True if the WorkItem was completed (successfully or unsuccessfully).", +"type": "boolean" +}, +"counterUpdates": { +"description": "Worker output counters for this WorkItem.", +"items": { +"$ref": "CounterUpdate" +}, +"type": "array" +}, +"dynamicSourceSplit": { +"$ref": "DynamicSourceSplit", +"description": "See documentation of stop_position." +}, +"errors": { +"description": "Specifies errors which occurred during processing. If errors are provided, and completed = true, then the WorkItem is considered to have failed.", +"items": { +"$ref": "Status" +}, +"type": "array" +}, +"metricUpdates": { +"deprecated": true, +"description": "DEPRECATED in favor of counter_updates.", +"items": { +"$ref": "MetricUpdate" +}, +"type": "array" +}, +"progress": { +"$ref": "ApproximateProgress", +"deprecated": true, +"description": "DEPRECATED in favor of reported_progress." +}, +"reportIndex": { +"description": "The report index. When a WorkItem is leased, the lease will contain an initial report index. When a WorkItem's status is reported to the system, the report should be sent with that report index, and the response will contain the index the worker should use for the next report. Reports received with unexpected index values will be rejected by the service. In order to preserve idempotency, the worker should not alter the contents of a report, even if the worker must submit the same report multiple times before getting back a response. The worker should not submit a subsequent report until the response for the previous report had been received from the service.", +"format": "int64", +"type": "string" +}, +"reportedProgress": { +"$ref": "ApproximateReportedProgress", +"description": "The worker's progress through this WorkItem." +}, +"requestedLeaseDuration": { +"description": "Amount of time the worker requests for its lease.", +"format": "google-duration", +"type": "string" +}, +"sourceFork": { +"$ref": "SourceFork", +"deprecated": true, +"description": "DEPRECATED in favor of dynamic_source_split." +}, +"sourceOperationResponse": { +"$ref": "SourceOperationResponse", +"description": "If the work item represented a SourceOperationRequest, and the work is completed, contains the result of the operation." +}, +"stopPosition": { +"$ref": "Position", +"description": "A worker may split an active map task in two parts, \"primary\" and \"residual\", continuing to process the primary part and returning the residual part into the pool of available work. This event is called a \"dynamic split\" and is critical to the dynamic work rebalancing feature. The two obtained sub-tasks are called \"parts\" of the split. The parts, if concatenated, must represent the same input as would be read by the current task if the split did not happen. The exact way in which the original task is decomposed into the two parts is specified either as a position demarcating them (stop_position), or explicitly as two DerivedSources, if this task consumes a user-defined source type (dynamic_source_split). The \"current\" task is adjusted as a result of the split: after a task with range [A, B) sends a stop_position update at C, its range is considered to be [A, C), e.g.: * Progress should be interpreted relative to the new range, e.g. \"75% completed\" means \"75% of [A, C) completed\" * The worker should interpret proposed_stop_position relative to the new range, e.g. \"split at 68%\" should be interpreted as \"split at 68% of [A, C)\". * If the worker chooses to split again using stop_position, only stop_positions in [A, C) will be accepted. * Etc. dynamic_source_split has similar semantics: e.g., if a task with source S splits using dynamic_source_split into {P, R} (where P and R must be together equivalent to S), then subsequent progress and proposed_stop_position should be interpreted relative to P, and in a potential subsequent dynamic_source_split into {P', R'}, P' and R' must be together equivalent to P, etc." +}, +"totalThrottlerWaitTimeSeconds": { +"description": "Total time the worker spent being throttled by external systems.", +"format": "double", +"type": "number" +}, +"workItemId": { +"description": "Identifies the WorkItem.", +"type": "string" +} +}, +"type": "object" +}, +"WorkerDetails": { +"description": "Information about a worker", +"id": "WorkerDetails", +"properties": { +"workItems": { +"description": "Work items processed by this worker, sorted by time.", +"items": { +"$ref": "WorkItemDetails" +}, +"type": "array" +}, +"workerName": { +"description": "Name of this worker", +"type": "string" +} +}, +"type": "object" +}, +"WorkerHealthReport": { +"description": "WorkerHealthReport contains information about the health of a worker. The VM should be identified by the labels attached to the WorkerMessage that this health ping belongs to.", +"id": "WorkerHealthReport", +"properties": { +"msg": { +"description": "Message describing any unusual health reports.", +"type": "string" +}, +"pods": { +"description": "The pods running on the worker. See: http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod This field is used by the worker to send the status of the indvidual containers running on each worker.", +"items": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"reportInterval": { +"description": "The interval at which the worker is sending health reports. The default value of 0 should be interpreted as the field is not being explicitly set by the worker.", +"format": "google-duration", +"type": "string" +}, +"vmBrokenCode": { +"description": "Code to describe a specific reason, if known, that a VM has reported broken state.", +"type": "string" +}, +"vmIsBroken": { +"description": "Whether the VM is in a permanently broken state. Broken VMs should be abandoned or deleted ASAP to avoid assigning or completing any work.", +"type": "boolean" +}, +"vmIsHealthy": { +"description": "Whether the VM is currently healthy.", +"type": "boolean" +}, +"vmStartupTime": { +"description": "The time the VM was booted.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"WorkerHealthReportResponse": { +"description": "WorkerHealthReportResponse contains information returned to the worker in response to a health ping.", +"id": "WorkerHealthReportResponse", +"properties": { +"reportInterval": { +"description": "A positive value indicates the worker should change its reporting interval to the specified value. The default value of zero means no change in report rate is requested by the server.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"WorkerLifecycleEvent": { +"description": "A report of an event in a worker's lifecycle. The proto contains one event, because the worker is expected to asynchronously send each message immediately after the event. Due to this asynchrony, messages may arrive out of order (or missing), and it is up to the consumer to interpret. The timestamp of the event is in the enclosing WorkerMessage proto.", +"id": "WorkerLifecycleEvent", +"properties": { +"containerStartTime": { +"description": "The start time of this container. All events will report this so that events can be grouped together across container/VM restarts.", +"format": "google-datetime", +"type": "string" +}, +"event": { +"description": "The event being reported.", +"enum": [ +"UNKNOWN_EVENT", +"OS_START", +"CONTAINER_START", +"NETWORK_UP", +"STAGING_FILES_DOWNLOAD_START", +"STAGING_FILES_DOWNLOAD_FINISH", +"SDK_INSTALL_START", +"SDK_INSTALL_FINISH" +], +"enumDescriptions": [ +"Invalid event.", +"The time the VM started.", +"Our container code starts running. Multiple containers could be distinguished with WorkerMessage.labels if desired.", +"The worker has a functional external network connection.", +"Started downloading staging files.", +"Finished downloading all staging files.", +"For applicable SDKs, started installation of SDK and worker packages.", +"Finished installing SDK." +], +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Other stats that can accompany an event. E.g. { \"downloaded_bytes\" : \"123456\" }", +"type": "object" +} +}, +"type": "object" +}, +"WorkerMessage": { +"description": "WorkerMessage provides information to the backend about a worker.", +"id": "WorkerMessage", +"properties": { +"dataSamplingReport": { +"$ref": "DataSamplingReport", +"description": "Optional. Contains metrics related to go/dataflow-data-sampling-telemetry." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels are used to group WorkerMessages. For example, a worker_message about a particular container might have the labels: { \"JOB_ID\": \"2015-04-22\", \"WORKER_ID\": \"wordcount-vm-2015\u2026\" \"CONTAINER_TYPE\": \"worker\", \"CONTAINER_ID\": \"ac1234def\"} Label tags typically correspond to Label enum values. However, for ease of development other strings can be used as tags. LABEL_UNSPECIFIED should not be used here.", +"type": "object" +}, +"perWorkerMetrics": { +"$ref": "PerWorkerMetrics", +"description": "System defined metrics for this worker." +}, +"streamingScalingReport": { +"$ref": "StreamingScalingReport", +"description": "Contains per-user worker telemetry used in streaming autoscaling." +}, +"time": { +"description": "The timestamp of the worker_message.", +"format": "google-datetime", +"type": "string" +}, +"workerHealthReport": { +"$ref": "WorkerHealthReport", +"description": "The health of a worker." +}, +"workerLifecycleEvent": { +"$ref": "WorkerLifecycleEvent", +"description": "Record of worker lifecycle events." +}, +"workerMessageCode": { +"$ref": "WorkerMessageCode", +"description": "A worker message code." +}, +"workerMetrics": { +"$ref": "ResourceUtilizationReport", +"description": "Resource metrics reported by workers." +}, +"workerShutdownNotice": { +"$ref": "WorkerShutdownNotice", +"description": "Shutdown notice by workers." +}, +"workerThreadScalingReport": { +"$ref": "WorkerThreadScalingReport", +"description": "Thread scaling information reported by workers." +} +}, +"type": "object" +}, +"WorkerMessageCode": { +"description": "A message code is used to report status and error messages to the service. The message codes are intended to be machine readable. The service will take care of translating these into user understandable messages if necessary. Example use cases: 1. Worker processes reporting successful startup. 2. Worker processes reporting specific errors (e.g. package staging failure).", +"id": "WorkerMessageCode", +"properties": { +"code": { +"description": "The code is a string intended for consumption by a machine that identifies the type of message being sent. Examples: 1. \"HARNESS_STARTED\" might be used to indicate the worker harness has started. 2. \"GCS_DOWNLOAD_ERROR\" might be used to indicate an error downloading a Cloud Storage file as part of the boot process of one of the worker containers. This is a string and not an enum to make it easy to add new codes without waiting for an API change.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Parameters contains specific information about the code. This is a struct to allow parameters of different types. Examples: 1. For a \"HARNESS_STARTED\" message parameters might provide the name of the worker and additional data like timing information. 2. For a \"GCS_DOWNLOAD_ERROR\" parameters might contain fields listing the Cloud Storage objects being downloaded and fields containing errors. In general complex data structures should be avoided. If a worker needs to send a specific and complicated data structure then please consider defining a new proto and adding it to the data oneof in WorkerMessageResponse. Conventions: Parameters should only be used for information that isn't typically passed as a label. hostname and other worker identifiers should almost always be passed as labels since they will be included on most messages.", +"type": "object" +} +}, +"type": "object" +}, +"WorkerMessageResponse": { +"description": "A worker_message response allows the server to pass information to the sender.", +"id": "WorkerMessageResponse", +"properties": { +"streamingScalingReportResponse": { +"$ref": "StreamingScalingReportResponse", +"description": "Service's streaming scaling response for workers." +}, +"workerHealthReportResponse": { +"$ref": "WorkerHealthReportResponse", +"description": "The service's response to a worker's health report." +}, +"workerMetricsResponse": { +"$ref": "ResourceUtilizationReportResponse", +"description": "Service's response to reporting worker metrics (currently empty)." +}, +"workerShutdownNoticeResponse": { +"$ref": "WorkerShutdownNoticeResponse", +"description": "Service's response to shutdown notice (currently empty)." +}, +"workerThreadScalingReportResponse": { +"$ref": "WorkerThreadScalingReportResponse", +"description": "Service's thread scaling recommendation for workers." +} +}, +"type": "object" +}, +"WorkerPool": { +"description": "Describes one particular pool of Cloud Dataflow workers to be instantiated by the Cloud Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.", +"id": "WorkerPool", +"properties": { +"autoscalingSettings": { +"$ref": "AutoscalingSettings", +"description": "Settings for autoscaling of this WorkerPool." +}, +"dataDisks": { +"description": "Data disks that are used by a VM in this workflow.", +"items": { +"$ref": "Disk" +}, +"type": "array" +}, +"defaultPackageSet": { +"description": "The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.", +"enum": [ +"DEFAULT_PACKAGE_SET_UNKNOWN", +"DEFAULT_PACKAGE_SET_NONE", +"DEFAULT_PACKAGE_SET_JAVA", +"DEFAULT_PACKAGE_SET_PYTHON" +], +"enumDescriptions": [ +"The default set of packages to stage is unknown, or unspecified.", +"Indicates that no packages should be staged at the worker unless explicitly specified by the job.", +"Stage packages typically useful to workers written in Java.", +"Stage packages typically useful to workers written in Python." +], +"type": "string" +}, +"diskSizeGb": { +"description": "Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.", +"format": "int32", +"type": "integer" +}, +"diskSourceImage": { +"description": "Fully qualified source image for disks.", +"type": "string" +}, +"diskType": { +"description": "Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.", +"type": "string" +}, +"ipConfiguration": { +"description": "Configuration for VM IPs.", +"enum": [ +"WORKER_IP_UNSPECIFIED", +"WORKER_IP_PUBLIC", +"WORKER_IP_PRIVATE" +], +"enumDescriptions": [ +"The configuration is unknown, or unspecified.", +"Workers should have public IP addresses.", +"Workers should have private IP addresses." +], +"type": "string" +}, +"kind": { +"description": "The kind of the worker pool; currently only `harness` and `shuffle` are supported.", +"type": "string" +}, +"machineType": { +"description": "Machine type (e.g. \"n1-standard-1\"). If empty or unspecified, the service will attempt to choose a reasonable default.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Metadata to set on the Google Compute Engine VMs.", +"type": "object" +}, +"network": { +"description": "Network to which VMs will be assigned. If empty or unspecified, the service will use the network \"default\".", +"type": "string" +}, +"numThreadsPerWorker": { +"description": "The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).", +"format": "int32", +"type": "integer" +}, +"numWorkers": { +"description": "Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.", +"format": "int32", +"type": "integer" +}, +"onHostMaintenance": { +"description": "The action to take on host maintenance, as defined by the Google Compute Engine API.", +"type": "string" +}, +"packages": { +"description": "Packages to be installed on workers.", +"items": { +"$ref": "Package" +}, +"type": "array" +}, +"poolArgs": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Extra arguments for this worker pool.", +"type": "object" +}, +"sdkHarnessContainerImages": { +"description": "Set of SDK harness containers needed to execute this pipeline. This will only be set in the Fn API path. For non-cross-language pipelines this should have only one entry. Cross-language pipelines will have two or more entries.", +"items": { +"$ref": "SdkHarnessContainerImage" +}, +"type": "array" +}, +"subnetwork": { +"description": "Subnetwork to which VMs will be assigned, if desired. Expected to be of the form \"regions/REGION/subnetworks/SUBNETWORK\".", +"type": "string" +}, +"taskrunnerSettings": { +"$ref": "TaskRunnerSettings", +"description": "Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field." +}, +"teardownPolicy": { +"description": "Sets the policy for determining when to turndown worker pool. Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and `TEARDOWN_NEVER`. `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the `TEARDOWN_ALWAYS` policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.", +"enum": [ +"TEARDOWN_POLICY_UNKNOWN", +"TEARDOWN_ALWAYS", +"TEARDOWN_ON_SUCCESS", +"TEARDOWN_NEVER" +], +"enumDescriptions": [ +"The teardown policy isn't specified, or is unknown.", +"Always teardown the resource.", +"Teardown the resource on success. This is useful for debugging failures.", +"Never teardown the resource. This is useful for debugging and development." +], +"type": "string" +}, +"workerHarnessContainerImage": { +"description": "Required. Docker container image that executes the Cloud Dataflow worker harness, residing in Google Container Registry. Deprecated for the Fn API path. Use sdk_harness_container_images instead.", +"type": "string" +}, +"zone": { +"description": "Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.", +"type": "string" +} +}, +"type": "object" +}, +"WorkerSettings": { +"description": "Provides data to pass through to the worker harness.", +"id": "WorkerSettings", +"properties": { +"baseUrl": { +"description": "The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, \"Relative Uniform Resource Locators\". If not specified, the default value is \"http://www.googleapis.com/\"", +"type": "string" +}, +"reportingEnabled": { +"description": "Whether to send work progress updates to the service.", +"type": "boolean" +}, +"servicePath": { +"description": "The Cloud Dataflow service path relative to the root URL, for example, \"dataflow/v1b3/projects\".", +"type": "string" +}, +"shuffleServicePath": { +"description": "The Shuffle service path relative to the root URL, for example, \"shuffle/v1beta1\".", +"type": "string" +}, +"tempStoragePrefix": { +"description": "The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}", +"type": "string" +}, +"workerId": { +"description": "The ID of the worker running this pipeline.", +"type": "string" +} +}, +"type": "object" +}, +"WorkerShutdownNotice": { +"description": "Shutdown notification from workers. This is to be sent by the shutdown script of the worker VM so that the backend knows that the VM is being shut down.", +"id": "WorkerShutdownNotice", +"properties": { +"reason": { +"description": "The reason for the worker shutdown. Current possible values are: \"UNKNOWN\": shutdown reason is unknown. \"PREEMPTION\": shutdown reason is preemption. Other possible reasons may be added in the future.", +"type": "string" +} +}, +"type": "object" +}, +"WorkerShutdownNoticeResponse": { +"description": "Service-side response to WorkerMessage issuing shutdown notice.", +"id": "WorkerShutdownNoticeResponse", +"properties": {}, +"type": "object" +}, +"WorkerThreadScalingReport": { +"description": "Contains information about the thread scaling information of a worker.", +"id": "WorkerThreadScalingReport", +"properties": { +"currentThreadCount": { +"description": "Current number of active threads in a worker.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"WorkerThreadScalingReportResponse": { +"description": "Contains the thread scaling recommendation for a worker from the backend.", +"id": "WorkerThreadScalingReportResponse", +"properties": { +"recommendedThreadCount": { +"description": "Recommended number of threads for a worker.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"WriteInstruction": { +"description": "An instruction that writes records. Takes one input, produces no outputs.", +"id": "WriteInstruction", +"properties": { +"input": { +"$ref": "InstructionInput", +"description": "The input." +}, +"sink": { +"$ref": "Sink", +"description": "The sink to write to." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Dataflow API", +"version": "v1b3" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataform.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataform.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..8d6970b52e4212a555cfd71b94219e0d0dbc9cea --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataform.v1beta1.json @@ -0,0 +1,4090 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://dataform.googleapis.com/", +"batchPath": "batch", +"description": "Service to develop, version control, and operationalize SQL pipelines in BigQuery.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/dataform/docs", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "dataform:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://dataform.mtls.googleapis.com/", +"name": "dataform", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "dataform.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getConfig": { +"description": "Get default config for a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/config", +"httpMethod": "GET", +"id": "dataform.projects.locations.getConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The config name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/config$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Config" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "dataform.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateConfig": { +"description": "Update default config for a given project and location. *Note:* This method does not fully implement AIP/134. In particular: 1. The wildcard entry (***) is treated as a bad request 2. When the *field_mask* is omitted, instead of only updating the set fields, the request is treated as a full update on all modifiable fields ", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/config", +"httpMethod": "PATCH", +"id": "dataform.projects.locations.updateConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The config name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/config$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Specifies the fields to be updated in the config.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Config" +}, +"response": { +"$ref": "Config" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"repositories": { +"methods": { +"commit": { +"description": "Applies a Git commit to a Repository. The Repository must not have a value for `git_remote_settings.url`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:commit", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.commit", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The repository's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:commit", +"request": { +"$ref": "CommitRepositoryChangesRequest" +}, +"response": { +"$ref": "CommitRepositoryChangesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"computeAccessTokenStatus": { +"description": "Computes a Repository's Git access token status.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:computeAccessTokenStatus", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.computeAccessTokenStatus", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The repository's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:computeAccessTokenStatus", +"response": { +"$ref": "ComputeRepositoryAccessTokenStatusResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new Repository in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The location in which to create the repository. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"repositoryId": { +"description": "Required. The ID to use for the repository, which will become the final component of the repository's resource name.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/repositories", +"request": { +"$ref": "Repository" +}, +"response": { +"$ref": "Repository" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}", +"httpMethod": "DELETE", +"id": "dataform.projects.locations.repositories.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "If set to true, any child resources of this repository will also be deleted. (Otherwise, the request will only succeed if the repository has no child resources.)", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The repository's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchHistory": { +"description": "Fetches a Repository's history of commits. The Repository must not have a value for `git_remote_settings.url`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:fetchHistory", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.fetchHistory", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The repository's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of commits to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `FetchRepositoryHistory` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `FetchRepositoryHistory`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}:fetchHistory", +"response": { +"$ref": "FetchRepositoryHistoryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchRemoteBranches": { +"description": "Fetches a Repository's remote branches.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:fetchRemoteBranches", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.fetchRemoteBranches", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The repository's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:fetchRemoteBranches", +"response": { +"$ref": "FetchRemoteBranchesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Fetches a single Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The repository's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Repository" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Repositories in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter for the returned list.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. This field only supports ordering by `name`. If unspecified, the server will choose the ordering. If specified, the default order is ascending for the `name` field.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of repositories to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `ListRepositories` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListRepositories`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location in which to list repositories. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/repositories", +"response": { +"$ref": "ListRepositoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single Repository. *Note:* This method does not fully implement AIP/134. In particular: 1. The wildcard entry (***) is treated as a bad request 2. When the *field_mask* is omitted, instead of only updating the set fields, the request is treated as a full update on all modifiable fields ", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}", +"httpMethod": "PATCH", +"id": "dataform.projects.locations.repositories.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The repository's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Specifies the fields to be updated in the repository. If left unset, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Repository" +}, +"response": { +"$ref": "Repository" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryDirectoryContents": { +"description": "Returns the contents of a given Repository directory. The Repository must not have a value for `git_remote_settings.url`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:queryDirectoryContents", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.queryDirectoryContents", +"parameterOrder": [ +"name" +], +"parameters": { +"commitSha": { +"description": "Optional. The Commit SHA for the commit to query from. If unset, the directory will be queried from HEAD.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The repository's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of paths to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `QueryRepositoryDirectoryContents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `QueryRepositoryDirectoryContents`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"path": { +"description": "Optional. The directory's full path including directory name, relative to root. If left unset, the root is used.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}:queryDirectoryContents", +"response": { +"$ref": "QueryRepositoryDirectoryContentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"readFile": { +"description": "Returns the contents of a file (inside a Repository). The Repository must not have a value for `git_remote_settings.url`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:readFile", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.readFile", +"parameterOrder": [ +"name" +], +"parameters": { +"commitSha": { +"description": "Optional. The commit SHA for the commit to read from. If unset, the file will be read from HEAD.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The repository's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"path": { +"description": "Required. Full file path to read including filename, from repository root.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}:readFile", +"response": { +"$ref": "ReadRepositoryFileResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"compilationResults": { +"methods": { +"create": { +"description": "Creates a new CompilationResult in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/compilationResults", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.compilationResults.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The repository in which to create the compilation result. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/compilationResults", +"request": { +"$ref": "CompilationResult" +}, +"response": { +"$ref": "CompilationResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Fetches a single CompilationResult.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/compilationResults/{compilationResultsId}", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.compilationResults.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The compilation result's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/compilationResults/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "CompilationResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists CompilationResults in a given Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/compilationResults", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.compilationResults.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter for the returned list.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. This field only supports ordering by `name` and `create_time`. If unspecified, the server will choose the ordering. If specified, the default order is ascending for the `name` field.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of compilation results to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `ListCompilationResults` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCompilationResults`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The repository in which to list compilation results. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/compilationResults", +"response": { +"$ref": "ListCompilationResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"query": { +"description": "Returns CompilationResultActions in a given CompilationResult.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/compilationResults/{compilationResultsId}:query", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.compilationResults.query", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "Optional. Optional filter for the returned list. Filtering is only currently supported on the `file_path` field.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The compilation result's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/compilationResults/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of compilation results to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `QueryCompilationResultActions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `QueryCompilationResultActions`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}:query", +"response": { +"$ref": "QueryCompilationResultActionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"releaseConfigs": { +"methods": { +"create": { +"description": "Creates a new ReleaseConfig in a given Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/releaseConfigs", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.releaseConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The repository in which to create the release config. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"releaseConfigId": { +"description": "Required. The ID to use for the release config, which will become the final component of the release config's resource name.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releaseConfigs", +"request": { +"$ref": "ReleaseConfig" +}, +"response": { +"$ref": "ReleaseConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single ReleaseConfig.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/releaseConfigs/{releaseConfigsId}", +"httpMethod": "DELETE", +"id": "dataform.projects.locations.repositories.releaseConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The release config's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/releaseConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Fetches a single ReleaseConfig.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/releaseConfigs/{releaseConfigsId}", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.releaseConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The release config's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/releaseConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "ReleaseConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists ReleaseConfigs in a given Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/releaseConfigs", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.releaseConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of release configs to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `ListReleaseConfigs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListReleaseConfigs`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The repository in which to list release configs. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releaseConfigs", +"response": { +"$ref": "ListReleaseConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single ReleaseConfig. *Note:* This method does not fully implement AIP/134. In particular: 1. The wildcard entry (***) is treated as a bad request 2. When the *field_mask* is omitted, instead of only updating the set fields, the request is treated as a full update on all modifiable fields ", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/releaseConfigs/{releaseConfigsId}", +"httpMethod": "PATCH", +"id": "dataform.projects.locations.repositories.releaseConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The release config's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/releaseConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Specifies the fields to be updated in the release config. If left unset, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "ReleaseConfig" +}, +"response": { +"$ref": "ReleaseConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workflowConfigs": { +"methods": { +"create": { +"description": "Creates a new WorkflowConfig in a given Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowConfigs", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workflowConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The repository in which to create the workflow config. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"workflowConfigId": { +"description": "Required. The ID to use for the workflow config, which will become the final component of the workflow config's resource name.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/workflowConfigs", +"request": { +"$ref": "WorkflowConfig" +}, +"response": { +"$ref": "WorkflowConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single WorkflowConfig.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowConfigs/{workflowConfigsId}", +"httpMethod": "DELETE", +"id": "dataform.projects.locations.repositories.workflowConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workflow config's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workflowConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Fetches a single WorkflowConfig.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowConfigs/{workflowConfigsId}", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workflowConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workflow config's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workflowConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "WorkflowConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists WorkflowConfigs in a given Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowConfigs", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workflowConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of workflow configs to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `ListWorkflowConfigs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListWorkflowConfigs`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The repository in which to list workflow configs. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/workflowConfigs", +"response": { +"$ref": "ListWorkflowConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single WorkflowConfig. *Note:* This method does not fully implement AIP/134. In particular: 1. The wildcard entry (***) is treated as a bad request 2. When the *field_mask* is omitted, instead of only updating the set fields, the request is treated as a full update on all modifiable fields ", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowConfigs/{workflowConfigsId}", +"httpMethod": "PATCH", +"id": "dataform.projects.locations.repositories.workflowConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The workflow config's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workflowConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Specifies the fields to be updated in the workflow config. If left unset, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "WorkflowConfig" +}, +"response": { +"$ref": "WorkflowConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workflowInvocations": { +"methods": { +"cancel": { +"description": "Requests cancellation of a running WorkflowInvocation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowInvocations/{workflowInvocationsId}:cancel", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workflowInvocations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workflow invocation resource's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workflowInvocations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:cancel", +"request": { +"$ref": "CancelWorkflowInvocationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new WorkflowInvocation in a given Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowInvocations", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workflowInvocations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The repository in which to create the workflow invocation. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/workflowInvocations", +"request": { +"$ref": "WorkflowInvocation" +}, +"response": { +"$ref": "WorkflowInvocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single WorkflowInvocation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowInvocations/{workflowInvocationsId}", +"httpMethod": "DELETE", +"id": "dataform.projects.locations.repositories.workflowInvocations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workflow invocation resource's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workflowInvocations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Fetches a single WorkflowInvocation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowInvocations/{workflowInvocationsId}", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workflowInvocations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workflow invocation resource's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workflowInvocations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "WorkflowInvocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists WorkflowInvocations in a given Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowInvocations", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workflowInvocations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter for the returned list.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. This field only supports ordering by `name`. If unspecified, the server will choose the ordering. If specified, the default order is ascending for the `name` field.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of workflow invocations to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `ListWorkflowInvocations` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListWorkflowInvocations`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the WorkflowInvocation type. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/workflowInvocations", +"response": { +"$ref": "ListWorkflowInvocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"query": { +"description": "Returns WorkflowInvocationActions in a given WorkflowInvocation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workflowInvocations/{workflowInvocationsId}:query", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workflowInvocations.query", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workflow invocation's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workflowInvocations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of workflow invocations to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `QueryWorkflowInvocationActions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `QueryWorkflowInvocationActions`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}:query", +"response": { +"$ref": "QueryWorkflowInvocationActionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workspaces": { +"methods": { +"commit": { +"description": "Applies a Git commit for uncommitted files in a Workspace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:commit", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.commit", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:commit", +"request": { +"$ref": "CommitWorkspaceChangesRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new Workspace in a given Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The repository in which to create the workspace. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"workspaceId": { +"description": "Required. The ID to use for the workspace, which will become the final component of the workspace's resource name.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/workspaces", +"request": { +"$ref": "Workspace" +}, +"response": { +"$ref": "Workspace" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Workspace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}", +"httpMethod": "DELETE", +"id": "dataform.projects.locations.repositories.workspaces.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workspace resource's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchFileDiff": { +"description": "Fetches Git diff for an uncommitted file in a Workspace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:fetchFileDiff", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workspaces.fetchFileDiff", +"parameterOrder": [ +"workspace" +], +"parameters": { +"path": { +"description": "Required. The file's full path including filename, relative to the workspace root.", +"location": "query", +"type": "string" +}, +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:fetchFileDiff", +"response": { +"$ref": "FetchFileDiffResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchFileGitStatuses": { +"description": "Fetches Git statuses for the files in a Workspace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:fetchFileGitStatuses", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workspaces.fetchFileGitStatuses", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:fetchFileGitStatuses", +"response": { +"$ref": "FetchFileGitStatusesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchGitAheadBehind": { +"description": "Fetches Git ahead/behind against a remote branch.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:fetchGitAheadBehind", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workspaces.fetchGitAheadBehind", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +}, +"remoteBranch": { +"description": "Optional. The name of the branch in the Git remote against which this workspace should be compared. If left unset, the repository's default branch name will be used.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}:fetchGitAheadBehind", +"response": { +"$ref": "FetchGitAheadBehindResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Fetches a single Workspace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workspaces.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Workspace" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workspaces.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"installNpmPackages": { +"description": "Installs dependency NPM packages (inside a Workspace).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:installNpmPackages", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.installNpmPackages", +"parameterOrder": [ +"workspace" +], +"parameters": { +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:installNpmPackages", +"request": { +"$ref": "InstallNpmPackagesRequest" +}, +"response": { +"$ref": "InstallNpmPackagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Workspaces in a given Repository.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workspaces.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter for the returned list.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. This field only supports ordering by `name`. If unspecified, the server will choose the ordering. If specified, the default order is ascending for the `name` field.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of workspaces to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `ListWorkspaces` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListWorkspaces`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The repository in which to list workspaces. Must be in the format `projects/*/locations/*/repositories/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/workspaces", +"response": { +"$ref": "ListWorkspacesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"makeDirectory": { +"description": "Creates a directory inside a Workspace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:makeDirectory", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.makeDirectory", +"parameterOrder": [ +"workspace" +], +"parameters": { +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:makeDirectory", +"request": { +"$ref": "MakeDirectoryRequest" +}, +"response": { +"$ref": "MakeDirectoryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"moveDirectory": { +"description": "Moves a directory (inside a Workspace), and all of its contents, to a new location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:moveDirectory", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.moveDirectory", +"parameterOrder": [ +"workspace" +], +"parameters": { +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:moveDirectory", +"request": { +"$ref": "MoveDirectoryRequest" +}, +"response": { +"$ref": "MoveDirectoryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"moveFile": { +"description": "Moves a file (inside a Workspace) to a new location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:moveFile", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.moveFile", +"parameterOrder": [ +"workspace" +], +"parameters": { +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:moveFile", +"request": { +"$ref": "MoveFileRequest" +}, +"response": { +"$ref": "MoveFileResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"pull": { +"description": "Pulls Git commits from the Repository's remote into a Workspace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:pull", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.pull", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:pull", +"request": { +"$ref": "PullGitCommitsRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"push": { +"description": "Pushes Git commits from a Workspace to the Repository's remote.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:push", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.push", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:push", +"request": { +"$ref": "PushGitCommitsRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryDirectoryContents": { +"description": "Returns the contents of a given Workspace directory.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:queryDirectoryContents", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workspaces.queryDirectoryContents", +"parameterOrder": [ +"workspace" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of paths to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `QueryDirectoryContents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `QueryDirectoryContents`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"path": { +"description": "Optional. The directory's full path including directory name, relative to the workspace root. If left unset, the workspace root is used.", +"location": "query", +"type": "string" +}, +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:queryDirectoryContents", +"response": { +"$ref": "QueryDirectoryContentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"readFile": { +"description": "Returns the contents of a file (inside a Workspace).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:readFile", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workspaces.readFile", +"parameterOrder": [ +"workspace" +], +"parameters": { +"path": { +"description": "Required. The file's full path including filename, relative to the workspace root.", +"location": "query", +"type": "string" +}, +"revision": { +"description": "Optional. The Git revision of the file to return. If left empty, the current contents of `path` will be returned.", +"location": "query", +"type": "string" +}, +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:readFile", +"response": { +"$ref": "ReadFileResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeDirectory": { +"description": "Deletes a directory (inside a Workspace) and all of its contents.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:removeDirectory", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.removeDirectory", +"parameterOrder": [ +"workspace" +], +"parameters": { +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:removeDirectory", +"request": { +"$ref": "RemoveDirectoryRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeFile": { +"description": "Deletes a file (inside a Workspace).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:removeFile", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.removeFile", +"parameterOrder": [ +"workspace" +], +"parameters": { +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:removeFile", +"request": { +"$ref": "RemoveFileRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reset": { +"description": "Performs a Git reset for uncommitted files in a Workspace.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:reset", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.reset", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:reset", +"request": { +"$ref": "ResetWorkspaceChangesRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchFiles": { +"description": "Finds the contents of a given Workspace directory by filter.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:searchFiles", +"httpMethod": "GET", +"id": "dataform.projects.locations.repositories.workspaces.searchFiles", +"parameterOrder": [ +"workspace" +], +"parameters": { +"filter": { +"description": "Optional. Optional filter for the returned list in filtering format. Filtering is only currently supported on the `path` field. See https://google.aip.dev/160 for details.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of search results to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous `SearchFilesRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `SearchFilesRequest`, with the exception of `page_size`, must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:searchFiles", +"response": { +"$ref": "SearchFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"writeFile": { +"description": "Writes to a file (inside a Workspace).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/workspaces/{workspacesId}:writeFile", +"httpMethod": "POST", +"id": "dataform.projects.locations.repositories.workspaces.writeFile", +"parameterOrder": [ +"workspace" +], +"parameters": { +"workspace": { +"description": "Required. The workspace's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/workspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+workspace}:writeFile", +"request": { +"$ref": "WriteFileRequest" +}, +"response": { +"$ref": "WriteFileResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241203", +"rootUrl": "https://dataform.googleapis.com/", +"schemas": { +"Assertion": { +"description": "Represents an assertion upon a SQL query which is required return zero rows.", +"id": "Assertion", +"properties": { +"dependencyTargets": { +"description": "A list of actions that this action depends on.", +"items": { +"$ref": "Target" +}, +"type": "array" +}, +"disabled": { +"description": "Whether this action is disabled (i.e. should not be run).", +"type": "boolean" +}, +"parentAction": { +"$ref": "Target", +"description": "The parent action of this assertion. Only set if this assertion was automatically generated." +}, +"relationDescriptor": { +"$ref": "RelationDescriptor", +"description": "Descriptor for the assertion's automatically-generated view and its columns." +}, +"selectQuery": { +"description": "The SELECT query which must return zero rows in order for this assertion to succeed.", +"type": "string" +}, +"tags": { +"description": "Arbitrary, user-defined tags on this action.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BigQueryAction": { +"description": "Represents a workflow action that will run against BigQuery.", +"id": "BigQueryAction", +"properties": { +"jobId": { +"description": "Output only. The ID of the BigQuery job that executed the SQL in sql_script. Only set once the job has started to run.", +"readOnly": true, +"type": "string" +}, +"sqlScript": { +"description": "Output only. The generated BigQuery SQL script that will be executed.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CancelWorkflowInvocationRequest": { +"description": "`CancelWorkflowInvocation` request message.", +"id": "CancelWorkflowInvocationRequest", +"properties": {}, +"type": "object" +}, +"CodeCompilationConfig": { +"description": "Configures various aspects of Dataform code compilation.", +"id": "CodeCompilationConfig", +"properties": { +"assertionSchema": { +"description": "Optional. The default schema (BigQuery dataset ID) for assertions.", +"type": "string" +}, +"databaseSuffix": { +"description": "Optional. The suffix that should be appended to all database (Google Cloud project ID) names.", +"type": "string" +}, +"defaultDatabase": { +"description": "Optional. The default database (Google Cloud project ID).", +"type": "string" +}, +"defaultLocation": { +"description": "Optional. The default BigQuery location to use. Defaults to \"US\". See the BigQuery docs for a full list of locations: https://cloud.google.com/bigquery/docs/locations.", +"type": "string" +}, +"defaultNotebookRuntimeOptions": { +"$ref": "NotebookRuntimeOptions" +}, +"defaultSchema": { +"description": "Optional. The default schema (BigQuery dataset ID).", +"type": "string" +}, +"schemaSuffix": { +"description": "Optional. The suffix that should be appended to all schema (BigQuery dataset ID) names.", +"type": "string" +}, +"tablePrefix": { +"description": "Optional. The prefix that should be prepended to all table names.", +"type": "string" +}, +"vars": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined variables that are made available to project code during compilation.", +"type": "object" +} +}, +"type": "object" +}, +"ColumnDescriptor": { +"description": "Describes a column.", +"id": "ColumnDescriptor", +"properties": { +"bigqueryPolicyTags": { +"description": "A list of BigQuery policy tags that will be applied to the column.", +"items": { +"type": "string" +}, +"type": "array" +}, +"description": { +"description": "A textual description of the column.", +"type": "string" +}, +"path": { +"description": "The identifier for the column. Each entry in `path` represents one level of nesting.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CommitAuthor": { +"description": "Represents the author of a Git commit.", +"id": "CommitAuthor", +"properties": { +"emailAddress": { +"description": "Required. The commit author's email address.", +"type": "string" +}, +"name": { +"description": "Required. The commit author's name.", +"type": "string" +} +}, +"type": "object" +}, +"CommitLogEntry": { +"description": "Represents a single commit log.", +"id": "CommitLogEntry", +"properties": { +"author": { +"$ref": "CommitAuthor", +"description": "The commit author for this commit log entry." +}, +"commitMessage": { +"description": "The commit message for this commit log entry.", +"type": "string" +}, +"commitSha": { +"description": "The commit SHA for this commit log entry.", +"type": "string" +}, +"commitTime": { +"description": "Commit timestamp.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"CommitMetadata": { +"description": "Represents a Dataform Git commit.", +"id": "CommitMetadata", +"properties": { +"author": { +"$ref": "CommitAuthor", +"description": "Required. The commit's author." +}, +"commitMessage": { +"description": "Optional. The commit's message.", +"type": "string" +} +}, +"type": "object" +}, +"CommitRepositoryChangesRequest": { +"description": "`CommitRepositoryChanges` request message.", +"id": "CommitRepositoryChangesRequest", +"properties": { +"commitMetadata": { +"$ref": "CommitMetadata", +"description": "Required. The changes to commit to the repository." +}, +"fileOperations": { +"additionalProperties": { +"$ref": "FileOperation" +}, +"description": "A map to the path of the file to the operation. The path is the full file path including filename, from repository root.", +"type": "object" +}, +"requiredHeadCommitSha": { +"description": "Optional. The commit SHA which must be the repository's current HEAD before applying this commit; otherwise this request will fail. If unset, no validation on the current HEAD commit SHA is performed.", +"type": "string" +} +}, +"type": "object" +}, +"CommitRepositoryChangesResponse": { +"description": "`CommitRepositoryChanges` response message.", +"id": "CommitRepositoryChangesResponse", +"properties": { +"commitSha": { +"description": "The commit SHA of the current commit.", +"type": "string" +} +}, +"type": "object" +}, +"CommitWorkspaceChangesRequest": { +"description": "`CommitWorkspaceChanges` request message.", +"id": "CommitWorkspaceChangesRequest", +"properties": { +"author": { +"$ref": "CommitAuthor", +"description": "Required. The commit's author." +}, +"commitMessage": { +"description": "Optional. The commit's message.", +"type": "string" +}, +"paths": { +"description": "Optional. Full file paths to commit including filename, rooted at workspace root. If left empty, all files will be committed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CompilationError": { +"description": "An error encountered when attempting to compile a Dataform project.", +"id": "CompilationError", +"properties": { +"actionTarget": { +"$ref": "Target", +"description": "Output only. The identifier of the action where this error occurred, if available.", +"readOnly": true +}, +"message": { +"description": "Output only. The error's top level message.", +"readOnly": true, +"type": "string" +}, +"path": { +"description": "Output only. The path of the file where this error occurred, if available, relative to the project root.", +"readOnly": true, +"type": "string" +}, +"stack": { +"description": "Output only. The error's full stack trace.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CompilationResult": { +"description": "Represents the result of compiling a Dataform project.", +"id": "CompilationResult", +"properties": { +"codeCompilationConfig": { +"$ref": "CodeCompilationConfig", +"description": "Immutable. If set, fields of `code_compilation_config` override the default compilation settings that are specified in dataform.json." +}, +"compilationErrors": { +"description": "Output only. Errors encountered during project compilation.", +"items": { +"$ref": "CompilationError" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. The timestamp of when the compilation result was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataEncryptionState": { +"$ref": "DataEncryptionState", +"description": "Output only. Only set if the repository has a KMS Key.", +"readOnly": true +}, +"dataformCoreVersion": { +"description": "Output only. The version of `@dataform/core` that was used for compilation.", +"readOnly": true, +"type": "string" +}, +"gitCommitish": { +"description": "Immutable. Git commit/tag/branch name at which the repository should be compiled. Must exist in the remote repository. Examples: - a commit SHA: `12ade345` - a tag: `tag1` - a branch name: `branch1`", +"type": "string" +}, +"name": { +"description": "Output only. The compilation result's name.", +"readOnly": true, +"type": "string" +}, +"releaseConfig": { +"description": "Immutable. The name of the release config to compile. Must be in the format `projects/*/locations/*/repositories/*/releaseConfigs/*`.", +"type": "string" +}, +"resolvedGitCommitSha": { +"description": "Output only. The fully resolved Git commit SHA of the code that was compiled. Not set for compilation results whose source is a workspace.", +"readOnly": true, +"type": "string" +}, +"workspace": { +"description": "Immutable. The name of the workspace to compile. Must be in the format `projects/*/locations/*/repositories/*/workspaces/*`.", +"type": "string" +} +}, +"type": "object" +}, +"CompilationResultAction": { +"description": "Represents a single Dataform action in a compilation result.", +"id": "CompilationResultAction", +"properties": { +"assertion": { +"$ref": "Assertion", +"description": "The assertion executed by this action." +}, +"canonicalTarget": { +"$ref": "Target", +"description": "The action's identifier if the project had been compiled without any overrides configured. Unique within the compilation result." +}, +"declaration": { +"$ref": "Declaration", +"description": "The declaration declared by this action." +}, +"filePath": { +"description": "The full path including filename in which this action is located, relative to the workspace root.", +"type": "string" +}, +"notebook": { +"$ref": "Notebook", +"description": "The notebook executed by this action." +}, +"operations": { +"$ref": "Operations", +"description": "The database operations executed by this action." +}, +"relation": { +"$ref": "Relation", +"description": "The database relation created/updated by this action." +}, +"target": { +"$ref": "Target", +"description": "This action's identifier. Unique within the compilation result." +} +}, +"type": "object" +}, +"ComputeRepositoryAccessTokenStatusResponse": { +"description": "`ComputeRepositoryAccessTokenStatus` response message.", +"id": "ComputeRepositoryAccessTokenStatusResponse", +"properties": { +"tokenStatus": { +"description": "Indicates the status of the Git access token.", +"enum": [ +"TOKEN_STATUS_UNSPECIFIED", +"NOT_FOUND", +"INVALID", +"VALID" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The token could not be found in Secret Manager (or the Dataform Service Account did not have permission to access it).", +"The token could not be used to authenticate against the Git remote.", +"The token was used successfully to authenticate against the Git remote." +], +"type": "string" +} +}, +"type": "object" +}, +"Config": { +"description": "Config for all repositories in a given project and location.", +"id": "Config", +"properties": { +"defaultKmsKeyName": { +"description": "Optional. The default KMS key that is used if no encryption key is provided when a repository is created.", +"type": "string" +}, +"name": { +"description": "Identifier. The config name.", +"type": "string" +} +}, +"type": "object" +}, +"DataEncryptionState": { +"description": "Describes encryption state of a resource.", +"id": "DataEncryptionState", +"properties": { +"kmsKeyVersionName": { +"description": "The KMS key version name with which data of a resource is encrypted.", +"type": "string" +} +}, +"type": "object" +}, +"Declaration": { +"description": "Represents a relation which is not managed by Dataform but which may be referenced by Dataform actions.", +"id": "Declaration", +"properties": { +"relationDescriptor": { +"$ref": "RelationDescriptor", +"description": "Descriptor for the relation and its columns. Used as documentation only, i.e. values here will result in no changes to the relation's metadata." +} +}, +"type": "object" +}, +"DeleteFile": { +"description": "Represents the delete file operation.", +"id": "DeleteFile", +"properties": {}, +"type": "object" +}, +"DirectoryEntry": { +"description": "Represents a single entry in a directory.", +"id": "DirectoryEntry", +"properties": { +"directory": { +"description": "A child directory in the directory.", +"type": "string" +}, +"file": { +"description": "A file in the directory.", +"type": "string" +} +}, +"type": "object" +}, +"DirectorySearchResult": { +"description": "Client-facing representation of a directory entry in search results.", +"id": "DirectorySearchResult", +"properties": { +"path": { +"description": "File system path relative to the workspace root.", +"type": "string" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"FetchFileDiffResponse": { +"description": "`FetchFileDiff` response message.", +"id": "FetchFileDiffResponse", +"properties": { +"formattedDiff": { +"description": "The raw formatted Git diff for the file.", +"type": "string" +} +}, +"type": "object" +}, +"FetchFileGitStatusesResponse": { +"description": "`FetchFileGitStatuses` response message.", +"id": "FetchFileGitStatusesResponse", +"properties": { +"uncommittedFileChanges": { +"description": "A list of all files which have uncommitted Git changes. There will only be a single entry for any given file.", +"items": { +"$ref": "UncommittedFileChange" +}, +"type": "array" +} +}, +"type": "object" +}, +"FetchGitAheadBehindResponse": { +"description": "`FetchGitAheadBehind` response message.", +"id": "FetchGitAheadBehindResponse", +"properties": { +"commitsAhead": { +"description": "The number of commits in the remote branch that are not in the workspace.", +"format": "int32", +"type": "integer" +}, +"commitsBehind": { +"description": "The number of commits in the workspace that are not in the remote branch.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"FetchRemoteBranchesResponse": { +"description": "`FetchRemoteBranches` response message.", +"id": "FetchRemoteBranchesResponse", +"properties": { +"branches": { +"description": "The remote repository's branch names.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"FetchRepositoryHistoryResponse": { +"description": "`FetchRepositoryHistory` response message.", +"id": "FetchRepositoryHistoryResponse", +"properties": { +"commits": { +"description": "A list of commit logs, ordered by 'git log' default order.", +"items": { +"$ref": "CommitLogEntry" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"FileOperation": { +"description": "Represents a single file operation to the repository.", +"id": "FileOperation", +"properties": { +"deleteFile": { +"$ref": "DeleteFile", +"description": "Represents the delete operation." +}, +"writeFile": { +"$ref": "WriteFile", +"description": "Represents the write operation." +} +}, +"type": "object" +}, +"FileSearchResult": { +"description": "Client-facing representation of a file entry in search results.", +"id": "FileSearchResult", +"properties": { +"path": { +"description": "File system path relative to the workspace root.", +"type": "string" +} +}, +"type": "object" +}, +"GitRemoteSettings": { +"description": "Controls Git remote configuration for a repository.", +"id": "GitRemoteSettings", +"properties": { +"authenticationTokenSecretVersion": { +"description": "Optional. The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in the format `projects/*/secrets/*/versions/*`.", +"type": "string" +}, +"defaultBranch": { +"description": "Required. The Git remote's default branch name.", +"type": "string" +}, +"sshAuthenticationConfig": { +"$ref": "SshAuthenticationConfig", +"description": "Optional. Authentication fields for remote uris using SSH protocol." +}, +"tokenStatus": { +"deprecated": true, +"description": "Output only. Deprecated: The field does not contain any token status information. Instead use https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus", +"enum": [ +"TOKEN_STATUS_UNSPECIFIED", +"NOT_FOUND", +"INVALID", +"VALID" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The token could not be found in Secret Manager (or the Dataform Service Account did not have permission to access it).", +"The token could not be used to authenticate against the Git remote.", +"The token was used successfully to authenticate against the Git remote." +], +"readOnly": true, +"type": "string" +}, +"url": { +"description": "Required. The Git remote's URL.", +"type": "string" +} +}, +"type": "object" +}, +"IncrementalTableConfig": { +"description": "Contains settings for relations of type `INCREMENTAL_TABLE`.", +"id": "IncrementalTableConfig", +"properties": { +"incrementalPostOperations": { +"description": "SQL statements to be executed after inserting new rows into the relation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"incrementalPreOperations": { +"description": "SQL statements to be executed before inserting new rows into the relation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"incrementalSelectQuery": { +"description": "The SELECT query which returns rows which should be inserted into the relation if it already exists and is not being refreshed.", +"type": "string" +}, +"refreshDisabled": { +"description": "Whether this table should be protected from being refreshed.", +"type": "boolean" +}, +"uniqueKeyParts": { +"description": "A set of columns or SQL expressions used to define row uniqueness. If any duplicates are discovered (as defined by `unique_key_parts`), only the newly selected rows (as defined by `incremental_select_query`) will be included in the relation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"updatePartitionFilter": { +"description": "A SQL expression conditional used to limit the set of existing rows considered for a merge operation (see `unique_key_parts` for more information).", +"type": "string" +} +}, +"type": "object" +}, +"InstallNpmPackagesRequest": { +"description": "`InstallNpmPackages` request message.", +"id": "InstallNpmPackagesRequest", +"properties": {}, +"type": "object" +}, +"InstallNpmPackagesResponse": { +"description": "`InstallNpmPackages` response message.", +"id": "InstallNpmPackagesResponse", +"properties": {}, +"type": "object" +}, +"Interval": { +"description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", +"id": "Interval", +"properties": { +"endTime": { +"description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"InvocationConfig": { +"description": "Includes various configuration options for a workflow invocation. If both `included_targets` and `included_tags` are unset, all actions will be included.", +"id": "InvocationConfig", +"properties": { +"fullyRefreshIncrementalTablesEnabled": { +"description": "Optional. When set to true, any incremental tables will be fully refreshed.", +"type": "boolean" +}, +"includedTags": { +"description": "Optional. The set of tags to include.", +"items": { +"type": "string" +}, +"type": "array" +}, +"includedTargets": { +"description": "Optional. The set of action identifiers to include.", +"items": { +"$ref": "Target" +}, +"type": "array" +}, +"serviceAccount": { +"description": "Optional. The service account to run workflow invocations under.", +"type": "string" +}, +"transitiveDependenciesIncluded": { +"description": "Optional. When set to true, transitive dependencies of included actions will be executed.", +"type": "boolean" +}, +"transitiveDependentsIncluded": { +"description": "Optional. When set to true, transitive dependents of included actions will be executed.", +"type": "boolean" +} +}, +"type": "object" +}, +"ListCompilationResultsResponse": { +"description": "`ListCompilationResults` response message.", +"id": "ListCompilationResultsResponse", +"properties": { +"compilationResults": { +"description": "List of compilation results.", +"items": { +"$ref": "CompilationResult" +}, +"type": "array" +}, +"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" +}, +"unreachable": { +"description": "Locations which could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListReleaseConfigsResponse": { +"description": "`ListReleaseConfigs` response message.", +"id": "ListReleaseConfigsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"releaseConfigs": { +"description": "List of release configs.", +"items": { +"$ref": "ReleaseConfig" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations which could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRepositoriesResponse": { +"description": "`ListRepositories` response message.", +"id": "ListRepositoriesResponse", +"properties": { +"nextPageToken": { +"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"repositories": { +"description": "List of repositories.", +"items": { +"$ref": "Repository" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations which could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkflowConfigsResponse": { +"description": "`ListWorkflowConfigs` response message.", +"id": "ListWorkflowConfigsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations which could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workflowConfigs": { +"description": "List of workflow configs.", +"items": { +"$ref": "WorkflowConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkflowInvocationsResponse": { +"description": "`ListWorkflowInvocations` response message.", +"id": "ListWorkflowInvocationsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations which could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workflowInvocations": { +"description": "List of workflow invocations.", +"items": { +"$ref": "WorkflowInvocation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkspacesResponse": { +"description": "`ListWorkspaces` response message.", +"id": "ListWorkspacesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations which could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workspaces": { +"description": "List of workspaces.", +"items": { +"$ref": "Workspace" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"MakeDirectoryRequest": { +"description": "`MakeDirectory` request message.", +"id": "MakeDirectoryRequest", +"properties": { +"path": { +"description": "Required. The directory's full path including directory name, relative to the workspace root.", +"type": "string" +} +}, +"type": "object" +}, +"MakeDirectoryResponse": { +"description": "`MakeDirectory` response message.", +"id": "MakeDirectoryResponse", +"properties": {}, +"type": "object" +}, +"MoveDirectoryRequest": { +"description": "`MoveDirectory` request message.", +"id": "MoveDirectoryRequest", +"properties": { +"newPath": { +"description": "Required. The new path for the directory including directory name, rooted at workspace root.", +"type": "string" +}, +"path": { +"description": "Required. The directory's full path including directory name, relative to the workspace root.", +"type": "string" +} +}, +"type": "object" +}, +"MoveDirectoryResponse": { +"description": "`MoveDirectory` response message.", +"id": "MoveDirectoryResponse", +"properties": {}, +"type": "object" +}, +"MoveFileRequest": { +"description": "`MoveFile` request message.", +"id": "MoveFileRequest", +"properties": { +"newPath": { +"description": "Required. The file's new path including filename, relative to the workspace root.", +"type": "string" +}, +"path": { +"description": "Required. The file's full path including filename, relative to the workspace root.", +"type": "string" +} +}, +"type": "object" +}, +"MoveFileResponse": { +"description": "`MoveFile` response message.", +"id": "MoveFileResponse", +"properties": {}, +"type": "object" +}, +"Notebook": { +"id": "Notebook", +"properties": { +"contents": { +"description": "The contents of the notebook.", +"type": "string" +}, +"dependencyTargets": { +"description": "A list of actions that this action depends on.", +"items": { +"$ref": "Target" +}, +"type": "array" +}, +"disabled": { +"description": "Whether this action is disabled (i.e. should not be run).", +"type": "boolean" +}, +"tags": { +"description": "Arbitrary, user-defined tags on this action.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"NotebookAction": { +"description": "Represents a workflow action that will run against a Notebook runtime.", +"id": "NotebookAction", +"properties": { +"contents": { +"description": "Output only. The code contents of a Notebook to be run.", +"readOnly": true, +"type": "string" +}, +"jobId": { +"description": "Output only. The ID of the Vertex job that executed the notebook in contents and also the ID used for the outputs created in GCS buckets. Only set once the job has started to run.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NotebookRuntimeOptions": { +"id": "NotebookRuntimeOptions", +"properties": { +"gcsOutputBucket": { +"description": "Optional. The GCS location to upload the result to. Format: `gs://bucket-name`.", +"type": "string" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"cancelRequested": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Operations": { +"description": "Represents a list of arbitrary database operations.", +"id": "Operations", +"properties": { +"dependencyTargets": { +"description": "A list of actions that this action depends on.", +"items": { +"$ref": "Target" +}, +"type": "array" +}, +"disabled": { +"description": "Whether this action is disabled (i.e. should not be run).", +"type": "boolean" +}, +"hasOutput": { +"description": "Whether these operations produce an output relation.", +"type": "boolean" +}, +"queries": { +"description": "A list of arbitrary SQL statements that will be executed without alteration.", +"items": { +"type": "string" +}, +"type": "array" +}, +"relationDescriptor": { +"$ref": "RelationDescriptor", +"description": "Descriptor for any output relation and its columns. Only set if `has_output` is true." +}, +"tags": { +"description": "Arbitrary, user-defined tags on this action.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PullGitCommitsRequest": { +"description": "`PullGitCommits` request message.", +"id": "PullGitCommitsRequest", +"properties": { +"author": { +"$ref": "CommitAuthor", +"description": "Required. The author of any merge commit which may be created as a result of merging fetched Git commits into this workspace." +}, +"remoteBranch": { +"description": "Optional. The name of the branch in the Git remote from which to pull commits. If left unset, the repository's default branch name will be used.", +"type": "string" +} +}, +"type": "object" +}, +"PushGitCommitsRequest": { +"description": "`PushGitCommits` request message.", +"id": "PushGitCommitsRequest", +"properties": { +"remoteBranch": { +"description": "Optional. The name of the branch in the Git remote to which commits should be pushed. If left unset, the repository's default branch name will be used.", +"type": "string" +} +}, +"type": "object" +}, +"QueryCompilationResultActionsResponse": { +"description": "`QueryCompilationResultActions` response message.", +"id": "QueryCompilationResultActionsResponse", +"properties": { +"compilationResultActions": { +"description": "List of compilation result actions.", +"items": { +"$ref": "CompilationResultAction" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"QueryDirectoryContentsResponse": { +"description": "`QueryDirectoryContents` response message.", +"id": "QueryDirectoryContentsResponse", +"properties": { +"directoryEntries": { +"description": "List of entries in the directory.", +"items": { +"$ref": "DirectoryEntry" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"QueryRepositoryDirectoryContentsResponse": { +"description": "`QueryRepositoryDirectoryContents` response message.", +"id": "QueryRepositoryDirectoryContentsResponse", +"properties": { +"directoryEntries": { +"description": "List of entries in the directory.", +"items": { +"$ref": "DirectoryEntry" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"QueryWorkflowInvocationActionsResponse": { +"description": "`QueryWorkflowInvocationActions` response message.", +"id": "QueryWorkflowInvocationActionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"workflowInvocationActions": { +"description": "List of workflow invocation actions.", +"items": { +"$ref": "WorkflowInvocationAction" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReadFileResponse": { +"description": "`ReadFile` response message.", +"id": "ReadFileResponse", +"properties": { +"fileContents": { +"description": "The file's contents.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ReadRepositoryFileResponse": { +"description": "`ReadRepositoryFile` response message.", +"id": "ReadRepositoryFileResponse", +"properties": { +"contents": { +"description": "The file's contents.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"Relation": { +"description": "Represents a database relation.", +"id": "Relation", +"properties": { +"additionalOptions": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional options that will be provided as key/value pairs into the options clause of a create table/view statement. See https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language for more information on which options are supported.", +"type": "object" +}, +"clusterExpressions": { +"description": "A list of columns or SQL expressions used to cluster the table.", +"items": { +"type": "string" +}, +"type": "array" +}, +"dependencyTargets": { +"description": "A list of actions that this action depends on.", +"items": { +"$ref": "Target" +}, +"type": "array" +}, +"disabled": { +"description": "Whether this action is disabled (i.e. should not be run).", +"type": "boolean" +}, +"incrementalTableConfig": { +"$ref": "IncrementalTableConfig", +"description": "Configures `INCREMENTAL_TABLE` settings for this relation. Only set if `relation_type` is `INCREMENTAL_TABLE`." +}, +"partitionExpirationDays": { +"description": "Sets the partition expiration in days.", +"format": "int32", +"type": "integer" +}, +"partitionExpression": { +"description": "The SQL expression used to partition the relation.", +"type": "string" +}, +"postOperations": { +"description": "SQL statements to be executed after creating the relation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"preOperations": { +"description": "SQL statements to be executed before creating the relation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"relationDescriptor": { +"$ref": "RelationDescriptor", +"description": "Descriptor for the relation and its columns." +}, +"relationType": { +"description": "The type of this relation.", +"enum": [ +"RELATION_TYPE_UNSPECIFIED", +"TABLE", +"VIEW", +"INCREMENTAL_TABLE", +"MATERIALIZED_VIEW" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The relation is a table.", +"The relation is a view.", +"The relation is an incrementalized table.", +"The relation is a materialized view." +], +"type": "string" +}, +"requirePartitionFilter": { +"description": "Specifies whether queries on this table must include a predicate filter that filters on the partitioning column.", +"type": "boolean" +}, +"selectQuery": { +"description": "The SELECT query which returns rows which this relation should contain.", +"type": "string" +}, +"tags": { +"description": "Arbitrary, user-defined tags on this action.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RelationDescriptor": { +"description": "Describes a relation and its columns.", +"id": "RelationDescriptor", +"properties": { +"bigqueryLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "A set of BigQuery labels that should be applied to the relation.", +"type": "object" +}, +"columns": { +"description": "A list of descriptions of columns within the relation.", +"items": { +"$ref": "ColumnDescriptor" +}, +"type": "array" +}, +"description": { +"description": "A text description of the relation.", +"type": "string" +} +}, +"type": "object" +}, +"ReleaseConfig": { +"description": "Represents a Dataform release configuration.", +"id": "ReleaseConfig", +"properties": { +"codeCompilationConfig": { +"$ref": "CodeCompilationConfig", +"description": "Optional. If set, fields of `code_compilation_config` override the default compilation settings that are specified in dataform.json." +}, +"cronSchedule": { +"description": "Optional. Optional schedule (in cron format) for automatic creation of compilation results.", +"type": "string" +}, +"disabled": { +"description": "Optional. Disables automatic creation of compilation results.", +"type": "boolean" +}, +"gitCommitish": { +"description": "Required. Git commit/tag/branch name at which the repository should be compiled. Must exist in the remote repository. Examples: - a commit SHA: `12ade345` - a tag: `tag1` - a branch name: `branch1`", +"type": "string" +}, +"name": { +"description": "Identifier. The release config's name.", +"type": "string" +}, +"recentScheduledReleaseRecords": { +"description": "Output only. Records of the 10 most recent scheduled release attempts, ordered in descending order of `release_time`. Updated whenever automatic creation of a compilation result is triggered by cron_schedule.", +"items": { +"$ref": "ScheduledReleaseRecord" +}, +"readOnly": true, +"type": "array" +}, +"releaseCompilationResult": { +"description": "Optional. The name of the currently released compilation result for this release config. This value is updated when a compilation result is automatically created from this release config (using cron_schedule), or when this resource is updated by API call (perhaps to roll back to an earlier release). The compilation result must have been created using this release config. Must be in the format `projects/*/locations/*/repositories/*/compilationResults/*`.", +"type": "string" +}, +"timeZone": { +"description": "Optional. Specifies the time zone to be used when interpreting cron_schedule. Must be a time zone name from the time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). If left unspecified, the default is UTC.", +"type": "string" +} +}, +"type": "object" +}, +"RemoveDirectoryRequest": { +"description": "`RemoveDirectory` request message.", +"id": "RemoveDirectoryRequest", +"properties": { +"path": { +"description": "Required. The directory's full path including directory name, relative to the workspace root.", +"type": "string" +} +}, +"type": "object" +}, +"RemoveFileRequest": { +"description": "`RemoveFile` request message.", +"id": "RemoveFileRequest", +"properties": { +"path": { +"description": "Required. The file's full path including filename, relative to the workspace root.", +"type": "string" +} +}, +"type": "object" +}, +"Repository": { +"description": "Represents a Dataform Git repository.", +"id": "Repository", +"properties": { +"createTime": { +"description": "Output only. The timestamp of when the repository was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataEncryptionState": { +"$ref": "DataEncryptionState", +"description": "Output only. A data encryption state of a Git repository if this Repository is protected by a KMS key.", +"readOnly": true +}, +"displayName": { +"description": "Optional. The repository's user-friendly name.", +"type": "string" +}, +"gitRemoteSettings": { +"$ref": "GitRemoteSettings", +"description": "Optional. If set, configures this repository to be linked to a Git remote." +}, +"kmsKeyName": { +"description": "Optional. The reference to a KMS encryption key. If provided, it will be used to encrypt user data in the repository and all child resources. It is not possible to add or update the encryption key after the repository is created. Example: `projects/{kms_project}/locations/{location}/keyRings/{key_location}/cryptoKeys/{key}`", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Repository user labels.", +"type": "object" +}, +"name": { +"description": "Identifier. The repository's name.", +"type": "string" +}, +"npmrcEnvironmentVariablesSecretVersion": { +"description": "Optional. The name of the Secret Manager secret version to be used to interpolate variables into the .npmrc file for package installation operations. Must be in the format `projects/*/secrets/*/versions/*`. The file itself must be in a JSON format.", +"type": "string" +}, +"serviceAccount": { +"description": "Optional. The service account to run workflow invocations under.", +"type": "string" +}, +"setAuthenticatedUserAdmin": { +"description": "Optional. Input only. If set to true, the authenticated user will be granted the roles/dataform.admin role on the created repository. To modify access to the created repository later apply setIamPolicy from https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories", +"type": "boolean" +}, +"workspaceCompilationOverrides": { +"$ref": "WorkspaceCompilationOverrides", +"description": "Optional. If set, fields of `workspace_compilation_overrides` override the default compilation settings that are specified in dataform.json when creating workspace-scoped compilation results. See documentation for `WorkspaceCompilationOverrides` for more information." +} +}, +"type": "object" +}, +"ResetWorkspaceChangesRequest": { +"description": "`ResetWorkspaceChanges` request message.", +"id": "ResetWorkspaceChangesRequest", +"properties": { +"clean": { +"description": "Optional. If set to true, untracked files will be deleted.", +"type": "boolean" +}, +"paths": { +"description": "Optional. Full file paths to reset back to their committed state including filename, rooted at workspace root. If left empty, all files will be reset.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ScheduledExecutionRecord": { +"description": "A record of an attempt to create a workflow invocation for this workflow config.", +"id": "ScheduledExecutionRecord", +"properties": { +"errorStatus": { +"$ref": "Status", +"description": "The error status encountered upon this attempt to create the workflow invocation, if the attempt was unsuccessful." +}, +"executionTime": { +"description": "The timestamp of this execution attempt.", +"format": "google-datetime", +"type": "string" +}, +"workflowInvocation": { +"description": "The name of the created workflow invocation, if one was successfully created. Must be in the format `projects/*/locations/*/repositories/*/workflowInvocations/*`.", +"type": "string" +} +}, +"type": "object" +}, +"ScheduledReleaseRecord": { +"description": "A record of an attempt to create a compilation result for this release config.", +"id": "ScheduledReleaseRecord", +"properties": { +"compilationResult": { +"description": "The name of the created compilation result, if one was successfully created. Must be in the format `projects/*/locations/*/repositories/*/compilationResults/*`.", +"type": "string" +}, +"errorStatus": { +"$ref": "Status", +"description": "The error status encountered upon this attempt to create the compilation result, if the attempt was unsuccessful." +}, +"releaseTime": { +"description": "The timestamp of this release attempt.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"SearchFilesResponse": { +"description": "Client-facing representation of a file search response.", +"id": "SearchFilesResponse", +"properties": { +"nextPageToken": { +"description": "Optional. 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" +}, +"searchResults": { +"description": "List of matched results.", +"items": { +"$ref": "SearchResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchResult": { +"description": "Client-facing representation of a search result entry.", +"id": "SearchResult", +"properties": { +"directory": { +"$ref": "DirectorySearchResult", +"description": "Details when search result is a directory." +}, +"file": { +"$ref": "FileSearchResult", +"description": "Details when search result is a file." +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +} +}, +"type": "object" +}, +"SshAuthenticationConfig": { +"description": "Configures fields for performing SSH authentication.", +"id": "SshAuthenticationConfig", +"properties": { +"hostPublicKey": { +"description": "Required. Content of a public SSH key to verify an identity of a remote Git host.", +"type": "string" +}, +"userPrivateKeySecretVersion": { +"description": "Required. The name of the Secret Manager secret version to use as a ssh private key for Git operations. Must be in the format `projects/*/secrets/*/versions/*`.", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Target": { +"description": "Represents an action identifier. If the action writes output, the output will be written to the referenced database object.", +"id": "Target", +"properties": { +"database": { +"description": "The action's database (Google Cloud project ID) .", +"type": "string" +}, +"name": { +"description": "The action's name, within `database` and `schema`.", +"type": "string" +}, +"schema": { +"description": "The action's schema (BigQuery dataset ID), within `database`.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UncommittedFileChange": { +"description": "Represents the Git state of a file with uncommitted changes.", +"id": "UncommittedFileChange", +"properties": { +"path": { +"description": "The file's full path including filename, relative to the workspace root.", +"type": "string" +}, +"state": { +"description": "Indicates the status of the file.", +"enum": [ +"STATE_UNSPECIFIED", +"ADDED", +"DELETED", +"MODIFIED", +"HAS_CONFLICTS" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The file has been newly added.", +"The file has been deleted.", +"The file has been modified.", +"The file contains merge conflicts." +], +"type": "string" +} +}, +"type": "object" +}, +"WorkflowConfig": { +"description": "Represents a Dataform workflow configuration.", +"id": "WorkflowConfig", +"properties": { +"createTime": { +"description": "Output only. The timestamp of when the WorkflowConfig was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"cronSchedule": { +"description": "Optional. Optional schedule (in cron format) for automatic execution of this workflow config.", +"type": "string" +}, +"invocationConfig": { +"$ref": "InvocationConfig", +"description": "Optional. If left unset, a default InvocationConfig will be used." +}, +"name": { +"description": "Identifier. The workflow config's name.", +"type": "string" +}, +"recentScheduledExecutionRecords": { +"description": "Output only. Records of the 10 most recent scheduled execution attempts, ordered in descending order of `execution_time`. Updated whenever automatic creation of a workflow invocation is triggered by cron_schedule.", +"items": { +"$ref": "ScheduledExecutionRecord" +}, +"readOnly": true, +"type": "array" +}, +"releaseConfig": { +"description": "Required. The name of the release config whose release_compilation_result should be executed. Must be in the format `projects/*/locations/*/repositories/*/releaseConfigs/*`.", +"type": "string" +}, +"timeZone": { +"description": "Optional. Specifies the time zone to be used when interpreting cron_schedule. Must be a time zone name from the time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). If left unspecified, the default is UTC.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp of when the WorkflowConfig was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WorkflowInvocation": { +"description": "Represents a single invocation of a compilation result.", +"id": "WorkflowInvocation", +"properties": { +"compilationResult": { +"description": "Immutable. The name of the compilation result to use for this invocation. Must be in the format `projects/*/locations/*/repositories/*/compilationResults/*`.", +"type": "string" +}, +"dataEncryptionState": { +"$ref": "DataEncryptionState", +"description": "Output only. Only set if the repository has a KMS Key.", +"readOnly": true +}, +"invocationConfig": { +"$ref": "InvocationConfig", +"description": "Immutable. If left unset, a default InvocationConfig will be used." +}, +"invocationTiming": { +"$ref": "Interval", +"description": "Output only. This workflow invocation's timing details.", +"readOnly": true +}, +"name": { +"description": "Output only. The workflow invocation's name.", +"readOnly": true, +"type": "string" +}, +"resolvedCompilationResult": { +"description": "Output only. The resolved compilation result that was used to create this invocation. Will be in the format `projects/*/locations/*/repositories/*/compilationResults/*`.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. This workflow invocation's current state.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"SUCCEEDED", +"CANCELLED", +"FAILED", +"CANCELING" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The workflow invocation is currently running.", +"The workflow invocation succeeded. A terminal state.", +"The workflow invocation was cancelled. A terminal state.", +"The workflow invocation failed. A terminal state.", +"The workflow invocation is being cancelled, but some actions are still running." +], +"readOnly": true, +"type": "string" +}, +"workflowConfig": { +"description": "Immutable. The name of the workflow config to invoke. Must be in the format `projects/*/locations/*/repositories/*/workflowConfigs/*`.", +"type": "string" +} +}, +"type": "object" +}, +"WorkflowInvocationAction": { +"description": "Represents a single action in a workflow invocation.", +"id": "WorkflowInvocationAction", +"properties": { +"bigqueryAction": { +"$ref": "BigQueryAction", +"description": "Output only. The workflow action's bigquery action details.", +"readOnly": true +}, +"canonicalTarget": { +"$ref": "Target", +"description": "Output only. The action's identifier if the project had been compiled without any overrides configured. Unique within the compilation result.", +"readOnly": true +}, +"failureReason": { +"description": "Output only. If and only if action's state is FAILED a failure reason is set.", +"readOnly": true, +"type": "string" +}, +"invocationTiming": { +"$ref": "Interval", +"description": "Output only. This action's timing details. `start_time` will be set if the action is in [RUNNING, SUCCEEDED, CANCELLED, FAILED] state. `end_time` will be set if the action is in [SUCCEEDED, CANCELLED, FAILED] state.", +"readOnly": true +}, +"notebookAction": { +"$ref": "NotebookAction", +"description": "Output only. The workflow action's notebook action details.", +"readOnly": true +}, +"state": { +"description": "Output only. This action's current state.", +"enum": [ +"PENDING", +"RUNNING", +"SKIPPED", +"DISABLED", +"SUCCEEDED", +"CANCELLED", +"FAILED" +], +"enumDescriptions": [ +"The action has not yet been considered for invocation.", +"The action is currently running.", +"Execution of the action was skipped because upstream dependencies did not all complete successfully. A terminal state.", +"Execution of the action was disabled as per the configuration of the corresponding compilation result action. A terminal state.", +"The action succeeded. A terminal state.", +"The action was cancelled. A terminal state.", +"The action failed. A terminal state." +], +"readOnly": true, +"type": "string" +}, +"target": { +"$ref": "Target", +"description": "Output only. This action's identifier. Unique within the workflow invocation.", +"readOnly": true +} +}, +"type": "object" +}, +"Workspace": { +"description": "Represents a Dataform Git workspace.", +"id": "Workspace", +"properties": { +"createTime": { +"description": "Output only. The timestamp of when the workspace was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataEncryptionState": { +"$ref": "DataEncryptionState", +"description": "Output only. A data encryption state of a Git repository if this Workspace is protected by a KMS key.", +"readOnly": true +}, +"name": { +"description": "Identifier. The workspace's name.", +"type": "string" +} +}, +"type": "object" +}, +"WorkspaceCompilationOverrides": { +"description": "Configures workspace compilation overrides for a repository. Primarily used by the UI (`console.cloud.google.com`). `schema_suffix` and `table_prefix` can have a special expression - `${workspaceName}`, which refers to the workspace name from which the compilation results will be created. API callers are expected to resolve the expression in these overrides and provide them explicitly in `code_compilation_config` (https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories.compilationResults#codecompilationconfig) when creating workspace-scoped compilation results.", +"id": "WorkspaceCompilationOverrides", +"properties": { +"defaultDatabase": { +"description": "Optional. The default database (Google Cloud project ID).", +"type": "string" +}, +"schemaSuffix": { +"description": "Optional. The suffix that should be appended to all schema (BigQuery dataset ID) names.", +"type": "string" +}, +"tablePrefix": { +"description": "Optional. The prefix that should be prepended to all table names.", +"type": "string" +} +}, +"type": "object" +}, +"WriteFile": { +"description": "Represents the write file operation (for files added or modified).", +"id": "WriteFile", +"properties": { +"contents": { +"description": "The file's contents.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"WriteFileRequest": { +"description": "`WriteFile` request message.", +"id": "WriteFileRequest", +"properties": { +"contents": { +"description": "Required. The file's contents.", +"format": "byte", +"type": "string" +}, +"path": { +"description": "Required. The file.", +"type": "string" +} +}, +"type": "object" +}, +"WriteFileResponse": { +"description": "`WriteFile` response message.", +"id": "WriteFileResponse", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Dataform API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datafusion.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datafusion.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..8dc75c1b663fcbb977aa6f520dcd3b4fd60d8b55 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datafusion.v1beta1.json @@ -0,0 +1,1909 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://datafusion.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Data Fusion", +"description": "Cloud Data Fusion is a fully-managed, cloud native, enterprise data integration service for quickly building and managing data pipelines. It provides a graphical interface to increase time efficiency and reduce complexity, and allows business users, developers, and data scientists to easily and reliably build scalable data integration solutions to cleanse, prepare, blend, transfer and transform data without having to wrestle with infrastructure.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/data-fusion/docs", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "datafusion:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://datafusion.mtls.googleapis.com/", +"name": "datafusion", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "datafusion.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "datafusion.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeIamPolicy": { +"description": "Remove IAM policy that is currently set on the given resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/{locationsId1}:removeIamPolicy", +"httpMethod": "POST", +"id": "datafusion.projects.locations.removeIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "Required. The resource on which IAM policy to be removed is attached to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:removeIamPolicy", +"request": { +"$ref": "RemoveIamPolicyRequest" +}, +"response": { +"$ref": "RemoveIamPolicyResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"instances": { +"methods": { +"create": { +"description": "Creates a new Data Fusion instance in the specified project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. The name of the instance to create. Instance name can only contain lowercase alphanumeric characters and hyphens. It must start with a letter and must not end with a hyphen. It can have a maximum of 30 characters.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The instance's project and location in the format projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/instances", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Data Fusion instance.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "datafusion.projects.locations.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The instance resource name in the format projects/{project}/locations/{location}/instances/{instance}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Data Fusion instance.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The instance resource name in the format projects/{project}/locations/{location}/instances/{instance}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:getIamPolicy", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Data Fusion instances in the specified project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results. Supported values are \"name\", \"name desc\", or \"\" (unsorted).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location for which to retrieve instance information in the format projects/{project}/locations/{location}. If the location is specified as '-' (wildcard), then all regions available to the project are queried, and the results are aggregated.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/instances", +"response": { +"$ref": "ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a single Data Fusion instance.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "datafusion.projects.locations.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The name of this instance is in the form of projects/{project}/locations/{location}/instances/{instance}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Field mask is used to specify the fields that the update will overwrite in an instance resource. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask, all the supported fields (labels and options currently) will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restart": { +"description": "Restart a single Data Fusion instance. At the end of an operation instance is fully restarted.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:restart", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.restart", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Data Fusion instance which need to be restarted in the form of projects/{project}/locations/{location}/instances/{instance}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:restart", +"request": { +"$ref": "RestartInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:setIamPolicy", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:testIamPermissions", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upgrade": { +"description": "Upgrade a single Data Fusion instance. At the end of an operation instance is fully upgraded.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:upgrade", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.upgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Data Fusion instance which need to be upgraded in the form of projects/{project}/locations/{location}/instances/{instance} Instance will be upgraded with the latest stable version of the Data Fusion.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:upgrade", +"request": { +"$ref": "UpgradeInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"dnsPeerings": { +"methods": { +"create": { +"description": "Creates DNS peering on the given resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.dnsPeerings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dnsPeeringId": { +"description": "Required. The name of the peering to create.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource on which DNS peering will be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/dnsPeerings", +"request": { +"$ref": "DnsPeering" +}, +"response": { +"$ref": "DnsPeering" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes DNS peering on the given resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings/{dnsPeeringsId}", +"httpMethod": "DELETE", +"id": "datafusion.projects.locations.instances.dnsPeerings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DNS peering zone to delete. Format: projects/{project}/locations/{location}/instances/{instance}/dnsPeerings/{dns_peering}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/dnsPeerings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DNS peerings for a given resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.dnsPeerings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of dns peerings to return. The service may return fewer than this value. If unspecified, at most 50 dns peerings will be returned. The maximum value is 200; values above 200 will be coerced to 200.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListDnsPeerings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDnsPeerings` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of dns peerings. Format: projects/{project}/locations/{location}/instances/{instance}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/dnsPeerings", +"response": { +"$ref": "ListDnsPeeringsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"namespaces": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/namespaces/{namespacesId}:getIamPolicy", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.namespaces.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List namespaces in a given instance", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/namespaces", +"httpMethod": "GET", +"id": "datafusion.projects.locations.instances.namespaces.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The instance to list its namespaces.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "By default, only basic information about a namespace is returned (e.g. name). When `NAMESPACE_VIEW_FULL` is specified, additional information associated with a namespace gets returned (e.g. IAM policy set on the namespace)", +"enum": [ +"NAMESPACE_VIEW_UNSPECIFIED", +"NAMESPACE_VIEW_BASIC", +"NAMESPACE_VIEW_FULL" +], +"enumDescriptions": [ +"Default/unset value, which will use BASIC view.", +"Show the most basic metadata of a namespace", +"Returns all metadata of a namespace" +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/namespaces", +"response": { +"$ref": "ListNamespacesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/namespaces/{namespacesId}:setIamPolicy", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.namespaces.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/namespaces/{namespacesId}:testIamPermissions", +"httpMethod": "POST", +"id": "datafusion.projects.locations.instances.namespaces.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "datafusion.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "datafusion.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "datafusion.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "datafusion.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"versions": { +"methods": { +"list": { +"description": "Lists possible versions for Data Fusion instances in the specified project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/versions", +"httpMethod": "GET", +"id": "datafusion.projects.locations.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"latestPatchOnly": { +"description": "Whether or not to return the latest patch of every available minor version. If true, only the latest patch will be returned. Ex. if allowed versions is [6.1.1, 6.1.2, 6.2.0] then response will be [6.1.2, 6.2.0]", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location for which to retrieve instance information in the format projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions", +"response": { +"$ref": "ListAvailableVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://datafusion.googleapis.com/", +"schemas": { +"Accelerator": { +"description": "Identifies Cloud Data Fusion accelerators for an instance.", +"id": "Accelerator", +"properties": { +"acceleratorType": { +"description": "Optional. The type of an accelator for a Cloud Data Fusion instance.", +"enum": [ +"ACCELERATOR_TYPE_UNSPECIFIED", +"CDC", +"HEALTHCARE", +"CCAI_INSIGHTS", +"CLOUDSEARCH" +], +"enumDescriptions": [ +"Default value, if unspecified.", +"Change Data Capture accelerator for Cloud Data Fusion.", +"Reserved for internal use.", +"Contact Center AI Insights This accelerator is used to enable import and export pipelines custom built to streamline CCAI Insights processing.", +"Reserved for internal use." +], +"type": "string" +}, +"state": { +"description": "Output only. The state of the accelerator.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"UNKNOWN" +], +"enumDescriptions": [ +"Default value, do not use.", +"Indicates that the accelerator is enabled and available to use.", +"Indicates that the accelerator is disabled and not available to use.", +"Indicates that accelerator state is currently unknown. Requests for enable, disable could be retried while in this state." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CryptoKeyConfig": { +"description": "The crypto key configuration. This field is used by the Customer-managed encryption keys (CMEK) feature.", +"id": "CryptoKeyConfig", +"properties": { +"keyReference": { +"description": "The name of the key which is used to encrypt/decrypt customer data. For key in Cloud KMS, the key should be in the format of `projects/*/locations/*/keyRings/*/cryptoKeys/*`.", +"type": "string" +} +}, +"type": "object" +}, +"DnsPeering": { +"description": "DNS peering configuration. These configurations are used to create DNS peering with the customer Cloud DNS.", +"id": "DnsPeering", +"properties": { +"description": { +"description": "Optional. Optional description of the dns zone.", +"type": "string" +}, +"domain": { +"description": "Required. The dns name suffix of the zone.", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the dns peering zone. Format: projects/{project}/locations/{location}/instances/{instance}/dnsPeerings/{dns_peering}", +"type": "string" +}, +"targetNetwork": { +"description": "Optional. Optional target network to which dns peering should happen.", +"type": "string" +}, +"targetProject": { +"description": "Optional. Optional target project to which dns peering should happen.", +"type": "string" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EventPublishConfig": { +"description": "Confirguration of PubSubEventWriter.", +"id": "EventPublishConfig", +"properties": { +"enabled": { +"description": "Required. Option to enable Event Publishing.", +"type": "boolean" +}, +"topic": { +"description": "Required. The resource name of the Pub/Sub topic. Format: projects/{project_id}/topics/{topic_id}", +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"IAMPolicy": { +"description": "IAMPolicy encapsulates the IAM policy name, definition and status of policy fetching.", +"id": "IAMPolicy", +"properties": { +"policy": { +"$ref": "Policy", +"description": "Policy definition if IAM policy fetching is successful, otherwise empty." +}, +"status": { +"$ref": "Status", +"description": "Status of iam policy fetching." +} +}, +"type": "object" +}, +"Instance": { +"description": "Represents a Data Fusion instance.", +"id": "Instance", +"properties": { +"accelerators": { +"description": "Output only. List of accelerators enabled for this CDF instance.", +"items": { +"$ref": "Accelerator" +}, +"readOnly": true, +"type": "array" +}, +"apiEndpoint": { +"description": "Output only. Endpoint on which the REST APIs is accessible.", +"readOnly": true, +"type": "string" +}, +"availableVersion": { +"description": "Output only. Available versions that the instance can be upgraded to using UpdateInstanceRequest.", +"items": { +"$ref": "Version" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. The time the instance was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"cryptoKeyConfig": { +"$ref": "CryptoKeyConfig", +"description": "The crypto key configuration. This field is used by the Customer-Managed Encryption Keys (CMEK) feature." +}, +"dataplexDataLineageIntegrationEnabled": { +"description": "Optional. Option to enable the Dataplex Lineage Integration feature.", +"type": "boolean" +}, +"dataprocServiceAccount": { +"description": "User-managed service account to set on Dataproc when Cloud Data Fusion creates Dataproc to run data processing pipelines. This allows users to have fine-grained access control on Dataproc's accesses to cloud resources.", +"type": "string" +}, +"description": { +"description": "A description of this instance.", +"type": "string" +}, +"disabledReason": { +"description": "Output only. If the instance state is DISABLED, the reason for disabling the instance.", +"items": { +"enum": [ +"DISABLED_REASON_UNSPECIFIED", +"KMS_KEY_ISSUE" +], +"enumDescriptions": [ +"This is an unknown reason for disabling.", +"The KMS key used by the instance is either revoked or denied access to" +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"displayName": { +"description": "Display name for an instance.", +"type": "string" +}, +"enableRbac": { +"description": "Option to enable granular role-based access control.", +"type": "boolean" +}, +"enableStackdriverLogging": { +"description": "Option to enable Stackdriver Logging.", +"type": "boolean" +}, +"enableStackdriverMonitoring": { +"description": "Option to enable Stackdriver Monitoring.", +"type": "boolean" +}, +"enableZoneSeparation": { +"description": "Option to enable zone separation.", +"type": "boolean" +}, +"eventPublishConfig": { +"$ref": "EventPublishConfig", +"description": "Option to enable and pass metadata for event publishing." +}, +"gcsBucket": { +"description": "Output only. Cloud Storage bucket generated by Data Fusion in the customer project.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The resource labels for instance to use to annotate any related underlying resources such as Compute Engine VMs. The character '=' is not allowed to be used within the labels.", +"type": "object" +}, +"maintenancePolicy": { +"$ref": "MaintenancePolicy", +"description": "Optional. Configure the maintenance policy for this instance." +}, +"name": { +"description": "Output only. The name of this instance is in the form of projects/{project}/locations/{location}/instances/{instance}.", +"readOnly": true, +"type": "string" +}, +"networkConfig": { +"$ref": "NetworkConfig", +"description": "Network configuration options. These are required when a private Data Fusion instance is to be created." +}, +"options": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of additional options used to configure the behavior of Data Fusion instance.", +"type": "object" +}, +"p4ServiceAccount": { +"description": "Output only. Service agent for the customer project.", +"readOnly": true, +"type": "string" +}, +"patchRevision": { +"description": "Optional. Current patch revision of the Data Fusion.", +"type": "string" +}, +"privateInstance": { +"description": "Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.", +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"serviceAccount": { +"deprecated": true, +"description": "Output only. Deprecated. Use tenant_project_id instead to extract the tenant project ID.", +"readOnly": true, +"type": "string" +}, +"serviceEndpoint": { +"description": "Output only. Endpoint on which the Data Fusion UI is accessible.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of this Data Fusion instance.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"RUNNING", +"FAILED", +"DELETING", +"UPGRADING", +"RESTARTING", +"UPDATING", +"AUTO_UPDATING", +"AUTO_UPGRADING", +"DISABLED" +], +"enumDescriptions": [ +"Instance does not have a state yet", +"Instance is being created", +"Instance is running and ready for requests", +"Instance creation failed", +"Instance is being deleted", +"Instance is being upgraded", +"Instance is being restarted", +"Instance is being updated on customer request", +"Instance is being auto-updated", +"Instance is being auto-upgraded", +"Instance is disabled" +], +"readOnly": true, +"type": "string" +}, +"stateMessage": { +"description": "Output only. Additional information about the current state of this Data Fusion instance if available.", +"readOnly": true, +"type": "string" +}, +"tenantProjectId": { +"description": "Output only. The name of the tenant project.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. Instance type.", +"enum": [ +"TYPE_UNSPECIFIED", +"BASIC", +"ENTERPRISE", +"DEVELOPER" +], +"enumDescriptions": [ +"No type specified. The instance creation will fail.", +"Basic Data Fusion instance. In Basic type, the user will be able to create data pipelines using point and click UI. However, there are certain limitations, such as fewer number of concurrent pipelines, no support for streaming pipelines, etc.", +"Enterprise Data Fusion instance. In Enterprise type, the user will have all features available, such as support for streaming pipelines, unlimited number of concurrent pipelines, etc.", +"Developer Data Fusion instance. In Developer type, the user will have all features available but with restrictive capabilities. This is to help enterprises design and develop their data ingestion and integration pipelines at low cost." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the instance was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"version": { +"description": "Current version of Data Fusion.", +"type": "string" +}, +"workforceIdentityServiceEndpoint": { +"description": "Output only. Endpoint on which the Data Fusion UI is accessible to third-party users.", +"readOnly": true, +"type": "string" +}, +"zone": { +"description": "Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.", +"type": "string" +} +}, +"type": "object" +}, +"ListAvailableVersionsResponse": { +"description": "Response message for the list available versions request.", +"id": "ListAvailableVersionsResponse", +"properties": { +"availableVersions": { +"deprecated": true, +"description": "Represents a list of versions that are supported. Deprecated: Use versions field instead.", +"items": { +"$ref": "Version" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results or empty if there are no more results in the list.", +"type": "string" +}, +"versions": { +"description": "Represents a list of all versions.", +"items": { +"$ref": "Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListDnsPeeringsResponse": { +"description": "Response message for list DNS peerings.", +"id": "ListDnsPeeringsResponse", +"properties": { +"dnsPeerings": { +"description": "List of dns peering.", +"items": { +"$ref": "DnsPeering" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListInstancesResponse": { +"description": "Response message for the list instance request.", +"id": "ListInstancesResponse", +"properties": { +"instances": { +"description": "Represents a list of Data Fusion instances.", +"items": { +"$ref": "Instance" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListNamespacesResponse": { +"description": "List namespaces response.", +"id": "ListNamespacesResponse", +"properties": { +"namespaces": { +"description": "List of namespaces", +"items": { +"$ref": "Namespace" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"MaintenancePolicy": { +"description": "Maintenance policy of the instance.", +"id": "MaintenancePolicy", +"properties": { +"maintenanceExclusionWindow": { +"$ref": "TimeWindow", +"description": "Optional. The maintenance exclusion window of the instance." +}, +"maintenanceWindow": { +"$ref": "MaintenanceWindow", +"description": "Optional. The maintenance window of the instance." +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "Maintenance window of the instance.", +"id": "MaintenanceWindow", +"properties": { +"recurringTimeWindow": { +"$ref": "RecurringTimeWindow", +"description": "Required. The recurring time window of the maintenance window." +} +}, +"type": "object" +}, +"Namespace": { +"description": "Represents the information of a namespace", +"id": "Namespace", +"properties": { +"iamPolicy": { +"$ref": "IAMPolicy", +"description": "IAM policy associated with this namespace." +}, +"name": { +"description": "Name of the given namespace.", +"type": "string" +} +}, +"type": "object" +}, +"NetworkConfig": { +"description": "Network configuration for a Data Fusion instance. These configurations are used for peering with the customer network. Configurations are optional when a public Data Fusion instance is to be created. However, providing these configurations allows several benefits, such as reduced network latency while accessing the customer resources from managed Data Fusion instance nodes, as well as access to the customer on-prem resources.", +"id": "NetworkConfig", +"properties": { +"connectionType": { +"description": "Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and the corresponding tenant project from a predefined list of available connection modes. If this field is unspecified for a private instance, VPC peering is used.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"VPC_PEERING", +"PRIVATE_SERVICE_CONNECT_INTERFACES" +], +"enumDescriptions": [ +"No specific connection type was requested, the default value of VPC_PEERING is chosen.", +"Requests the use of VPC peerings for connecting the consumer and tenant projects.", +"Requests the use of Private Service Connect Interfaces for connecting the consumer and tenant projects." +], +"type": "string" +}, +"ipAllocation": { +"description": "Optional. The IP range in CIDR notation to use for the managed Data Fusion instance nodes. This range must not overlap with any other ranges used in the Data Fusion instance network. This is required only when using connection type VPC_PEERING. Format: a.b.c.d/22 Example: 192.168.0.0/22", +"type": "string" +}, +"network": { +"description": "Optional. Name of the network in the customer project with which the Tenant Project will be peered for executing pipelines. In case of shared VPC where the network resides in another host project the network should specified in the form of projects/{host-project-id}/global/networks/{network}. This is only required for connectivity type VPC_PEERING.", +"type": "string" +}, +"privateServiceConnectConfig": { +"$ref": "PrivateServiceConnectConfig", +"description": "Optional. Configuration for Private Service Connect. This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES." +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "OperationMetadata", +"properties": { +"additionalStatus": { +"additionalProperties": { +"type": "string" +}, +"description": "Map to hold any additional status info for the operation If there is an accelerator being enabled/disabled/deleted, this will be populated with accelerator name as key and status as ENABLING, DISABLING or DELETING", +"type": "object" +}, +"apiVersion": { +"description": "API version used to start the operation.", +"type": "string" +}, +"createTime": { +"description": "The time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "The time the operation finished running.", +"format": "google-datetime", +"type": "string" +}, +"requestedCancellation": { +"description": "Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"type": "boolean" +}, +"statusDetail": { +"description": "Human-readable status of the operation if any.", +"type": "string" +}, +"target": { +"description": "Server-defined resource path for the target of the operation.", +"type": "string" +}, +"verb": { +"description": "Name of the verb executed by the operation.", +"type": "string" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PrivateServiceConnectConfig": { +"description": "Configuration for using Private Service Connect to establish connectivity between the Data Fusion consumer project and the corresponding tenant project.", +"id": "PrivateServiceConnectConfig", +"properties": { +"effectiveUnreachableCidrBlock": { +"description": "Output only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block is /25. The format of this field is governed by RFC 4632. Example: 240.0.0.0/25", +"readOnly": true, +"type": "string" +}, +"networkAttachment": { +"description": "Required. The reference to the network attachment used to establish private connectivity. It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.", +"type": "string" +}, +"unreachableCidrBlock": { +"description": "Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment. This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses. If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632. Example: 192.168.0.0/25", +"type": "string" +} +}, +"type": "object" +}, +"RecurringTimeWindow": { +"description": "Represents an arbitrary window of time that recurs.", +"id": "RecurringTimeWindow", +"properties": { +"recurrence": { +"description": "Required. An RRULE with format [RFC-5545](https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this window reccurs. They go on for the span of time between the start and end time. The only supported FREQ value is \"WEEKLY\". To have something repeat every weekday, use: \"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR\". This specifies how frequently the window starts. To have a 9 am - 5 pm UTC-4 window every weekday, use something like: ``` start time = 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ```", +"type": "string" +}, +"window": { +"$ref": "TimeWindow", +"description": "Required. The window representing the start and end time of recurrences. This field ignores the date components of the provided timestamps. Only the time of day and duration between start and end time are relevant." +} +}, +"type": "object" +}, +"RemoveIamPolicyRequest": { +"description": "Request message for RemoveIamPolicy method.", +"id": "RemoveIamPolicyRequest", +"properties": {}, +"type": "object" +}, +"RemoveIamPolicyResponse": { +"description": "Response message for RemoveIamPolicy method.", +"id": "RemoveIamPolicyResponse", +"properties": {}, +"type": "object" +}, +"RestartInstanceRequest": { +"description": "Request message for restarting a Data Fusion instance.", +"id": "RestartInstanceRequest", +"properties": {}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TimeWindow": { +"description": "Represents an arbitrary window of time.", +"id": "TimeWindow", +"properties": { +"endTime": { +"description": "Required. The end time of the time window provided in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. The end time should take place after the start time. Example: \"2024-01-02T12:04:06-06:00\"", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Required. The start time of the time window provided in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. Example: \"2024-01-01T12:04:06-04:00\"", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpgradeInstanceRequest": { +"description": "Request message for upgrading a Data Fusion instance. To change the instance properties, instance update should be used.", +"id": "UpgradeInstanceRequest", +"properties": {}, +"type": "object" +}, +"Version": { +"description": "The Data Fusion version.", +"id": "Version", +"properties": { +"availableFeatures": { +"description": "Represents a list of available feature names for a given version.", +"items": { +"type": "string" +}, +"type": "array" +}, +"defaultVersion": { +"description": "Whether this is currently the default version for Cloud Data Fusion", +"type": "boolean" +}, +"type": { +"description": "Type represents the release availability of the version", +"enum": [ +"TYPE_UNSPECIFIED", +"TYPE_PREVIEW", +"TYPE_GENERAL_AVAILABILITY", +"TYPE_DEPRECATED" +], +"enumDescriptions": [ +"Version does not have availability yet", +"Version is under development and not considered stable", +"Version is available for public use", +"Version is no longer supported." +], +"type": "string" +}, +"versionNumber": { +"description": "The version number of the Data Fusion instance, such as '6.0.1.0'.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Data Fusion API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataplex.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataplex.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..6925cc4ef6bce4b5a71d66cc52b91ad436dd6125 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataplex.v1.json @@ -0,0 +1,12542 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://dataplex.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Dataplex", +"description": "Dataplex API is used to manage the lifecycle of data lakes.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/dataplex/docs", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.africa-south1.rep.googleapis.com/", +"location": "africa-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.asia-east1.rep.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.asia-east2.rep.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.asia-northeast1.rep.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.asia-northeast2.rep.googleapis.com/", +"location": "asia-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.asia-northeast3.rep.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.asia-south1.rep.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.asia-south2.rep.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.asia-southeast1.rep.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.asia-southeast2.rep.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.australia-southeast1.rep.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.australia-southeast2.rep.googleapis.com/", +"location": "australia-southeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-central2.rep.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-north1.rep.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-north2.rep.googleapis.com/", +"location": "europe-north2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-southwest1.rep.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-west1.rep.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-west10.rep.googleapis.com/", +"location": "europe-west10" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-west12.rep.googleapis.com/", +"location": "europe-west12" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-west2.rep.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-west4.rep.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.me-central1.rep.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.northamerica-northeast1.rep.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.northamerica-northeast2.rep.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.northamerica-south1.rep.googleapis.com/", +"location": "northamerica-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.southamerica-east1.rep.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.southamerica-west1.rep.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-east7.rep.googleapis.com/", +"location": "us-east7" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us-west8.rep.googleapis.com/", +"location": "us-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.us.rep.googleapis.com/", +"location": "us" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://dataplex.eu.rep.googleapis.com/", +"location": "eu" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "dataplex:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://dataplex.mtls.googleapis.com/", +"name": "dataplex", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"organizations": { +"resources": { +"locations": { +"resources": { +"encryptionConfigs": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/encryptionConfigs/{encryptionConfigsId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.organizations.locations.encryptionConfigs.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/encryptionConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/encryptionConfigs/{encryptionConfigsId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.organizations.locations.encryptionConfigs.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/encryptionConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/encryptionConfigs/{encryptionConfigsId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.organizations.locations.encryptionConfigs.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/encryptionConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "dataplex.organizations.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "GoogleLongrunningCancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "dataplex.organizations.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "dataplex.organizations.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listOperations": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "dataplex.organizations.locations.operations.listOperations", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudLocationLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "dataplex.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like \"displayName=tokyo\", and is documented in more detail in AIP-160 (https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "GoogleCloudLocationListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"lookupEntry": { +"description": "Looks up a single Entry by name using the permission on the source system.Caution: The BigQuery metadata that is stored in Dataplex Catalog is changing. For more information, see Changes to BigQuery metadata stored in Dataplex Catalog (https://cloud.google.com/dataplex/docs/biqquery-metadata-changes).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}:lookupEntry", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lookupEntry", +"parameterOrder": [ +"name" +], +"parameters": { +"aspectTypes": { +"description": "Optional. Limits the aspects returned to the provided aspect types. It only works for CUSTOM view.", +"location": "query", +"repeated": true, +"type": "string" +}, +"entry": { +"description": "Required. The resource name of the Entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The project to which the request should be attributed in the following form: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"paths": { +"description": "Optional. Limits the aspects returned to those associated with the provided paths within the Entry. It only works for CUSTOM view.", +"location": "query", +"repeated": true, +"type": "string" +}, +"view": { +"description": "Optional. View to control which parts of an entry the service should return.", +"enum": [ +"ENTRY_VIEW_UNSPECIFIED", +"BASIC", +"FULL", +"CUSTOM", +"ALL" +], +"enumDescriptions": [ +"Unspecified EntryView. Defaults to FULL.", +"Returns entry only, without aspects.", +"Returns all required aspects as well as the keys of all non-required aspects.", +"Returns aspects matching custom fields in GetEntryRequest. If the number of aspects exceeds 100, the first 100 will be returned.", +"Returns all aspects. If the number of aspects exceeds 100, the first 100 will be returned." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:lookupEntry", +"response": { +"$ref": "GoogleCloudDataplexV1Entry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchEntries": { +"description": "Searches for Entries matching the given query and scope.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}:searchEntries", +"httpMethod": "POST", +"id": "dataplex.projects.locations.searchEntries", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The project to which the request should be attributed in the following form: projects/{project}/locations/{location}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results. Supported values are: * relevance (default) * last_modified_timestamp * last_modified_timestamp asc", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Number of results in the search page. If <=0, then defaults to 10. Max limit for page_size is 1000. Throws an invalid argument for page_size > 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous SearchEntries call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"query": { +"description": "Required. The query against which entries in scope should be matched. The query syntax is defined in Search syntax for Dataplex Catalog (https://cloud.google.com/dataplex/docs/search-syntax).", +"location": "query", +"type": "string" +}, +"scope": { +"description": "Optional. The scope under which the search should be operating. It must either be organizations/ or projects/. If it is unspecified, it defaults to the organization where the project provided in name is located.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:searchEntries", +"response": { +"$ref": "GoogleCloudDataplexV1SearchEntriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"aspectTypes": { +"methods": { +"create": { +"description": "Creates an AspectType.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes", +"httpMethod": "POST", +"id": "dataplex.projects.locations.aspectTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"aspectTypeId": { +"description": "Required. AspectType identifier.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the AspectType, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a Google Cloud region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. The service validates the request without performing any mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/aspectTypes", +"request": { +"$ref": "GoogleCloudDataplexV1AspectType" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an AspectType.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.aspectTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If the client provided etag value does not match the current etag value, the DeleteAspectTypeRequest method returns an ABORTED error response.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the AspectType: projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/aspectTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an AspectType.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.aspectTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the AspectType: projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/aspectTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1AspectType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.aspectTypes.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/aspectTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists AspectType resources in a project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes", +"httpMethod": "GET", +"id": "dataplex.projects.locations.aspectTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request. Filters are case-sensitive. The service supports the following formats: labels.key1 = \"value1\" labels:key1 name = \"value\"These restrictions can be conjoined with AND, OR, and NOT conjunctions.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Orders the result by name or create_time fields. If not specified, the ordering is undefined.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of AspectTypes to return. The service may return fewer than this value. If unspecified, the service returns at most 10 AspectTypes. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListAspectTypes call. Provide this to retrieve the subsequent page. When paginating, all other parameters you provide to ListAspectTypes must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the AspectType location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a Google Cloud region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/aspectTypes", +"response": { +"$ref": "GoogleCloudDataplexV1ListAspectTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an AspectType.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.aspectTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the AspectType, of the form: projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/aspectTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1AspectType" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.aspectTypes.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/aspectTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.aspectTypes.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/aspectTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"dataAttributeBindings": { +"methods": { +"create": { +"description": "Create a DataAttributeBinding resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataAttributeBindings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataAttributeBindingId": { +"description": "Required. DataAttributeBinding identifier. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the Location.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent data taxonomy projects/{project_number}/locations/{location_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/dataAttributeBindings", +"request": { +"$ref": "GoogleCloudDataplexV1DataAttributeBinding" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a DataAttributeBinding resource. All attributes within the DataAttributeBinding must be deleted before the DataAttributeBinding can be deleted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings/{dataAttributeBindingsId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.dataAttributeBindings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Required. If the client provided etag value does not match the current etag value, the DeleteDataAttributeBindingRequest method returns an ABORTED error response. Etags must be used when calling the DeleteDataAttributeBinding.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the DataAttributeBinding: projects/{project_number}/locations/{location_id}/dataAttributeBindings/{data_attribute_binding_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataAttributeBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a DataAttributeBinding resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings/{dataAttributeBindingsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataAttributeBindings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the DataAttributeBinding: projects/{project_number}/locations/{location_id}/dataAttributeBindings/{data_attribute_binding_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataAttributeBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1DataAttributeBinding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings/{dataAttributeBindingsId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataAttributeBindings.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataAttributeBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DataAttributeBinding resources in a project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataAttributeBindings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request. Filter using resource: filter=resource:\"resource-name\" Filter using attribute: filter=attributes:\"attribute-name\" Filter using attribute in paths list: filter=paths.attributes:\"attribute-name\"", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of DataAttributeBindings to return. The service may return fewer than this value. If unspecified, at most 10 DataAttributeBindings will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListDataAttributeBindings call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataAttributeBindings must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the Location: projects/{project_number}/locations/{location_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dataAttributeBindings", +"response": { +"$ref": "GoogleCloudDataplexV1ListDataAttributeBindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a DataAttributeBinding resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings/{dataAttributeBindingsId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.dataAttributeBindings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the Data Attribute Binding, of the form: projects/{project_number}/locations/{location}/dataAttributeBindings/{data_attribute_binding_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataAttributeBindings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1DataAttributeBinding" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings/{dataAttributeBindingsId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataAttributeBindings.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataAttributeBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings/{dataAttributeBindingsId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataAttributeBindings.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataAttributeBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"dataScans": { +"methods": { +"create": { +"description": "Creates a DataScan resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataScans.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataScanId": { +"description": "Required. DataScan identifier. Must contain only lowercase letters, numbers and hyphens. Must start with a letter. Must end with a number or a letter. Must be between 1-63 characters. Must be unique within the customer project / location.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent location: projects/{project}/locations/{location_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/dataScans", +"request": { +"$ref": "GoogleCloudDataplexV1DataScan" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a DataScan resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.dataScans.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. If set to true, any child resources of this data scan will also be deleted. (Otherwise, the request will only work if the data scan has no child resources.)", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The resource name of the dataScan: projects/{project}/locations/{location_id}/dataScans/{data_scan_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateDataQualityRules": { +"description": "Generates recommended data quality rules based on the results of a data profiling scan.Use the recommendations to build rules for a data quality scan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}:generateDataQualityRules", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataScans.generateDataQualityRules", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name must be one of the following: The name of a data scan with at least one successful, completed data profiling job The name of a successful, completed data profiling job (a data scan job where the job type is data profiling)", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:generateDataQualityRules", +"request": { +"$ref": "GoogleCloudDataplexV1GenerateDataQualityRulesRequest" +}, +"response": { +"$ref": "GoogleCloudDataplexV1GenerateDataQualityRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a DataScan resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataScans.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the dataScan: projects/{project}/locations/{location_id}/dataScans/{data_scan_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Optional. Select the DataScan view to return. Defaults to BASIC.", +"enum": [ +"DATA_SCAN_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The API will default to the BASIC view.", +"Basic view that does not include spec and result.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1DataScan" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataScans.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DataScans.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataScans.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields (name or create_time) for the result. If not specified, the ordering is undefined.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of dataScans to return. The service may return fewer than this value. If unspecified, at most 500 scans will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListDataScans call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataScans must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent location: projects/{project}/locations/{location_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dataScans", +"response": { +"$ref": "GoogleCloudDataplexV1ListDataScansResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a DataScan resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.dataScans.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. The relative resource name of the scan, of the form: projects/{project}/locations/{location_id}/dataScans/{datascan_id}, where project refers to a project_id or project_number and location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1DataScan" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"run": { +"description": "Runs an on-demand execution of a DataScan", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}:run", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataScans.run", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the DataScan: projects/{project}/locations/{location_id}/dataScans/{data_scan_id}. where project refers to a project_id or project_number and location_id refers to a GCP region.Only OnDemand data scans are allowed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:run", +"request": { +"$ref": "GoogleCloudDataplexV1RunDataScanRequest" +}, +"response": { +"$ref": "GoogleCloudDataplexV1RunDataScanResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataScans.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataScans.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"jobs": { +"methods": { +"generateDataQualityRules": { +"description": "Generates recommended data quality rules based on the results of a data profiling scan.Use the recommendations to build rules for a data quality scan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}/jobs/{jobsId}:generateDataQualityRules", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataScans.jobs.generateDataQualityRules", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name must be one of the following: The name of a data scan with at least one successful, completed data profiling job The name of a successful, completed data profiling job (a data scan job where the job type is data profiling)", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:generateDataQualityRules", +"request": { +"$ref": "GoogleCloudDataplexV1GenerateDataQualityRulesRequest" +}, +"response": { +"$ref": "GoogleCloudDataplexV1GenerateDataQualityRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a DataScanJob resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}/jobs/{jobsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataScans.jobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the DataScanJob: projects/{project}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Optional. Select the DataScanJob view to return. Defaults to BASIC.", +"enum": [ +"DATA_SCAN_JOB_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The API will default to the BASIC view.", +"Basic view that does not include spec and result.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1DataScanJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DataScanJobs under the given DataScan.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}/jobs", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataScans.jobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the ListDataScanJobs request.If unspecified, all datascan jobs will be returned. Multiple filters can be applied (with AND, OR logical operators). Filters are case-sensitive.Allowed fields are: start_time end_timestart_time and end_time expect RFC-3339 formatted strings (e.g. 2018-10-08T18:30:00-07:00).For instance, 'start_time > 2018-10-08T00:00:00.123456789Z AND end_time < 2018-10-09T00:00:00.123456789Z' limits results to DataScanJobs between specified start and end times.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of DataScanJobs to return. The service may return fewer than this value. If unspecified, at most 10 DataScanJobs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListDataScanJobs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataScanJobs must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent environment: projects/{project}/locations/{location_id}/dataScans/{data_scan_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/jobs", +"response": { +"$ref": "GoogleCloudDataplexV1ListDataScanJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"dataTaxonomies": { +"methods": { +"create": { +"description": "Create a DataTaxonomy resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataTaxonomies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataTaxonomyId": { +"description": "Required. DataTaxonomy identifier. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the Project.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the data taxonomy location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/dataTaxonomies", +"request": { +"$ref": "GoogleCloudDataplexV1DataTaxonomy" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a DataTaxonomy resource. All attributes within the DataTaxonomy must be deleted before the DataTaxonomy can be deleted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.dataTaxonomies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If the client provided etag value does not match the current etag value,the DeleteDataTaxonomy method returns an ABORTED error.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the DataTaxonomy: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a DataTaxonomy resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataTaxonomies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the DataTaxonomy: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1DataTaxonomy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataTaxonomies.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DataTaxonomy resources in a project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataTaxonomies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of DataTaxonomies to return. The service may return fewer than this value. If unspecified, at most 10 DataTaxonomies will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListDataTaxonomies call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataTaxonomies must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the DataTaxonomy location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dataTaxonomies", +"response": { +"$ref": "GoogleCloudDataplexV1ListDataTaxonomiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a DataTaxonomy resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.dataTaxonomies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the DataTaxonomy, of the form: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1DataTaxonomy" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataTaxonomies.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataTaxonomies.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attributes": { +"methods": { +"create": { +"description": "Create a DataAttribute resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataTaxonomies.attributes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataAttributeId": { +"description": "Required. DataAttribute identifier. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the DataTaxonomy.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent data taxonomy projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/attributes", +"request": { +"$ref": "GoogleCloudDataplexV1DataAttribute" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Data Attribute resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.dataTaxonomies.attributes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If the client provided etag value does not match the current etag value, the DeleteDataAttribute method returns an ABORTED error response.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the DataAttribute: projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a Data Attribute resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataTaxonomies.attributes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the dataAttribute: projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1DataAttribute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataTaxonomies.attributes.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Data Attribute resources in a DataTaxonomy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes", +"httpMethod": "GET", +"id": "dataplex.projects.locations.dataTaxonomies.attributes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of DataAttributes to return. The service may return fewer than this value. If unspecified, at most 10 dataAttributes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListDataAttributes call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataAttributes must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the DataTaxonomy: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attributes", +"response": { +"$ref": "GoogleCloudDataplexV1ListDataAttributesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a DataAttribute resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.dataTaxonomies.attributes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the dataAttribute, of the form: projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1DataAttribute" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataTaxonomies.attributes.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.dataTaxonomies.attributes.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"entryGroups": { +"methods": { +"create": { +"description": "Creates an EntryGroup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups", +"httpMethod": "POST", +"id": "dataplex.projects.locations.entryGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"entryGroupId": { +"description": "Required. EntryGroup identifier.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the entryGroup, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. The service validates the request without performing any mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/entryGroups", +"request": { +"$ref": "GoogleCloudDataplexV1EntryGroup" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an EntryGroup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.entryGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If the client provided etag value does not match the current etag value, the DeleteEntryGroupRequest method returns an ABORTED error response.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the EntryGroup: projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an EntryGroup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.entryGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the EntryGroup: projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1EntryGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.entryGroups.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists EntryGroup resources in a project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups", +"httpMethod": "GET", +"id": "dataplex.projects.locations.entryGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of EntryGroups to return. The service may return fewer than this value. If unspecified, the service returns at most 10 EntryGroups. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListEntryGroups call. Provide this to retrieve the subsequent page. When paginating, all other parameters you provide to ListEntryGroups must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the entryGroup location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a Google Cloud region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entryGroups", +"response": { +"$ref": "GoogleCloudDataplexV1ListEntryGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an EntryGroup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.entryGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the EntryGroup, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. The service validates the request, without performing any mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1EntryGroup" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.entryGroups.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.entryGroups.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"entries": { +"methods": { +"create": { +"description": "Creates an Entry.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries", +"httpMethod": "POST", +"id": "dataplex.projects.locations.entryGroups.entries.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"entryId": { +"description": "Required. Entry identifier. It has to be unique within an Entry Group.Entries corresponding to Google Cloud resources use an Entry ID format based on full resource names (https://cloud.google.com/apis/design/resource_names#full_resource_name). The format is a full resource name of the resource without the prefix double slashes in the API service name part of the full resource name. This allows retrieval of entries using their associated resource name.For example, if the full resource name of a resource is //library.googleapis.com/shelves/shelf1/books/book2, then the suggested entry_id is library.googleapis.com/shelves/shelf1/books/book2.It is also suggested to follow the same convention for entries corresponding to resources from providers or systems other than Google Cloud.The maximum size of the field is 4000 characters.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent Entry Group: projects/{project}/locations/{location}/entryGroups/{entry_group}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entries", +"request": { +"$ref": "GoogleCloudDataplexV1Entry" +}, +"response": { +"$ref": "GoogleCloudDataplexV1Entry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an Entry.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries/{entriesId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.entryGroups.entries.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Entry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an Entry.Caution: The BigQuery metadata that is stored in Dataplex Catalog is changing. For more information, see Changes to BigQuery metadata stored in Dataplex Catalog (https://cloud.google.com/dataplex/docs/biqquery-metadata-changes).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries/{entriesId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.entryGroups.entries.get", +"parameterOrder": [ +"name" +], +"parameters": { +"aspectTypes": { +"description": "Optional. Limits the aspects returned to the provided aspect types. It only works for CUSTOM view.", +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "Required. The resource name of the Entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/.*$", +"required": true, +"type": "string" +}, +"paths": { +"description": "Optional. Limits the aspects returned to those associated with the provided paths within the Entry. It only works for CUSTOM view.", +"location": "query", +"repeated": true, +"type": "string" +}, +"view": { +"description": "Optional. View to control which parts of an entry the service should return.", +"enum": [ +"ENTRY_VIEW_UNSPECIFIED", +"BASIC", +"FULL", +"CUSTOM", +"ALL" +], +"enumDescriptions": [ +"Unspecified EntryView. Defaults to FULL.", +"Returns entry only, without aspects.", +"Returns all required aspects as well as the keys of all non-required aspects.", +"Returns aspects matching custom fields in GetEntryRequest. If the number of aspects exceeds 100, the first 100 will be returned.", +"Returns all aspects. If the number of aspects exceeds 100, the first 100 will be returned." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Entry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Entries within an EntryGroup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries", +"httpMethod": "GET", +"id": "dataplex.projects.locations.entryGroups.entries.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter on the entries to return. Filters are case-sensitive. You can filter the request by the following fields: entry_type entry_source.display_nameThe comparison operators are =, !=, <, >, <=, >=. The service compares strings according to lexical order.You can use the logical operators AND, OR, NOT in the filter.You can use Wildcard \"*\", but for entry_type you need to provide the full project id or number.Example filter expressions: \"entry_source.display_name=AnExampleDisplayName\" \"entry_type=projects/example-project/locations/global/entryTypes/example-entry_type\" \"entry_type=projects/example-project/locations/us/entryTypes/a* OR entry_type=projects/another-project/locations/*\" \"NOT entry_source.display_name=AnotherExampleDisplayName\"", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Number of items to return per page. If there are remaining results, the service returns a next_page_token. If unspecified, the service returns at most 10 Entries. The maximum value is 100; values above 100 will be coerced to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListEntries call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent Entry Group: projects/{project}/locations/{location}/entryGroups/{entry_group}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entries", +"response": { +"$ref": "GoogleCloudDataplexV1ListEntriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an Entry.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries/{entriesId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.entryGroups.entries.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true and the entry doesn't exist, the service will create it.", +"location": "query", +"type": "boolean" +}, +"aspectKeys": { +"description": "Optional. The map keys of the Aspects which the service should modify. It supports the following syntaxes: - matches an aspect of the given type and empty path. @path - matches an aspect of the given type and specified path. For example, to attach an aspect to a field that is specified by the schema aspect, the path should have the format Schema.. @* - matches aspects of the given type for all paths. *@path - matches aspects of all types on the given path.The service will not remove existing aspects matching the syntax unless delete_missing_aspects is set to true.If this field is left empty, the service treats it as specifying exactly those Aspects present in the request.", +"location": "query", +"repeated": true, +"type": "string" +}, +"deleteMissingAspects": { +"description": "Optional. If set to true and the aspect_keys specify aspect ranges, the service deletes any existing aspects from that range that weren't provided in the request.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/.*$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Mask of fields to update. To update Aspects, the update_mask must contain the value \"aspects\".If the update_mask is empty, the service will update all modifiable fields present in the request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1Entry" +}, +"response": { +"$ref": "GoogleCloudDataplexV1Entry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"entryLinkTypes": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryLinkTypes/{entryLinkTypesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.entryLinkTypes.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryLinkTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryLinkTypes/{entryLinkTypesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.entryLinkTypes.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryLinkTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryLinkTypes/{entryLinkTypesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.entryLinkTypes.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryLinkTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"entryTypes": { +"methods": { +"create": { +"description": "Creates an EntryType.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes", +"httpMethod": "POST", +"id": "dataplex.projects.locations.entryTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"entryTypeId": { +"description": "Required. EntryType identifier.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the EntryType, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a Google Cloud region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. The service validates the request without performing any mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/entryTypes", +"request": { +"$ref": "GoogleCloudDataplexV1EntryType" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an EntryType.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.entryTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If the client provided etag value does not match the current etag value, the DeleteEntryTypeRequest method returns an ABORTED error response.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the EntryType: projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an EntryType.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.entryTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the EntryType: projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1EntryType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.entryTypes.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists EntryType resources in a project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes", +"httpMethod": "GET", +"id": "dataplex.projects.locations.entryTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request. Filters are case-sensitive. The service supports the following formats: labels.key1 = \"value1\" labels:key1 name = \"value\"These restrictions can be conjoined with AND, OR, and NOT conjunctions.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Orders the result by name or create_time fields. If not specified, the ordering is undefined.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of EntryTypes to return. The service may return fewer than this value. If unspecified, the service returns at most 10 EntryTypes. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListEntryTypes call. Provide this to retrieve the subsequent page. When paginating, all other parameters you provided to ListEntryTypes must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the EntryType location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a Google Cloud region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/entryTypes", +"response": { +"$ref": "GoogleCloudDataplexV1ListEntryTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an EntryType.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.entryTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the EntryType, of the form: projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. The service validates the request without performing any mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1EntryType" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.entryTypes.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.entryTypes.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/entryTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"glossaries": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.glossaries.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.glossaries.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.glossaries.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"categories": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/categories/{categoriesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.glossaries.categories.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/categories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/categories/{categoriesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.glossaries.categories.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/categories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/categories/{categoriesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.glossaries.categories.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/categories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"terms": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/terms/{termsId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.glossaries.terms.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/terms/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/terms/{termsId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.glossaries.terms.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/terms/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/terms/{termsId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.glossaries.terms.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/terms/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"governanceRules": { +"methods": { +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/governanceRules/{governanceRulesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.governanceRules.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/governanceRules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/governanceRules/{governanceRulesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.governanceRules.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/governanceRules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/governanceRules/{governanceRulesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.governanceRules.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/governanceRules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"lakes": { +"methods": { +"create": { +"description": "Creates a lake resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"lakeId": { +"description": "Required. Lake identifier. This ID will be used to generate names such as database and dataset names when publishing metadata to Hive Metastore and BigQuery. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must end with a number or a letter. * Must be between 1-63 characters. * Must be unique within the customer project / location.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the lake location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/lakes", +"request": { +"$ref": "GoogleCloudDataplexV1Lake" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a lake resource. All zones within the lake must be deleted before the lake can be deleted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.lakes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a lake resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Lake" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists lake resources in a project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of Lakes to return. The service may return fewer than this value. If unspecified, at most 10 lakes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListLakes call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListLakes must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the lake location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/lakes", +"response": { +"$ref": "GoogleCloudDataplexV1ListLakesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a lake resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.lakes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the lake, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1Lake" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"actions": { +"methods": { +"list": { +"description": "Lists action resources in a lake.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/actions", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.actions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of actions to return. The service may return fewer than this value. If unspecified, at most 10 actions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListLakeActions call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListLakeActions must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/actions", +"response": { +"$ref": "GoogleCloudDataplexV1ListActionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"content": { +"methods": { +"create": { +"description": "Create a content.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.content.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/content", +"request": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"response": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a content.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.lakes.content.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the content: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a content resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.content.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the content: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", +"required": true, +"type": "string" +}, +"view": { +"description": "Optional. Specify content view to make a partial request.", +"enum": [ +"CONTENT_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Content view not specified. Defaults to BASIC. The API will default to the BASIC view.", +"Will not return the data_text field.", +"Returns the complete proto." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a contentitem resource. A NOT_FOUND error is returned if the resource does not exist. An empty policy is returned if the resource exists but does not have a policy set on it.Caller must have Google IAM dataplex.content.getIamPolicy permission on the resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.content.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List content.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.content.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request. Filters are case-sensitive. The following formats are supported:labels.key1 = \"value1\" labels:key1 type = \"NOTEBOOK\" type = \"SQL_SCRIPT\"These restrictions can be coinjoined with AND, OR and NOT conjunctions.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of content to return. The service may return fewer than this value. If unspecified, at most 10 content will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListContent call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListContent must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/content", +"response": { +"$ref": "GoogleCloudDataplexV1ListContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a content. Only supports full resource update.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.lakes.content.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the content, of the form: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"response": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified contentitem resource. Replaces any existing policy.Caller must have Google IAM dataplex.content.setIamPolicy permission on the resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.content.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the caller's permissions on a resource. If the resource does not exist, an empty set of permissions is returned (a NOT_FOUND error is not returned).A caller is not required to have Google IAM permission to make this request.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.content.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"contentitems": { +"methods": { +"create": { +"description": "Create a content.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.contentitems.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/contentitems", +"request": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"response": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a content.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems/{contentitemsId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.lakes.contentitems.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the content: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/contentitems/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a content resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems/{contentitemsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.contentitems.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the content: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/contentitems/.*$", +"required": true, +"type": "string" +}, +"view": { +"description": "Optional. Specify content view to make a partial request.", +"enum": [ +"CONTENT_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Content view not specified. Defaults to BASIC. The API will default to the BASIC view.", +"Will not return the data_text field.", +"Returns the complete proto." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a contentitem resource. A NOT_FOUND error is returned if the resource does not exist. An empty policy is returned if the resource exists but does not have a policy set on it.Caller must have Google IAM dataplex.content.getIamPolicy permission on the resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems/{contentitemsId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.contentitems.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/contentitems/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List content.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.contentitems.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request. Filters are case-sensitive. The following formats are supported:labels.key1 = \"value1\" labels:key1 type = \"NOTEBOOK\" type = \"SQL_SCRIPT\"These restrictions can be coinjoined with AND, OR and NOT conjunctions.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of content to return. The service may return fewer than this value. If unspecified, at most 10 content will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListContent call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListContent must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contentitems", +"response": { +"$ref": "GoogleCloudDataplexV1ListContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a content. Only supports full resource update.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems/{contentitemsId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.lakes.contentitems.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the content, of the form: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/contentitems/.*$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"response": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified contentitem resource. Replaces any existing policy.Caller must have Google IAM dataplex.content.setIamPolicy permission on the resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems/{contentitemsId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.contentitems.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/contentitems/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the caller's permissions on a resource. If the resource does not exist, an empty set of permissions is returned (a NOT_FOUND error is not returned).A caller is not required to have Google IAM permission to make this request.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems/{contentitemsId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.contentitems.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/contentitems/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"environments": { +"methods": { +"create": { +"description": "Create an environment resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/environments", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.environments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"environmentId": { +"description": "Required. Environment identifier. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the lake.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/environments", +"request": { +"$ref": "GoogleCloudDataplexV1Environment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete the environment resource. All the child resources must have been deleted before environment deletion can be initiated.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/environments/{environmentsId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.lakes.environments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get environment resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/environments/{environmentsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.environments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/environments/{environmentsId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.environments.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists environments under the given lake.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/environments", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.environments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of environments to return. The service may return fewer than this value. If unspecified, at most 10 environments will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListEnvironments call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListEnvironments must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/environments", +"response": { +"$ref": "GoogleCloudDataplexV1ListEnvironmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update the environment resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/environments/{environmentsId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.lakes.environments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the environment, of the form: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1Environment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/environments/{environmentsId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.environments.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/environments/{environmentsId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.environments.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"sessions": { +"methods": { +"list": { +"description": "Lists session resources in an environment.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/environments/{environmentsId}/sessions", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.environments.sessions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request. The following mode filter is supported to return only the sessions belonging to the requester when the mode is USER and return sessions of all the users when the mode is ADMIN. When no filter is sent default to USER mode. NOTE: When the mode is ADMIN, the requester should have dataplex.environments.listAllSessions permission to list all sessions, in absence of the permission, the request fails.mode = ADMIN | USER", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of sessions to return. The service may return fewer than this value. If unspecified, at most 10 sessions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListSessions call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListSessions must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/sessions", +"response": { +"$ref": "GoogleCloudDataplexV1ListSessionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"tasks": { +"methods": { +"create": { +"description": "Creates a task resource within a lake.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.tasks.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +}, +"taskId": { +"description": "Required. Task identifier.", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/tasks", +"request": { +"$ref": "GoogleCloudDataplexV1Task" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete the task resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.lakes.tasks.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get task resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.tasks.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{tasks_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Task" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.tasks.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists tasks under the given lake.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.tasks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of tasks to return. The service may return fewer than this value. If unspecified, at most 10 tasks will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListZones call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListZones must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/tasks", +"response": { +"$ref": "GoogleCloudDataplexV1ListTasksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update the task resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.lakes.tasks.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the task, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ tasks/{task_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1Task" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"run": { +"description": "Run an on demand execution of a Task.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}:run", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.tasks.run", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:run", +"request": { +"$ref": "GoogleCloudDataplexV1RunTaskRequest" +}, +"response": { +"$ref": "GoogleCloudDataplexV1RunTaskResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.tasks.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.tasks.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"jobs": { +"methods": { +"cancel": { +"description": "Cancel jobs running for the task resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}/jobs/{jobsId}:cancel", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.tasks.jobs.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}/job/{job_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "GoogleCloudDataplexV1CancelJobRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get job resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}/jobs/{jobsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.tasks.jobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}/jobs/{job_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Jobs under the given task.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}/jobs", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.tasks.jobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of jobs to return. The service may return fewer than this value. If unspecified, at most 10 jobs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListJobs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListJobs must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/jobs", +"response": { +"$ref": "GoogleCloudDataplexV1ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"zones": { +"methods": { +"create": { +"description": "Creates a zone resource within a lake.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.zones.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +}, +"zoneId": { +"description": "Required. Zone identifier. This ID will be used to generate names such as database and dataset names when publishing metadata to Hive Metastore and BigQuery. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must end with a number or a letter. * Must be between 1-63 characters. * Must be unique across all lakes from all locations in a project. * Must not be one of the reserved IDs (i.e. \"default\", \"global-temp\")", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/zones", +"request": { +"$ref": "GoogleCloudDataplexV1Zone" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a zone resource. All assets within a zone must be deleted before the zone can be deleted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.lakes.zones.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves a zone resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Zone" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists zone resources in a lake.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of zones to return. The service may return fewer than this value. If unspecified, at most 10 zones will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListZones call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListZones must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/zones", +"response": { +"$ref": "GoogleCloudDataplexV1ListZonesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a zone resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.lakes.zones.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the zone, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1Zone" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.zones.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.zones.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"actions": { +"methods": { +"list": { +"description": "Lists action resources in a zone.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/actions", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.actions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of actions to return. The service may return fewer than this value. If unspecified, at most 10 actions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListZoneActions call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListZoneActions must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/actions", +"response": { +"$ref": "GoogleCloudDataplexV1ListActionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"assets": { +"methods": { +"create": { +"description": "Creates an asset resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/assets", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.zones.assets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"assetId": { +"description": "Required. Asset identifier. This ID will be used to generate names such as table names when publishing metadata to Hive Metastore and BigQuery. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must end with a number or a letter. * Must be between 1-63 characters. * Must be unique within the zone.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/assets", +"request": { +"$ref": "GoogleCloudDataplexV1Asset" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an asset resource. The referenced storage resource is detached (default) or deleted based on the associated Lifecycle policy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/assets/{assetsId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.lakes.zones.assets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves an asset resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/assets/{assetsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.assets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Asset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/assets/{assetsId}:getIamPolicy", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.assets.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset.The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists asset resources in a zone.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/assets", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.assets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of asset to return. The service may return fewer than this value. If unspecified, at most 10 assets will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListAssets call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListAssets must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/assets", +"response": { +"$ref": "GoogleCloudDataplexV1ListAssetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an asset resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/assets/{assetsId}", +"httpMethod": "PATCH", +"id": "dataplex.projects.locations.lakes.zones.assets.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The relative resource name of the asset, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1Asset" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/assets/{assetsId}:setIamPolicy", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.zones.assets.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/assets/{assetsId}:testIamPermissions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.zones.assets.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See Resource names (https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"actions": { +"methods": { +"list": { +"description": "Lists action resources in an asset.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/assets/{assetsId}/actions", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.assets.actions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of actions to return. The service may return fewer than this value. If unspecified, at most 10 actions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListAssetActions call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListAssetActions must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/actions", +"response": { +"$ref": "GoogleCloudDataplexV1ListActionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"entities": { +"methods": { +"create": { +"description": "Create a metadata entity.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/entities", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.zones.entities.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/entities", +"request": { +"$ref": "GoogleCloudDataplexV1Entity" +}, +"response": { +"$ref": "GoogleCloudDataplexV1Entity" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a metadata entity.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/entities/{entitiesId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.lakes.zones.entities.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Required. The etag associated with the entity, which can be retrieved with a GetEntity request.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the entity: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/entities/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a metadata entity.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/entities/{entitiesId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.entities.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the entity: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/entities/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Optional. Used to select the subset of entity information to return. Defaults to BASIC.", +"enum": [ +"ENTITY_VIEW_UNSPECIFIED", +"BASIC", +"SCHEMA", +"FULL" +], +"enumDescriptions": [ +"The API will default to the BASIC view.", +"Minimal view that does not include the schema.", +"Include basic information and schema.", +"Include everything. Currently, this is the same as the SCHEMA view." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Entity" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List metadata entities in a zone.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/entities", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.entities.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The following filter parameters can be added to the URL to limit the entities returned by the API: Entity ID: ?filter=\"id=entityID\" Asset ID: ?filter=\"asset=assetID\" Data path ?filter=\"data_path=gs://my-bucket\" Is HIVE compatible: ?filter=\"hive_compatible=true\" Is BigQuery compatible: ?filter=\"bigquery_compatible=true\"", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of entities to return. The service may return fewer than this value. If unspecified, 100 entities will be returned by default. The maximum value is 500; larger values will will be truncated to 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListEntities call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListEntities must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Required. Specify the entity view to make a partial list request.", +"enum": [ +"ENTITY_VIEW_UNSPECIFIED", +"TABLES", +"FILESETS" +], +"enumDescriptions": [ +"The default unset value. Return both table and fileset entities if unspecified.", +"Only list table entities.", +"Only list fileset entities." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/entities", +"response": { +"$ref": "GoogleCloudDataplexV1ListEntitiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Update a metadata entity. Only supports full resource update.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/entities/{entitiesId}", +"httpMethod": "PUT", +"id": "dataplex.projects.locations.lakes.zones.entities.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the entity, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/entities/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudDataplexV1Entity" +}, +"response": { +"$ref": "GoogleCloudDataplexV1Entity" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"partitions": { +"methods": { +"create": { +"description": "Create a metadata partition.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/entities/{entitiesId}/partitions", +"httpMethod": "POST", +"id": "dataplex.projects.locations.lakes.zones.entities.partitions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/entities/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the request, but do not perform mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/partitions", +"request": { +"$ref": "GoogleCloudDataplexV1Partition" +}, +"response": { +"$ref": "GoogleCloudDataplexV1Partition" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a metadata partition.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/entities/{entitiesId}/partitions/{partitionsId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.lakes.zones.entities.partitions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"deprecated": true, +"description": "Optional. The etag associated with the partition.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the partition. format: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}/partitions/{partition_value_path}. The {partition_value_path} segment consists of an ordered sequence of partition values separated by \"/\". All values must be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/entities/[^/]+/partitions/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a metadata partition of an entity.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/entities/{entitiesId}/partitions/{partitionsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.entities.partitions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the partition: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}/partitions/{partition_value_path}. The {partition_value_path} segment consists of an ordered sequence of partition values separated by \"/\". All values must be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/entities/[^/]+/partitions/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1Partition" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List metadata partitions of an entity.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/zones/{zonesId}/entities/{entitiesId}/partitions", +"httpMethod": "GET", +"id": "dataplex.projects.locations.lakes.zones.entities.partitions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter the partitions returned to the caller using a key value pair expression. Supported operators and syntax: logic operators: AND, OR comparison operators: <, >, >=, <= ,=, != LIKE operators: The right hand of a LIKE operator supports \".\" and \"*\" for wildcard searches, for example \"value1 LIKE \".*oo.*\" parenthetical grouping: ( )Sample filter expression: `?filter=\"key1 < value1 OR key2 > value2\"Notes: Keys to the left of operators are case insensitive. Partition results are sorted first by creation time, then by lexicographic order. Up to 20 key value filter pairs are allowed, but due to performance considerations, only the first 10 will be used as a filter.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of partitions to return. The service may return fewer than this value. If unspecified, 100 partitions will be returned by default. The maximum page size is 500; larger values will will be truncated to 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token received from a previous ListPartitions call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListPartitions must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent entity: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/entities/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/partitions", +"response": { +"$ref": "GoogleCloudDataplexV1ListPartitionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"metadataJobs": { +"methods": { +"cancel": { +"description": "Cancels a metadata job.If you cancel a metadata import job that is in progress, the changes in the job might be partially applied. We recommend that you reset the state of the entry groups in your project by running another metadata job that reverts the changes from the canceled job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataJobs/{metadataJobsId}:cancel", +"httpMethod": "POST", +"id": "dataplex.projects.locations.metadataJobs.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the job, in the format projects/{project_id_or_number}/locations/{location_id}/metadataJobs/{metadata_job_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/metadataJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "GoogleCloudDataplexV1CancelMetadataJobRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a metadata job. For example, use a metadata job to import Dataplex Catalog entries and aspects from a third-party system into Dataplex.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataJobs", +"httpMethod": "POST", +"id": "dataplex.projects.locations.metadataJobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"metadataJobId": { +"description": "Optional. The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent location, in the format projects/{project_id_or_number}/locations/{location_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. The service validates the request without performing any mutations. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/metadataJobs", +"request": { +"$ref": "GoogleCloudDataplexV1MetadataJob" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a metadata job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataJobs/{metadataJobsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.metadataJobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the metadata job, in the format projects/{project_id_or_number}/locations/{location_id}/metadataJobs/{metadata_job_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/metadataJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudDataplexV1MetadataJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists metadata jobs.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataJobs", +"httpMethod": "GET", +"id": "dataplex.projects.locations.metadataJobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter request. Filters are case-sensitive. The service supports the following formats: labels.key1 = \"value1\" labels:key1 name = \"value\"You can combine filters with AND, OR, and NOT operators.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. The field to sort the results by, either name or create_time. If not specified, the ordering is undefined.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of metadata jobs to return. The service might return fewer jobs than this value. If unspecified, at most 10 jobs are returned. The maximum value is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The page token received from a previous ListMetadataJobs call. Provide this token to retrieve the subsequent page of results. When paginating, all other parameters that are provided to the ListMetadataJobs request must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent location, in the format projects/{project_id_or_number}/locations/{location_id}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/metadataJobs", +"response": { +"$ref": "GoogleCloudDataplexV1ListMetadataJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "dataplex.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "GoogleLongrunningCancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "dataplex.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "dataplex.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "dataplex.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241206", +"rootUrl": "https://dataplex.googleapis.com/", +"schemas": { +"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); } ", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1Action": { +"description": "Action represents an issue requiring administrator action for resolution.", +"id": "GoogleCloudDataplexV1Action", +"properties": { +"asset": { +"description": "Output only. The relative resource name of the asset, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", +"readOnly": true, +"type": "string" +}, +"category": { +"description": "The category of issue associated with the action.", +"enum": [ +"CATEGORY_UNSPECIFIED", +"RESOURCE_MANAGEMENT", +"SECURITY_POLICY", +"DATA_DISCOVERY" +], +"enumDescriptions": [ +"Unspecified category.", +"Resource management related issues.", +"Security policy related issues.", +"Data and discovery related issues." +], +"type": "string" +}, +"dataLocations": { +"description": "The list of data locations associated with this action. Cloud Storage locations are represented as URI paths(E.g. gs://bucket/table1/year=2020/month=Jan/). BigQuery locations refer to resource names(E.g. bigquery.googleapis.com/projects/project-id/datasets/dataset-id).", +"items": { +"type": "string" +}, +"type": "array" +}, +"detectTime": { +"description": "The time that the issue was detected.", +"format": "google-datetime", +"type": "string" +}, +"failedSecurityPolicyApply": { +"$ref": "GoogleCloudDataplexV1ActionFailedSecurityPolicyApply", +"description": "Details for issues related to applying security policy." +}, +"incompatibleDataSchema": { +"$ref": "GoogleCloudDataplexV1ActionIncompatibleDataSchema", +"description": "Details for issues related to incompatible schemas detected within data." +}, +"invalidDataFormat": { +"$ref": "GoogleCloudDataplexV1ActionInvalidDataFormat", +"description": "Details for issues related to invalid or unsupported data formats." +}, +"invalidDataOrganization": { +"$ref": "GoogleCloudDataplexV1ActionInvalidDataOrganization", +"description": "Details for issues related to invalid data arrangement." +}, +"invalidDataPartition": { +"$ref": "GoogleCloudDataplexV1ActionInvalidDataPartition", +"description": "Details for issues related to invalid or unsupported data partition structure." +}, +"issue": { +"description": "Detailed description of the issue requiring action.", +"type": "string" +}, +"lake": { +"description": "Output only. The relative resource name of the lake, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"readOnly": true, +"type": "string" +}, +"missingData": { +"$ref": "GoogleCloudDataplexV1ActionMissingData", +"description": "Details for issues related to absence of data within managed resources." +}, +"missingResource": { +"$ref": "GoogleCloudDataplexV1ActionMissingResource", +"description": "Details for issues related to absence of a managed resource." +}, +"name": { +"description": "Output only. The relative resource name of the action, of the form: projects/{project}/locations/{location}/lakes/{lake}/actions/{action} projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/actions/{action} projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/assets/{asset}/actions/{action}.", +"readOnly": true, +"type": "string" +}, +"unauthorizedResource": { +"$ref": "GoogleCloudDataplexV1ActionUnauthorizedResource", +"description": "Details for issues related to lack of permissions to access data resources." +}, +"zone": { +"description": "Output only. The relative resource name of the zone, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ActionFailedSecurityPolicyApply": { +"description": "Failed to apply security policy to the managed resource(s) under a lake, zone or an asset. For a lake or zone resource, one or more underlying assets has a failure applying security policy to the associated managed resource.", +"id": "GoogleCloudDataplexV1ActionFailedSecurityPolicyApply", +"properties": { +"asset": { +"description": "Resource name of one of the assets with failing security policy application. Populated for a lake or zone resource only.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ActionIncompatibleDataSchema": { +"description": "Action details for incompatible schemas detected by discovery.", +"id": "GoogleCloudDataplexV1ActionIncompatibleDataSchema", +"properties": { +"existingSchema": { +"description": "The existing and expected schema of the table. The schema is provided as a JSON formatted structure listing columns and data types.", +"type": "string" +}, +"newSchema": { +"description": "The new and incompatible schema within the table. The schema is provided as a JSON formatted structured listing columns and data types.", +"type": "string" +}, +"sampledDataLocations": { +"description": "The list of data locations sampled and used for format/schema inference.", +"items": { +"type": "string" +}, +"type": "array" +}, +"schemaChange": { +"description": "Whether the action relates to a schema that is incompatible or modified.", +"enum": [ +"SCHEMA_CHANGE_UNSPECIFIED", +"INCOMPATIBLE", +"MODIFIED" +], +"enumDescriptions": [ +"Schema change unspecified.", +"Newly discovered schema is incompatible with existing schema.", +"Newly discovered schema has changed from existing schema for data in a curated zone." +], +"type": "string" +}, +"table": { +"description": "The name of the table containing invalid data.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ActionInvalidDataFormat": { +"description": "Action details for invalid or unsupported data files detected by discovery.", +"id": "GoogleCloudDataplexV1ActionInvalidDataFormat", +"properties": { +"expectedFormat": { +"description": "The expected data format of the entity.", +"type": "string" +}, +"newFormat": { +"description": "The new unexpected data format within the entity.", +"type": "string" +}, +"sampledDataLocations": { +"description": "The list of data locations sampled and used for format/schema inference.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ActionInvalidDataOrganization": { +"description": "Action details for invalid data arrangement.", +"id": "GoogleCloudDataplexV1ActionInvalidDataOrganization", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1ActionInvalidDataPartition": { +"description": "Action details for invalid or unsupported partitions detected by discovery.", +"id": "GoogleCloudDataplexV1ActionInvalidDataPartition", +"properties": { +"expectedStructure": { +"description": "The issue type of InvalidDataPartition.", +"enum": [ +"PARTITION_STRUCTURE_UNSPECIFIED", +"CONSISTENT_KEYS", +"HIVE_STYLE_KEYS" +], +"enumDescriptions": [ +"PartitionStructure unspecified.", +"Consistent hive-style partition definition (both raw and curated zone).", +"Hive style partition definition (curated zone only)." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ActionMissingData": { +"description": "Action details for absence of data detected by discovery.", +"id": "GoogleCloudDataplexV1ActionMissingData", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1ActionMissingResource": { +"description": "Action details for resource references in assets that cannot be located.", +"id": "GoogleCloudDataplexV1ActionMissingResource", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1ActionUnauthorizedResource": { +"description": "Action details for unauthorized resource issues raised to indicate that the service account associated with the lake instance is not authorized to access or manage the resource associated with an asset.", +"id": "GoogleCloudDataplexV1ActionUnauthorizedResource", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1Aspect": { +"description": "An aspect is a single piece of metadata describing an entry.", +"id": "GoogleCloudDataplexV1Aspect", +"properties": { +"aspectSource": { +"$ref": "GoogleCloudDataplexV1AspectSource", +"description": "Optional. Information related to the source system of the aspect." +}, +"aspectType": { +"description": "Output only. The resource name of the type used to create this Aspect.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the Aspect was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"data": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8).", +"type": "object" +}, +"path": { +"description": "Output only. The path in the entry under which the aspect is attached.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the Aspect was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AspectSource": { +"description": "Information related to the source system of the aspect.", +"id": "GoogleCloudDataplexV1AspectSource", +"properties": { +"createTime": { +"description": "The time the aspect was created in the source system.", +"format": "google-datetime", +"type": "string" +}, +"dataVersion": { +"description": "The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc).", +"type": "string" +}, +"updateTime": { +"description": "The time the aspect was last updated in the source system.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AspectType": { +"description": "AspectType is a template for creating Aspects, and represents the JSON-schema for a given Entry, for example, BigQuery Table Schema.", +"id": "GoogleCloudDataplexV1AspectType", +"properties": { +"authorization": { +"$ref": "GoogleCloudDataplexV1AspectTypeAuthorization", +"description": "Immutable. Defines the Authorization for this type." +}, +"createTime": { +"description": "Output only. The time when the AspectType was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the AspectType.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"etag": { +"description": "The service computes this checksum. The client may send it on update and delete requests to ensure it has an up-to-date value before proceeding.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the AspectType.", +"type": "object" +}, +"metadataTemplate": { +"$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplate", +"description": "Required. MetadataTemplate of the aspect." +}, +"name": { +"description": "Output only. The relative resource name of the AspectType, of the form: projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}.", +"readOnly": true, +"type": "string" +}, +"transferStatus": { +"description": "Output only. Denotes the transfer status of the Aspect Type. It is unspecified for Aspect Types created from Dataplex API.", +"enum": [ +"TRANSFER_STATUS_UNSPECIFIED", +"TRANSFER_STATUS_MIGRATED", +"TRANSFER_STATUS_TRANSFERRED" +], +"enumDescriptions": [ +"The default value. It is set for resources that were not subject for migration from Data Catalog service.", +"Indicates that a resource was migrated from Data Catalog service but it hasn't been transferred yet. In particular the resource cannot be updated from Dataplex API.", +"Indicates that a resource was transferred from Data Catalog service. The resource can only be updated from Dataplex API." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the AspectType. If you delete and recreate the AspectType with the same name, then this ID will be different.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the AspectType was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AspectTypeAuthorization": { +"description": "Autorization for an AspectType.", +"id": "GoogleCloudDataplexV1AspectTypeAuthorization", +"properties": { +"alternateUsePermission": { +"description": "Immutable. The IAM permission grantable on the EntryGroup to allow access to instantiate Aspects of Dataplex owned AspectTypes, only settable for Dataplex owned Types.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AspectTypeMetadataTemplate": { +"description": "MetadataTemplate definition for an AspectType.", +"id": "GoogleCloudDataplexV1AspectTypeMetadataTemplate", +"properties": { +"annotations": { +"$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplateAnnotations", +"description": "Optional. Specifies annotations on this field." +}, +"arrayItems": { +"$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplate", +"description": "Optional. If the type is array, set array_items. array_items can refer to a primitive field or a complex (record only) field. To specify a primitive field, you only need to set name and type in the nested MetadataTemplate. The recommended value for the name field is item, as this isn't used in the actual payload." +}, +"constraints": { +"$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplateConstraints", +"description": "Optional. Specifies the constraints on this field." +}, +"enumValues": { +"description": "Optional. The list of values for an enum type. You must define it if the type is enum.", +"items": { +"$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplateEnumValue" +}, +"type": "array" +}, +"index": { +"description": "Optional. Index is used to encode Template messages. The value of index can range between 1 and 2,147,483,647. Index must be unique within all fields in a Template. (Nested Templates can reuse indexes). Once a Template is defined, the index cannot be changed, because it identifies the field in the actual storage format. Index is a mandatory field, but it is optional for top level fields, and map/array \"values\" definitions.", +"format": "int32", +"type": "integer" +}, +"mapItems": { +"$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplate", +"description": "Optional. If the type is map, set map_items. map_items can refer to a primitive field or a complex (record only) field. To specify a primitive field, you only need to set name and type in the nested MetadataTemplate. The recommended value for the name field is item, as this isn't used in the actual payload." +}, +"name": { +"description": "Required. The name of the field.", +"type": "string" +}, +"recordFields": { +"description": "Optional. Field definition. You must specify it if the type is record. It defines the nested fields.", +"items": { +"$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplate" +}, +"type": "array" +}, +"type": { +"description": "Required. The datatype of this field. The following values are supported:Primitive types: string integer boolean double datetime. Must be of the format RFC3339 UTC \"Zulu\" (Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\").Complex types: enum array map record", +"type": "string" +}, +"typeId": { +"description": "Optional. You can use type id if this definition of the field needs to be reused later. The type id must be unique across the entire template. You can only specify it if the field type is record.", +"type": "string" +}, +"typeRef": { +"description": "Optional. A reference to another field definition (not an inline definition). The value must be equal to the value of an id field defined elsewhere in the MetadataTemplate. Only fields with record type can refer to other fields.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AspectTypeMetadataTemplateAnnotations": { +"description": "Definition of the annotations of a field.", +"id": "GoogleCloudDataplexV1AspectTypeMetadataTemplateAnnotations", +"properties": { +"deprecated": { +"description": "Optional. Marks a field as deprecated. You can include a deprecation message.", +"type": "string" +}, +"description": { +"description": "Optional. Description for a field.", +"type": "string" +}, +"displayName": { +"description": "Optional. Display name for a field.", +"type": "string" +}, +"displayOrder": { +"description": "Optional. Display order for a field. You can use this to reorder where a field is rendered.", +"format": "int32", +"type": "integer" +}, +"stringType": { +"description": "Optional. You can use String Type annotations to specify special meaning to string fields. The following values are supported: richText: The field must be interpreted as a rich text field. url: A fully qualified URL link. resource: A service qualified resource reference.", +"type": "string" +}, +"stringValues": { +"description": "Optional. Suggested hints for string fields. You can use them to suggest values to users through console.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AspectTypeMetadataTemplateConstraints": { +"description": "Definition of the constraints of a field.", +"id": "GoogleCloudDataplexV1AspectTypeMetadataTemplateConstraints", +"properties": { +"required": { +"description": "Optional. Marks this field as optional or required.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AspectTypeMetadataTemplateEnumValue": { +"description": "Definition of Enumvalue, to be used for enum fields.", +"id": "GoogleCloudDataplexV1AspectTypeMetadataTemplateEnumValue", +"properties": { +"deprecated": { +"description": "Optional. You can set this message if you need to deprecate an enum value.", +"type": "string" +}, +"index": { +"description": "Required. Index for the enum value. It can't be modified.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. Name of the enumvalue. This is the actual value that the aspect can contain.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Asset": { +"description": "An asset represents a cloud resource that is being managed within a lake as a member of a zone.", +"id": "GoogleCloudDataplexV1Asset", +"properties": { +"createTime": { +"description": "Output only. The time when the asset was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the asset.", +"type": "string" +}, +"discoverySpec": { +"$ref": "GoogleCloudDataplexV1AssetDiscoverySpec", +"description": "Optional. Specification of the discovery feature applied to data referenced by this asset. When this spec is left unset, the asset will use the spec set on the parent zone." +}, +"discoveryStatus": { +"$ref": "GoogleCloudDataplexV1AssetDiscoveryStatus", +"description": "Output only. Status of the discovery feature applied to data referenced by this asset.", +"readOnly": true +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User defined labels for the asset.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the asset, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", +"readOnly": true, +"type": "string" +}, +"resourceSpec": { +"$ref": "GoogleCloudDataplexV1AssetResourceSpec", +"description": "Required. Specification of the resource that is referenced by this asset." +}, +"resourceStatus": { +"$ref": "GoogleCloudDataplexV1AssetResourceStatus", +"description": "Output only. Status of the resource referenced by this asset.", +"readOnly": true +}, +"securityStatus": { +"$ref": "GoogleCloudDataplexV1AssetSecurityStatus", +"description": "Output only. Status of the security policy applied to resource referenced by this asset.", +"readOnly": true +}, +"state": { +"description": "Output only. Current state of the asset.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"ACTION_REQUIRED" +], +"enumDescriptions": [ +"State is not specified.", +"Resource is active, i.e., ready to use.", +"Resource is under creation.", +"Resource is under deletion.", +"Resource is active but has unresolved actions." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the asset. This ID will be different if the asset is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the asset was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AssetDiscoverySpec": { +"description": "Settings to manage the metadata discovery and publishing for an asset.", +"id": "GoogleCloudDataplexV1AssetDiscoverySpec", +"properties": { +"csvOptions": { +"$ref": "GoogleCloudDataplexV1AssetDiscoverySpecCsvOptions", +"description": "Optional. Configuration for CSV data." +}, +"enabled": { +"description": "Optional. Whether discovery is enabled.", +"type": "boolean" +}, +"excludePatterns": { +"description": "Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.", +"items": { +"type": "string" +}, +"type": "array" +}, +"includePatterns": { +"description": "Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.", +"items": { +"type": "string" +}, +"type": "array" +}, +"jsonOptions": { +"$ref": "GoogleCloudDataplexV1AssetDiscoverySpecJsonOptions", +"description": "Optional. Configuration for Json data." +}, +"schedule": { +"description": "Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AssetDiscoverySpecCsvOptions": { +"description": "Describe CSV and similar semi-structured data formats.", +"id": "GoogleCloudDataplexV1AssetDiscoverySpecCsvOptions", +"properties": { +"delimiter": { +"description": "Optional. The delimiter being used to separate values. This defaults to ','.", +"type": "string" +}, +"disableTypeInference": { +"description": "Optional. Whether to disable the inference of data type for CSV data. If true, all columns will be registered as strings.", +"type": "boolean" +}, +"encoding": { +"description": "Optional. The character encoding of the data. The default is UTF-8.", +"type": "string" +}, +"headerRows": { +"description": "Optional. The number of rows to interpret as header rows that should be skipped when reading data rows.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AssetDiscoverySpecJsonOptions": { +"description": "Describe JSON data format.", +"id": "GoogleCloudDataplexV1AssetDiscoverySpecJsonOptions", +"properties": { +"disableTypeInference": { +"description": "Optional. Whether to disable the inference of data type for Json data. If true, all columns will be registered as their primitive types (strings, number or boolean).", +"type": "boolean" +}, +"encoding": { +"description": "Optional. The character encoding of the data. The default is UTF-8.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AssetDiscoveryStatus": { +"description": "Status of discovery for an asset.", +"id": "GoogleCloudDataplexV1AssetDiscoveryStatus", +"properties": { +"lastRunDuration": { +"description": "The duration of the last discovery run.", +"format": "google-duration", +"type": "string" +}, +"lastRunTime": { +"description": "The start time of the last discovery run.", +"format": "google-datetime", +"type": "string" +}, +"message": { +"description": "Additional information about the current state.", +"type": "string" +}, +"state": { +"description": "The current status of the discovery feature.", +"enum": [ +"STATE_UNSPECIFIED", +"SCHEDULED", +"IN_PROGRESS", +"PAUSED", +"DISABLED" +], +"enumDescriptions": [ +"State is unspecified.", +"Discovery for the asset is scheduled.", +"Discovery for the asset is running.", +"Discovery for the asset is currently paused (e.g. due to a lack of available resources). It will be automatically resumed.", +"Discovery for the asset is disabled." +], +"type": "string" +}, +"stats": { +"$ref": "GoogleCloudDataplexV1AssetDiscoveryStatusStats", +"description": "Data Stats of the asset reported by discovery." +}, +"updateTime": { +"description": "Last update time of the status.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AssetDiscoveryStatusStats": { +"description": "The aggregated data statistics for the asset reported by discovery.", +"id": "GoogleCloudDataplexV1AssetDiscoveryStatusStats", +"properties": { +"dataItems": { +"description": "The count of data items within the referenced resource.", +"format": "int64", +"type": "string" +}, +"dataSize": { +"description": "The number of stored data bytes within the referenced resource.", +"format": "int64", +"type": "string" +}, +"filesets": { +"description": "The count of fileset entities within the referenced resource.", +"format": "int64", +"type": "string" +}, +"tables": { +"description": "The count of table entities within the referenced resource.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AssetResourceSpec": { +"description": "Identifies the cloud resource that is referenced by this asset.", +"id": "GoogleCloudDataplexV1AssetResourceSpec", +"properties": { +"name": { +"description": "Immutable. Relative name of the cloud resource that contains the data that is being managed within a lake. For example: projects/{project_number}/buckets/{bucket_id} projects/{project_number}/datasets/{dataset_id}", +"type": "string" +}, +"readAccessMode": { +"description": "Optional. Determines how read permissions are handled for each asset and their associated tables. Only available to storage buckets assets.", +"enum": [ +"ACCESS_MODE_UNSPECIFIED", +"DIRECT", +"MANAGED" +], +"enumDescriptions": [ +"Access mode unspecified.", +"Default. Data is accessed directly using storage APIs.", +"Data is accessed through a managed interface using BigQuery APIs." +], +"type": "string" +}, +"type": { +"description": "Required. Immutable. Type of resource.", +"enum": [ +"TYPE_UNSPECIFIED", +"STORAGE_BUCKET", +"BIGQUERY_DATASET" +], +"enumDescriptions": [ +"Type not specified.", +"Cloud Storage bucket.", +"BigQuery dataset." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AssetResourceStatus": { +"description": "Status of the resource referenced by an asset.", +"id": "GoogleCloudDataplexV1AssetResourceStatus", +"properties": { +"managedAccessIdentity": { +"description": "Output only. Service account associated with the BigQuery Connection.", +"readOnly": true, +"type": "string" +}, +"message": { +"description": "Additional information about the current state.", +"type": "string" +}, +"state": { +"description": "The current state of the managed resource.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"ERROR" +], +"enumDescriptions": [ +"State unspecified.", +"Resource does not have any errors.", +"Resource has errors." +], +"type": "string" +}, +"updateTime": { +"description": "Last update time of the status.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AssetSecurityStatus": { +"description": "Security policy status of the asset. Data security policy, i.e., readers, writers & owners, should be specified in the lake/zone/asset IAM policy.", +"id": "GoogleCloudDataplexV1AssetSecurityStatus", +"properties": { +"message": { +"description": "Additional information about the current state.", +"type": "string" +}, +"state": { +"description": "The current state of the security policy applied to the attached resource.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"APPLYING", +"ERROR" +], +"enumDescriptions": [ +"State unspecified.", +"Security policy has been successfully applied to the attached resource.", +"Security policy is in the process of being applied to the attached resource.", +"Security policy could not be applied to the attached resource due to errors." +], +"type": "string" +}, +"updateTime": { +"description": "Last update time of the status.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1AssetStatus": { +"description": "Aggregated status of the underlying assets of a lake or zone.", +"id": "GoogleCloudDataplexV1AssetStatus", +"properties": { +"activeAssets": { +"description": "Number of active assets.", +"format": "int32", +"type": "integer" +}, +"securityPolicyApplyingAssets": { +"description": "Number of assets that are in process of updating the security policy on attached resources.", +"format": "int32", +"type": "integer" +}, +"updateTime": { +"description": "Last update time of the status.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1CancelJobRequest": { +"description": "Cancel task jobs.", +"id": "GoogleCloudDataplexV1CancelJobRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1CancelMetadataJobRequest": { +"description": "Cancel metadata job request.", +"id": "GoogleCloudDataplexV1CancelMetadataJobRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1Content": { +"description": "Content represents a user-visible notebook or a sql script", +"id": "GoogleCloudDataplexV1Content", +"properties": { +"createTime": { +"description": "Output only. Content creation time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataText": { +"description": "Required. Content data in string format.", +"type": "string" +}, +"description": { +"description": "Optional. Description of the content.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User defined labels for the content.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the content, of the form: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", +"readOnly": true, +"type": "string" +}, +"notebook": { +"$ref": "GoogleCloudDataplexV1ContentNotebook", +"description": "Notebook related configurations." +}, +"path": { +"description": "Required. The path for the Content file, represented as directory structure. Unique within a lake. Limited to alphanumerics, hyphens, underscores, dots and slashes.", +"type": "string" +}, +"sqlScript": { +"$ref": "GoogleCloudDataplexV1ContentSqlScript", +"description": "Sql Script related configurations." +}, +"uid": { +"description": "Output only. System generated globally unique ID for the content. This ID will be different if the content is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the content was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ContentNotebook": { +"description": "Configuration for Notebook content.", +"id": "GoogleCloudDataplexV1ContentNotebook", +"properties": { +"kernelType": { +"description": "Required. Kernel Type of the notebook.", +"enum": [ +"KERNEL_TYPE_UNSPECIFIED", +"PYTHON3" +], +"enumDescriptions": [ +"Kernel Type unspecified.", +"Python 3 Kernel." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ContentSqlScript": { +"description": "Configuration for the Sql Script content.", +"id": "GoogleCloudDataplexV1ContentSqlScript", +"properties": { +"engine": { +"description": "Required. Query Engine to be used for the Sql Query.", +"enum": [ +"QUERY_ENGINE_UNSPECIFIED", +"SPARK" +], +"enumDescriptions": [ +"Value was unspecified.", +"Spark SQL Query." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataAccessSpec": { +"description": "DataAccessSpec holds the access control configuration to be enforced on data stored within resources (eg: rows, columns in BigQuery Tables). When associated with data, the data is only accessible to principals explicitly granted access through the DataAccessSpec. Principals with access to the containing resource are not implicitly granted access.", +"id": "GoogleCloudDataplexV1DataAccessSpec", +"properties": { +"readers": { +"description": "Optional. The format of strings follows the pattern followed by IAM in the bindings. user:{email}, serviceAccount:{email} group:{email}. The set of principals to be granted reader role on data stored within resources.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataAttribute": { +"description": "Denotes one dataAttribute in a dataTaxonomy, for example, PII. DataAttribute resources can be defined in a hierarchy. A single dataAttribute resource can contain specs of multiple types PII - ResourceAccessSpec : - readers :foo@bar.com - DataAccessSpec : - readers :bar@foo.com ", +"id": "GoogleCloudDataplexV1DataAttribute", +"properties": { +"attributeCount": { +"description": "Output only. The number of child attributes present for this attribute.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"createTime": { +"description": "Output only. The time when the DataAttribute was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataAccessSpec": { +"$ref": "GoogleCloudDataplexV1DataAccessSpec", +"description": "Optional. Specified when applied to data stored on the resource (eg: rows, columns in BigQuery Tables)." +}, +"description": { +"description": "Optional. Description of the DataAttribute.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"etag": { +"description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the DataAttribute.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the dataAttribute, of the form: projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}.", +"readOnly": true, +"type": "string" +}, +"parentId": { +"description": "Optional. The ID of the parent DataAttribute resource, should belong to the same data taxonomy. Circular dependency in parent chain is not valid. Maximum depth of the hierarchy allowed is 4. a -> b -> c -> d -> e, depth = 4", +"type": "string" +}, +"resourceAccessSpec": { +"$ref": "GoogleCloudDataplexV1ResourceAccessSpec", +"description": "Optional. Specified when applied to a resource (eg: Cloud Storage bucket, BigQuery dataset, BigQuery table)." +}, +"uid": { +"description": "Output only. System generated globally unique ID for the DataAttribute. This ID will be different if the DataAttribute is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the DataAttribute was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataAttributeBinding": { +"description": "DataAttributeBinding represents binding of attributes to resources. Eg: Bind 'CustomerInfo' entity with 'PII' attribute.", +"id": "GoogleCloudDataplexV1DataAttributeBinding", +"properties": { +"attributes": { +"description": "Optional. List of attributes to be associated with the resource, provided in the form: projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}", +"items": { +"type": "string" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The time when the DataAttributeBinding was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the DataAttributeBinding.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"etag": { +"description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Etags must be used when calling the DeleteDataAttributeBinding and the UpdateDataAttributeBinding method.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the DataAttributeBinding.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the Data Attribute Binding, of the form: projects/{project_number}/locations/{location}/dataAttributeBindings/{data_attribute_binding_id}", +"readOnly": true, +"type": "string" +}, +"paths": { +"description": "Optional. The list of paths for items within the associated resource (eg. columns and partitions within a table) along with attribute bindings.", +"items": { +"$ref": "GoogleCloudDataplexV1DataAttributeBindingPath" +}, +"type": "array" +}, +"resource": { +"description": "Optional. Immutable. The resource name of the resource that is associated to attributes. Presently, only entity resource is supported in the form: projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity_id} Must belong in the same project and region as the attribute binding, and there can only exist one active binding for a resource.", +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the DataAttributeBinding. This ID will be different if the DataAttributeBinding is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the DataAttributeBinding was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataAttributeBindingPath": { +"description": "Represents a subresource of the given resource, and associated bindings with it. Currently supported subresources are column and partition schema fields within a table.", +"id": "GoogleCloudDataplexV1DataAttributeBindingPath", +"properties": { +"attributes": { +"description": "Optional. List of attributes to be associated with the path of the resource, provided in the form: projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Required. The name identifier of the path. Nested columns should be of the form: 'address.city'.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataDiscoveryResult": { +"description": "The output of a data discovery scan.", +"id": "GoogleCloudDataplexV1DataDiscoveryResult", +"properties": { +"bigqueryPublishing": { +"$ref": "GoogleCloudDataplexV1DataDiscoveryResultBigQueryPublishing", +"description": "Output only. Configuration for metadata publishing.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataDiscoveryResultBigQueryPublishing": { +"description": "Describes BigQuery publishing configurations.", +"id": "GoogleCloudDataplexV1DataDiscoveryResultBigQueryPublishing", +"properties": { +"dataset": { +"description": "Output only. The BigQuery dataset to publish to. It takes the form projects/{project_id}/datasets/{dataset_id}. If not set, the service creates a default publishing dataset.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataDiscoverySpec": { +"description": "Spec for a data discovery scan.", +"id": "GoogleCloudDataplexV1DataDiscoverySpec", +"properties": { +"bigqueryPublishingConfig": { +"$ref": "GoogleCloudDataplexV1DataDiscoverySpecBigQueryPublishingConfig", +"description": "Optional. Configuration for metadata publishing." +}, +"storageConfig": { +"$ref": "GoogleCloudDataplexV1DataDiscoverySpecStorageConfig", +"description": "Cloud Storage related configurations." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataDiscoverySpecBigQueryPublishingConfig": { +"description": "Describes BigQuery publishing configurations.", +"id": "GoogleCloudDataplexV1DataDiscoverySpecBigQueryPublishingConfig", +"properties": { +"connection": { +"description": "Optional. The BigQuery connection used to create BigLake tables. Must be in the form projects/{project_id}/locations/{location_id}/connections/{connection_id}", +"type": "string" +}, +"tableType": { +"description": "Optional. Determines whether to publish discovered tables as BigLake external tables or non-BigLake external tables.", +"enum": [ +"TABLE_TYPE_UNSPECIFIED", +"EXTERNAL", +"BIGLAKE" +], +"enumDescriptions": [ +"Table type unspecified.", +"Default. Discovered tables are published as BigQuery external tables whose data is accessed using the credentials of the user querying the table.", +"Discovered tables are published as BigLake external tables whose data is accessed using the credentials of the associated BigQuery connection." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataDiscoverySpecStorageConfig": { +"description": "Configurations related to Cloud Storage as the data source.", +"id": "GoogleCloudDataplexV1DataDiscoverySpecStorageConfig", +"properties": { +"csvOptions": { +"$ref": "GoogleCloudDataplexV1DataDiscoverySpecStorageConfigCsvOptions", +"description": "Optional. Configuration for CSV data." +}, +"excludePatterns": { +"description": "Optional. Defines the data to exclude during discovery. Provide a list of patterns that identify the data to exclude. For Cloud Storage bucket assets, these patterns are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these patterns are interpreted as patterns to match table names.", +"items": { +"type": "string" +}, +"type": "array" +}, +"includePatterns": { +"description": "Optional. Defines the data to include during discovery when only a subset of the data should be considered. Provide a list of patterns that identify the data to include. For Cloud Storage bucket assets, these patterns are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these patterns are interpreted as patterns to match table names.", +"items": { +"type": "string" +}, +"type": "array" +}, +"jsonOptions": { +"$ref": "GoogleCloudDataplexV1DataDiscoverySpecStorageConfigJsonOptions", +"description": "Optional. Configuration for JSON data." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataDiscoverySpecStorageConfigCsvOptions": { +"description": "Describes CSV and similar semi-structured data formats.", +"id": "GoogleCloudDataplexV1DataDiscoverySpecStorageConfigCsvOptions", +"properties": { +"delimiter": { +"description": "Optional. The delimiter that is used to separate values. The default is , (comma).", +"type": "string" +}, +"encoding": { +"description": "Optional. The character encoding of the data. The default is UTF-8.", +"type": "string" +}, +"headerRows": { +"description": "Optional. The number of rows to interpret as header rows that should be skipped when reading data rows.", +"format": "int32", +"type": "integer" +}, +"quote": { +"description": "Optional. The character used to quote column values. Accepts \" (double quotation mark) or ' (single quotation mark). If unspecified, defaults to \" (double quotation mark).", +"type": "string" +}, +"typeInferenceDisabled": { +"description": "Optional. Whether to disable the inference of data types for CSV data. If true, all columns are registered as strings.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataDiscoverySpecStorageConfigJsonOptions": { +"description": "Describes JSON data format.", +"id": "GoogleCloudDataplexV1DataDiscoverySpecStorageConfigJsonOptions", +"properties": { +"encoding": { +"description": "Optional. The character encoding of the data. The default is UTF-8.", +"type": "string" +}, +"typeInferenceDisabled": { +"description": "Optional. Whether to disable the inference of data types for JSON data. If true, all columns are registered as their primitive types (strings, number, or boolean).", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResult": { +"description": "DataProfileResult defines the output of DataProfileScan. Each field of the table will have field type specific profile result.", +"id": "GoogleCloudDataplexV1DataProfileResult", +"properties": { +"postScanActionsResult": { +"$ref": "GoogleCloudDataplexV1DataProfileResultPostScanActionsResult", +"description": "Output only. The result of post scan actions.", +"readOnly": true +}, +"profile": { +"$ref": "GoogleCloudDataplexV1DataProfileResultProfile", +"description": "The profile information per field." +}, +"rowCount": { +"description": "The count of rows scanned.", +"format": "int64", +"type": "string" +}, +"scannedData": { +"$ref": "GoogleCloudDataplexV1ScannedData", +"description": "The data scanned for this result." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResultPostScanActionsResult": { +"description": "The result of post scan actions of DataProfileScan job.", +"id": "GoogleCloudDataplexV1DataProfileResultPostScanActionsResult", +"properties": { +"bigqueryExportResult": { +"$ref": "GoogleCloudDataplexV1DataProfileResultPostScanActionsResultBigQueryExportResult", +"description": "Output only. The result of BigQuery export post scan action.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResultPostScanActionsResultBigQueryExportResult": { +"description": "The result of BigQuery export post scan action.", +"id": "GoogleCloudDataplexV1DataProfileResultPostScanActionsResultBigQueryExportResult", +"properties": { +"message": { +"description": "Output only. Additional information about the BigQuery exporting.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Execution state for the BigQuery exporting.", +"enum": [ +"STATE_UNSPECIFIED", +"SUCCEEDED", +"FAILED", +"SKIPPED" +], +"enumDescriptions": [ +"The exporting state is unspecified.", +"The exporting completed successfully.", +"The exporting is no longer running due to an error.", +"The exporting is skipped due to no valid scan result to export (usually caused by scan failed)." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResultProfile": { +"description": "Contains name, type, mode and field type specific profile information.", +"id": "GoogleCloudDataplexV1DataProfileResultProfile", +"properties": { +"fields": { +"description": "List of fields with structural and profile information for each field.", +"items": { +"$ref": "GoogleCloudDataplexV1DataProfileResultProfileField" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResultProfileField": { +"description": "A field within a table.", +"id": "GoogleCloudDataplexV1DataProfileResultProfileField", +"properties": { +"mode": { +"description": "The mode of the field. Possible values include: REQUIRED, if it is a required field. NULLABLE, if it is an optional field. REPEATED, if it is a repeated field.", +"type": "string" +}, +"name": { +"description": "The name of the field.", +"type": "string" +}, +"profile": { +"$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo", +"description": "Profile information for the corresponding field." +}, +"type": { +"description": "The data type retrieved from the schema of the data source. For instance, for a BigQuery native table, it is the BigQuery Table Schema (https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#tablefieldschema). For a Dataplex Entity, it is the Entity Schema (https://cloud.google.com/dataplex/docs/reference/rpc/google.cloud.dataplex.v1#type_3).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo": { +"description": "The profile information for each field type.", +"id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo", +"properties": { +"distinctRatio": { +"description": "Ratio of rows with distinct values against total scanned rows. Not available for complex non-groupable field type, including RECORD, ARRAY, GEOGRAPHY, and JSON, as well as fields with REPEATABLE mode.", +"format": "double", +"type": "number" +}, +"doubleProfile": { +"$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo", +"description": "Double type field information." +}, +"integerProfile": { +"$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo", +"description": "Integer type field information." +}, +"nullRatio": { +"description": "Ratio of rows with null value against total scanned rows.", +"format": "double", +"type": "number" +}, +"stringProfile": { +"$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo", +"description": "String type field information." +}, +"topNValues": { +"description": "The list of top N non-null values, frequency and ratio with which they occur in the scanned data. N is 10 or equal to the number of distinct values in the field, whichever is smaller. Not available for complex non-groupable field type, including RECORD, ARRAY, GEOGRAPHY, and JSON, as well as fields with REPEATABLE mode.", +"items": { +"$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo": { +"description": "The profile information for a double type field.", +"id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo", +"properties": { +"average": { +"description": "Average of non-null values in the scanned data. NaN, if the field has a NaN.", +"format": "double", +"type": "number" +}, +"max": { +"description": "Maximum of non-null values in the scanned data. NaN, if the field has a NaN.", +"format": "double", +"type": "number" +}, +"min": { +"description": "Minimum of non-null values in the scanned data. NaN, if the field has a NaN.", +"format": "double", +"type": "number" +}, +"quartiles": { +"description": "A quartile divides the number of data points into four parts, or quarters, of more-or-less equal size. Three main quartiles used are: The first quartile (Q1) splits off the lowest 25% of data from the highest 75%. It is also known as the lower or 25th empirical quartile, as 25% of the data is below this point. The second quartile (Q2) is the median of a data set. So, 50% of the data lies below this point. The third quartile (Q3) splits off the highest 25% of data from the lowest 75%. It is known as the upper or 75th empirical quartile, as 75% of the data lies below this point. Here, the quartiles is provided as an ordered list of quartile values for the scanned data, occurring in order Q1, median, Q3.", +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +}, +"standardDeviation": { +"description": "Standard deviation of non-null values in the scanned data. NaN, if the field has a NaN.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo": { +"description": "The profile information for an integer type field.", +"id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo", +"properties": { +"average": { +"description": "Average of non-null values in the scanned data. NaN, if the field has a NaN.", +"format": "double", +"type": "number" +}, +"max": { +"description": "Maximum of non-null values in the scanned data. NaN, if the field has a NaN.", +"format": "int64", +"type": "string" +}, +"min": { +"description": "Minimum of non-null values in the scanned data. NaN, if the field has a NaN.", +"format": "int64", +"type": "string" +}, +"quartiles": { +"description": "A quartile divides the number of data points into four parts, or quarters, of more-or-less equal size. Three main quartiles used are: The first quartile (Q1) splits off the lowest 25% of data from the highest 75%. It is also known as the lower or 25th empirical quartile, as 25% of the data is below this point. The second quartile (Q2) is the median of a data set. So, 50% of the data lies below this point. The third quartile (Q3) splits off the highest 25% of data from the lowest 75%. It is known as the upper or 75th empirical quartile, as 75% of the data lies below this point. Here, the quartiles is provided as an ordered list of approximate quartile values for the scanned data, occurring in order Q1, median, Q3.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"standardDeviation": { +"description": "Standard deviation of non-null values in the scanned data. NaN, if the field has a NaN.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo": { +"description": "The profile information for a string type field.", +"id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo", +"properties": { +"averageLength": { +"description": "Average length of non-null values in the scanned data.", +"format": "double", +"type": "number" +}, +"maxLength": { +"description": "Maximum length of non-null values in the scanned data.", +"format": "int64", +"type": "string" +}, +"minLength": { +"description": "Minimum length of non-null values in the scanned data.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue": { +"description": "Top N non-null values in the scanned data.", +"id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue", +"properties": { +"count": { +"description": "Count of the corresponding value in the scanned data.", +"format": "int64", +"type": "string" +}, +"ratio": { +"description": "Ratio of the corresponding value in the field against the total number of rows in the scanned data.", +"format": "double", +"type": "number" +}, +"value": { +"description": "String value of a top N non-null value.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileSpec": { +"description": "DataProfileScan related setting.", +"id": "GoogleCloudDataplexV1DataProfileSpec", +"properties": { +"excludeFields": { +"$ref": "GoogleCloudDataplexV1DataProfileSpecSelectedFields", +"description": "Optional. The fields to exclude from data profile.If specified, the fields will be excluded from data profile, regardless of include_fields value." +}, +"includeFields": { +"$ref": "GoogleCloudDataplexV1DataProfileSpecSelectedFields", +"description": "Optional. The fields to include in data profile.If not specified, all fields at the time of profile scan job execution are included, except for ones listed in exclude_fields." +}, +"postScanActions": { +"$ref": "GoogleCloudDataplexV1DataProfileSpecPostScanActions", +"description": "Optional. Actions to take upon job completion.." +}, +"rowFilter": { +"description": "Optional. A filter applied to all rows in a single DataScan job. The filter needs to be a valid SQL expression for a WHERE clause in BigQuery standard SQL syntax. Example: col1 >= 0 AND col2 < 10", +"type": "string" +}, +"samplingPercent": { +"description": "Optional. The percentage of the records to be selected from the dataset for DataScan. Value can range between 0.0 and 100.0 with up to 3 significant decimal digits. Sampling is not applied if sampling_percent is not specified, 0 or 100.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileSpecPostScanActions": { +"description": "The configuration of post scan actions of DataProfileScan job.", +"id": "GoogleCloudDataplexV1DataProfileSpecPostScanActions", +"properties": { +"bigqueryExport": { +"$ref": "GoogleCloudDataplexV1DataProfileSpecPostScanActionsBigQueryExport", +"description": "Optional. If set, results will be exported to the provided BigQuery table." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileSpecPostScanActionsBigQueryExport": { +"description": "The configuration of BigQuery export post scan action.", +"id": "GoogleCloudDataplexV1DataProfileSpecPostScanActionsBigQueryExport", +"properties": { +"resultsTable": { +"description": "Optional. The BigQuery table to export DataProfileScan results to. Format: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataProfileSpecSelectedFields": { +"description": "The specification for fields to include or exclude in data profile scan.", +"id": "GoogleCloudDataplexV1DataProfileSpecSelectedFields", +"properties": { +"fieldNames": { +"description": "Optional. Expected input is a list of fully qualified names of fields as in the schema.Only top-level field names for nested fields are supported. For instance, if 'x' is of nested field type, listing 'x' is supported but 'x.y.z' is not supported. Here 'y' and 'y.z' are nested fields of 'x'.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityColumnResult": { +"description": "DataQualityColumnResult provides a more detailed, per-column view of the results.", +"id": "GoogleCloudDataplexV1DataQualityColumnResult", +"properties": { +"column": { +"description": "Output only. The column specified in the DataQualityRule.", +"readOnly": true, +"type": "string" +}, +"score": { +"description": "Output only. The column-level data quality score for this data scan job if and only if the 'column' field is set.The score ranges between between 0, 100 (up to two decimal points).", +"format": "float", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityDimension": { +"description": "A dimension captures data quality intent about a defined subset of the rules specified.", +"id": "GoogleCloudDataplexV1DataQualityDimension", +"properties": { +"name": { +"description": "The dimension name a rule belongs to. Supported dimensions are \"COMPLETENESS\", \"ACCURACY\", \"CONSISTENCY\", \"VALIDITY\", \"UNIQUENESS\", \"FRESHNESS\", \"VOLUME\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityDimensionResult": { +"description": "DataQualityDimensionResult provides a more detailed, per-dimension view of the results.", +"id": "GoogleCloudDataplexV1DataQualityDimensionResult", +"properties": { +"dimension": { +"$ref": "GoogleCloudDataplexV1DataQualityDimension", +"description": "Output only. The dimension config specified in the DataQualitySpec, as is.", +"readOnly": true +}, +"passed": { +"description": "Whether the dimension passed or failed.", +"type": "boolean" +}, +"score": { +"description": "Output only. The dimension-level data quality score for this data scan job if and only if the 'dimension' field is set.The score ranges between 0, 100 (up to two decimal points).", +"format": "float", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityResult": { +"description": "The output of a DataQualityScan.", +"id": "GoogleCloudDataplexV1DataQualityResult", +"properties": { +"columns": { +"description": "Output only. A list of results at the column level.A column will have a corresponding DataQualityColumnResult if and only if there is at least one rule with the 'column' field set to it.", +"items": { +"$ref": "GoogleCloudDataplexV1DataQualityColumnResult" +}, +"readOnly": true, +"type": "array" +}, +"dimensions": { +"description": "A list of results at the dimension level.A dimension will have a corresponding DataQualityDimensionResult if and only if there is at least one rule with the 'dimension' field set to it.", +"items": { +"$ref": "GoogleCloudDataplexV1DataQualityDimensionResult" +}, +"type": "array" +}, +"passed": { +"description": "Overall data quality result -- true if all rules passed.", +"type": "boolean" +}, +"postScanActionsResult": { +"$ref": "GoogleCloudDataplexV1DataQualityResultPostScanActionsResult", +"description": "Output only. The result of post scan actions.", +"readOnly": true +}, +"rowCount": { +"description": "The count of rows processed.", +"format": "int64", +"type": "string" +}, +"rules": { +"description": "A list of all the rules in a job, and their results.", +"items": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleResult" +}, +"type": "array" +}, +"scannedData": { +"$ref": "GoogleCloudDataplexV1ScannedData", +"description": "The data scanned for this result." +}, +"score": { +"description": "Output only. The overall data quality score.The score ranges between 0, 100 (up to two decimal points).", +"format": "float", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityResultPostScanActionsResult": { +"description": "The result of post scan actions of DataQualityScan job.", +"id": "GoogleCloudDataplexV1DataQualityResultPostScanActionsResult", +"properties": { +"bigqueryExportResult": { +"$ref": "GoogleCloudDataplexV1DataQualityResultPostScanActionsResultBigQueryExportResult", +"description": "Output only. The result of BigQuery export post scan action.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityResultPostScanActionsResultBigQueryExportResult": { +"description": "The result of BigQuery export post scan action.", +"id": "GoogleCloudDataplexV1DataQualityResultPostScanActionsResultBigQueryExportResult", +"properties": { +"message": { +"description": "Output only. Additional information about the BigQuery exporting.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Execution state for the BigQuery exporting.", +"enum": [ +"STATE_UNSPECIFIED", +"SUCCEEDED", +"FAILED", +"SKIPPED" +], +"enumDescriptions": [ +"The exporting state is unspecified.", +"The exporting completed successfully.", +"The exporting is no longer running due to an error.", +"The exporting is skipped due to no valid scan result to export (usually caused by scan failed)." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRule": { +"description": "A rule captures data quality intent about a data source.", +"id": "GoogleCloudDataplexV1DataQualityRule", +"properties": { +"column": { +"description": "Optional. The unnested column which this rule is evaluated against.", +"type": "string" +}, +"description": { +"description": "Optional. Description of the rule. The maximum length is 1,024 characters.", +"type": "string" +}, +"dimension": { +"description": "Required. The dimension a rule belongs to. Results are also aggregated at the dimension level. Supported dimensions are \"COMPLETENESS\", \"ACCURACY\", \"CONSISTENCY\", \"VALIDITY\", \"UNIQUENESS\", \"FRESHNESS\", \"VOLUME\"", +"type": "string" +}, +"ignoreNull": { +"description": "Optional. Rows with null values will automatically fail a rule, unless ignore_null is true. In that case, such null rows are trivially considered passing.This field is only valid for the following type of rules: RangeExpectation RegexExpectation SetExpectation UniquenessExpectation", +"type": "boolean" +}, +"name": { +"description": "Optional. A mutable name for the rule. The name must contain only letters (a-z, A-Z), numbers (0-9), or hyphens (-). The maximum length is 63 characters. Must start with a letter. Must end with a number or a letter.", +"type": "string" +}, +"nonNullExpectation": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleNonNullExpectation", +"description": "Row-level rule which evaluates whether each column value is null." +}, +"rangeExpectation": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleRangeExpectation", +"description": "Row-level rule which evaluates whether each column value lies between a specified range." +}, +"regexExpectation": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleRegexExpectation", +"description": "Row-level rule which evaluates whether each column value matches a specified regex." +}, +"rowConditionExpectation": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation", +"description": "Row-level rule which evaluates whether each row in a table passes the specified condition." +}, +"setExpectation": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleSetExpectation", +"description": "Row-level rule which evaluates whether each column value is contained by a specified set." +}, +"sqlAssertion": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleSqlAssertion", +"description": "Aggregate rule which evaluates the number of rows returned for the provided statement. If any rows are returned, this rule fails." +}, +"statisticRangeExpectation": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation", +"description": "Aggregate rule which evaluates whether the column aggregate statistic lies between a specified range." +}, +"suspended": { +"description": "Optional. Whether the Rule is active or suspended. Default is false.", +"type": "boolean" +}, +"tableConditionExpectation": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation", +"description": "Aggregate rule which evaluates whether the provided expression is true for a table." +}, +"threshold": { +"description": "Optional. The minimum ratio of passing_rows / total_rows required to pass this rule, with a range of 0.0, 1.0.0 indicates default value (i.e. 1.0).This field is only valid for row-level type rules.", +"format": "double", +"type": "number" +}, +"uniquenessExpectation": { +"$ref": "GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation", +"description": "Row-level rule which evaluates whether each column value is unique." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleNonNullExpectation": { +"description": "Evaluates whether each column value is null.", +"id": "GoogleCloudDataplexV1DataQualityRuleNonNullExpectation", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleRangeExpectation": { +"description": "Evaluates whether each column value lies between a specified range.", +"id": "GoogleCloudDataplexV1DataQualityRuleRangeExpectation", +"properties": { +"maxValue": { +"description": "Optional. The maximum column value allowed for a row to pass this validation. At least one of min_value and max_value need to be provided.", +"type": "string" +}, +"minValue": { +"description": "Optional. The minimum column value allowed for a row to pass this validation. At least one of min_value and max_value need to be provided.", +"type": "string" +}, +"strictMaxEnabled": { +"description": "Optional. Whether each value needs to be strictly lesser than ('<') the maximum, or if equality is allowed.Only relevant if a max_value has been defined. Default = false.", +"type": "boolean" +}, +"strictMinEnabled": { +"description": "Optional. Whether each value needs to be strictly greater than ('>') the minimum, or if equality is allowed.Only relevant if a min_value has been defined. Default = false.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleRegexExpectation": { +"description": "Evaluates whether each column value matches a specified regex.", +"id": "GoogleCloudDataplexV1DataQualityRuleRegexExpectation", +"properties": { +"regex": { +"description": "Optional. A regular expression the column value is expected to match.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleResult": { +"description": "DataQualityRuleResult provides a more detailed, per-rule view of the results.", +"id": "GoogleCloudDataplexV1DataQualityRuleResult", +"properties": { +"assertionRowCount": { +"description": "Output only. The number of rows returned by the SQL statement in a SQL assertion rule.This field is only valid for SQL assertion rules.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"evaluatedCount": { +"description": "The number of rows a rule was evaluated against.This field is only valid for row-level type rules.Evaluated count can be configured to either include all rows (default) - with null rows automatically failing rule evaluation, or exclude null rows from the evaluated_count, by setting ignore_nulls = true.", +"format": "int64", +"type": "string" +}, +"failingRowsQuery": { +"description": "The query to find rows that did not pass this rule.This field is only valid for row-level type rules.", +"type": "string" +}, +"nullCount": { +"description": "The number of rows with null values in the specified column.", +"format": "int64", +"type": "string" +}, +"passRatio": { +"description": "The ratio of passed_count / evaluated_count.This field is only valid for row-level type rules.", +"format": "double", +"type": "number" +}, +"passed": { +"description": "Whether the rule passed or failed.", +"type": "boolean" +}, +"passedCount": { +"description": "The number of rows which passed a rule evaluation.This field is only valid for row-level type rules.", +"format": "int64", +"type": "string" +}, +"rule": { +"$ref": "GoogleCloudDataplexV1DataQualityRule", +"description": "The rule specified in the DataQualitySpec, as is." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation": { +"description": "Evaluates whether each row passes the specified condition.The SQL expression needs to use BigQuery standard SQL syntax and should produce a boolean value per row as the result.Example: col1 >= 0 AND col2 < 10", +"id": "GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation", +"properties": { +"sqlExpression": { +"description": "Optional. The SQL expression.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleSetExpectation": { +"description": "Evaluates whether each column value is contained by a specified set.", +"id": "GoogleCloudDataplexV1DataQualityRuleSetExpectation", +"properties": { +"values": { +"description": "Optional. Expected values for the column value.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleSqlAssertion": { +"description": "A SQL statement that is evaluated to return rows that match an invalid state. If any rows are are returned, this rule fails.The SQL statement must use BigQuery standard SQL syntax, and must not contain any semicolons.You can use the data reference parameter ${data()} to reference the source table with all of its precondition filters applied. Examples of precondition filters include row filters, incremental data filters, and sampling. For more information, see Data reference parameter (https://cloud.google.com/dataplex/docs/auto-data-quality-overview#data-reference-parameter).Example: SELECT * FROM ${data()} WHERE price < 0", +"id": "GoogleCloudDataplexV1DataQualityRuleSqlAssertion", +"properties": { +"sqlStatement": { +"description": "Optional. The SQL statement.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation": { +"description": "Evaluates whether the column aggregate statistic lies between a specified range.", +"id": "GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation", +"properties": { +"maxValue": { +"description": "Optional. The maximum column statistic value allowed for a row to pass this validation.At least one of min_value and max_value need to be provided.", +"type": "string" +}, +"minValue": { +"description": "Optional. The minimum column statistic value allowed for a row to pass this validation.At least one of min_value and max_value need to be provided.", +"type": "string" +}, +"statistic": { +"description": "Optional. The aggregate metric to evaluate.", +"enum": [ +"STATISTIC_UNDEFINED", +"MEAN", +"MIN", +"MAX" +], +"enumDescriptions": [ +"Unspecified statistic type", +"Evaluate the column mean", +"Evaluate the column min", +"Evaluate the column max" +], +"type": "string" +}, +"strictMaxEnabled": { +"description": "Optional. Whether column statistic needs to be strictly lesser than ('<') the maximum, or if equality is allowed.Only relevant if a max_value has been defined. Default = false.", +"type": "boolean" +}, +"strictMinEnabled": { +"description": "Optional. Whether column statistic needs to be strictly greater than ('>') the minimum, or if equality is allowed.Only relevant if a min_value has been defined. Default = false.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation": { +"description": "Evaluates whether the provided expression is true.The SQL expression needs to use BigQuery standard SQL syntax and should produce a scalar boolean result.Example: MIN(col1) >= 0", +"id": "GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation", +"properties": { +"sqlExpression": { +"description": "Optional. The SQL expression.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation": { +"description": "Evaluates whether the column has duplicates.", +"id": "GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualityScanRuleResult": { +"description": "Information about the result of a data quality rule for data quality scan. The monitored resource is 'DataScan'.", +"id": "GoogleCloudDataplexV1DataQualityScanRuleResult", +"properties": { +"assertionRowCount": { +"description": "The number of rows returned by the SQL statement in a SQL assertion rule. This field is only valid for SQL assertion rules.", +"format": "int64", +"type": "string" +}, +"column": { +"description": "The column which this rule is evaluated against.", +"type": "string" +}, +"dataSource": { +"description": "The data source of the data scan (e.g. BigQuery table name).", +"type": "string" +}, +"evaluatedRowCount": { +"description": "The number of rows evaluated against the data quality rule. This field is only valid for rules of PER_ROW evaluation type.", +"format": "int64", +"type": "string" +}, +"evalutionType": { +"description": "The evaluation type of the data quality rule.", +"enum": [ +"EVALUATION_TYPE_UNSPECIFIED", +"PER_ROW", +"AGGREGATE" +], +"enumDescriptions": [ +"An unspecified evaluation type.", +"The rule evaluation is done at per row level.", +"The rule evaluation is done for an aggregate of rows." +], +"type": "string" +}, +"jobId": { +"description": "Identifier of the specific data scan job this log entry is for.", +"type": "string" +}, +"nullRowCount": { +"description": "The number of rows with null values in the specified column.", +"format": "int64", +"type": "string" +}, +"passedRowCount": { +"description": "The number of rows which passed a rule evaluation. This field is only valid for rules of PER_ROW evaluation type.", +"format": "int64", +"type": "string" +}, +"result": { +"description": "The result of the data quality rule.", +"enum": [ +"RESULT_UNSPECIFIED", +"PASSED", +"FAILED" +], +"enumDescriptions": [ +"An unspecified result.", +"The data quality rule passed.", +"The data quality rule failed." +], +"type": "string" +}, +"ruleDimension": { +"description": "The dimension of the data quality rule.", +"type": "string" +}, +"ruleName": { +"description": "The name of the data quality rule.", +"type": "string" +}, +"ruleType": { +"description": "The type of the data quality rule.", +"enum": [ +"RULE_TYPE_UNSPECIFIED", +"NON_NULL_EXPECTATION", +"RANGE_EXPECTATION", +"REGEX_EXPECTATION", +"ROW_CONDITION_EXPECTATION", +"SET_EXPECTATION", +"STATISTIC_RANGE_EXPECTATION", +"TABLE_CONDITION_EXPECTATION", +"UNIQUENESS_EXPECTATION", +"SQL_ASSERTION" +], +"enumDescriptions": [ +"An unspecified rule type.", +"See DataQualityRule.NonNullExpectation.", +"See DataQualityRule.RangeExpectation.", +"See DataQualityRule.RegexExpectation.", +"See DataQualityRule.RowConditionExpectation.", +"See DataQualityRule.SetExpectation.", +"See DataQualityRule.StatisticRangeExpectation.", +"See DataQualityRule.TableConditionExpectation.", +"See DataQualityRule.UniquenessExpectation.", +"See DataQualityRule.SqlAssertion." +], +"type": "string" +}, +"thresholdPercent": { +"description": "The passing threshold (0.0, 100.0) of the data quality rule.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualitySpec": { +"description": "DataQualityScan related setting.", +"id": "GoogleCloudDataplexV1DataQualitySpec", +"properties": { +"postScanActions": { +"$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActions", +"description": "Optional. Actions to take upon job completion." +}, +"rowFilter": { +"description": "Optional. A filter applied to all rows in a single DataScan job. The filter needs to be a valid SQL expression for a WHERE clause in BigQuery standard SQL syntax. Example: col1 >= 0 AND col2 < 10", +"type": "string" +}, +"rules": { +"description": "Required. The list of rules to evaluate against a data source. At least one rule is required.", +"items": { +"$ref": "GoogleCloudDataplexV1DataQualityRule" +}, +"type": "array" +}, +"samplingPercent": { +"description": "Optional. The percentage of the records to be selected from the dataset for DataScan. Value can range between 0.0 and 100.0 with up to 3 significant decimal digits. Sampling is not applied if sampling_percent is not specified, 0 or 100.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualitySpecPostScanActions": { +"description": "The configuration of post scan actions of DataQualityScan.", +"id": "GoogleCloudDataplexV1DataQualitySpecPostScanActions", +"properties": { +"bigqueryExport": { +"$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsBigQueryExport", +"description": "Optional. If set, results will be exported to the provided BigQuery table." +}, +"notificationReport": { +"$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsNotificationReport", +"description": "Optional. If set, results will be sent to the provided notification receipts upon triggers." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualitySpecPostScanActionsBigQueryExport": { +"description": "The configuration of BigQuery export post scan action.", +"id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsBigQueryExport", +"properties": { +"resultsTable": { +"description": "Optional. The BigQuery table to export DataQualityScan results to. Format: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobEndTrigger": { +"description": "This trigger is triggered whenever a scan job run ends, regardless of the result.", +"id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobEndTrigger", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobFailureTrigger": { +"description": "This trigger is triggered when the scan job itself fails, regardless of the result.", +"id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobFailureTrigger", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualitySpecPostScanActionsNotificationReport": { +"description": "The configuration of notification report post scan action.", +"id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsNotificationReport", +"properties": { +"jobEndTrigger": { +"$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobEndTrigger", +"description": "Optional. If set, report will be sent when a scan job ends." +}, +"jobFailureTrigger": { +"$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobFailureTrigger", +"description": "Optional. If set, report will be sent when a scan job fails." +}, +"recipients": { +"$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsRecipients", +"description": "Required. The recipients who will receive the notification report." +}, +"scoreThresholdTrigger": { +"$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsScoreThresholdTrigger", +"description": "Optional. If set, report will be sent when score threshold is met." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualitySpecPostScanActionsRecipients": { +"description": "The individuals or groups who are designated to receive notifications upon triggers.", +"id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsRecipients", +"properties": { +"emails": { +"description": "Optional. The email recipients who will receive the DataQualityScan results report.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataQualitySpecPostScanActionsScoreThresholdTrigger": { +"description": "This trigger is triggered when the DQ score in the job result is less than a specified input score.", +"id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsScoreThresholdTrigger", +"properties": { +"scoreThreshold": { +"description": "Optional. The score range is in 0,100.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScan": { +"description": "Represents a user-visible job which provides the insights for the related data source.For example: Data Quality: generates queries based on the rules and runs against the data to get data quality check results. Data Profile: analyzes the data in table(s) and generates insights about the structure, content and relationships (such as null percent, cardinality, min/max/mean, etc).", +"id": "GoogleCloudDataplexV1DataScan", +"properties": { +"createTime": { +"description": "Output only. The time when the scan was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"data": { +"$ref": "GoogleCloudDataplexV1DataSource", +"description": "Required. The data source for DataScan." +}, +"dataDiscoveryResult": { +"$ref": "GoogleCloudDataplexV1DataDiscoveryResult", +"description": "Output only. The result of a data discovery scan.", +"readOnly": true +}, +"dataDiscoverySpec": { +"$ref": "GoogleCloudDataplexV1DataDiscoverySpec", +"description": "Settings for a data discovery scan." +}, +"dataProfileResult": { +"$ref": "GoogleCloudDataplexV1DataProfileResult", +"description": "Output only. The result of a data profile scan.", +"readOnly": true +}, +"dataProfileSpec": { +"$ref": "GoogleCloudDataplexV1DataProfileSpec", +"description": "Settings for a data profile scan." +}, +"dataQualityResult": { +"$ref": "GoogleCloudDataplexV1DataQualityResult", +"description": "Output only. The result of a data quality scan.", +"readOnly": true +}, +"dataQualitySpec": { +"$ref": "GoogleCloudDataplexV1DataQualitySpec", +"description": "Settings for a data quality scan." +}, +"description": { +"description": "Optional. Description of the scan. Must be between 1-1024 characters.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name. Must be between 1-256 characters.", +"type": "string" +}, +"executionSpec": { +"$ref": "GoogleCloudDataplexV1DataScanExecutionSpec", +"description": "Optional. DataScan execution settings.If not specified, the fields in it will use their default values." +}, +"executionStatus": { +"$ref": "GoogleCloudDataplexV1DataScanExecutionStatus", +"description": "Output only. Status of the data scan execution.", +"readOnly": true +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the scan.", +"type": "object" +}, +"name": { +"description": "Output only. Identifier. The relative resource name of the scan, of the form: projects/{project}/locations/{location_id}/dataScans/{datascan_id}, where project refers to a project_id or project_number and location_id refers to a GCP region.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Current state of the DataScan.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"ACTION_REQUIRED" +], +"enumDescriptions": [ +"State is not specified.", +"Resource is active, i.e., ready to use.", +"Resource is under creation.", +"Resource is under deletion.", +"Resource is active but has unresolved actions." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type of DataScan.", +"enum": [ +"DATA_SCAN_TYPE_UNSPECIFIED", +"DATA_QUALITY", +"DATA_PROFILE", +"DATA_DISCOVERY" +], +"enumDescriptions": [ +"The data scan type is unspecified.", +"Data quality scan.", +"Data profile scan.", +"Data discovery scan." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the scan. This ID will be different if the scan is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the scan was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanEvent": { +"description": "These messages contain information about the execution of a datascan. The monitored resource is 'DataScan'", +"id": "GoogleCloudDataplexV1DataScanEvent", +"properties": { +"createTime": { +"description": "The time when the data scan job was created.", +"format": "google-datetime", +"type": "string" +}, +"dataProfile": { +"$ref": "GoogleCloudDataplexV1DataScanEventDataProfileResult", +"description": "Data profile result for data profile type data scan." +}, +"dataProfileConfigs": { +"$ref": "GoogleCloudDataplexV1DataScanEventDataProfileAppliedConfigs", +"description": "Applied configs for data profile type data scan." +}, +"dataQuality": { +"$ref": "GoogleCloudDataplexV1DataScanEventDataQualityResult", +"description": "Data quality result for data quality type data scan." +}, +"dataQualityConfigs": { +"$ref": "GoogleCloudDataplexV1DataScanEventDataQualityAppliedConfigs", +"description": "Applied configs for data quality type data scan." +}, +"dataSource": { +"description": "The data source of the data scan", +"type": "string" +}, +"endTime": { +"description": "The time when the data scan job finished.", +"format": "google-datetime", +"type": "string" +}, +"jobId": { +"description": "The identifier of the specific data scan job this log entry is for.", +"type": "string" +}, +"message": { +"description": "The message describing the data scan job event.", +"type": "string" +}, +"postScanActionsResult": { +"$ref": "GoogleCloudDataplexV1DataScanEventPostScanActionsResult", +"description": "The result of post scan actions." +}, +"scope": { +"description": "The scope of the data scan (e.g. full, incremental).", +"enum": [ +"SCOPE_UNSPECIFIED", +"FULL", +"INCREMENTAL" +], +"enumDescriptions": [ +"An unspecified scope type.", +"Data scan runs on all of the data.", +"Data scan runs on incremental data." +], +"type": "string" +}, +"specVersion": { +"description": "A version identifier of the spec which was used to execute this job.", +"type": "string" +}, +"startTime": { +"description": "The time when the data scan job started to run.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The status of the data scan job.", +"enum": [ +"STATE_UNSPECIFIED", +"STARTED", +"SUCCEEDED", +"FAILED", +"CANCELLED", +"CREATED" +], +"enumDescriptions": [ +"Unspecified job state.", +"Data scan job started.", +"Data scan job successfully completed.", +"Data scan job was unsuccessful.", +"Data scan job was cancelled.", +"Data scan job was createed." +], +"type": "string" +}, +"trigger": { +"description": "The trigger type of the data scan job.", +"enum": [ +"TRIGGER_UNSPECIFIED", +"ON_DEMAND", +"SCHEDULE" +], +"enumDescriptions": [ +"An unspecified trigger type.", +"Data scan triggers on demand.", +"Data scan triggers as per schedule." +], +"type": "string" +}, +"type": { +"description": "The type of the data scan.", +"enum": [ +"SCAN_TYPE_UNSPECIFIED", +"DATA_PROFILE", +"DATA_QUALITY", +"DATA_DISCOVERY" +], +"enumDescriptions": [ +"An unspecified data scan type.", +"Data scan for data profile.", +"Data scan for data quality.", +"Data scan for data discovery." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanEventDataProfileAppliedConfigs": { +"description": "Applied configs for data profile type data scan job.", +"id": "GoogleCloudDataplexV1DataScanEventDataProfileAppliedConfigs", +"properties": { +"columnFilterApplied": { +"description": "Boolean indicating whether a column filter was applied in the DataScan job.", +"type": "boolean" +}, +"rowFilterApplied": { +"description": "Boolean indicating whether a row filter was applied in the DataScan job.", +"type": "boolean" +}, +"samplingPercent": { +"description": "The percentage of the records selected from the dataset for DataScan. Value ranges between 0.0 and 100.0. Value 0.0 or 100.0 imply that sampling was not applied.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanEventDataProfileResult": { +"description": "Data profile result for data scan job.", +"id": "GoogleCloudDataplexV1DataScanEventDataProfileResult", +"properties": { +"rowCount": { +"description": "The count of rows processed in the data scan job.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanEventDataQualityAppliedConfigs": { +"description": "Applied configs for data quality type data scan job.", +"id": "GoogleCloudDataplexV1DataScanEventDataQualityAppliedConfigs", +"properties": { +"rowFilterApplied": { +"description": "Boolean indicating whether a row filter was applied in the DataScan job.", +"type": "boolean" +}, +"samplingPercent": { +"description": "The percentage of the records selected from the dataset for DataScan. Value ranges between 0.0 and 100.0. Value 0.0 or 100.0 imply that sampling was not applied.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanEventDataQualityResult": { +"description": "Data quality result for data scan job.", +"id": "GoogleCloudDataplexV1DataScanEventDataQualityResult", +"properties": { +"columnScore": { +"additionalProperties": { +"format": "float", +"type": "number" +}, +"description": "The score of each column scanned in the data scan job. The key of the map is the name of the column. The value is the data quality score for the column.The score ranges between 0, 100 (up to two decimal points).", +"type": "object" +}, +"dimensionPassed": { +"additionalProperties": { +"type": "boolean" +}, +"description": "The result of each dimension for data quality result. The key of the map is the name of the dimension. The value is the bool value depicting whether the dimension result was pass or not.", +"type": "object" +}, +"dimensionScore": { +"additionalProperties": { +"format": "float", +"type": "number" +}, +"description": "The score of each dimension for data quality result. The key of the map is the name of the dimension. The value is the data quality score for the dimension.The score ranges between 0, 100 (up to two decimal points).", +"type": "object" +}, +"passed": { +"description": "Whether the data quality result was pass or not.", +"type": "boolean" +}, +"rowCount": { +"description": "The count of rows processed in the data scan job.", +"format": "int64", +"type": "string" +}, +"score": { +"description": "The table-level data quality score for the data scan job.The data quality score ranges between 0, 100 (up to two decimal points).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanEventPostScanActionsResult": { +"description": "Post scan actions result for data scan job.", +"id": "GoogleCloudDataplexV1DataScanEventPostScanActionsResult", +"properties": { +"bigqueryExportResult": { +"$ref": "GoogleCloudDataplexV1DataScanEventPostScanActionsResultBigQueryExportResult", +"description": "The result of BigQuery export post scan action." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanEventPostScanActionsResultBigQueryExportResult": { +"description": "The result of BigQuery export post scan action.", +"id": "GoogleCloudDataplexV1DataScanEventPostScanActionsResultBigQueryExportResult", +"properties": { +"message": { +"description": "Additional information about the BigQuery exporting.", +"type": "string" +}, +"state": { +"description": "Execution state for the BigQuery exporting.", +"enum": [ +"STATE_UNSPECIFIED", +"SUCCEEDED", +"FAILED", +"SKIPPED" +], +"enumDescriptions": [ +"The exporting state is unspecified.", +"The exporting completed successfully.", +"The exporting is no longer running due to an error.", +"The exporting is skipped due to no valid scan result to export (usually caused by scan failed)." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanExecutionSpec": { +"description": "DataScan execution settings.", +"id": "GoogleCloudDataplexV1DataScanExecutionSpec", +"properties": { +"field": { +"description": "Immutable. The unnested field (of type Date or Timestamp) that contains values which monotonically increase over time.If not specified, a data scan will run for all data in the table.", +"type": "string" +}, +"trigger": { +"$ref": "GoogleCloudDataplexV1Trigger", +"description": "Optional. Spec related to how often and when a scan should be triggered.If not specified, the default is OnDemand, which means the scan will not run until the user calls RunDataScan API." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanExecutionStatus": { +"description": "Status of the data scan execution.", +"id": "GoogleCloudDataplexV1DataScanExecutionStatus", +"properties": { +"latestJobCreateTime": { +"description": "Optional. The time when the DataScanJob execution was created.", +"format": "google-datetime", +"type": "string" +}, +"latestJobEndTime": { +"description": "Optional. The time when the latest DataScanJob ended.", +"format": "google-datetime", +"type": "string" +}, +"latestJobStartTime": { +"description": "Optional. The time when the latest DataScanJob started.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataScanJob": { +"description": "A DataScanJob represents an instance of DataScan execution.", +"id": "GoogleCloudDataplexV1DataScanJob", +"properties": { +"createTime": { +"description": "Output only. The time when the DataScanJob was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataDiscoveryResult": { +"$ref": "GoogleCloudDataplexV1DataDiscoveryResult", +"description": "Output only. The result of a data discovery scan.", +"readOnly": true +}, +"dataDiscoverySpec": { +"$ref": "GoogleCloudDataplexV1DataDiscoverySpec", +"description": "Output only. Settings for a data discovery scan.", +"readOnly": true +}, +"dataProfileResult": { +"$ref": "GoogleCloudDataplexV1DataProfileResult", +"description": "Output only. The result of a data profile scan.", +"readOnly": true +}, +"dataProfileSpec": { +"$ref": "GoogleCloudDataplexV1DataProfileSpec", +"description": "Output only. Settings for a data profile scan.", +"readOnly": true +}, +"dataQualityResult": { +"$ref": "GoogleCloudDataplexV1DataQualityResult", +"description": "Output only. The result of a data quality scan.", +"readOnly": true +}, +"dataQualitySpec": { +"$ref": "GoogleCloudDataplexV1DataQualitySpec", +"description": "Output only. Settings for a data quality scan.", +"readOnly": true +}, +"endTime": { +"description": "Output only. The time when the DataScanJob ended.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"message": { +"description": "Output only. Additional information about the current state.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Identifier. The relative resource name of the DataScanJob, of the form: projects/{project}/locations/{location_id}/dataScans/{datascan_id}/jobs/{job_id}, where project refers to a project_id or project_number and location_id refers to a GCP region.", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The time when the DataScanJob was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Execution state for the DataScanJob.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELING", +"CANCELLED", +"SUCCEEDED", +"FAILED", +"PENDING" +], +"enumDescriptions": [ +"The DataScanJob state is unspecified.", +"The DataScanJob is running.", +"The DataScanJob is canceling.", +"The DataScanJob cancellation was successful.", +"The DataScanJob completed successfully.", +"The DataScanJob is no longer running due to an error.", +"The DataScanJob has been created but not started to run yet." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type of the parent DataScan.", +"enum": [ +"DATA_SCAN_TYPE_UNSPECIFIED", +"DATA_QUALITY", +"DATA_PROFILE", +"DATA_DISCOVERY" +], +"enumDescriptions": [ +"The data scan type is unspecified.", +"Data quality scan.", +"Data profile scan.", +"Data discovery scan." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the DataScanJob.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataSource": { +"description": "The data source for DataScan.", +"id": "GoogleCloudDataplexV1DataSource", +"properties": { +"entity": { +"description": "Immutable. The Dataplex entity that represents the data source (e.g. BigQuery table) for DataScan, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}.", +"type": "string" +}, +"resource": { +"description": "Immutable. The service-qualified full resource name of the cloud resource for a DataScan job to scan against. The field could be: BigQuery table of type \"TABLE\" for DataProfileScan/DataQualityScan Format: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DataTaxonomy": { +"description": "DataTaxonomy represents a set of hierarchical DataAttributes resources, grouped with a common theme Eg: 'SensitiveDataTaxonomy' can have attributes to manage PII data. It is defined at project level.", +"id": "GoogleCloudDataplexV1DataTaxonomy", +"properties": { +"attributeCount": { +"description": "Output only. The number of attributes in the DataTaxonomy.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"classCount": { +"description": "Output only. The number of classes in the DataTaxonomy.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"createTime": { +"description": "Output only. The time when the DataTaxonomy was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the DataTaxonomy.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"etag": { +"description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the DataTaxonomy.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the DataTaxonomy, of the form: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}.", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the dataTaxonomy. This ID will be different if the DataTaxonomy is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the DataTaxonomy was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DiscoveryEvent": { +"description": "The payload associated with Discovery data processing.", +"id": "GoogleCloudDataplexV1DiscoveryEvent", +"properties": { +"action": { +"$ref": "GoogleCloudDataplexV1DiscoveryEventActionDetails", +"description": "Details about the action associated with the event." +}, +"assetId": { +"description": "The id of the associated asset.", +"type": "string" +}, +"config": { +"$ref": "GoogleCloudDataplexV1DiscoveryEventConfigDetails", +"description": "Details about discovery configuration in effect." +}, +"dataLocation": { +"description": "The data location associated with the event.", +"type": "string" +}, +"datascanId": { +"description": "The id of the associated datascan for standalone discovery.", +"type": "string" +}, +"entity": { +"$ref": "GoogleCloudDataplexV1DiscoveryEventEntityDetails", +"description": "Details about the entity associated with the event." +}, +"lakeId": { +"description": "The id of the associated lake.", +"type": "string" +}, +"message": { +"description": "The log message.", +"type": "string" +}, +"partition": { +"$ref": "GoogleCloudDataplexV1DiscoveryEventPartitionDetails", +"description": "Details about the partition associated with the event." +}, +"table": { +"$ref": "GoogleCloudDataplexV1DiscoveryEventTableDetails", +"description": "Details about the BigQuery table publishing associated with the event." +}, +"type": { +"description": "The type of the event being logged.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"CONFIG", +"ENTITY_CREATED", +"ENTITY_UPDATED", +"ENTITY_DELETED", +"PARTITION_CREATED", +"PARTITION_UPDATED", +"PARTITION_DELETED", +"TABLE_PUBLISHED", +"TABLE_UPDATED", +"TABLE_IGNORED", +"TABLE_DELETED" +], +"enumDescriptions": [ +"An unspecified event type.", +"An event representing discovery configuration in effect.", +"An event representing a metadata entity being created.", +"An event representing a metadata entity being updated.", +"An event representing a metadata entity being deleted.", +"An event representing a partition being created.", +"An event representing a partition being updated.", +"An event representing a partition being deleted.", +"An event representing a table being published.", +"An event representing a table being updated.", +"An event representing a table being skipped in publishing.", +"An event representing a table being deleted." +], +"type": "string" +}, +"zoneId": { +"description": "The id of the associated zone.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DiscoveryEventActionDetails": { +"description": "Details about the action.", +"id": "GoogleCloudDataplexV1DiscoveryEventActionDetails", +"properties": { +"issue": { +"description": "The human readable issue associated with the action.", +"type": "string" +}, +"type": { +"description": "The type of action. Eg. IncompatibleDataSchema, InvalidDataFormat", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DiscoveryEventConfigDetails": { +"description": "Details about configuration events.", +"id": "GoogleCloudDataplexV1DiscoveryEventConfigDetails", +"properties": { +"parameters": { +"additionalProperties": { +"type": "string" +}, +"description": "A list of discovery configuration parameters in effect. The keys are the field paths within DiscoverySpec. Eg. includePatterns, excludePatterns, csvOptions.disableTypeInference, etc.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DiscoveryEventEntityDetails": { +"description": "Details about the entity.", +"id": "GoogleCloudDataplexV1DiscoveryEventEntityDetails", +"properties": { +"entity": { +"description": "The name of the entity resource. The name is the fully-qualified resource name.", +"type": "string" +}, +"type": { +"description": "The type of the entity resource.", +"enum": [ +"ENTITY_TYPE_UNSPECIFIED", +"TABLE", +"FILESET" +], +"enumDescriptions": [ +"An unspecified event type.", +"Entities representing structured data.", +"Entities representing unstructured data." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DiscoveryEventPartitionDetails": { +"description": "Details about the partition.", +"id": "GoogleCloudDataplexV1DiscoveryEventPartitionDetails", +"properties": { +"entity": { +"description": "The name to the containing entity resource. The name is the fully-qualified resource name.", +"type": "string" +}, +"partition": { +"description": "The name to the partition resource. The name is the fully-qualified resource name.", +"type": "string" +}, +"sampledDataLocations": { +"description": "The locations of the data items (e.g., a Cloud Storage objects) sampled for metadata inference.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "The type of the containing entity resource.", +"enum": [ +"ENTITY_TYPE_UNSPECIFIED", +"TABLE", +"FILESET" +], +"enumDescriptions": [ +"An unspecified event type.", +"Entities representing structured data.", +"Entities representing unstructured data." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1DiscoveryEventTableDetails": { +"description": "Details about the published table.", +"id": "GoogleCloudDataplexV1DiscoveryEventTableDetails", +"properties": { +"table": { +"description": "The fully-qualified resource name of the table resource.", +"type": "string" +}, +"type": { +"description": "The type of the table resource.", +"enum": [ +"TABLE_TYPE_UNSPECIFIED", +"EXTERNAL_TABLE", +"BIGLAKE_TABLE", +"OBJECT_TABLE" +], +"enumDescriptions": [ +"An unspecified table type.", +"External table type.", +"BigLake table type.", +"Object table type for unstructured data." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Entity": { +"description": "Represents tables and fileset metadata contained within a zone.", +"id": "GoogleCloudDataplexV1Entity", +"properties": { +"access": { +"$ref": "GoogleCloudDataplexV1StorageAccess", +"description": "Output only. Identifies the access mechanism to the entity. Not user settable.", +"readOnly": true +}, +"asset": { +"description": "Required. Immutable. The ID of the asset associated with the storage location containing the entity data. The entity must be with in the same zone with the asset.", +"type": "string" +}, +"catalogEntry": { +"description": "Output only. The name of the associated Data Catalog entry.", +"readOnly": true, +"type": "string" +}, +"compatibility": { +"$ref": "GoogleCloudDataplexV1EntityCompatibilityStatus", +"description": "Output only. Metadata stores that the entity is compatible with.", +"readOnly": true +}, +"createTime": { +"description": "Output only. The time when the entity was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataPath": { +"description": "Required. Immutable. The storage path of the entity data. For Cloud Storage data, this is the fully-qualified path to the entity, such as gs://bucket/path/to/data. For BigQuery data, this is the name of the table resource, such as projects/project_id/datasets/dataset_id/tables/table_id.", +"type": "string" +}, +"dataPathPattern": { +"description": "Optional. The set of items within the data path constituting the data in the entity, represented as a glob path. Example: gs://bucket/path/to/data/**/*.csv.", +"type": "string" +}, +"description": { +"description": "Optional. User friendly longer description text. Must be shorter than or equal to 1024 characters.", +"type": "string" +}, +"displayName": { +"description": "Optional. Display name must be shorter than or equal to 256 characters.", +"type": "string" +}, +"etag": { +"description": "Optional. The etag associated with the entity, which can be retrieved with a GetEntity request. Required for update and delete requests.", +"type": "string" +}, +"format": { +"$ref": "GoogleCloudDataplexV1StorageFormat", +"description": "Required. Identifies the storage format of the entity data. It does not apply to entities with data stored in BigQuery." +}, +"id": { +"description": "Required. A user-provided entity ID. It is mutable, and will be used as the published table name. Specifying a new ID in an update entity request will override the existing value. The ID must contain only letters (a-z, A-Z), numbers (0-9), and underscores, and consist of 256 or fewer characters.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the entity, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{id}.", +"readOnly": true, +"type": "string" +}, +"schema": { +"$ref": "GoogleCloudDataplexV1Schema", +"description": "Required. The description of the data structure and layout. The schema is not included in list responses. It is only included in SCHEMA and FULL entity views of a GetEntity response." +}, +"system": { +"description": "Required. Immutable. Identifies the storage system of the entity data.", +"enum": [ +"STORAGE_SYSTEM_UNSPECIFIED", +"CLOUD_STORAGE", +"BIGQUERY" +], +"enumDescriptions": [ +"Storage system unspecified.", +"The entity data is contained within a Cloud Storage bucket.", +"The entity data is contained within a BigQuery dataset." +], +"type": "string" +}, +"type": { +"description": "Required. Immutable. The type of entity.", +"enum": [ +"TYPE_UNSPECIFIED", +"TABLE", +"FILESET" +], +"enumDescriptions": [ +"Type unspecified.", +"Structured and semi-structured data.", +"Unstructured data." +], +"type": "string" +}, +"uid": { +"description": "Output only. System generated unique ID for the Entity. This ID will be different if the Entity is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the entity was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EntityCompatibilityStatus": { +"description": "Provides compatibility information for various metadata stores.", +"id": "GoogleCloudDataplexV1EntityCompatibilityStatus", +"properties": { +"bigquery": { +"$ref": "GoogleCloudDataplexV1EntityCompatibilityStatusCompatibility", +"description": "Output only. Whether this entity is compatible with BigQuery.", +"readOnly": true +}, +"hiveMetastore": { +"$ref": "GoogleCloudDataplexV1EntityCompatibilityStatusCompatibility", +"description": "Output only. Whether this entity is compatible with Hive Metastore.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EntityCompatibilityStatusCompatibility": { +"description": "Provides compatibility information for a specific metadata store.", +"id": "GoogleCloudDataplexV1EntityCompatibilityStatusCompatibility", +"properties": { +"compatible": { +"description": "Output only. Whether the entity is compatible and can be represented in the metadata store.", +"readOnly": true, +"type": "boolean" +}, +"reason": { +"description": "Output only. Provides additional detail if the entity is incompatible with the metadata store.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Entry": { +"description": "An entry is a representation of a data resource that can be described by various metadata.", +"id": "GoogleCloudDataplexV1Entry", +"properties": { +"aspects": { +"additionalProperties": { +"$ref": "GoogleCloudDataplexV1Aspect" +}, +"description": "Optional. The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following: If the aspect is attached directly to the entry: {project_id_or_number}.{location_id}.{aspect_type_id} If the aspect is attached to an entry's path: {project_id_or_number}.{location_id}.{aspect_type_id}@{path}", +"type": "object" +}, +"createTime": { +"description": "Output only. The time when the entry was created in Dataplex.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"entrySource": { +"$ref": "GoogleCloudDataplexV1EntrySource", +"description": "Optional. Information related to the source system of the data resource that is represented by the entry." +}, +"entryType": { +"description": "Required. Immutable. The relative resource name of the entry type that was used to create this entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry_type_id}.", +"type": "string" +}, +"fullyQualifiedName": { +"description": "Optional. A name for the entry that can be referenced by an external system. For more information, see Fully qualified names (https://cloud.google.com/data-catalog/docs/fully-qualified-names). The maximum size of the field is 4000 characters.", +"type": "string" +}, +"name": { +"description": "Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.", +"type": "string" +}, +"parentEntry": { +"description": "Optional. Immutable. The resource name of the parent entry.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the entry was last updated in Dataplex.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EntryGroup": { +"description": "An Entry Group represents a logical grouping of one or more Entries.", +"id": "GoogleCloudDataplexV1EntryGroup", +"properties": { +"createTime": { +"description": "Output only. The time when the EntryGroup was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the EntryGroup.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"etag": { +"description": "This checksum is computed by the service, and might be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the EntryGroup.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the EntryGroup, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}.", +"readOnly": true, +"type": "string" +}, +"transferStatus": { +"description": "Output only. Denotes the transfer status of the Entry Group. It is unspecified for Entry Group created from Dataplex API.", +"enum": [ +"TRANSFER_STATUS_UNSPECIFIED", +"TRANSFER_STATUS_MIGRATED", +"TRANSFER_STATUS_TRANSFERRED" +], +"enumDescriptions": [ +"The default value. It is set for resources that were not subject for migration from Data Catalog service.", +"Indicates that a resource was migrated from Data Catalog service but it hasn't been transferred yet. In particular the resource cannot be updated from Dataplex API.", +"Indicates that a resource was transferred from Data Catalog service. The resource can only be updated from Dataplex API." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the EntryGroup. If you delete and recreate the EntryGroup with the same name, this ID will be different.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the EntryGroup was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EntrySource": { +"description": "Information related to the source system of the data resource that is represented by the entry.", +"id": "GoogleCloudDataplexV1EntrySource", +"properties": { +"ancestors": { +"description": "Immutable. The entries representing the ancestors of the data resource in the source system.", +"items": { +"$ref": "GoogleCloudDataplexV1EntrySourceAncestor" +}, +"type": "array" +}, +"createTime": { +"description": "The time when the resource was created in the source system.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "A description of the data resource. Maximum length is 2,000 characters.", +"type": "string" +}, +"displayName": { +"description": "A user-friendly display name. Maximum length is 500 characters.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-defined labels. The maximum size of keys and values is 128 characters each.", +"type": "object" +}, +"location": { +"description": "Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud.", +"readOnly": true, +"type": "string" +}, +"platform": { +"description": "The platform containing the source system. Maximum length is 64 characters.", +"type": "string" +}, +"resource": { +"description": "The name of the resource in the source system. Maximum length is 4,000 characters.", +"type": "string" +}, +"system": { +"description": "The name of the source system. Maximum length is 64 characters.", +"type": "string" +}, +"updateTime": { +"description": "The time when the resource was last updated in the source system. If the entry exists in the system and its EntrySource has update_time populated, further updates to the EntrySource of the entry must provide incremental updates to its update_time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EntrySourceAncestor": { +"description": "Information about individual items in the hierarchy that is associated with the data resource.", +"id": "GoogleCloudDataplexV1EntrySourceAncestor", +"properties": { +"name": { +"description": "Optional. The name of the ancestor resource.", +"type": "string" +}, +"type": { +"description": "Optional. The type of the ancestor resource.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EntryType": { +"description": "Entry Type is a template for creating Entries.", +"id": "GoogleCloudDataplexV1EntryType", +"properties": { +"authorization": { +"$ref": "GoogleCloudDataplexV1EntryTypeAuthorization", +"description": "Immutable. Authorization defined for this type." +}, +"createTime": { +"description": "Output only. The time when the EntryType was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the EntryType.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"etag": { +"description": "Optional. This checksum is computed by the service, and might be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the EntryType.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the EntryType, of the form: projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}.", +"readOnly": true, +"type": "string" +}, +"platform": { +"description": "Optional. The platform that Entries of this type belongs to.", +"type": "string" +}, +"requiredAspects": { +"description": "AspectInfo for the entry type.", +"items": { +"$ref": "GoogleCloudDataplexV1EntryTypeAspectInfo" +}, +"type": "array" +}, +"system": { +"description": "Optional. The system that Entries of this type belongs to. Examples include CloudSQL, MariaDB etc", +"type": "string" +}, +"typeAliases": { +"description": "Optional. Indicates the classes this Entry Type belongs to, for example, TABLE, DATABASE, MODEL.", +"items": { +"type": "string" +}, +"type": "array" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the EntryType. This ID will be different if the EntryType is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the EntryType was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EntryTypeAspectInfo": { +"id": "GoogleCloudDataplexV1EntryTypeAspectInfo", +"properties": { +"type": { +"description": "Required aspect type for the entry type.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EntryTypeAuthorization": { +"description": "Authorization for an Entry Type.", +"id": "GoogleCloudDataplexV1EntryTypeAuthorization", +"properties": { +"alternateUsePermission": { +"description": "Immutable. The IAM permission grantable on the Entry Group to allow access to instantiate Entries of Dataplex owned Entry Types, only settable for Dataplex owned Types.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Environment": { +"description": "Environment represents a user-visible compute infrastructure for analytics within a lake.", +"id": "GoogleCloudDataplexV1Environment", +"properties": { +"createTime": { +"description": "Output only. Environment creation time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the environment.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"endpoints": { +"$ref": "GoogleCloudDataplexV1EnvironmentEndpoints", +"description": "Output only. URI Endpoints to access sessions associated with the Environment.", +"readOnly": true +}, +"infrastructureSpec": { +"$ref": "GoogleCloudDataplexV1EnvironmentInfrastructureSpec", +"description": "Required. Infrastructure specification for the Environment." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User defined labels for the environment.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the environment, of the form: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}", +"readOnly": true, +"type": "string" +}, +"sessionSpec": { +"$ref": "GoogleCloudDataplexV1EnvironmentSessionSpec", +"description": "Optional. Configuration for sessions created for this environment." +}, +"sessionStatus": { +"$ref": "GoogleCloudDataplexV1EnvironmentSessionStatus", +"description": "Output only. Status of sessions created for this environment.", +"readOnly": true +}, +"state": { +"description": "Output only. Current state of the environment.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"ACTION_REQUIRED" +], +"enumDescriptions": [ +"State is not specified.", +"Resource is active, i.e., ready to use.", +"Resource is under creation.", +"Resource is under deletion.", +"Resource is active but has unresolved actions." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the environment. This ID will be different if the environment is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the environment was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EnvironmentEndpoints": { +"description": "URI Endpoints to access sessions associated with the Environment.", +"id": "GoogleCloudDataplexV1EnvironmentEndpoints", +"properties": { +"notebooks": { +"description": "Output only. URI to serve notebook APIs", +"readOnly": true, +"type": "string" +}, +"sql": { +"description": "Output only. URI to serve SQL APIs", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EnvironmentInfrastructureSpec": { +"description": "Configuration for the underlying infrastructure used to run workloads.", +"id": "GoogleCloudDataplexV1EnvironmentInfrastructureSpec", +"properties": { +"compute": { +"$ref": "GoogleCloudDataplexV1EnvironmentInfrastructureSpecComputeResources", +"description": "Optional. Compute resources needed for analyze interactive workloads." +}, +"osImage": { +"$ref": "GoogleCloudDataplexV1EnvironmentInfrastructureSpecOsImageRuntime", +"description": "Required. Software Runtime Configuration for analyze interactive workloads." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EnvironmentInfrastructureSpecComputeResources": { +"description": "Compute resources associated with the analyze interactive workloads.", +"id": "GoogleCloudDataplexV1EnvironmentInfrastructureSpecComputeResources", +"properties": { +"diskSizeGb": { +"description": "Optional. Size in GB of the disk. Default is 100 GB.", +"format": "int32", +"type": "integer" +}, +"maxNodeCount": { +"description": "Optional. Max configurable nodes. If max_node_count > node_count, then auto-scaling is enabled.", +"format": "int32", +"type": "integer" +}, +"nodeCount": { +"description": "Optional. Total number of nodes in the sessions created for this environment.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EnvironmentInfrastructureSpecOsImageRuntime": { +"description": "Software Runtime Configuration to run Analyze.", +"id": "GoogleCloudDataplexV1EnvironmentInfrastructureSpecOsImageRuntime", +"properties": { +"imageVersion": { +"description": "Required. Dataplex Image version.", +"type": "string" +}, +"javaLibraries": { +"description": "Optional. List of Java jars to be included in the runtime environment. Valid input includes Cloud Storage URIs to Jar binaries. For example, gs://bucket-name/my/path/to/file.jar", +"items": { +"type": "string" +}, +"type": "array" +}, +"properties": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Spark properties to provide configuration for use in sessions created for this environment. The properties to set on daemon config files. Property keys are specified in prefix:property format. The prefix must be \"spark\".", +"type": "object" +}, +"pythonPackages": { +"description": "Optional. A list of python packages to be installed. Valid formats include Cloud Storage URI to a PIP installable library. For example, gs://bucket-name/my/path/to/lib.tar.gz", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EnvironmentSessionSpec": { +"description": "Configuration for sessions created for this environment.", +"id": "GoogleCloudDataplexV1EnvironmentSessionSpec", +"properties": { +"enableFastStartup": { +"description": "Optional. If True, this causes sessions to be pre-created and available for faster startup to enable interactive exploration use-cases. This defaults to False to avoid additional billed charges. These can only be set to True for the environment with name set to \"default\", and with default configuration.", +"type": "boolean" +}, +"maxIdleDuration": { +"description": "Optional. The idle time configuration of the session. The session will be auto-terminated at the end of this period.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1EnvironmentSessionStatus": { +"description": "Status of sessions created for this environment.", +"id": "GoogleCloudDataplexV1EnvironmentSessionStatus", +"properties": { +"active": { +"description": "Output only. Queries over sessions to mark whether the environment is currently active or not", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1GenerateDataQualityRulesRequest": { +"description": "Request details for generating data quality rule recommendations.", +"id": "GoogleCloudDataplexV1GenerateDataQualityRulesRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1GenerateDataQualityRulesResponse": { +"description": "Response details for data quality rule recommendations.", +"id": "GoogleCloudDataplexV1GenerateDataQualityRulesResponse", +"properties": { +"rule": { +"description": "The data quality rules that Dataplex generates based on the results of a data profiling scan.", +"items": { +"$ref": "GoogleCloudDataplexV1DataQualityRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1GovernanceEvent": { +"description": "Payload associated with Governance related log events.", +"id": "GoogleCloudDataplexV1GovernanceEvent", +"properties": { +"entity": { +"$ref": "GoogleCloudDataplexV1GovernanceEventEntity", +"description": "Entity resource information if the log event is associated with a specific entity." +}, +"eventType": { +"description": "The type of the event.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"RESOURCE_IAM_POLICY_UPDATE", +"BIGQUERY_TABLE_CREATE", +"BIGQUERY_TABLE_UPDATE", +"BIGQUERY_TABLE_DELETE", +"BIGQUERY_CONNECTION_CREATE", +"BIGQUERY_CONNECTION_UPDATE", +"BIGQUERY_CONNECTION_DELETE", +"BIGQUERY_TAXONOMY_CREATE", +"BIGQUERY_POLICY_TAG_CREATE", +"BIGQUERY_POLICY_TAG_DELETE", +"BIGQUERY_POLICY_TAG_SET_IAM_POLICY", +"ACCESS_POLICY_UPDATE", +"GOVERNANCE_RULE_MATCHED_RESOURCES", +"GOVERNANCE_RULE_SEARCH_LIMIT_EXCEEDS", +"GOVERNANCE_RULE_ERRORS", +"GOVERNANCE_RULE_PROCESSING" +], +"enumDescriptions": [ +"An unspecified event type.", +"Resource IAM policy update event.", +"BigQuery table create event.", +"BigQuery table update event.", +"BigQuery table delete event.", +"BigQuery connection create event.", +"BigQuery connection update event.", +"BigQuery connection delete event.", +"BigQuery taxonomy created.", +"BigQuery policy tag created.", +"BigQuery policy tag deleted.", +"BigQuery set iam policy for policy tag.", +"Access policy update event.", +"Number of resources matched with particular Query.", +"Rule processing exceeds the allowed limit.", +"Rule processing errors.", +"Governance rule processing Event." +], +"type": "string" +}, +"message": { +"description": "The log message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1GovernanceEventEntity": { +"description": "Information about Entity resource that the log event is associated with.", +"id": "GoogleCloudDataplexV1GovernanceEventEntity", +"properties": { +"entity": { +"description": "The Entity resource the log event is associated with. Format: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}", +"type": "string" +}, +"entityType": { +"description": "Type of entity.", +"enum": [ +"ENTITY_TYPE_UNSPECIFIED", +"TABLE", +"FILESET" +], +"enumDescriptions": [ +"An unspecified Entity type.", +"Table entity type.", +"Fileset entity type." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ImportItem": { +"description": "An object that describes the values that you want to set for an entry and its attached aspects when you import metadata. Used when you run a metadata import job. See CreateMetadataJob.You provide a collection of import items in a metadata import file. For more information about how to create a metadata import file, see Metadata import file (https://cloud.google.com/dataplex/docs/import-metadata#metadata-import-file).", +"id": "GoogleCloudDataplexV1ImportItem", +"properties": { +"aspectKeys": { +"description": "The aspects to modify. Supports the following syntaxes: {aspect_type_reference}: matches aspects that belong to the specified aspect type and are attached directly to the entry. {aspect_type_reference}@{path}: matches aspects that belong to the specified aspect type and path. @* : matches aspects of the given type for all paths. *@path : matches aspects of all types on the given path. Replace {aspect_type_reference} with a reference to the aspect type, in the format {project_id_or_number}.{location_id}.{aspect_type_id}.If you leave this field empty, it is treated as specifying exactly those aspects that are present within the specified entry.In FULL entry sync mode, Dataplex implicitly adds the keys for all of the required aspects of an entry.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entry": { +"$ref": "GoogleCloudDataplexV1Entry", +"description": "Information about an entry and its attached aspects." +}, +"updateMask": { +"description": "The fields to update, in paths that are relative to the Entry resource. Separate each field with a comma.In FULL entry sync mode, Dataplex includes the paths of all of the fields for an entry that can be modified, including aspects. This means that Dataplex replaces the existing entry with the entry in the metadata import file. All modifiable fields are updated, regardless of the fields that are listed in the update mask, and regardless of whether a field is present in the entry object.The update_mask field is ignored when an entry is created or re-created.Dataplex also determines which entries and aspects to modify by comparing the values and timestamps that you provide in the metadata import file with the values and timestamps that exist in your project. For more information, see Comparison logic (https://cloud.google.com/dataplex/docs/import-metadata#data-modification-logic).", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Job": { +"description": "A job represents an instance of a task.", +"id": "GoogleCloudDataplexV1Job", +"properties": { +"endTime": { +"description": "Output only. The time when the job ended.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"executionSpec": { +"$ref": "GoogleCloudDataplexV1TaskExecutionSpec", +"description": "Output only. Spec related to how a task is executed.", +"readOnly": true +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. User-defined labels for the task.", +"readOnly": true, +"type": "object" +}, +"message": { +"description": "Output only. Additional information about the current state.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The relative resource name of the job, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}/jobs/{job_id}.", +"readOnly": true, +"type": "string" +}, +"retryCount": { +"description": "Output only. The number of times the job has been retried (excluding the initial attempt).", +"format": "uint32", +"readOnly": true, +"type": "integer" +}, +"service": { +"description": "Output only. The underlying service running a job.", +"enum": [ +"SERVICE_UNSPECIFIED", +"DATAPROC" +], +"enumDescriptions": [ +"Service used to run the job is unspecified.", +"Dataproc service is used to run this job." +], +"readOnly": true, +"type": "string" +}, +"serviceJob": { +"description": "Output only. The full resource name for the job run under a particular service.", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The time when the job was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Execution state for the job.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"CANCELLING", +"CANCELLED", +"SUCCEEDED", +"FAILED", +"ABORTED" +], +"enumDescriptions": [ +"The job state is unknown.", +"The job is running.", +"The job is cancelling.", +"The job cancellation was successful.", +"The job completed successfully.", +"The job is no longer running due to an error.", +"The job was cancelled outside of Dataplex." +], +"readOnly": true, +"type": "string" +}, +"trigger": { +"description": "Output only. Job execution trigger.", +"enum": [ +"TRIGGER_UNSPECIFIED", +"TASK_CONFIG", +"RUN_REQUEST" +], +"enumDescriptions": [ +"The trigger is unspecified.", +"The job was triggered by Dataplex based on trigger spec from task definition.", +"The job was triggered by the explicit call of Task API." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the job.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1JobEvent": { +"description": "The payload associated with Job logs that contains events describing jobs that have run within a Lake.", +"id": "GoogleCloudDataplexV1JobEvent", +"properties": { +"endTime": { +"description": "The time when the job ended running.", +"format": "google-datetime", +"type": "string" +}, +"executionTrigger": { +"description": "Job execution trigger.", +"enum": [ +"EXECUTION_TRIGGER_UNSPECIFIED", +"TASK_CONFIG", +"RUN_REQUEST" +], +"enumDescriptions": [ +"The job execution trigger is unspecified.", +"The job was triggered by Dataplex based on trigger spec from task definition.", +"The job was triggered by the explicit call of Task API." +], +"type": "string" +}, +"jobId": { +"description": "The unique id identifying the job.", +"type": "string" +}, +"message": { +"description": "The log message.", +"type": "string" +}, +"retries": { +"description": "The number of retries.", +"format": "int32", +"type": "integer" +}, +"service": { +"description": "The service used to execute the job.", +"enum": [ +"SERVICE_UNSPECIFIED", +"DATAPROC" +], +"enumDescriptions": [ +"Unspecified service.", +"Cloud Dataproc." +], +"type": "string" +}, +"serviceJob": { +"description": "The reference to the job within the service.", +"type": "string" +}, +"startTime": { +"description": "The time when the job started running.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The job state on completion.", +"enum": [ +"STATE_UNSPECIFIED", +"SUCCEEDED", +"FAILED", +"CANCELLED", +"ABORTED" +], +"enumDescriptions": [ +"Unspecified job state.", +"Job successfully completed.", +"Job was unsuccessful.", +"Job was cancelled by the user.", +"Job was cancelled or aborted via the service executing the job." +], +"type": "string" +}, +"type": { +"description": "The type of the job.", +"enum": [ +"TYPE_UNSPECIFIED", +"SPARK", +"NOTEBOOK" +], +"enumDescriptions": [ +"Unspecified job type.", +"Spark jobs.", +"Notebook jobs." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Lake": { +"description": "A lake is a centralized repository for managing enterprise data across the organization distributed across many cloud projects, and stored in a variety of storage services such as Google Cloud Storage and BigQuery. The resources attached to a lake are referred to as managed resources. Data within these managed resources can be structured or unstructured. A lake provides data admins with tools to organize, secure and manage their data at scale, and provides data scientists and data engineers an integrated experience to easily search, discover, analyze and transform data and associated metadata.", +"id": "GoogleCloudDataplexV1Lake", +"properties": { +"assetStatus": { +"$ref": "GoogleCloudDataplexV1AssetStatus", +"description": "Output only. Aggregated status of the underlying assets of the lake.", +"readOnly": true +}, +"createTime": { +"description": "Output only. The time when the lake was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the lake.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the lake.", +"type": "object" +}, +"metastore": { +"$ref": "GoogleCloudDataplexV1LakeMetastore", +"description": "Optional. Settings to manage lake and Dataproc Metastore service instance association." +}, +"metastoreStatus": { +"$ref": "GoogleCloudDataplexV1LakeMetastoreStatus", +"description": "Output only. Metastore status of the lake.", +"readOnly": true +}, +"name": { +"description": "Output only. The relative resource name of the lake, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", +"readOnly": true, +"type": "string" +}, +"serviceAccount": { +"description": "Output only. Service account associated with this lake. This service account must be authorized to access or operate on resources managed by the lake.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Current state of the lake.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"ACTION_REQUIRED" +], +"enumDescriptions": [ +"State is not specified.", +"Resource is active, i.e., ready to use.", +"Resource is under creation.", +"Resource is under deletion.", +"Resource is active but has unresolved actions." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the lake. This ID will be different if the lake is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the lake was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1LakeMetastore": { +"description": "Settings to manage association of Dataproc Metastore with a lake.", +"id": "GoogleCloudDataplexV1LakeMetastore", +"properties": { +"service": { +"description": "Optional. A relative reference to the Dataproc Metastore (https://cloud.google.com/dataproc-metastore/docs) service associated with the lake: projects/{project_id}/locations/{location_id}/services/{service_id}", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1LakeMetastoreStatus": { +"description": "Status of Lake and Dataproc Metastore service instance association.", +"id": "GoogleCloudDataplexV1LakeMetastoreStatus", +"properties": { +"endpoint": { +"description": "The URI of the endpoint used to access the Metastore service.", +"type": "string" +}, +"message": { +"description": "Additional information about the current status.", +"type": "string" +}, +"state": { +"description": "Current state of association.", +"enum": [ +"STATE_UNSPECIFIED", +"NONE", +"READY", +"UPDATING", +"ERROR" +], +"enumDescriptions": [ +"Unspecified.", +"A Metastore service instance is not associated with the lake.", +"A Metastore service instance is attached to the lake.", +"Attach/detach is in progress.", +"Attach/detach could not be done due to errors." +], +"type": "string" +}, +"updateTime": { +"description": "Last update time of the metastore status of the lake.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListActionsResponse": { +"description": "List actions response.", +"id": "GoogleCloudDataplexV1ListActionsResponse", +"properties": { +"actions": { +"description": "Actions under the given parent lake/zone/asset.", +"items": { +"$ref": "GoogleCloudDataplexV1Action" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListAspectTypesResponse": { +"description": "List AspectTypes response.", +"id": "GoogleCloudDataplexV1ListAspectTypesResponse", +"properties": { +"aspectTypes": { +"description": "AspectTypes under the given parent location.", +"items": { +"$ref": "GoogleCloudDataplexV1AspectType" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachableLocations": { +"description": "Locations that the service couldn't reach.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListAssetsResponse": { +"description": "List assets response.", +"id": "GoogleCloudDataplexV1ListAssetsResponse", +"properties": { +"assets": { +"description": "Asset under the given parent zone.", +"items": { +"$ref": "GoogleCloudDataplexV1Asset" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListContentResponse": { +"description": "List content response.", +"id": "GoogleCloudDataplexV1ListContentResponse", +"properties": { +"content": { +"description": "Content under the given parent lake.", +"items": { +"$ref": "GoogleCloudDataplexV1Content" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListDataAttributeBindingsResponse": { +"description": "List DataAttributeBindings response.", +"id": "GoogleCloudDataplexV1ListDataAttributeBindingsResponse", +"properties": { +"dataAttributeBindings": { +"description": "DataAttributeBindings under the given parent Location.", +"items": { +"$ref": "GoogleCloudDataplexV1DataAttributeBinding" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachableLocations": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListDataAttributesResponse": { +"description": "List DataAttributes response.", +"id": "GoogleCloudDataplexV1ListDataAttributesResponse", +"properties": { +"dataAttributes": { +"description": "DataAttributes under the given parent DataTaxonomy.", +"items": { +"$ref": "GoogleCloudDataplexV1DataAttribute" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachableLocations": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListDataScanJobsResponse": { +"description": "List DataScanJobs response.", +"id": "GoogleCloudDataplexV1ListDataScanJobsResponse", +"properties": { +"dataScanJobs": { +"description": "DataScanJobs (BASIC view only) under a given dataScan.", +"items": { +"$ref": "GoogleCloudDataplexV1DataScanJob" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListDataScansResponse": { +"description": "List dataScans response.", +"id": "GoogleCloudDataplexV1ListDataScansResponse", +"properties": { +"dataScans": { +"description": "DataScans (BASIC view only) under the given parent location.", +"items": { +"$ref": "GoogleCloudDataplexV1DataScan" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListDataTaxonomiesResponse": { +"description": "List DataTaxonomies response.", +"id": "GoogleCloudDataplexV1ListDataTaxonomiesResponse", +"properties": { +"dataTaxonomies": { +"description": "DataTaxonomies under the given parent location.", +"items": { +"$ref": "GoogleCloudDataplexV1DataTaxonomy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachableLocations": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListEntitiesResponse": { +"description": "List metadata entities response.", +"id": "GoogleCloudDataplexV1ListEntitiesResponse", +"properties": { +"entities": { +"description": "Entities in the specified parent zone.", +"items": { +"$ref": "GoogleCloudDataplexV1Entity" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no remaining results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListEntriesResponse": { +"description": "List Entries response.", +"id": "GoogleCloudDataplexV1ListEntriesResponse", +"properties": { +"entries": { +"description": "The list of entries under the given parent location.", +"items": { +"$ref": "GoogleCloudDataplexV1Entry" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListEntryGroupsResponse": { +"description": "List entry groups response.", +"id": "GoogleCloudDataplexV1ListEntryGroupsResponse", +"properties": { +"entryGroups": { +"description": "Entry groups under the given parent location.", +"items": { +"$ref": "GoogleCloudDataplexV1EntryGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachableLocations": { +"description": "Locations that the service couldn't reach.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListEntryTypesResponse": { +"description": "List EntryTypes response.", +"id": "GoogleCloudDataplexV1ListEntryTypesResponse", +"properties": { +"entryTypes": { +"description": "EntryTypes under the given parent location.", +"items": { +"$ref": "GoogleCloudDataplexV1EntryType" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachableLocations": { +"description": "Locations that the service couldn't reach.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListEnvironmentsResponse": { +"description": "List environments response.", +"id": "GoogleCloudDataplexV1ListEnvironmentsResponse", +"properties": { +"environments": { +"description": "Environments under the given parent lake.", +"items": { +"$ref": "GoogleCloudDataplexV1Environment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListJobsResponse": { +"description": "List jobs response.", +"id": "GoogleCloudDataplexV1ListJobsResponse", +"properties": { +"jobs": { +"description": "Jobs under a given task.", +"items": { +"$ref": "GoogleCloudDataplexV1Job" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListLakesResponse": { +"description": "List lakes response.", +"id": "GoogleCloudDataplexV1ListLakesResponse", +"properties": { +"lakes": { +"description": "Lakes under the given parent location.", +"items": { +"$ref": "GoogleCloudDataplexV1Lake" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachableLocations": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListMetadataJobsResponse": { +"description": "List metadata jobs response.", +"id": "GoogleCloudDataplexV1ListMetadataJobsResponse", +"properties": { +"metadataJobs": { +"description": "Metadata jobs under the specified parent location.", +"items": { +"$ref": "GoogleCloudDataplexV1MetadataJob" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. If there are no more results in the list, the value is empty.", +"type": "string" +}, +"unreachableLocations": { +"description": "Locations that the service couldn't reach.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListPartitionsResponse": { +"description": "List metadata partitions response.", +"id": "GoogleCloudDataplexV1ListPartitionsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no remaining results in the list.", +"type": "string" +}, +"partitions": { +"description": "Partitions under the specified parent entity.", +"items": { +"$ref": "GoogleCloudDataplexV1Partition" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListSessionsResponse": { +"description": "List sessions response.", +"id": "GoogleCloudDataplexV1ListSessionsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"sessions": { +"description": "Sessions under a given environment.", +"items": { +"$ref": "GoogleCloudDataplexV1Session" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListTasksResponse": { +"description": "List tasks response.", +"id": "GoogleCloudDataplexV1ListTasksResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"tasks": { +"description": "Tasks under the given parent lake.", +"items": { +"$ref": "GoogleCloudDataplexV1Task" +}, +"type": "array" +}, +"unreachableLocations": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ListZonesResponse": { +"description": "List zones response.", +"id": "GoogleCloudDataplexV1ListZonesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"zones": { +"description": "Zones under the given parent lake.", +"items": { +"$ref": "GoogleCloudDataplexV1Zone" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1MetadataJob": { +"description": "A metadata job resource.", +"id": "GoogleCloudDataplexV1MetadataJob", +"properties": { +"createTime": { +"description": "Output only. The time when the metadata job was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"importResult": { +"$ref": "GoogleCloudDataplexV1MetadataJobImportJobResult", +"description": "Output only. Import job result.", +"readOnly": true +}, +"importSpec": { +"$ref": "GoogleCloudDataplexV1MetadataJobImportJobSpec", +"description": "Import job specification." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels.", +"type": "object" +}, +"name": { +"description": "Output only. Identifier. The name of the resource that the configuration is applied to, in the format projects/{project_number}/locations/{location_id}/metadataJobs/{metadata_job_id}.", +"readOnly": true, +"type": "string" +}, +"status": { +"$ref": "GoogleCloudDataplexV1MetadataJobStatus", +"description": "Output only. Metadata job status.", +"readOnly": true +}, +"type": { +"description": "Required. Metadata job type.", +"enum": [ +"TYPE_UNSPECIFIED", +"IMPORT" +], +"enumDescriptions": [ +"Unspecified.", +"Import job." +], +"type": "string" +}, +"uid": { +"description": "Output only. A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the metadata job was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1MetadataJobImportJobResult": { +"description": "Results from a metadata import job.", +"id": "GoogleCloudDataplexV1MetadataJobImportJobResult", +"properties": { +"createdEntries": { +"description": "Output only. The total number of entries that were created.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"deletedEntries": { +"description": "Output only. The total number of entries that were deleted.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"recreatedEntries": { +"description": "Output only. The total number of entries that were recreated.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"unchangedEntries": { +"description": "Output only. The total number of entries that were unchanged.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the status was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"updatedEntries": { +"description": "Output only. The total number of entries that were updated.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1MetadataJobImportJobSpec": { +"description": "Job specification for a metadata import job", +"id": "GoogleCloudDataplexV1MetadataJobImportJobSpec", +"properties": { +"aspectSyncMode": { +"description": "Required. The sync mode for aspects. Only INCREMENTAL mode is supported for aspects. An aspect is modified only if the metadata import file includes a reference to the aspect in the update_mask field and the aspect_keys field.", +"enum": [ +"SYNC_MODE_UNSPECIFIED", +"FULL", +"INCREMENTAL" +], +"enumDescriptions": [ +"Sync mode unspecified.", +"All resources in the job's scope are modified. If a resource exists in Dataplex but isn't included in the metadata import file, the resource is deleted when you run the metadata job. Use this mode to perform a full sync of the set of entries in the job scope.", +"Only the entries and aspects that are explicitly included in the metadata import file are modified. Use this mode to modify a subset of resources while leaving unreferenced resources unchanged." +], +"type": "string" +}, +"entrySyncMode": { +"description": "Required. The sync mode for entries. Only FULL mode is supported for entries. All entries in the job's scope are modified. If an entry exists in Dataplex but isn't included in the metadata import file, the entry is deleted when you run the metadata job.", +"enum": [ +"SYNC_MODE_UNSPECIFIED", +"FULL", +"INCREMENTAL" +], +"enumDescriptions": [ +"Sync mode unspecified.", +"All resources in the job's scope are modified. If a resource exists in Dataplex but isn't included in the metadata import file, the resource is deleted when you run the metadata job. Use this mode to perform a full sync of the set of entries in the job scope.", +"Only the entries and aspects that are explicitly included in the metadata import file are modified. Use this mode to modify a subset of resources while leaving unreferenced resources unchanged." +], +"type": "string" +}, +"logLevel": { +"description": "Optional. The level of logs to write to Cloud Logging for this job.Debug-level logs provide highly-detailed information for troubleshooting, but their increased verbosity could incur additional costs (https://cloud.google.com/stackdriver/pricing) that might not be merited for all jobs.If unspecified, defaults to INFO.", +"enum": [ +"LOG_LEVEL_UNSPECIFIED", +"DEBUG", +"INFO" +], +"enumDescriptions": [ +"Log level unspecified.", +"Debug-level logging. Captures detailed logs for each import item. Use debug-level logging to troubleshoot issues with specific import items. For example, use debug-level logging to identify resources that are missing from the job scope, entries or aspects that don't conform to the associated entry type or aspect type, or other misconfigurations with the metadata import file.Depending on the size of your metadata job and the number of logs that are generated, debug-level logging might incur additional costs (https://cloud.google.com/stackdriver/pricing).", +"Info-level logging. Captures logs at the overall job level. Includes aggregate logs about import items, but doesn't specify which import item has an error." +], +"type": "string" +}, +"scope": { +"$ref": "GoogleCloudDataplexV1MetadataJobImportJobSpecImportJobScope", +"description": "Required. A boundary on the scope of impact that the metadata import job can have." +}, +"sourceCreateTime": { +"description": "Optional. The time when the process that created the metadata import files began.", +"format": "google-datetime", +"type": "string" +}, +"sourceStorageUri": { +"description": "Optional. The URI of a Cloud Storage bucket or folder (beginning with gs:// and ending with /) that contains the metadata import files for this job.A metadata import file defines the values to set for each of the entries and aspects in a metadata job. For more information about how to create a metadata import file and the file requirements, see Metadata import file (https://cloud.google.com/dataplex/docs/import-metadata#metadata-import-file).You can provide multiple metadata import files in the same metadata job. The bucket or folder must contain at least one metadata import file, in JSON Lines format (either .json or .jsonl file extension).In FULL entry sync mode, don't save the metadata import file in a folder named SOURCE_STORAGE_URI/deletions/.Caution: If the metadata import file contains no data, all entries and aspects that belong to the job's scope are deleted.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1MetadataJobImportJobSpecImportJobScope": { +"description": "A boundary on the scope of impact that the metadata import job can have.", +"id": "GoogleCloudDataplexV1MetadataJobImportJobSpecImportJobScope", +"properties": { +"aspectTypes": { +"description": "Optional. The aspect types that are in scope for the import job, specified as relative resource names in the format projects/{project_number_or_id}/locations/{location_id}/aspectTypes/{aspect_type_id}. The job modifies only the aspects that belong to these aspect types.If the metadata import file attempts to modify an aspect whose type isn't included in this list, the import job is halted before modifying any entries or aspects.The location of an aspect type must either match the location of the job, or the aspect type must be global.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entryGroups": { +"description": "Required. The entry group that is in scope for the import job, specified as a relative resource name in the format projects/{project_number_or_id}/locations/{location_id}/entryGroups/{entry_group_id}. Only entries that belong to the specified entry group are affected by the job.Must contain exactly one element. The entry group and the job must be in the same location.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entryTypes": { +"description": "Required. The entry types that are in scope for the import job, specified as relative resource names in the format projects/{project_number_or_id}/locations/{location_id}/entryTypes/{entry_type_id}. The job modifies only the entries that belong to these entry types.If the metadata import file attempts to modify an entry whose type isn't included in this list, the import job is halted before modifying any entries or aspects.The location of an entry type must either match the location of the job, or the entry type must be global.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1MetadataJobStatus": { +"description": "Metadata job status.", +"id": "GoogleCloudDataplexV1MetadataJobStatus", +"properties": { +"completionPercent": { +"description": "Output only. Progress tracking.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"message": { +"description": "Output only. Message relating to the progression of a metadata job.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the metadata job.", +"enum": [ +"STATE_UNSPECIFIED", +"QUEUED", +"RUNNING", +"CANCELING", +"CANCELED", +"SUCCEEDED", +"FAILED", +"SUCCEEDED_WITH_ERRORS" +], +"enumDescriptions": [ +"State unspecified.", +"The job is queued.", +"The job is running.", +"The job is being canceled.", +"The job is canceled.", +"The job succeeded.", +"The job failed.", +"The job completed with some errors." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the status was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1OperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "GoogleCloudDataplexV1OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Partition": { +"description": "Represents partition metadata contained within entity instances.", +"id": "GoogleCloudDataplexV1Partition", +"properties": { +"etag": { +"deprecated": true, +"description": "Optional. The etag for this partition.", +"type": "string" +}, +"location": { +"description": "Required. Immutable. The location of the entity data within the partition, for example, gs://bucket/path/to/entity/key1=value1/key2=value2. Or projects//datasets//tables/", +"type": "string" +}, +"name": { +"description": "Output only. Partition values used in the HTTP URL must be double encoded. For example, url_encode(url_encode(value)) can be used to encode \"US:CA/CA#Sunnyvale so that the request URL ends with \"/partitions/US%253ACA/CA%2523Sunnyvale\". The name field in the response retains the encoded format.", +"readOnly": true, +"type": "string" +}, +"values": { +"description": "Required. Immutable. The set of values representing the partition, which correspond to the partition schema defined in the parent entity.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ResourceAccessSpec": { +"description": "ResourceAccessSpec holds the access control configuration to be enforced on the resources, for example, Cloud Storage bucket, BigQuery dataset, BigQuery table.", +"id": "GoogleCloudDataplexV1ResourceAccessSpec", +"properties": { +"owners": { +"description": "Optional. The set of principals to be granted owner role on the resource.", +"items": { +"type": "string" +}, +"type": "array" +}, +"readers": { +"description": "Optional. The format of strings follows the pattern followed by IAM in the bindings. user:{email}, serviceAccount:{email} group:{email}. The set of principals to be granted reader role on the resource.", +"items": { +"type": "string" +}, +"type": "array" +}, +"writers": { +"description": "Optional. The set of principals to be granted writer role on the resource.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1RunDataScanRequest": { +"description": "Run DataScan Request", +"id": "GoogleCloudDataplexV1RunDataScanRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1RunDataScanResponse": { +"description": "Run DataScan Response.", +"id": "GoogleCloudDataplexV1RunDataScanResponse", +"properties": { +"job": { +"$ref": "GoogleCloudDataplexV1DataScanJob", +"description": "DataScanJob created by RunDataScan request." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1RunTaskRequest": { +"id": "GoogleCloudDataplexV1RunTaskRequest", +"properties": { +"args": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Execution spec arguments. If the map is left empty, the task will run with existing execution spec args from task definition. If the map contains an entry with a new key, the same will be added to existing set of args. If the map contains an entry with an existing arg key in task definition, the task will run with new arg value for that entry. Clearing an existing arg will require arg value to be explicitly set to a hyphen \"-\". The arg value cannot be empty.", +"type": "object" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the task. If the map is left empty, the task will run with existing labels from task definition. If the map contains an entry with a new key, the same will be added to existing set of labels. If the map contains an entry with an existing label key in task definition, the task will run with new label value for that entry. Clearing an existing label will require label value to be explicitly set to a hyphen \"-\". The label value cannot be empty.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1RunTaskResponse": { +"id": "GoogleCloudDataplexV1RunTaskResponse", +"properties": { +"job": { +"$ref": "GoogleCloudDataplexV1Job", +"description": "Jobs created by RunTask API." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ScannedData": { +"description": "The data scanned during processing (e.g. in incremental DataScan)", +"id": "GoogleCloudDataplexV1ScannedData", +"properties": { +"incrementalField": { +"$ref": "GoogleCloudDataplexV1ScannedDataIncrementalField", +"description": "The range denoted by values of an incremental field" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ScannedDataIncrementalField": { +"description": "A data range denoted by a pair of start/end values of a field.", +"id": "GoogleCloudDataplexV1ScannedDataIncrementalField", +"properties": { +"end": { +"description": "Value that marks the end of the range.", +"type": "string" +}, +"field": { +"description": "The field that contains values which monotonically increases over time (e.g. a timestamp column).", +"type": "string" +}, +"start": { +"description": "Value that marks the start of the range.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Schema": { +"description": "Schema information describing the structure and layout of the data.", +"id": "GoogleCloudDataplexV1Schema", +"properties": { +"fields": { +"description": "Optional. The sequence of fields describing data in table entities. Note: BigQuery SchemaFields are immutable.", +"items": { +"$ref": "GoogleCloudDataplexV1SchemaSchemaField" +}, +"type": "array" +}, +"partitionFields": { +"description": "Optional. The sequence of fields describing the partition structure in entities. If this field is empty, there are no partitions within the data.", +"items": { +"$ref": "GoogleCloudDataplexV1SchemaPartitionField" +}, +"type": "array" +}, +"partitionStyle": { +"description": "Optional. The structure of paths containing partition data within the entity.", +"enum": [ +"PARTITION_STYLE_UNSPECIFIED", +"HIVE_COMPATIBLE" +], +"enumDescriptions": [ +"PartitionStyle unspecified", +"Partitions are hive-compatible. Examples: gs://bucket/path/to/table/dt=2019-10-31/lang=en, gs://bucket/path/to/table/dt=2019-10-31/lang=en/late." +], +"type": "string" +}, +"userManaged": { +"description": "Required. Set to true if user-managed or false if managed by Dataplex. The default is false (managed by Dataplex). Set to falseto enable Dataplex discovery to update the schema. including new data discovery, schema inference, and schema evolution. Users retain the ability to input and edit the schema. Dataplex treats schema input by the user as though produced by a previous Dataplex discovery operation, and it will evolve the schema and take action based on that treatment. Set to true to fully manage the entity schema. This setting guarantees that Dataplex will not change schema fields.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1SchemaPartitionField": { +"description": "Represents a key field within the entity's partition structure. You could have up to 20 partition fields, but only the first 10 partitions have the filtering ability due to performance consideration. Note: Partition fields are immutable.", +"id": "GoogleCloudDataplexV1SchemaPartitionField", +"properties": { +"name": { +"description": "Required. Partition field name must consist of letters, numbers, and underscores only, with a maximum of length of 256 characters, and must begin with a letter or underscore..", +"type": "string" +}, +"type": { +"description": "Required. Immutable. The type of field.", +"enum": [ +"TYPE_UNSPECIFIED", +"BOOLEAN", +"BYTE", +"INT16", +"INT32", +"INT64", +"FLOAT", +"DOUBLE", +"DECIMAL", +"STRING", +"BINARY", +"TIMESTAMP", +"DATE", +"TIME", +"RECORD", +"NULL" +], +"enumDescriptions": [ +"SchemaType unspecified.", +"Boolean field.", +"Single byte numeric field.", +"16-bit numeric field.", +"32-bit numeric field.", +"64-bit numeric field.", +"Floating point numeric field.", +"Double precision numeric field.", +"Real value numeric field.", +"Sequence of characters field.", +"Sequence of bytes field.", +"Date and time field.", +"Date field.", +"Time field.", +"Structured field. Nested fields that define the structure of the map. If all nested fields are nullable, this field represents a union.", +"Null field that does not have values." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1SchemaSchemaField": { +"description": "Represents a column field within a table schema.", +"id": "GoogleCloudDataplexV1SchemaSchemaField", +"properties": { +"description": { +"description": "Optional. User friendly field description. Must be less than or equal to 1024 characters.", +"type": "string" +}, +"fields": { +"description": "Optional. Any nested field for complex types.", +"items": { +"$ref": "GoogleCloudDataplexV1SchemaSchemaField" +}, +"type": "array" +}, +"mode": { +"description": "Required. Additional field semantics.", +"enum": [ +"MODE_UNSPECIFIED", +"REQUIRED", +"NULLABLE", +"REPEATED" +], +"enumDescriptions": [ +"Mode unspecified.", +"The field has required semantics.", +"The field has optional semantics, and may be null.", +"The field has repeated (0 or more) semantics, and is a list of values." +], +"type": "string" +}, +"name": { +"description": "Required. The name of the field. Must contain only letters, numbers and underscores, with a maximum length of 767 characters, and must begin with a letter or underscore.", +"type": "string" +}, +"type": { +"description": "Required. The type of field.", +"enum": [ +"TYPE_UNSPECIFIED", +"BOOLEAN", +"BYTE", +"INT16", +"INT32", +"INT64", +"FLOAT", +"DOUBLE", +"DECIMAL", +"STRING", +"BINARY", +"TIMESTAMP", +"DATE", +"TIME", +"RECORD", +"NULL" +], +"enumDescriptions": [ +"SchemaType unspecified.", +"Boolean field.", +"Single byte numeric field.", +"16-bit numeric field.", +"32-bit numeric field.", +"64-bit numeric field.", +"Floating point numeric field.", +"Double precision numeric field.", +"Real value numeric field.", +"Sequence of characters field.", +"Sequence of bytes field.", +"Date and time field.", +"Date field.", +"Time field.", +"Structured field. Nested fields that define the structure of the map. If all nested fields are nullable, this field represents a union.", +"Null field that does not have values." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1SearchEntriesResponse": { +"id": "GoogleCloudDataplexV1SearchEntriesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"results": { +"description": "The results matching the search query.", +"items": { +"$ref": "GoogleCloudDataplexV1SearchEntriesResult" +}, +"type": "array" +}, +"totalSize": { +"description": "The estimated total number of matching entries. This number isn't guaranteed to be accurate.", +"format": "int32", +"type": "integer" +}, +"unreachable": { +"description": "Locations that the service couldn't reach. Search results don't include data from these locations.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1SearchEntriesResult": { +"description": "A single result of a SearchEntries request.", +"id": "GoogleCloudDataplexV1SearchEntriesResult", +"properties": { +"dataplexEntry": { +"$ref": "GoogleCloudDataplexV1Entry" +}, +"linkedResource": { +"deprecated": true, +"description": "Linked resource name.", +"type": "string" +}, +"snippets": { +"$ref": "GoogleCloudDataplexV1SearchEntriesResultSnippets", +"deprecated": true, +"description": "Snippets." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1SearchEntriesResultSnippets": { +"deprecated": true, +"description": "Snippets for the entry, contains HTML-style highlighting for matched tokens, will be used in UI.", +"id": "GoogleCloudDataplexV1SearchEntriesResultSnippets", +"properties": { +"dataplexEntry": { +"$ref": "GoogleCloudDataplexV1Entry", +"deprecated": true, +"description": "Entry" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Session": { +"description": "Represents an active analyze session running for a user.", +"id": "GoogleCloudDataplexV1Session", +"properties": { +"createTime": { +"description": "Output only. Session start time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The relative resource name of the content, of the form: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}/sessions/{session_id}", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of Session", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"ACTION_REQUIRED" +], +"enumDescriptions": [ +"State is not specified.", +"Resource is active, i.e., ready to use.", +"Resource is under creation.", +"Resource is under deletion.", +"Resource is active but has unresolved actions." +], +"readOnly": true, +"type": "string" +}, +"userId": { +"description": "Output only. Email of user running the session.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1SessionEvent": { +"description": "These messages contain information about sessions within an environment. The monitored resource is 'Environment'.", +"id": "GoogleCloudDataplexV1SessionEvent", +"properties": { +"eventSucceeded": { +"description": "The status of the event.", +"type": "boolean" +}, +"fastStartupEnabled": { +"description": "If the session is associated with an environment with fast startup enabled, and was created before being assigned to a user.", +"type": "boolean" +}, +"message": { +"description": "The log message.", +"type": "string" +}, +"query": { +"$ref": "GoogleCloudDataplexV1SessionEventQueryDetail", +"description": "The execution details of the query." +}, +"sessionId": { +"description": "Unique identifier for the session.", +"type": "string" +}, +"type": { +"description": "The type of the event.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"START", +"STOP", +"QUERY", +"CREATE" +], +"enumDescriptions": [ +"An unspecified event type.", +"Event when the session is assigned to a user.", +"Event for stop of a session.", +"Query events in the session.", +"Event for creation of a cluster. It is not yet assigned to a user. This comes before START in the sequence" +], +"type": "string" +}, +"unassignedDuration": { +"description": "The idle duration of a warm pooled session before it is assigned to user.", +"format": "google-duration", +"type": "string" +}, +"userId": { +"description": "The information about the user that created the session. It will be the email address of the user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1SessionEventQueryDetail": { +"description": "Execution details of the query.", +"id": "GoogleCloudDataplexV1SessionEventQueryDetail", +"properties": { +"dataProcessedBytes": { +"description": "The data processed by the query.", +"format": "int64", +"type": "string" +}, +"duration": { +"description": "Time taken for execution of the query.", +"format": "google-duration", +"type": "string" +}, +"engine": { +"description": "Query Execution engine.", +"enum": [ +"ENGINE_UNSPECIFIED", +"SPARK_SQL", +"BIGQUERY" +], +"enumDescriptions": [ +"An unspecified Engine type.", +"Spark-sql engine is specified in Query.", +"BigQuery engine is specified in Query." +], +"type": "string" +}, +"queryId": { +"description": "The unique Query id identifying the query.", +"type": "string" +}, +"queryText": { +"description": "The query text executed.", +"type": "string" +}, +"resultSizeBytes": { +"description": "The size of results the query produced.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1StorageAccess": { +"description": "Describes the access mechanism of the data within its storage location.", +"id": "GoogleCloudDataplexV1StorageAccess", +"properties": { +"read": { +"description": "Output only. Describes the read access mechanism of the data. Not user settable.", +"enum": [ +"ACCESS_MODE_UNSPECIFIED", +"DIRECT", +"MANAGED" +], +"enumDescriptions": [ +"Access mode unspecified.", +"Default. Data is accessed directly using storage APIs.", +"Data is accessed through a managed interface using BigQuery APIs." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1StorageFormat": { +"description": "Describes the format of the data within its storage location.", +"id": "GoogleCloudDataplexV1StorageFormat", +"properties": { +"compressionFormat": { +"description": "Optional. The compression type associated with the stored data. If unspecified, the data is uncompressed.", +"enum": [ +"COMPRESSION_FORMAT_UNSPECIFIED", +"GZIP", +"BZIP2" +], +"enumDescriptions": [ +"CompressionFormat unspecified. Implies uncompressed data.", +"GZip compressed set of files.", +"BZip2 compressed set of files." +], +"type": "string" +}, +"csv": { +"$ref": "GoogleCloudDataplexV1StorageFormatCsvOptions", +"description": "Optional. Additional information about CSV formatted data." +}, +"format": { +"description": "Output only. The data format associated with the stored data, which represents content type values. The value is inferred from mime type.", +"enum": [ +"FORMAT_UNSPECIFIED", +"PARQUET", +"AVRO", +"ORC", +"CSV", +"JSON", +"IMAGE", +"AUDIO", +"VIDEO", +"TEXT", +"TFRECORD", +"OTHER", +"UNKNOWN" +], +"enumDescriptions": [ +"Format unspecified.", +"Parquet-formatted structured data.", +"Avro-formatted structured data.", +"Orc-formatted structured data.", +"Csv-formatted semi-structured data.", +"Json-formatted semi-structured data.", +"Image data formats (such as jpg and png).", +"Audio data formats (such as mp3, and wav).", +"Video data formats (such as mp4 and mpg).", +"Textual data formats (such as txt and xml).", +"TensorFlow record format.", +"Data that doesn't match a specific format.", +"Data of an unknown format." +], +"readOnly": true, +"type": "string" +}, +"iceberg": { +"$ref": "GoogleCloudDataplexV1StorageFormatIcebergOptions", +"description": "Optional. Additional information about iceberg tables." +}, +"json": { +"$ref": "GoogleCloudDataplexV1StorageFormatJsonOptions", +"description": "Optional. Additional information about CSV formatted data." +}, +"mimeType": { +"description": "Required. The mime type descriptor for the data. Must match the pattern {type}/{subtype}. Supported values: application/x-parquet application/x-avro application/x-orc application/x-tfrecord application/x-parquet+iceberg application/x-avro+iceberg application/x-orc+iceberg application/json application/{subtypes} text/csv text/ image/{image subtype} video/{video subtype} audio/{audio subtype}", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1StorageFormatCsvOptions": { +"description": "Describes CSV and similar semi-structured data formats.", +"id": "GoogleCloudDataplexV1StorageFormatCsvOptions", +"properties": { +"delimiter": { +"description": "Optional. The delimiter used to separate values. Defaults to ','.", +"type": "string" +}, +"encoding": { +"description": "Optional. The character encoding of the data. Accepts \"US-ASCII\", \"UTF-8\", and \"ISO-8859-1\". Defaults to UTF-8 if unspecified.", +"type": "string" +}, +"headerRows": { +"description": "Optional. The number of rows to interpret as header rows that should be skipped when reading data rows. Defaults to 0.", +"format": "int32", +"type": "integer" +}, +"quote": { +"description": "Optional. The character used to quote column values. Accepts '\"' (double quotation mark) or ''' (single quotation mark). Defaults to '\"' (double quotation mark) if unspecified.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1StorageFormatIcebergOptions": { +"description": "Describes Iceberg data format.", +"id": "GoogleCloudDataplexV1StorageFormatIcebergOptions", +"properties": { +"metadataLocation": { +"description": "Optional. The location of where the iceberg metadata is present, must be within the table path", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1StorageFormatJsonOptions": { +"description": "Describes JSON data format.", +"id": "GoogleCloudDataplexV1StorageFormatJsonOptions", +"properties": { +"encoding": { +"description": "Optional. The character encoding of the data. Accepts \"US-ASCII\", \"UTF-8\" and \"ISO-8859-1\". Defaults to UTF-8 if not specified.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Task": { +"description": "A task represents a user-visible job.", +"id": "GoogleCloudDataplexV1Task", +"properties": { +"createTime": { +"description": "Output only. The time when the task was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the task.", +"type": "string" +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"executionSpec": { +"$ref": "GoogleCloudDataplexV1TaskExecutionSpec", +"description": "Required. Spec related to how a task is executed." +}, +"executionStatus": { +"$ref": "GoogleCloudDataplexV1TaskExecutionStatus", +"description": "Output only. Status of the latest task executions.", +"readOnly": true +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined labels for the task.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the task, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ tasks/{task_id}.", +"readOnly": true, +"type": "string" +}, +"notebook": { +"$ref": "GoogleCloudDataplexV1TaskNotebookTaskConfig", +"description": "Config related to running scheduled Notebooks." +}, +"spark": { +"$ref": "GoogleCloudDataplexV1TaskSparkTaskConfig", +"description": "Config related to running custom Spark tasks." +}, +"state": { +"description": "Output only. Current state of the task.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"ACTION_REQUIRED" +], +"enumDescriptions": [ +"State is not specified.", +"Resource is active, i.e., ready to use.", +"Resource is under creation.", +"Resource is under deletion.", +"Resource is active but has unresolved actions." +], +"readOnly": true, +"type": "string" +}, +"triggerSpec": { +"$ref": "GoogleCloudDataplexV1TaskTriggerSpec", +"description": "Required. Spec related to how often and when a task should be triggered." +}, +"uid": { +"description": "Output only. System generated globally unique ID for the task. This ID will be different if the task is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the task was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TaskExecutionSpec": { +"description": "Execution related settings, like retry and service_account.", +"id": "GoogleCloudDataplexV1TaskExecutionSpec", +"properties": { +"args": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The arguments to pass to the task. The args can use placeholders of the format ${placeholder} as part of key/value string. These will be interpolated before passing the args to the driver. Currently supported placeholders: - ${task_id} - ${job_time} To pass positional args, set the key as TASK_ARGS. The value should be a comma-separated string of all the positional arguments. To use a delimiter other than comma, refer to https://cloud.google.com/sdk/gcloud/reference/topic/escaping. In case of other keys being present in the args, then TASK_ARGS will be passed as the last argument.", +"type": "object" +}, +"kmsKey": { +"description": "Optional. The Cloud KMS key to use for encryption, of the form: projects/{project_number}/locations/{location_id}/keyRings/{key-ring-name}/cryptoKeys/{key-name}.", +"type": "string" +}, +"maxJobExecutionLifetime": { +"description": "Optional. The maximum duration after which the job execution is expired.", +"format": "google-duration", +"type": "string" +}, +"project": { +"description": "Optional. The project in which jobs are run. By default, the project containing the Lake is used. If a project is provided, the ExecutionSpec.service_account must belong to this project.", +"type": "string" +}, +"serviceAccount": { +"description": "Required. Service account to use to execute a task. If not provided, the default Compute service account for the project is used.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TaskExecutionStatus": { +"description": "Status of the task execution (e.g. Jobs).", +"id": "GoogleCloudDataplexV1TaskExecutionStatus", +"properties": { +"latestJob": { +"$ref": "GoogleCloudDataplexV1Job", +"description": "Output only. latest job execution", +"readOnly": true +}, +"updateTime": { +"description": "Output only. Last update time of the status.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TaskInfrastructureSpec": { +"description": "Configuration for the underlying infrastructure used to run workloads.", +"id": "GoogleCloudDataplexV1TaskInfrastructureSpec", +"properties": { +"batch": { +"$ref": "GoogleCloudDataplexV1TaskInfrastructureSpecBatchComputeResources", +"description": "Compute resources needed for a Task when using Dataproc Serverless." +}, +"containerImage": { +"$ref": "GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime", +"description": "Container Image Runtime Configuration." +}, +"vpcNetwork": { +"$ref": "GoogleCloudDataplexV1TaskInfrastructureSpecVpcNetwork", +"description": "Vpc network." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TaskInfrastructureSpecBatchComputeResources": { +"description": "Batch compute resources associated with the task.", +"id": "GoogleCloudDataplexV1TaskInfrastructureSpecBatchComputeResources", +"properties": { +"executorsCount": { +"description": "Optional. Total number of job executors. Executor Count should be between 2 and 100. Default=2", +"format": "int32", +"type": "integer" +}, +"maxExecutorsCount": { +"description": "Optional. Max configurable executors. If max_executors_count > executors_count, then auto-scaling is enabled. Max Executor Count should be between 2 and 1000. Default=1000", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime": { +"description": "Container Image Runtime Configuration used with Batch execution.", +"id": "GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime", +"properties": { +"image": { +"description": "Optional. Container image to use.", +"type": "string" +}, +"javaJars": { +"description": "Optional. A list of Java JARS to add to the classpath. Valid input includes Cloud Storage URIs to Jar binaries. For example, gs://bucket-name/my/path/to/file.jar", +"items": { +"type": "string" +}, +"type": "array" +}, +"properties": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Override to common configuration of open source components installed on the Dataproc cluster. The properties to set on daemon config files. Property keys are specified in prefix:property format, for example core:hadoop.tmp.dir. For more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties).", +"type": "object" +}, +"pythonPackages": { +"description": "Optional. A list of python packages to be installed. Valid formats include Cloud Storage URI to a PIP installable library. For example, gs://bucket-name/my/path/to/lib.tar.gz", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TaskInfrastructureSpecVpcNetwork": { +"description": "Cloud VPC Network used to run the infrastructure.", +"id": "GoogleCloudDataplexV1TaskInfrastructureSpecVpcNetwork", +"properties": { +"network": { +"description": "Optional. The Cloud VPC network in which the job is run. By default, the Cloud VPC network named Default within the project is used.", +"type": "string" +}, +"networkTags": { +"description": "Optional. List of network tags to apply to the job.", +"items": { +"type": "string" +}, +"type": "array" +}, +"subNetwork": { +"description": "Optional. The Cloud VPC sub-network in which the job is run.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TaskNotebookTaskConfig": { +"description": "Config for running scheduled notebooks.", +"id": "GoogleCloudDataplexV1TaskNotebookTaskConfig", +"properties": { +"archiveUris": { +"description": "Optional. Cloud Storage URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.", +"items": { +"type": "string" +}, +"type": "array" +}, +"fileUris": { +"description": "Optional. Cloud Storage URIs of files to be placed in the working directory of each executor.", +"items": { +"type": "string" +}, +"type": "array" +}, +"infrastructureSpec": { +"$ref": "GoogleCloudDataplexV1TaskInfrastructureSpec", +"description": "Optional. Infrastructure specification for the execution." +}, +"notebook": { +"description": "Required. Path to input notebook. This can be the Cloud Storage URI of the notebook file or the path to a Notebook Content. The execution args are accessible as environment variables (TASK_key=value).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TaskSparkTaskConfig": { +"description": "User-specified config for running a Spark task.", +"id": "GoogleCloudDataplexV1TaskSparkTaskConfig", +"properties": { +"archiveUris": { +"description": "Optional. Cloud Storage URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.", +"items": { +"type": "string" +}, +"type": "array" +}, +"fileUris": { +"description": "Optional. Cloud Storage URIs of files to be placed in the working directory of each executor.", +"items": { +"type": "string" +}, +"type": "array" +}, +"infrastructureSpec": { +"$ref": "GoogleCloudDataplexV1TaskInfrastructureSpec", +"description": "Optional. Infrastructure specification for the execution." +}, +"mainClass": { +"description": "The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris. The execution args are passed in as a sequence of named process arguments (--key=value).", +"type": "string" +}, +"mainJarFileUri": { +"description": "The Cloud Storage URI of the jar file that contains the main class. The execution args are passed in as a sequence of named process arguments (--key=value).", +"type": "string" +}, +"pythonScriptFile": { +"description": "The Gcloud Storage URI of the main Python file to use as the driver. Must be a .py file. The execution args are passed in as a sequence of named process arguments (--key=value).", +"type": "string" +}, +"sqlScript": { +"description": "The query text. The execution args are used to declare a set of script variables (set key=\"value\";).", +"type": "string" +}, +"sqlScriptFile": { +"description": "A reference to a query file. This should be the Cloud Storage URI of the query file. The execution args are used to declare a set of script variables (set key=\"value\";).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TaskTriggerSpec": { +"description": "Task scheduling and trigger settings.", +"id": "GoogleCloudDataplexV1TaskTriggerSpec", +"properties": { +"disabled": { +"description": "Optional. Prevent the task from executing. This does not cancel already running tasks. It is intended to temporarily disable RECURRING tasks.", +"type": "boolean" +}, +"maxRetries": { +"description": "Optional. Number of retry attempts before aborting. Set to zero to never attempt to retry a failed task.", +"format": "int32", +"type": "integer" +}, +"schedule": { +"description": "Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running tasks periodically. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or \"TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *. This field is required for RECURRING tasks.", +"type": "string" +}, +"startTime": { +"description": "Optional. The first run of the task will be after this time. If not specified, the task will run shortly after being submitted if ON_DEMAND and based on the schedule if RECURRING.", +"format": "google-datetime", +"type": "string" +}, +"type": { +"description": "Required. Immutable. Trigger type of the user-specified Task.", +"enum": [ +"TYPE_UNSPECIFIED", +"ON_DEMAND", +"RECURRING" +], +"enumDescriptions": [ +"Unspecified trigger type.", +"The task runs one-time shortly after Task Creation.", +"The task is scheduled to run periodically." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Trigger": { +"description": "DataScan scheduling and trigger settings.", +"id": "GoogleCloudDataplexV1Trigger", +"properties": { +"onDemand": { +"$ref": "GoogleCloudDataplexV1TriggerOnDemand", +"description": "The scan runs once via RunDataScan API." +}, +"schedule": { +"$ref": "GoogleCloudDataplexV1TriggerSchedule", +"description": "The scan is scheduled to run periodically." +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1TriggerOnDemand": { +"description": "The scan runs once via RunDataScan API.", +"id": "GoogleCloudDataplexV1TriggerOnDemand", +"properties": {}, +"type": "object" +}, +"GoogleCloudDataplexV1TriggerSchedule": { +"description": "The scan is scheduled to run periodically.", +"id": "GoogleCloudDataplexV1TriggerSchedule", +"properties": { +"cron": { +"description": "Required. Cron (https://en.wikipedia.org/wiki/Cron) schedule for running scans periodically.To explicitly set a timezone in the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or \"TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database (wikipedia (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)). For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *.This field is required for Schedule scans.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1Zone": { +"description": "A zone represents a logical group of related assets within a lake. A zone can be used to map to organizational structure or represent stages of data readiness from raw to curated. It provides managing behavior that is shared or inherited by all contained assets.", +"id": "GoogleCloudDataplexV1Zone", +"properties": { +"assetStatus": { +"$ref": "GoogleCloudDataplexV1AssetStatus", +"description": "Output only. Aggregated status of the underlying assets of the zone.", +"readOnly": true +}, +"createTime": { +"description": "Output only. The time when the zone was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the zone.", +"type": "string" +}, +"discoverySpec": { +"$ref": "GoogleCloudDataplexV1ZoneDiscoverySpec", +"description": "Optional. Specification of the discovery feature applied to data in this zone." +}, +"displayName": { +"description": "Optional. User friendly display name.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User defined labels for the zone.", +"type": "object" +}, +"name": { +"description": "Output only. The relative resource name of the zone, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", +"readOnly": true, +"type": "string" +}, +"resourceSpec": { +"$ref": "GoogleCloudDataplexV1ZoneResourceSpec", +"description": "Required. Specification of the resources that are referenced by the assets within this zone." +}, +"state": { +"description": "Output only. Current state of the zone.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CREATING", +"DELETING", +"ACTION_REQUIRED" +], +"enumDescriptions": [ +"State is not specified.", +"Resource is active, i.e., ready to use.", +"Resource is under creation.", +"Resource is under deletion.", +"Resource is active but has unresolved actions." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. Immutable. The type of the zone.", +"enum": [ +"TYPE_UNSPECIFIED", +"RAW", +"CURATED" +], +"enumDescriptions": [ +"Zone type not specified.", +"A zone that contains data that needs further processing before it is considered generally ready for consumption and analytics workloads.", +"A zone that contains data that is considered to be ready for broader consumption and analytics workloads. Curated structured data stored in Cloud Storage must conform to certain file formats (parquet, avro and orc) and organized in a hive-compatible directory layout." +], +"type": "string" +}, +"uid": { +"description": "Output only. System generated globally unique ID for the zone. This ID will be different if the zone is deleted and re-created with the same name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the zone was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ZoneDiscoverySpec": { +"description": "Settings to manage the metadata discovery and publishing in a zone.", +"id": "GoogleCloudDataplexV1ZoneDiscoverySpec", +"properties": { +"csvOptions": { +"$ref": "GoogleCloudDataplexV1ZoneDiscoverySpecCsvOptions", +"description": "Optional. Configuration for CSV data." +}, +"enabled": { +"description": "Required. Whether discovery is enabled.", +"type": "boolean" +}, +"excludePatterns": { +"description": "Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.", +"items": { +"type": "string" +}, +"type": "array" +}, +"includePatterns": { +"description": "Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.", +"items": { +"type": "string" +}, +"type": "array" +}, +"jsonOptions": { +"$ref": "GoogleCloudDataplexV1ZoneDiscoverySpecJsonOptions", +"description": "Optional. Configuration for Json data." +}, +"schedule": { +"description": "Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ZoneDiscoverySpecCsvOptions": { +"description": "Describe CSV and similar semi-structured data formats.", +"id": "GoogleCloudDataplexV1ZoneDiscoverySpecCsvOptions", +"properties": { +"delimiter": { +"description": "Optional. The delimiter being used to separate values. This defaults to ','.", +"type": "string" +}, +"disableTypeInference": { +"description": "Optional. Whether to disable the inference of data type for CSV data. If true, all columns will be registered as strings.", +"type": "boolean" +}, +"encoding": { +"description": "Optional. The character encoding of the data. The default is UTF-8.", +"type": "string" +}, +"headerRows": { +"description": "Optional. The number of rows to interpret as header rows that should be skipped when reading data rows.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ZoneDiscoverySpecJsonOptions": { +"description": "Describe JSON data format.", +"id": "GoogleCloudDataplexV1ZoneDiscoverySpecJsonOptions", +"properties": { +"disableTypeInference": { +"description": "Optional. Whether to disable the inference of data type for Json data. If true, all columns will be registered as their primitive types (strings, number or boolean).", +"type": "boolean" +}, +"encoding": { +"description": "Optional. The character encoding of the data. The default is UTF-8.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDataplexV1ZoneResourceSpec": { +"description": "Settings for resources attached as assets within a zone.", +"id": "GoogleCloudDataplexV1ZoneResourceSpec", +"properties": { +"locationType": { +"description": "Required. Immutable. The location type of the resources that are allowed to be attached to the assets within this zone.", +"enum": [ +"LOCATION_TYPE_UNSPECIFIED", +"SINGLE_REGION", +"MULTI_REGION" +], +"enumDescriptions": [ +"Unspecified location type.", +"Resources that are associated with a single region.", +"Resources that are associated with a multi-region location." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "GoogleCloudLocationListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleCloudLocationLocation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudLocationLocation": { +"description": "A resource that represents a Google Cloud location.", +"id": "GoogleCloudLocationLocation", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"} ", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: \"us-east1\".", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.If there are AuditConfigs for both allServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted.Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", +"id": "GoogleIamV1AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "GoogleIamV1AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, storage.googleapis.com, cloudsql.googleapis.com. allServices is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "GoogleIamV1AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Binding": { +"description": "Associates members, or principals, with a role.", +"id": "GoogleIamV1Binding", +"properties": { +"condition": { +"$ref": "GoogleTypeExpr", +"description": "The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workforce identity pool. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}: All workforce identities in a group. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All workforce identities with a specific attribute value. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: All identities in a workforce identity pool. principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workload identity pool. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}: A workload identity pool group. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All identities in a workload identity pool with a certain attribute. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*: All identities in a workload identity pool. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: Deleted single identity in a workforce identity pool. For example, deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of members, or principals. For example, roles/viewer, roles/editor, or roles/owner.For an overview of the IAM roles and permissions, see the IAM documentation (https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see here (https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members, or principals, to a single role. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/).", +"id": "GoogleIamV1Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "GoogleIamV1AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of members, or principals, with a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one principal.The bindings in a Policy can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the bindings grant 50 different roles to user:alice@example.com, and not to any other principal, then you can add another 1,450 principals to the bindings in the Policy.", +"items": { +"$ref": "GoogleIamV1Binding" +}, +"type": "array" +}, +"etag": { +"description": "etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An etag is returned in the response to getIamPolicy, and systems are expected to put that etag in the request to setIamPolicy to ensure that their change will be applied to the same version of the policy.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleIamV1SetIamPolicyRequest": { +"description": "Request message for SetIamPolicy method.", +"id": "GoogleIamV1SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "GoogleIamV1Policy", +"description": "REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used:paths: \"bindings, etag\"", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1TestIamPermissionsRequest": { +"description": "Request message for TestIamPermissions method.", +"id": "GoogleIamV1TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the resource. Permissions with wildcards (such as * or storage.*) are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleIamV1TestIamPermissionsResponse": { +"description": "Response message for TestIamPermissions method.", +"id": "GoogleIamV1TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of TestPermissionsRequest.permissions that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningCancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "GoogleLongrunningCancelOperationRequest", +"properties": {}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"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": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeExpr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "GoogleTypeExpr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Dataplex API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataportability.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataportability.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..3a57cc0ac4fc771c8e10e0a0073139e0b9cf0901 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dataportability.v1.json @@ -0,0 +1,756 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/dataportability.alerts.subscriptions": { +"description": "Move a copy of the Google Alerts subscriptions you created." +}, +"https://www.googleapis.com/auth/dataportability.businessmessaging.conversations": { +"description": "Move a copy of messages between you and the businesses you have conversations with across Google services." +}, +"https://www.googleapis.com/auth/dataportability.chrome.autofill": { +"description": "Move a copy of the information you entered into online forms in Chrome." +}, +"https://www.googleapis.com/auth/dataportability.chrome.bookmarks": { +"description": "Move a copy of pages you bookmarked in Chrome." +}, +"https://www.googleapis.com/auth/dataportability.chrome.dictionary": { +"description": "Move a copy of words you added to Chrome's dictionary." +}, +"https://www.googleapis.com/auth/dataportability.chrome.extensions": { +"description": "Move a copy of extensions you installed from the Chrome Web Store." +}, +"https://www.googleapis.com/auth/dataportability.chrome.history": { +"description": "Move a copy of sites you visited in Chrome." +}, +"https://www.googleapis.com/auth/dataportability.chrome.reading_list": { +"description": "Move a copy of pages you added to your reading list in Chrome." +}, +"https://www.googleapis.com/auth/dataportability.chrome.settings": { +"description": "Move a copy of your settings in Chrome." +}, +"https://www.googleapis.com/auth/dataportability.discover.follows": { +"description": "Move a copy of searches and sites you follow, saved by Discover." +}, +"https://www.googleapis.com/auth/dataportability.discover.likes": { +"description": "Move a copy of links to your liked documents, saved by Discover." +}, +"https://www.googleapis.com/auth/dataportability.discover.not_interested": { +"description": "Move a copy of content you marked as not interested, saved by Discover." +}, +"https://www.googleapis.com/auth/dataportability.maps.aliased_places": { +"description": "Move a copy of the places you labeled on Maps." +}, +"https://www.googleapis.com/auth/dataportability.maps.commute_routes": { +"description": "Move a copy of your pinned trips on Maps." +}, +"https://www.googleapis.com/auth/dataportability.maps.commute_settings": { +"description": "Move a copy of your commute settings on Maps." +}, +"https://www.googleapis.com/auth/dataportability.maps.ev_profile": { +"description": "Move a copy of your electric vehicle profile on Maps." +}, +"https://www.googleapis.com/auth/dataportability.maps.factual_contributions": { +"description": "Move a copy of the corrections you made to places or map information on Maps." +}, +"https://www.googleapis.com/auth/dataportability.maps.offering_contributions": { +"description": "Move a copy of your updates to places on Maps." +}, +"https://www.googleapis.com/auth/dataportability.maps.photos_videos": { +"description": "Move a copy of the photos and videos you posted on Maps." +}, +"https://www.googleapis.com/auth/dataportability.maps.questions_answers": { +"description": "Move a copy of the questions and answers you posted on Maps." +}, +"https://www.googleapis.com/auth/dataportability.maps.reviews": { +"description": "Move a copy of your reviews and posts on Maps." +}, +"https://www.googleapis.com/auth/dataportability.maps.starred_places": { +"description": "Move a copy of your Starred places list on Maps." +}, +"https://www.googleapis.com/auth/dataportability.myactivity.maps": { +"description": "Move a copy of your Maps activity." +}, +"https://www.googleapis.com/auth/dataportability.myactivity.myadcenter": { +"description": "Move a copy of your My Ad Center activity." +}, +"https://www.googleapis.com/auth/dataportability.myactivity.play": { +"description": "Move a copy of your Google Play activity." +}, +"https://www.googleapis.com/auth/dataportability.myactivity.search": { +"description": "Move a copy of your Google Search activity." +}, +"https://www.googleapis.com/auth/dataportability.myactivity.shopping": { +"description": "Move a copy of your Shopping activity." +}, +"https://www.googleapis.com/auth/dataportability.myactivity.youtube": { +"description": "Move a copy of your YouTube activity." +}, +"https://www.googleapis.com/auth/dataportability.mymaps.maps": { +"description": "Move a copy of the maps you created in My Maps." +}, +"https://www.googleapis.com/auth/dataportability.order_reserve.purchases_reservations": { +"description": "Move a copy of your food purchase and reservation activity." +}, +"https://www.googleapis.com/auth/dataportability.play.devices": { +"description": "Move a copy of information about your devices with Google Play Store installed." +}, +"https://www.googleapis.com/auth/dataportability.play.grouping": { +"description": "Move a copy of your Google Play Store Grouping tags created by app developers." +}, +"https://www.googleapis.com/auth/dataportability.play.installs": { +"description": "Move a copy of your Google Play Store app installations." +}, +"https://www.googleapis.com/auth/dataportability.play.library": { +"description": "Move a copy of your Google Play Store downloads, including books, games, and apps." +}, +"https://www.googleapis.com/auth/dataportability.play.playpoints": { +"description": "Move a copy of information about your Google Play Store Points." +}, +"https://www.googleapis.com/auth/dataportability.play.promotions": { +"description": "Move a copy of information about your Google Play Store promotions." +}, +"https://www.googleapis.com/auth/dataportability.play.purchases": { +"description": "Move a copy of your Google Play Store purchases." +}, +"https://www.googleapis.com/auth/dataportability.play.redemptions": { +"description": "Move a copy of your Google Play Store redemption activities." +}, +"https://www.googleapis.com/auth/dataportability.play.subscriptions": { +"description": "Move a copy of your Google Play Store subscriptions." +}, +"https://www.googleapis.com/auth/dataportability.play.usersettings": { +"description": "Move a copy of your Google Play Store user settings and preferences." +}, +"https://www.googleapis.com/auth/dataportability.saved.collections": { +"description": "Move a copy of your saved links, images, places, and collections from your use of Google services." +}, +"https://www.googleapis.com/auth/dataportability.search_ugc.media.reviews_and_stars": { +"description": "Move a copy of your media reviews on Google Search." +}, +"https://www.googleapis.com/auth/dataportability.search_ugc.media.streaming_video_providers": { +"description": "Move a copy of your self-reported video streaming provider preferences from Google Search and Google TV." +}, +"https://www.googleapis.com/auth/dataportability.search_ugc.media.thumbs": { +"description": "Move a copy of your indicated thumbs up and thumbs down on media in Google Search and Google TV." +}, +"https://www.googleapis.com/auth/dataportability.search_ugc.media.watched": { +"description": "Move a copy of information about the movies and TV shows you marked as watched on Google Search and Google TV." +}, +"https://www.googleapis.com/auth/dataportability.searchnotifications.settings": { +"description": "Move a copy of your notification settings on the Google Search app." +}, +"https://www.googleapis.com/auth/dataportability.searchnotifications.subscriptions": { +"description": "Move a copy of your notification subscriptions on Google Search app." +}, +"https://www.googleapis.com/auth/dataportability.shopping.addresses": { +"description": "Move a copy of your shipping information on Shopping." +}, +"https://www.googleapis.com/auth/dataportability.shopping.reviews": { +"description": "Move a copy of reviews you wrote about products or online stores on Google Search." +}, +"https://www.googleapis.com/auth/dataportability.streetview.imagery": { +"description": "Move a copy of the images and videos you uploaded to Street View." +}, +"https://www.googleapis.com/auth/dataportability.youtube.channel": { +"description": "Move a copy of information about your YouTube channel." +}, +"https://www.googleapis.com/auth/dataportability.youtube.clips": { +"description": "Move a copy of your YouTube clips metadata." +}, +"https://www.googleapis.com/auth/dataportability.youtube.comments": { +"description": "Move a copy of your YouTube comments." +}, +"https://www.googleapis.com/auth/dataportability.youtube.live_chat": { +"description": "Move a copy of your YouTube messages in live chat." +}, +"https://www.googleapis.com/auth/dataportability.youtube.music": { +"description": "Move a copy of your uploaded YouTube music tracks and your YouTube music library." +}, +"https://www.googleapis.com/auth/dataportability.youtube.playable": { +"description": "Move a copy of your YouTube playables saved game progress files." +}, +"https://www.googleapis.com/auth/dataportability.youtube.posts": { +"description": "Move a copy of your YouTube posts." +}, +"https://www.googleapis.com/auth/dataportability.youtube.private_playlists": { +"description": "Move a copy of your YouTube private playlists." +}, +"https://www.googleapis.com/auth/dataportability.youtube.private_videos": { +"description": "Move a copy of your private YouTube videos and information about them." +}, +"https://www.googleapis.com/auth/dataportability.youtube.public_playlists": { +"description": "Move a copy of your public YouTube playlists." +}, +"https://www.googleapis.com/auth/dataportability.youtube.public_videos": { +"description": "Move a copy of your public YouTube videos and information about them." +}, +"https://www.googleapis.com/auth/dataportability.youtube.shopping": { +"description": "Move a copy of your YouTube shopping wishlists, and wishlist items." +}, +"https://www.googleapis.com/auth/dataportability.youtube.subscriptions": { +"description": "Move a copy of your YouTube channel subscriptions, even if they're private." +}, +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_playlists": { +"description": "Move a copy of your unlisted YouTube playlists." +}, +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_videos": { +"description": "Move a copy of your unlisted YouTube videos and information about them." +} +} +} +}, +"basePath": "", +"baseUrl": "https://dataportability.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Data Portability", +"description": "The Data Portability API lets you build applications that request authorization from a user to move a copy of data from Google services into your application. This enables data portability and facilitates switching services.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/data-portability", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "dataportability:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://dataportability.mtls.googleapis.com/", +"name": "dataportability", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"archiveJobs": { +"methods": { +"getPortabilityArchiveState": { +"description": "Retrieves the state of an Archive job for the Portability API.", +"flatPath": "v1/archiveJobs/{archiveJobsId}/portabilityArchiveState", +"httpMethod": "GET", +"id": "dataportability.archiveJobs.getPortabilityArchiveState", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The archive job ID that is returned when you request the state of the job. The format is: archiveJobs/{archive_job}/portabilityArchiveState. archive_job is the job ID returned by the InitiatePortabilityArchiveResponse.", +"location": "path", +"pattern": "^archiveJobs/[^/]+/portabilityArchiveState$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PortabilityArchiveState" +}, +"scopes": [ +"https://www.googleapis.com/auth/dataportability.alerts.subscriptions", +"https://www.googleapis.com/auth/dataportability.businessmessaging.conversations", +"https://www.googleapis.com/auth/dataportability.chrome.autofill", +"https://www.googleapis.com/auth/dataportability.chrome.bookmarks", +"https://www.googleapis.com/auth/dataportability.chrome.dictionary", +"https://www.googleapis.com/auth/dataportability.chrome.extensions", +"https://www.googleapis.com/auth/dataportability.chrome.history", +"https://www.googleapis.com/auth/dataportability.chrome.reading_list", +"https://www.googleapis.com/auth/dataportability.chrome.settings", +"https://www.googleapis.com/auth/dataportability.discover.follows", +"https://www.googleapis.com/auth/dataportability.discover.likes", +"https://www.googleapis.com/auth/dataportability.discover.not_interested", +"https://www.googleapis.com/auth/dataportability.maps.aliased_places", +"https://www.googleapis.com/auth/dataportability.maps.commute_routes", +"https://www.googleapis.com/auth/dataportability.maps.commute_settings", +"https://www.googleapis.com/auth/dataportability.maps.ev_profile", +"https://www.googleapis.com/auth/dataportability.maps.factual_contributions", +"https://www.googleapis.com/auth/dataportability.maps.offering_contributions", +"https://www.googleapis.com/auth/dataportability.maps.photos_videos", +"https://www.googleapis.com/auth/dataportability.maps.questions_answers", +"https://www.googleapis.com/auth/dataportability.maps.reviews", +"https://www.googleapis.com/auth/dataportability.maps.starred_places", +"https://www.googleapis.com/auth/dataportability.myactivity.maps", +"https://www.googleapis.com/auth/dataportability.myactivity.myadcenter", +"https://www.googleapis.com/auth/dataportability.myactivity.play", +"https://www.googleapis.com/auth/dataportability.myactivity.search", +"https://www.googleapis.com/auth/dataportability.myactivity.shopping", +"https://www.googleapis.com/auth/dataportability.myactivity.youtube", +"https://www.googleapis.com/auth/dataportability.mymaps.maps", +"https://www.googleapis.com/auth/dataportability.order_reserve.purchases_reservations", +"https://www.googleapis.com/auth/dataportability.play.devices", +"https://www.googleapis.com/auth/dataportability.play.grouping", +"https://www.googleapis.com/auth/dataportability.play.installs", +"https://www.googleapis.com/auth/dataportability.play.library", +"https://www.googleapis.com/auth/dataportability.play.playpoints", +"https://www.googleapis.com/auth/dataportability.play.promotions", +"https://www.googleapis.com/auth/dataportability.play.purchases", +"https://www.googleapis.com/auth/dataportability.play.redemptions", +"https://www.googleapis.com/auth/dataportability.play.subscriptions", +"https://www.googleapis.com/auth/dataportability.play.usersettings", +"https://www.googleapis.com/auth/dataportability.saved.collections", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.reviews_and_stars", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.streaming_video_providers", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.thumbs", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.watched", +"https://www.googleapis.com/auth/dataportability.searchnotifications.settings", +"https://www.googleapis.com/auth/dataportability.searchnotifications.subscriptions", +"https://www.googleapis.com/auth/dataportability.shopping.addresses", +"https://www.googleapis.com/auth/dataportability.shopping.reviews", +"https://www.googleapis.com/auth/dataportability.streetview.imagery", +"https://www.googleapis.com/auth/dataportability.youtube.channel", +"https://www.googleapis.com/auth/dataportability.youtube.clips", +"https://www.googleapis.com/auth/dataportability.youtube.comments", +"https://www.googleapis.com/auth/dataportability.youtube.live_chat", +"https://www.googleapis.com/auth/dataportability.youtube.music", +"https://www.googleapis.com/auth/dataportability.youtube.playable", +"https://www.googleapis.com/auth/dataportability.youtube.posts", +"https://www.googleapis.com/auth/dataportability.youtube.private_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.private_videos", +"https://www.googleapis.com/auth/dataportability.youtube.public_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.public_videos", +"https://www.googleapis.com/auth/dataportability.youtube.shopping", +"https://www.googleapis.com/auth/dataportability.youtube.subscriptions", +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_videos" +] +}, +"retry": { +"description": "Retries a failed Portability Archive job.", +"flatPath": "v1/archiveJobs/{archiveJobsId}:retry", +"httpMethod": "POST", +"id": "dataportability.archiveJobs.retry", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Archive job ID you're retrying. This is returned by the InitiatePortabilityArchiveResponse. Retrying is only executed if the initial job failed.", +"location": "path", +"pattern": "^archiveJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:retry", +"request": { +"$ref": "RetryPortabilityArchiveRequest" +}, +"response": { +"$ref": "RetryPortabilityArchiveResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/dataportability.alerts.subscriptions", +"https://www.googleapis.com/auth/dataportability.businessmessaging.conversations", +"https://www.googleapis.com/auth/dataportability.chrome.autofill", +"https://www.googleapis.com/auth/dataportability.chrome.bookmarks", +"https://www.googleapis.com/auth/dataportability.chrome.dictionary", +"https://www.googleapis.com/auth/dataportability.chrome.extensions", +"https://www.googleapis.com/auth/dataportability.chrome.history", +"https://www.googleapis.com/auth/dataportability.chrome.reading_list", +"https://www.googleapis.com/auth/dataportability.chrome.settings", +"https://www.googleapis.com/auth/dataportability.discover.follows", +"https://www.googleapis.com/auth/dataportability.discover.likes", +"https://www.googleapis.com/auth/dataportability.discover.not_interested", +"https://www.googleapis.com/auth/dataportability.maps.aliased_places", +"https://www.googleapis.com/auth/dataportability.maps.commute_routes", +"https://www.googleapis.com/auth/dataportability.maps.commute_settings", +"https://www.googleapis.com/auth/dataportability.maps.ev_profile", +"https://www.googleapis.com/auth/dataportability.maps.factual_contributions", +"https://www.googleapis.com/auth/dataportability.maps.offering_contributions", +"https://www.googleapis.com/auth/dataportability.maps.photos_videos", +"https://www.googleapis.com/auth/dataportability.maps.questions_answers", +"https://www.googleapis.com/auth/dataportability.maps.reviews", +"https://www.googleapis.com/auth/dataportability.maps.starred_places", +"https://www.googleapis.com/auth/dataportability.myactivity.maps", +"https://www.googleapis.com/auth/dataportability.myactivity.myadcenter", +"https://www.googleapis.com/auth/dataportability.myactivity.play", +"https://www.googleapis.com/auth/dataportability.myactivity.search", +"https://www.googleapis.com/auth/dataportability.myactivity.shopping", +"https://www.googleapis.com/auth/dataportability.myactivity.youtube", +"https://www.googleapis.com/auth/dataportability.mymaps.maps", +"https://www.googleapis.com/auth/dataportability.order_reserve.purchases_reservations", +"https://www.googleapis.com/auth/dataportability.play.devices", +"https://www.googleapis.com/auth/dataportability.play.grouping", +"https://www.googleapis.com/auth/dataportability.play.installs", +"https://www.googleapis.com/auth/dataportability.play.library", +"https://www.googleapis.com/auth/dataportability.play.playpoints", +"https://www.googleapis.com/auth/dataportability.play.promotions", +"https://www.googleapis.com/auth/dataportability.play.purchases", +"https://www.googleapis.com/auth/dataportability.play.redemptions", +"https://www.googleapis.com/auth/dataportability.play.subscriptions", +"https://www.googleapis.com/auth/dataportability.play.usersettings", +"https://www.googleapis.com/auth/dataportability.saved.collections", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.reviews_and_stars", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.streaming_video_providers", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.thumbs", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.watched", +"https://www.googleapis.com/auth/dataportability.searchnotifications.settings", +"https://www.googleapis.com/auth/dataportability.searchnotifications.subscriptions", +"https://www.googleapis.com/auth/dataportability.shopping.addresses", +"https://www.googleapis.com/auth/dataportability.shopping.reviews", +"https://www.googleapis.com/auth/dataportability.streetview.imagery", +"https://www.googleapis.com/auth/dataportability.youtube.channel", +"https://www.googleapis.com/auth/dataportability.youtube.clips", +"https://www.googleapis.com/auth/dataportability.youtube.comments", +"https://www.googleapis.com/auth/dataportability.youtube.live_chat", +"https://www.googleapis.com/auth/dataportability.youtube.music", +"https://www.googleapis.com/auth/dataportability.youtube.playable", +"https://www.googleapis.com/auth/dataportability.youtube.posts", +"https://www.googleapis.com/auth/dataportability.youtube.private_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.private_videos", +"https://www.googleapis.com/auth/dataportability.youtube.public_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.public_videos", +"https://www.googleapis.com/auth/dataportability.youtube.shopping", +"https://www.googleapis.com/auth/dataportability.youtube.subscriptions", +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_videos" +] +} +} +}, +"authorization": { +"methods": { +"reset": { +"description": "Revokes OAuth tokens and resets exhausted scopes for a user/project pair. This method allows you to initiate a request after a new consent is granted. This method also indicates that previous archives can be garbage collected. You should call this method when all jobs are complete and all archives are downloaded. Do not call it only when you start a new job.", +"flatPath": "v1/authorization:reset", +"httpMethod": "POST", +"id": "dataportability.authorization.reset", +"parameterOrder": [], +"parameters": {}, +"path": "v1/authorization:reset", +"request": { +"$ref": "ResetAuthorizationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/dataportability.alerts.subscriptions", +"https://www.googleapis.com/auth/dataportability.businessmessaging.conversations", +"https://www.googleapis.com/auth/dataportability.chrome.autofill", +"https://www.googleapis.com/auth/dataportability.chrome.bookmarks", +"https://www.googleapis.com/auth/dataportability.chrome.dictionary", +"https://www.googleapis.com/auth/dataportability.chrome.extensions", +"https://www.googleapis.com/auth/dataportability.chrome.history", +"https://www.googleapis.com/auth/dataportability.chrome.reading_list", +"https://www.googleapis.com/auth/dataportability.chrome.settings", +"https://www.googleapis.com/auth/dataportability.discover.follows", +"https://www.googleapis.com/auth/dataportability.discover.likes", +"https://www.googleapis.com/auth/dataportability.discover.not_interested", +"https://www.googleapis.com/auth/dataportability.maps.aliased_places", +"https://www.googleapis.com/auth/dataportability.maps.commute_routes", +"https://www.googleapis.com/auth/dataportability.maps.commute_settings", +"https://www.googleapis.com/auth/dataportability.maps.ev_profile", +"https://www.googleapis.com/auth/dataportability.maps.factual_contributions", +"https://www.googleapis.com/auth/dataportability.maps.offering_contributions", +"https://www.googleapis.com/auth/dataportability.maps.photos_videos", +"https://www.googleapis.com/auth/dataportability.maps.questions_answers", +"https://www.googleapis.com/auth/dataportability.maps.reviews", +"https://www.googleapis.com/auth/dataportability.maps.starred_places", +"https://www.googleapis.com/auth/dataportability.myactivity.maps", +"https://www.googleapis.com/auth/dataportability.myactivity.myadcenter", +"https://www.googleapis.com/auth/dataportability.myactivity.play", +"https://www.googleapis.com/auth/dataportability.myactivity.search", +"https://www.googleapis.com/auth/dataportability.myactivity.shopping", +"https://www.googleapis.com/auth/dataportability.myactivity.youtube", +"https://www.googleapis.com/auth/dataportability.mymaps.maps", +"https://www.googleapis.com/auth/dataportability.order_reserve.purchases_reservations", +"https://www.googleapis.com/auth/dataportability.play.devices", +"https://www.googleapis.com/auth/dataportability.play.grouping", +"https://www.googleapis.com/auth/dataportability.play.installs", +"https://www.googleapis.com/auth/dataportability.play.library", +"https://www.googleapis.com/auth/dataportability.play.playpoints", +"https://www.googleapis.com/auth/dataportability.play.promotions", +"https://www.googleapis.com/auth/dataportability.play.purchases", +"https://www.googleapis.com/auth/dataportability.play.redemptions", +"https://www.googleapis.com/auth/dataportability.play.subscriptions", +"https://www.googleapis.com/auth/dataportability.play.usersettings", +"https://www.googleapis.com/auth/dataportability.saved.collections", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.reviews_and_stars", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.streaming_video_providers", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.thumbs", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.watched", +"https://www.googleapis.com/auth/dataportability.searchnotifications.settings", +"https://www.googleapis.com/auth/dataportability.searchnotifications.subscriptions", +"https://www.googleapis.com/auth/dataportability.shopping.addresses", +"https://www.googleapis.com/auth/dataportability.shopping.reviews", +"https://www.googleapis.com/auth/dataportability.streetview.imagery", +"https://www.googleapis.com/auth/dataportability.youtube.channel", +"https://www.googleapis.com/auth/dataportability.youtube.clips", +"https://www.googleapis.com/auth/dataportability.youtube.comments", +"https://www.googleapis.com/auth/dataportability.youtube.live_chat", +"https://www.googleapis.com/auth/dataportability.youtube.music", +"https://www.googleapis.com/auth/dataportability.youtube.playable", +"https://www.googleapis.com/auth/dataportability.youtube.posts", +"https://www.googleapis.com/auth/dataportability.youtube.private_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.private_videos", +"https://www.googleapis.com/auth/dataportability.youtube.public_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.public_videos", +"https://www.googleapis.com/auth/dataportability.youtube.shopping", +"https://www.googleapis.com/auth/dataportability.youtube.subscriptions", +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_videos" +] +} +} +}, +"portabilityArchive": { +"methods": { +"initiate": { +"description": "Initiates a new Archive job for the Portability API.", +"flatPath": "v1/portabilityArchive:initiate", +"httpMethod": "POST", +"id": "dataportability.portabilityArchive.initiate", +"parameterOrder": [], +"parameters": {}, +"path": "v1/portabilityArchive:initiate", +"request": { +"$ref": "InitiatePortabilityArchiveRequest" +}, +"response": { +"$ref": "InitiatePortabilityArchiveResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/dataportability.alerts.subscriptions", +"https://www.googleapis.com/auth/dataportability.businessmessaging.conversations", +"https://www.googleapis.com/auth/dataportability.chrome.autofill", +"https://www.googleapis.com/auth/dataportability.chrome.bookmarks", +"https://www.googleapis.com/auth/dataportability.chrome.dictionary", +"https://www.googleapis.com/auth/dataportability.chrome.extensions", +"https://www.googleapis.com/auth/dataportability.chrome.history", +"https://www.googleapis.com/auth/dataportability.chrome.reading_list", +"https://www.googleapis.com/auth/dataportability.chrome.settings", +"https://www.googleapis.com/auth/dataportability.discover.follows", +"https://www.googleapis.com/auth/dataportability.discover.likes", +"https://www.googleapis.com/auth/dataportability.discover.not_interested", +"https://www.googleapis.com/auth/dataportability.maps.aliased_places", +"https://www.googleapis.com/auth/dataportability.maps.commute_routes", +"https://www.googleapis.com/auth/dataportability.maps.commute_settings", +"https://www.googleapis.com/auth/dataportability.maps.ev_profile", +"https://www.googleapis.com/auth/dataportability.maps.factual_contributions", +"https://www.googleapis.com/auth/dataportability.maps.offering_contributions", +"https://www.googleapis.com/auth/dataportability.maps.photos_videos", +"https://www.googleapis.com/auth/dataportability.maps.questions_answers", +"https://www.googleapis.com/auth/dataportability.maps.reviews", +"https://www.googleapis.com/auth/dataportability.maps.starred_places", +"https://www.googleapis.com/auth/dataportability.myactivity.maps", +"https://www.googleapis.com/auth/dataportability.myactivity.myadcenter", +"https://www.googleapis.com/auth/dataportability.myactivity.play", +"https://www.googleapis.com/auth/dataportability.myactivity.search", +"https://www.googleapis.com/auth/dataportability.myactivity.shopping", +"https://www.googleapis.com/auth/dataportability.myactivity.youtube", +"https://www.googleapis.com/auth/dataportability.mymaps.maps", +"https://www.googleapis.com/auth/dataportability.order_reserve.purchases_reservations", +"https://www.googleapis.com/auth/dataportability.play.devices", +"https://www.googleapis.com/auth/dataportability.play.grouping", +"https://www.googleapis.com/auth/dataportability.play.installs", +"https://www.googleapis.com/auth/dataportability.play.library", +"https://www.googleapis.com/auth/dataportability.play.playpoints", +"https://www.googleapis.com/auth/dataportability.play.promotions", +"https://www.googleapis.com/auth/dataportability.play.purchases", +"https://www.googleapis.com/auth/dataportability.play.redemptions", +"https://www.googleapis.com/auth/dataportability.play.subscriptions", +"https://www.googleapis.com/auth/dataportability.play.usersettings", +"https://www.googleapis.com/auth/dataportability.saved.collections", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.reviews_and_stars", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.streaming_video_providers", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.thumbs", +"https://www.googleapis.com/auth/dataportability.search_ugc.media.watched", +"https://www.googleapis.com/auth/dataportability.searchnotifications.settings", +"https://www.googleapis.com/auth/dataportability.searchnotifications.subscriptions", +"https://www.googleapis.com/auth/dataportability.shopping.addresses", +"https://www.googleapis.com/auth/dataportability.shopping.reviews", +"https://www.googleapis.com/auth/dataportability.streetview.imagery", +"https://www.googleapis.com/auth/dataportability.youtube.channel", +"https://www.googleapis.com/auth/dataportability.youtube.clips", +"https://www.googleapis.com/auth/dataportability.youtube.comments", +"https://www.googleapis.com/auth/dataportability.youtube.live_chat", +"https://www.googleapis.com/auth/dataportability.youtube.music", +"https://www.googleapis.com/auth/dataportability.youtube.playable", +"https://www.googleapis.com/auth/dataportability.youtube.posts", +"https://www.googleapis.com/auth/dataportability.youtube.private_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.private_videos", +"https://www.googleapis.com/auth/dataportability.youtube.public_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.public_videos", +"https://www.googleapis.com/auth/dataportability.youtube.shopping", +"https://www.googleapis.com/auth/dataportability.youtube.subscriptions", +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_playlists", +"https://www.googleapis.com/auth/dataportability.youtube.unlisted_videos" +] +} +} +} +}, +"revision": "20241209", +"rootUrl": "https://dataportability.googleapis.com/", +"schemas": { +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"InitiatePortabilityArchiveRequest": { +"description": "Request to kick off an Archive job.", +"id": "InitiatePortabilityArchiveRequest", +"properties": { +"resources": { +"description": "The resources from which you're exporting data. These values have a 1:1 correspondence with the OAuth scopes.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"InitiatePortabilityArchiveResponse": { +"description": "Response from initiating an Archive job.", +"id": "InitiatePortabilityArchiveResponse", +"properties": { +"archiveJobId": { +"description": "The archive job ID that is initiated in the API. This can be used to get the state of the job.", +"type": "string" +} +}, +"type": "object" +}, +"PortabilityArchiveState": { +"description": "Resource that contains the state of an Archive job.", +"id": "PortabilityArchiveState", +"properties": { +"name": { +"description": "The resource name of ArchiveJob's PortabilityArchiveState singleton. The format is: archiveJobs/{archive_job}/portabilityArchiveState. archive_job is the job ID provided in the request.", +"type": "string" +}, +"state": { +"description": "Resource that represents the state of the Archive job.", +"enum": [ +"STATE_UNSPECIFIED", +"IN_PROGRESS", +"COMPLETE", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The job is in progress.", +"The job is complete.", +"The job failed.", +"The job is cancelled." +], +"type": "string" +}, +"urls": { +"description": "If the state is complete, this method returns the signed URLs of the objects in the Cloud Storage bucket.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResetAuthorizationRequest": { +"description": "Request to reset exhausted OAuth scopes.", +"id": "ResetAuthorizationRequest", +"properties": {}, +"type": "object" +}, +"RetryPortabilityArchiveRequest": { +"description": "Request to retry a failed Portability Archive job.", +"id": "RetryPortabilityArchiveRequest", +"properties": {}, +"type": "object" +}, +"RetryPortabilityArchiveResponse": { +"description": "Response from retrying a Portability Archive.", +"id": "RetryPortabilityArchiveResponse", +"properties": { +"archiveJobId": { +"description": "The archive job ID that is initiated by the retry endpoint. This can be used to get the state of the new job.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Data Portability API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datastore.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datastore.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..2a8e82466b86eef74a1cd8e7b3ad02b8321e8e7d --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datastore.v1beta1.json @@ -0,0 +1,793 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/datastore": { +"description": "View and manage your Google Cloud Datastore data" +} +} +} +}, +"basePath": "", +"baseUrl": "https://datastore.googleapis.com/", +"batchPath": "batch", +"description": "Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/datastore/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "datastore:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://datastore.mtls.googleapis.com/", +"name": "datastore", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"methods": { +"export": { +"description": "Exports a copy of all or a subset of entities from Google Cloud Datastore to another storage system, such as Google Cloud Storage. Recent updates to entities may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.", +"flatPath": "v1beta1/projects/{projectId}:export", +"httpMethod": "POST", +"id": "datastore.projects.export", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Project ID against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{projectId}:export", +"request": { +"$ref": "GoogleDatastoreAdminV1beta1ExportEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"import": { +"description": "Imports entities into Google Cloud Datastore. Existing entities with the same key are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportEntities operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Datastore.", +"flatPath": "v1beta1/projects/{projectId}:import", +"httpMethod": "POST", +"id": "datastore.projects.import", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Project ID against which to make the request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{projectId}:import", +"request": { +"$ref": "GoogleDatastoreAdminV1beta1ImportEntitiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +} +} +}, +"revision": "20240626", +"rootUrl": "https://datastore.googleapis.com/", +"schemas": { +"GoogleDatastoreAdminV1CommonMetadata": { +"description": "Metadata common to all Datastore Admin operations.", +"id": "GoogleDatastoreAdminV1CommonMetadata", +"properties": { +"endTime": { +"description": "The time the operation ended, either successfully or otherwise.", +"format": "google-datetime", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The client-assigned labels which were provided when the operation was created. May also include additional labels.", +"type": "object" +}, +"operationType": { +"description": "The type of the operation. Can be used as a filter in ListOperationsRequest.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"EXPORT_ENTITIES", +"IMPORT_ENTITIES", +"CREATE_INDEX", +"DELETE_INDEX" +], +"enumDescriptions": [ +"Unspecified.", +"ExportEntities.", +"ImportEntities.", +"CreateIndex.", +"DeleteIndex." +], +"type": "string" +}, +"startTime": { +"description": "The time that work began on the operation.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the Operation.", +"enum": [ +"STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1DatastoreFirestoreMigrationMetadata": { +"description": "Metadata for Datastore to Firestore migration operations. The DatastoreFirestoreMigration operation is not started by the end-user via an explicit \"creation\" method. This is an intentional deviation from the LRO design pattern. This singleton resource can be accessed at: \"projects/{project_id}/operations/datastore-firestore-migration\"", +"id": "GoogleDatastoreAdminV1DatastoreFirestoreMigrationMetadata", +"properties": { +"migrationState": { +"description": "The current state of migration from Cloud Datastore to Cloud Firestore in Datastore mode.", +"enum": [ +"MIGRATION_STATE_UNSPECIFIED", +"RUNNING", +"PAUSED", +"COMPLETE" +], +"enumDescriptions": [ +"Unspecified.", +"The migration is running.", +"The migration is paused.", +"The migration is complete." +], +"type": "string" +}, +"migrationStep": { +"description": "The current step of migration from Cloud Datastore to Cloud Firestore in Datastore mode.", +"enum": [ +"MIGRATION_STEP_UNSPECIFIED", +"PREPARE", +"START", +"APPLY_WRITES_SYNCHRONOUSLY", +"COPY_AND_VERIFY", +"REDIRECT_EVENTUALLY_CONSISTENT_READS", +"REDIRECT_STRONGLY_CONSISTENT_READS", +"REDIRECT_WRITES" +], +"enumDescriptions": [ +"Unspecified.", +"Pre-migration: the database is prepared for migration.", +"Start of migration.", +"Writes are applied synchronously to at least one replica.", +"Data is copied to Cloud Firestore and then verified to match the data in Cloud Datastore.", +"Eventually-consistent reads are redirected to Cloud Firestore.", +"Strongly-consistent reads are redirected to Cloud Firestore.", +"Writes are redirected to Cloud Firestore." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1EntityFilter": { +"description": "Identifies a subset of entities in a project. This is specified as combinations of kinds and namespaces (either or both of which may be all, as described in the following examples). Example usage: Entire project: kinds=[], namespace_ids=[] Kinds Foo and Bar in all namespaces: kinds=['Foo', 'Bar'], namespace_ids=[] Kinds Foo and Bar only in the default namespace: kinds=['Foo', 'Bar'], namespace_ids=[''] Kinds Foo and Bar in both the default and Baz namespaces: kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz'] The entire Baz namespace: kinds=[], namespace_ids=['Baz']", +"id": "GoogleDatastoreAdminV1EntityFilter", +"properties": { +"kinds": { +"description": "If empty, then this represents all kinds.", +"items": { +"type": "string" +}, +"type": "array" +}, +"namespaceIds": { +"description": "An empty list represents all namespaces. This is the preferred usage for projects that don't use namespaces. An empty string element represents the default namespace. This should be used if the project has data in non-default namespaces, but doesn't want to include them. Each namespace in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1ExportEntitiesMetadata": { +"description": "Metadata for ExportEntities operations.", +"id": "GoogleDatastoreAdminV1ExportEntitiesMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1EntityFilter", +"description": "Description of which entities are being exported." +}, +"outputUrlPrefix": { +"description": "Location for the export metadata and data files. This will be the same value as the google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix field. The final output location is provided in google.datastore.admin.v1.ExportEntitiesResponse.output_url.", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of bytes processed." +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1ExportEntitiesResponse": { +"description": "The response for google.datastore.admin.v1.DatastoreAdmin.ExportEntities.", +"id": "GoogleDatastoreAdminV1ExportEntitiesResponse", +"properties": { +"outputUrl": { +"description": "Location of the output metadata file. This can be used to begin an import into Cloud Datastore (this project or another project). See google.datastore.admin.v1.ImportEntitiesRequest.input_url. Only present if the operation completed successfully.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1ImportEntitiesMetadata": { +"description": "Metadata for ImportEntities operations.", +"id": "GoogleDatastoreAdminV1ImportEntitiesMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1EntityFilter", +"description": "Description of which entities are being imported." +}, +"inputUrl": { +"description": "The location of the import metadata file. This will be the same value as the google.datastore.admin.v1.ExportEntitiesResponse.output_url field.", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of bytes processed." +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1IndexOperationMetadata": { +"description": "Metadata for Index operations.", +"id": "GoogleDatastoreAdminV1IndexOperationMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"indexId": { +"description": "The index resource ID that this operation is acting on.", +"type": "string" +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1MigrationProgressEvent": { +"description": "An event signifying the start of a new step in a [migration from Cloud Datastore to Cloud Firestore in Datastore mode](https://cloud.google.com/datastore/docs/upgrade-to-firestore).", +"id": "GoogleDatastoreAdminV1MigrationProgressEvent", +"properties": { +"prepareStepDetails": { +"$ref": "GoogleDatastoreAdminV1PrepareStepDetails", +"description": "Details for the `PREPARE` step." +}, +"redirectWritesStepDetails": { +"$ref": "GoogleDatastoreAdminV1RedirectWritesStepDetails", +"description": "Details for the `REDIRECT_WRITES` step." +}, +"step": { +"description": "The step that is starting. An event with step set to `START` indicates that the migration has been reverted back to the initial pre-migration state.", +"enum": [ +"MIGRATION_STEP_UNSPECIFIED", +"PREPARE", +"START", +"APPLY_WRITES_SYNCHRONOUSLY", +"COPY_AND_VERIFY", +"REDIRECT_EVENTUALLY_CONSISTENT_READS", +"REDIRECT_STRONGLY_CONSISTENT_READS", +"REDIRECT_WRITES" +], +"enumDescriptions": [ +"Unspecified.", +"Pre-migration: the database is prepared for migration.", +"Start of migration.", +"Writes are applied synchronously to at least one replica.", +"Data is copied to Cloud Firestore and then verified to match the data in Cloud Datastore.", +"Eventually-consistent reads are redirected to Cloud Firestore.", +"Strongly-consistent reads are redirected to Cloud Firestore.", +"Writes are redirected to Cloud Firestore." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1MigrationStateEvent": { +"description": "An event signifying a change in state of a [migration from Cloud Datastore to Cloud Firestore in Datastore mode](https://cloud.google.com/datastore/docs/upgrade-to-firestore).", +"id": "GoogleDatastoreAdminV1MigrationStateEvent", +"properties": { +"state": { +"description": "The new state of the migration.", +"enum": [ +"MIGRATION_STATE_UNSPECIFIED", +"RUNNING", +"PAUSED", +"COMPLETE" +], +"enumDescriptions": [ +"Unspecified.", +"The migration is running.", +"The migration is paused.", +"The migration is complete." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1PrepareStepDetails": { +"description": "Details for the `PREPARE` step.", +"id": "GoogleDatastoreAdminV1PrepareStepDetails", +"properties": { +"concurrencyMode": { +"description": "The concurrency mode this database will use when it reaches the `REDIRECT_WRITES` step.", +"enum": [ +"CONCURRENCY_MODE_UNSPECIFIED", +"PESSIMISTIC", +"OPTIMISTIC", +"OPTIMISTIC_WITH_ENTITY_GROUPS" +], +"enumDescriptions": [ +"Unspecified.", +"Pessimistic concurrency.", +"Optimistic concurrency.", +"Optimistic concurrency with entity groups." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1Progress": { +"description": "Measures the progress of a particular metric.", +"id": "GoogleDatastoreAdminV1Progress", +"properties": { +"workCompleted": { +"description": "The amount of work that has been completed. Note that this may be greater than work_estimated.", +"format": "int64", +"type": "string" +}, +"workEstimated": { +"description": "An estimate of how much work needs to be performed. May be zero if the work estimate is unavailable.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1RedirectWritesStepDetails": { +"description": "Details for the `REDIRECT_WRITES` step.", +"id": "GoogleDatastoreAdminV1RedirectWritesStepDetails", +"properties": { +"concurrencyMode": { +"description": "Ths concurrency mode for this database.", +"enum": [ +"CONCURRENCY_MODE_UNSPECIFIED", +"PESSIMISTIC", +"OPTIMISTIC", +"OPTIMISTIC_WITH_ENTITY_GROUPS" +], +"enumDescriptions": [ +"Unspecified.", +"Pessimistic concurrency.", +"Optimistic concurrency.", +"Optimistic concurrency with entity groups." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1CommonMetadata": { +"description": "Metadata common to all Datastore Admin operations.", +"id": "GoogleDatastoreAdminV1beta1CommonMetadata", +"properties": { +"endTime": { +"description": "The time the operation ended, either successfully or otherwise.", +"format": "google-datetime", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The client-assigned labels which were provided when the operation was created. May also include additional labels.", +"type": "object" +}, +"operationType": { +"description": "The type of the operation. Can be used as a filter in ListOperationsRequest.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"EXPORT_ENTITIES", +"IMPORT_ENTITIES" +], +"enumDescriptions": [ +"Unspecified.", +"ExportEntities.", +"ImportEntities." +], +"type": "string" +}, +"startTime": { +"description": "The time that work began on the operation.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the Operation.", +"enum": [ +"STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1EntityFilter": { +"description": "Identifies a subset of entities in a project. This is specified as combinations of kinds and namespaces (either or both of which may be all, as described in the following examples). Example usage: Entire project: kinds=[], namespace_ids=[] Kinds Foo and Bar in all namespaces: kinds=['Foo', 'Bar'], namespace_ids=[] Kinds Foo and Bar only in the default namespace: kinds=['Foo', 'Bar'], namespace_ids=[''] Kinds Foo and Bar in both the default and Baz namespaces: kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz'] The entire Baz namespace: kinds=[], namespace_ids=['Baz']", +"id": "GoogleDatastoreAdminV1beta1EntityFilter", +"properties": { +"kinds": { +"description": "If empty, then this represents all kinds.", +"items": { +"type": "string" +}, +"type": "array" +}, +"namespaceIds": { +"description": "An empty list represents all namespaces. This is the preferred usage for projects that don't use namespaces. An empty string element represents the default namespace. This should be used if the project has data in non-default namespaces, but doesn't want to include them. Each namespace in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1ExportEntitiesMetadata": { +"description": "Metadata for ExportEntities operations.", +"id": "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1beta1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1beta1EntityFilter", +"description": "Description of which entities are being exported." +}, +"outputUrlPrefix": { +"description": "Location for the export metadata and data files. This will be the same value as the google.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix field. The final output location is provided in google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url.", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleDatastoreAdminV1beta1Progress", +"description": "An estimate of the number of bytes processed." +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1beta1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1ExportEntitiesRequest": { +"description": "The request for google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.", +"id": "GoogleDatastoreAdminV1beta1ExportEntitiesRequest", +"properties": { +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1beta1EntityFilter", +"description": "Description of what data from the project is included in the export." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Client-assigned labels.", +"type": "object" +}, +"outputUrlPrefix": { +"description": "Location for the export metadata and data files. The full resource URL of the external storage location. Currently, only Google Cloud Storage is supported. So output_url_prefix should be of the form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud Storage namespace path (this is not a Cloud Datastore namespace). For more information about Cloud Storage namespace paths, see [Object name considerations](https://cloud.google.com/storage/docs/naming#object-considerations). The resulting files will be nested deeper than the specified URL prefix. The final output URL will be provided in the google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url field. That value should be used for subsequent ImportEntities operations. By nesting the data files deeper, the same Cloud Storage bucket can be used in multiple ExportEntities operations without conflict.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1ExportEntitiesResponse": { +"description": "The response for google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.", +"id": "GoogleDatastoreAdminV1beta1ExportEntitiesResponse", +"properties": { +"outputUrl": { +"description": "Location of the output metadata file. This can be used to begin an import into Cloud Datastore (this project or another project). See google.datastore.admin.v1beta1.ImportEntitiesRequest.input_url. Only present if the operation completed successfully.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1ImportEntitiesMetadata": { +"description": "Metadata for ImportEntities operations.", +"id": "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata", +"properties": { +"common": { +"$ref": "GoogleDatastoreAdminV1beta1CommonMetadata", +"description": "Metadata common to all Datastore Admin operations." +}, +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1beta1EntityFilter", +"description": "Description of which entities are being imported." +}, +"inputUrl": { +"description": "The location of the import metadata file. This will be the same value as the google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url field.", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleDatastoreAdminV1beta1Progress", +"description": "An estimate of the number of bytes processed." +}, +"progressEntities": { +"$ref": "GoogleDatastoreAdminV1beta1Progress", +"description": "An estimate of the number of entities processed." +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1ImportEntitiesRequest": { +"description": "The request for google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities.", +"id": "GoogleDatastoreAdminV1beta1ImportEntitiesRequest", +"properties": { +"entityFilter": { +"$ref": "GoogleDatastoreAdminV1beta1EntityFilter", +"description": "Optionally specify which kinds/namespaces are to be imported. If provided, the list must be a subset of the EntityFilter used in creating the export, otherwise a FAILED_PRECONDITION error will be returned. If no filter is specified then all entities from the export are imported." +}, +"inputUrl": { +"description": "The full resource URL of the external storage location. Currently, only Google Cloud Storage is supported. So input_url should be of the form: `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is an optional Cloud Storage namespace path (this is not a Cloud Datastore namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file written by the ExportEntities operation. For more information about Cloud Storage namespace paths, see [Object name considerations](https://cloud.google.com/storage/docs/naming#object-considerations). For more information, see google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Client-assigned labels.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleDatastoreAdminV1beta1Progress": { +"description": "Measures the progress of a particular metric.", +"id": "GoogleDatastoreAdminV1beta1Progress", +"properties": { +"workCompleted": { +"description": "The amount of work that has been completed. Note that this may be greater than work_estimated.", +"format": "int64", +"type": "string" +}, +"workEstimated": { +"description": "An estimate of how much work needs to be performed. May be zero if the work estimate is unavailable.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Datastore API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datastream.v1alpha1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datastream.v1alpha1.json new file mode 100644 index 0000000000000000000000000000000000000000..80c3fd24c7c3dbdf95facf24c7af24f8b7bec209 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/datastream.v1alpha1.json @@ -0,0 +1,2719 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://datastream.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Datastream", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/datastream/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "datastream:v1alpha1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://datastream.mtls.googleapis.com/", +"name": "datastream", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"fetchStaticIps": { +"deprecated": true, +"description": "The FetchStaticIps API call exposes the static IP addresses used by Datastream.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}:fetchStaticIps", +"httpMethod": "GET", +"id": "datastream.projects.locations.fetchStaticIps", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name resource of the Response type. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum number of Ips to return, will likely not be specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListStaticIps` call. will likely not be specified.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}:fetchStaticIps", +"response": { +"$ref": "FetchStaticIpsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets information about a location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "datastream.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1alpha1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "datastream.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"connectionProfiles": { +"deprecated": true, +"methods": { +"create": { +"deprecated": true, +"description": "Use this method to create a connection profile in a project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles", +"httpMethod": "POST", +"id": "datastream.projects.locations.connectionProfiles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"connectionProfileId": { +"description": "Required. The connection profile identifier.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent that owns the collection of ConnectionProfiles.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/connectionProfiles", +"request": { +"$ref": "ConnectionProfile" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"deprecated": true, +"description": "Use this method to delete a connection profile..", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", +"httpMethod": "DELETE", +"id": "datastream.projects.locations.connectionProfiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the connection profile resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"discover": { +"deprecated": true, +"description": "Use this method to discover a connection profile. The discover API call exposes the data objects and metadata belonging to the profile. Typically, a request returns children data objects under a parent data object that's optionally supplied in the request.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles:discover", +"httpMethod": "POST", +"id": "datastream.projects.locations.connectionProfiles.discover", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the ConnectionProfile type. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/connectionProfiles:discover", +"request": { +"$ref": "DiscoverConnectionProfileRequest" +}, +"response": { +"$ref": "DiscoverConnectionProfileResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"deprecated": true, +"description": "Use this method to get details about a connection profile.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", +"httpMethod": "GET", +"id": "datastream.projects.locations.connectionProfiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the connection profile resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "ConnectionProfile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Use this method to list connection profiles created in a project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles", +"httpMethod": "GET", +"id": "datastream.projects.locations.connectionProfiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of connection profiles to return. If unspecified, at most 50 connection profiles will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token received from a previous `ListConnectionProfiles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListConnectionProfiles` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent that owns the collection of connection profiles.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/connectionProfiles", +"response": { +"$ref": "ListConnectionProfilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"deprecated": true, +"description": "Use this method to update the parameters of a connection profile.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}", +"httpMethod": "PATCH", +"id": "datastream.projects.locations.connectionProfiles.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the ConnectionProfile resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the connection profile, but do not update any resources. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "ConnectionProfile" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "datastream.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "datastream.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "datastream.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "datastream.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"privateConnections": { +"methods": { +"create": { +"deprecated": true, +"description": "Use this method to create a private connectivity configuration.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections", +"httpMethod": "POST", +"id": "datastream.projects.locations.privateConnections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent that owns the collection of PrivateConnections.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"privateConnectionId": { +"description": "Required. The private connectivity identifier.", +"location": "query", +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/privateConnections", +"request": { +"$ref": "PrivateConnection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"deprecated": true, +"description": "Use this method to delete a private connectivity configuration.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", +"httpMethod": "DELETE", +"id": "datastream.projects.locations.privateConnections.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. If set to true, any child routes that belong to this PrivateConnection will also be deleted.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the private connectivity configuration to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"deprecated": true, +"description": "Use this method to get details about a private connectivity configuration.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", +"httpMethod": "GET", +"id": "datastream.projects.locations.privateConnections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the private connectivity configuration to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "PrivateConnection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Use this method to list private connectivity configurations in a project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections", +"httpMethod": "GET", +"id": "datastream.projects.locations.privateConnections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of private connectivity configurations to return. If unspecified, at most 50 private connectivity configurations that will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token received from a previous `ListPrivateConnections` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPrivateConnections` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent that owns the collection of private connectivity configurations.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/privateConnections", +"response": { +"$ref": "ListPrivateConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"routes": { +"deprecated": true, +"methods": { +"create": { +"deprecated": true, +"description": "Use this method to create a route for a private connectivity in a project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes", +"httpMethod": "POST", +"id": "datastream.projects.locations.privateConnections.routes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent that owns the collection of Routes.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"routeId": { +"description": "Required. The Route identifier.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/routes", +"request": { +"$ref": "Route" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"deprecated": true, +"description": "Use this method to delete a route.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes/{routesId}", +"httpMethod": "DELETE", +"id": "datastream.projects.locations.privateConnections.routes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Route resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+/routes/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"deprecated": true, +"description": "Use this method to get details about a route.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes/{routesId}", +"httpMethod": "GET", +"id": "datastream.projects.locations.privateConnections.routes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Route resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+/routes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Route" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Use this method to list routes created for a private connectivity in a project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes", +"httpMethod": "GET", +"id": "datastream.projects.locations.privateConnections.routes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of Routes to return. The service may return fewer than this value. If unspecified, at most 50 Routes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token received from a previous `ListRoutes` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListRoutes` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent that owns the collection of Routess.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/routes", +"response": { +"$ref": "ListRoutesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"streams": { +"methods": { +"create": { +"deprecated": true, +"description": "Use this method to create a stream.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams", +"httpMethod": "POST", +"id": "datastream.projects.locations.streams.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"force": { +"description": "Optional. Create the stream without validating it.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. The parent that owns the collection of streams.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"streamId": { +"description": "Required. The stream identifier.", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the stream, but do not create any resources. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha1/{+parent}/streams", +"request": { +"$ref": "Stream" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"deprecated": true, +"description": "Use this method to delete a stream.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}", +"httpMethod": "DELETE", +"id": "datastream.projects.locations.streams.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the stream resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"fetchErrors": { +"deprecated": true, +"description": "Use this method to fetch any errors associated with a stream.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}:fetchErrors", +"httpMethod": "POST", +"id": "datastream.projects.locations.streams.fetchErrors", +"parameterOrder": [ +"stream" +], +"parameters": { +"stream": { +"description": "Name of the Stream resource for which to fetch any errors.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+stream}:fetchErrors", +"request": { +"$ref": "FetchErrorsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"deprecated": true, +"description": "Use this method to get details about a stream.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}", +"httpMethod": "GET", +"id": "datastream.projects.locations.streams.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the stream resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Stream" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Use this method to list streams in a project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams", +"httpMethod": "GET", +"id": "datastream.projects.locations.streams.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter request.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Order by fields for the result.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of streams to return. If unspecified, at most 50 streams will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token received from a previous `ListStreams` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListStreams` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent that owns the collection of streams.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/streams", +"response": { +"$ref": "ListStreamsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"deprecated": true, +"description": "Use this method to update the configuration of a stream.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}", +"httpMethod": "PATCH", +"id": "datastream.projects.locations.streams.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. Execute the update without validating it.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The stream's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the stream resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. Only validate the stream with the changes, without actually updating it. The default is false.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "Stream" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"objects": { +"deprecated": true, +"methods": { +"get": { +"deprecated": true, +"description": "Use this method to get details about a stream object.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects/{objectsId}", +"httpMethod": "GET", +"id": "datastream.projects.locations.streams.objects.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the stream object resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+/objects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "StreamObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Use this method to list the objects of a specific stream.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects", +"httpMethod": "GET", +"id": "datastream.projects.locations.streams.objects.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of objects to return. Default is 50. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token received from a previous `ListStreamObjectsRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListStreamObjectsRequest` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent stream that owns the collection of objects.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/objects", +"response": { +"$ref": "ListStreamObjectsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"startBackfillJob": { +"deprecated": true, +"description": "Starts backfill job for the specified stream object.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects/{objectsId}:startBackfillJob", +"httpMethod": "POST", +"id": "datastream.projects.locations.streams.objects.startBackfillJob", +"parameterOrder": [ +"object" +], +"parameters": { +"object": { +"description": "Required. The name of the stream object resource to start a backfill job for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+/objects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+object}:startBackfillJob", +"response": { +"$ref": "StartBackfillJobResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"stopBackfillJob": { +"deprecated": true, +"description": "Stops the backfill job for the specified stream object.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects/{objectsId}:stopBackfillJob", +"httpMethod": "POST", +"id": "datastream.projects.locations.streams.objects.stopBackfillJob", +"parameterOrder": [ +"object" +], +"parameters": { +"object": { +"description": "Required. The name of the stream object resource to stop the backfill job for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+/objects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+object}:stopBackfillJob", +"response": { +"$ref": "StopBackfillJobResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://datastream.googleapis.com/", +"schemas": { +"AvroFileFormat": { +"description": "AVRO file format configuration.", +"id": "AvroFileFormat", +"properties": {}, +"type": "object" +}, +"BackfillAllStrategy": { +"description": "Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.", +"id": "BackfillAllStrategy", +"properties": { +"mysqlExcludedObjects": { +"$ref": "MysqlRdbms", +"description": "MySQL data source objects to avoid backfilling." +}, +"oracleExcludedObjects": { +"$ref": "OracleRdbms", +"description": "Oracle data source objects to avoid backfilling." +} +}, +"type": "object" +}, +"BackfillJob": { +"description": "Represents a backfill job on a specific stream object.", +"id": "BackfillJob", +"properties": { +"errors": { +"description": "Output only. Errors which caused the backfill job to fail.", +"items": { +"$ref": "Error" +}, +"readOnly": true, +"type": "array" +}, +"lastEndTime": { +"description": "Output only. Backfill job's end time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"lastStartTime": { +"description": "Output only. Backfill job's start time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Backfill job state.", +"enum": [ +"STATE_UNSPECIFIED", +"NOT_STARTED", +"PENDING", +"ACTIVE", +"STOPPED", +"FAILED", +"COMPLETED", +"UNSUPPORTED" +], +"enumDescriptions": [ +"Default value.", +"Backfill job was never started for the stream object (stream has backfill strategy defined as manual or object was explicitly excluded from automatic backfill).", +"Backfill job will start pending available resources.", +"Backfill job is running.", +"Backfill job stopped (next job run will start from beginning).", +"Backfill job failed (due to an error).", +"Backfill completed successfully.", +"Backfill job failed since the table structure is currently unsupported for backfill." +], +"type": "string" +}, +"trigger": { +"description": "Backfill job's triggering reason.", +"enum": [ +"TRIGGER_UNSPECIFIED", +"AUTOMATIC", +"MANUAL" +], +"enumDescriptions": [ +"Default value.", +"Object backfill job was triggered automatically according to the stream's backfill strategy.", +"Object backfill job was triggered manually using the dedicated API." +], +"type": "string" +} +}, +"type": "object" +}, +"BackfillNoneStrategy": { +"description": "Backfill strategy to disable automatic backfill for the Stream's objects.", +"id": "BackfillNoneStrategy", +"properties": {}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ConnectionProfile": { +"id": "ConnectionProfile", +"properties": { +"createTime": { +"description": "Output only. The create time of the resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. Display name.", +"type": "string" +}, +"forwardSshConnectivity": { +"$ref": "ForwardSshTunnelConnectivity", +"description": "Forward SSH tunnel connectivity." +}, +"gcsProfile": { +"$ref": "GcsProfile", +"description": "Cloud Storage ConnectionProfile configuration." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels.", +"type": "object" +}, +"mysqlProfile": { +"$ref": "MysqlProfile", +"description": "MySQL ConnectionProfile configuration." +}, +"name": { +"description": "Output only. The resource's name.", +"readOnly": true, +"type": "string" +}, +"noConnectivity": { +"$ref": "NoConnectivitySettings", +"description": "No connectivity option chosen." +}, +"oracleProfile": { +"$ref": "OracleProfile", +"description": "Oracle ConnectionProfile configuration." +}, +"privateConnectivity": { +"$ref": "PrivateConnectivity", +"description": "Private connectivity." +}, +"staticServiceIpConnectivity": { +"$ref": "StaticServiceIpConnectivity", +"description": "Static Service IP connectivity." +}, +"updateTime": { +"description": "Output only. The update time of the resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DestinationConfig": { +"description": "The configuration of the stream destination.", +"id": "DestinationConfig", +"properties": { +"destinationConnectionProfileName": { +"description": "Required. Destination connection profile identifier.", +"type": "string" +}, +"gcsDestinationConfig": { +"$ref": "GcsDestinationConfig", +"description": "GCS destination configuration." +} +}, +"type": "object" +}, +"DiscoverConnectionProfileRequest": { +"description": "Request message for 'discover' ConnectionProfile request.", +"id": "DiscoverConnectionProfileRequest", +"properties": { +"connectionProfile": { +"$ref": "ConnectionProfile", +"description": "An ad-hoc ConnectionProfile configuration." +}, +"connectionProfileName": { +"description": "A reference to an existing ConnectionProfile.", +"type": "string" +}, +"mysqlRdbms": { +"$ref": "MysqlRdbms", +"description": "MySQL RDBMS to enrich with child data objects and metadata." +}, +"oracleRdbms": { +"$ref": "OracleRdbms", +"description": "Oracle RDBMS to enrich with child data objects and metadata." +}, +"recursionDepth": { +"description": "The number of hierarchy levels below the current level to be retrieved.", +"format": "int32", +"type": "integer" +}, +"recursive": { +"description": "Whether to retrieve the full hierarchy of data objects (TRUE) or only the current level (FALSE).", +"type": "boolean" +} +}, +"type": "object" +}, +"DiscoverConnectionProfileResponse": { +"id": "DiscoverConnectionProfileResponse", +"properties": { +"mysqlRdbms": { +"$ref": "MysqlRdbms", +"description": "Enriched MySQL RDBMS object." +}, +"oracleRdbms": { +"$ref": "OracleRdbms", +"description": "Enriched Oracle RDBMS object." +} +}, +"type": "object" +}, +"DropLargeObjects": { +"description": "Configuration to drop large object values.", +"id": "DropLargeObjects", +"properties": {}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Error": { +"description": "Represent a user-facing Error.", +"id": "Error", +"properties": { +"details": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional information about the error.", +"type": "object" +}, +"errorTime": { +"description": "The time when the error occurred.", +"format": "google-datetime", +"type": "string" +}, +"errorUuid": { +"description": "A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.", +"type": "string" +}, +"message": { +"description": "A message containing more information about the error that occurred.", +"type": "string" +}, +"reason": { +"description": "A title that explains the reason for the error.", +"type": "string" +} +}, +"type": "object" +}, +"FetchErrorsRequest": { +"description": "Request message for 'FetchErrors' request.", +"id": "FetchErrorsRequest", +"properties": {}, +"type": "object" +}, +"FetchErrorsResponse": { +"description": "Response message for a 'FetchErrors' response.", +"id": "FetchErrorsResponse", +"properties": { +"errors": { +"description": "The list of errors on the Stream.", +"items": { +"$ref": "Error" +}, +"type": "array" +} +}, +"type": "object" +}, +"FetchStaticIpsResponse": { +"description": "Response message for a 'FetchStaticIps' response.", +"id": "FetchStaticIpsResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"staticIps": { +"description": "list of static ips by account", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ForwardSshTunnelConnectivity": { +"description": "Forward SSH Tunnel connectivity.", +"id": "ForwardSshTunnelConnectivity", +"properties": { +"hostname": { +"description": "Required. Hostname for the SSH tunnel.", +"type": "string" +}, +"password": { +"description": "Input only. SSH password.", +"type": "string" +}, +"port": { +"description": "Port for the SSH tunnel, default value is 22.", +"format": "int32", +"type": "integer" +}, +"privateKey": { +"description": "Input only. SSH private key.", +"type": "string" +}, +"username": { +"description": "Required. Username for the SSH tunnel.", +"type": "string" +} +}, +"type": "object" +}, +"GcsDestinationConfig": { +"description": "Google Cloud Storage destination configuration", +"id": "GcsDestinationConfig", +"properties": { +"avroFileFormat": { +"$ref": "AvroFileFormat", +"description": "AVRO file format configuration." +}, +"fileRotationInterval": { +"description": "The maximum duration for which new events are added before a file is closed and a new file is created.", +"format": "google-duration", +"type": "string" +}, +"fileRotationMb": { +"description": "The maximum file size to be saved in the bucket.", +"format": "int32", +"type": "integer" +}, +"gcsFileFormat": { +"deprecated": true, +"description": "File format that data should be written in. Deprecated field (b/169501737) - use file_format instead.", +"enum": [ +"GCS_FILE_FORMAT_UNSPECIFIED", +"AVRO" +], +"enumDescriptions": [ +"Unspecified Cloud Storage file format.", +"Avro file format" +], +"type": "string" +}, +"jsonFileFormat": { +"$ref": "JsonFileFormat", +"description": "JSON file format configuration." +}, +"path": { +"description": "Path inside the Cloud Storage bucket to write data to.", +"type": "string" +} +}, +"type": "object" +}, +"GcsProfile": { +"description": "Cloud Storage bucket profile.", +"id": "GcsProfile", +"properties": { +"bucketName": { +"description": "Required. The full project and resource path for Cloud Storage bucket including the name.", +"type": "string" +}, +"rootPath": { +"description": "The root path inside the Cloud Storage bucket.", +"type": "string" +} +}, +"type": "object" +}, +"JsonFileFormat": { +"description": "JSON file format configuration.", +"id": "JsonFileFormat", +"properties": { +"compression": { +"description": "Compression of the loaded JSON file.", +"enum": [ +"JSON_COMPRESSION_UNSPECIFIED", +"NO_COMPRESSION", +"GZIP" +], +"enumDescriptions": [ +"Unspecified json file compression.", +"Do not compress JSON file.", +"Gzip compression." +], +"type": "string" +}, +"schemaFileFormat": { +"description": "The schema file format along JSON data files.", +"enum": [ +"SCHEMA_FILE_FORMAT_UNSPECIFIED", +"NO_SCHEMA_FILE", +"AVRO_SCHEMA_FILE" +], +"enumDescriptions": [ +"Unspecified schema file format.", +"Do not attach schema file.", +"Avro schema format." +], +"type": "string" +} +}, +"type": "object" +}, +"ListConnectionProfilesResponse": { +"id": "ListConnectionProfilesResponse", +"properties": { +"connectionProfiles": { +"description": "List of connection profiles.", +"items": { +"$ref": "ConnectionProfile" +}, +"type": "array" +}, +"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" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPrivateConnectionsResponse": { +"id": "ListPrivateConnectionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"privateConnections": { +"description": "List of private connectivity configurations.", +"items": { +"$ref": "PrivateConnection" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRoutesResponse": { +"description": "route list response", +"id": "ListRoutesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"routes": { +"description": "List of Routes.", +"items": { +"$ref": "Route" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListStreamObjectsResponse": { +"description": "Response containing the objects for a stream.", +"id": "ListStreamObjectsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page.", +"type": "string" +}, +"streamObjects": { +"description": "List of stream objects.", +"items": { +"$ref": "StreamObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListStreamsResponse": { +"id": "ListStreamsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"streams": { +"description": "List of streams", +"items": { +"$ref": "Stream" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"MysqlColumn": { +"description": "MySQL Column.", +"id": "MysqlColumn", +"properties": { +"collation": { +"description": "Column collation.", +"type": "string" +}, +"columnName": { +"description": "Column name.", +"type": "string" +}, +"dataType": { +"description": "The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html", +"type": "string" +}, +"length": { +"description": "Column length.", +"format": "int32", +"type": "integer" +}, +"nullable": { +"description": "Whether or not the column can accept a null value.", +"type": "boolean" +}, +"ordinalPosition": { +"description": "The ordinal position of the column in the table.", +"format": "int32", +"type": "integer" +}, +"primaryKey": { +"description": "Whether or not the column represents a primary key.", +"type": "boolean" +} +}, +"type": "object" +}, +"MysqlDatabase": { +"description": "MySQL database.", +"id": "MysqlDatabase", +"properties": { +"databaseName": { +"description": "Database name.", +"type": "string" +}, +"mysqlTables": { +"description": "Tables in the database.", +"items": { +"$ref": "MysqlTable" +}, +"type": "array" +} +}, +"type": "object" +}, +"MysqlObjectIdentifier": { +"description": "Mysql data source object identifier.", +"id": "MysqlObjectIdentifier", +"properties": { +"database": { +"description": "Required. The database name.", +"type": "string" +}, +"table": { +"description": "Required. The table name.", +"type": "string" +} +}, +"type": "object" +}, +"MysqlProfile": { +"description": "MySQL database profile.", +"id": "MysqlProfile", +"properties": { +"hostname": { +"description": "Required. Hostname for the MySQL connection.", +"type": "string" +}, +"password": { +"description": "Required. Input only. Password for the MySQL connection.", +"type": "string" +}, +"port": { +"description": "Port for the MySQL connection, default value is 3306.", +"format": "int32", +"type": "integer" +}, +"sslConfig": { +"$ref": "MysqlSslConfig", +"description": "SSL configuration for the MySQL connection." +}, +"username": { +"description": "Required. Username for the MySQL connection.", +"type": "string" +} +}, +"type": "object" +}, +"MysqlRdbms": { +"description": "MySQL database structure", +"id": "MysqlRdbms", +"properties": { +"mysqlDatabases": { +"description": "Mysql databases on the server", +"items": { +"$ref": "MysqlDatabase" +}, +"type": "array" +} +}, +"type": "object" +}, +"MysqlSourceConfig": { +"description": "MySQL source configuration", +"id": "MysqlSourceConfig", +"properties": { +"allowlist": { +"$ref": "MysqlRdbms", +"description": "MySQL objects to retrieve from the source." +}, +"rejectlist": { +"$ref": "MysqlRdbms", +"description": "MySQL objects to exclude from the stream." +} +}, +"type": "object" +}, +"MysqlSslConfig": { +"description": "MySQL SSL configuration information.", +"id": "MysqlSslConfig", +"properties": { +"caCertificate": { +"description": "Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.", +"type": "string" +}, +"caCertificateSet": { +"description": "Output only. Indicates whether the ca_certificate field is set.", +"readOnly": true, +"type": "boolean" +}, +"clientCertificate": { +"description": "Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.", +"type": "string" +}, +"clientCertificateSet": { +"description": "Output only. Indicates whether the client_certificate field is set.", +"readOnly": true, +"type": "boolean" +}, +"clientKey": { +"description": "Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.", +"type": "string" +}, +"clientKeySet": { +"description": "Output only. Indicates whether the client_key field is set.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"MysqlTable": { +"description": "MySQL table.", +"id": "MysqlTable", +"properties": { +"mysqlColumns": { +"description": "MySQL columns in the database. When unspecified as part of include/exclude lists, includes/excludes everything.", +"items": { +"$ref": "MysqlColumn" +}, +"type": "array" +}, +"tableName": { +"description": "Table name.", +"type": "string" +} +}, +"type": "object" +}, +"NoConnectivitySettings": { +"description": "No connectivity settings.", +"id": "NoConnectivitySettings", +"properties": {}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"validationResult": { +"$ref": "ValidationResult", +"description": "Output only. Results of executed validations if there are any.", +"readOnly": true +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OracleColumn": { +"description": "Oracle Column.", +"id": "OracleColumn", +"properties": { +"columnName": { +"description": "Column name.", +"type": "string" +}, +"dataType": { +"description": "The Oracle data type.", +"type": "string" +}, +"encoding": { +"description": "Column encoding.", +"type": "string" +}, +"length": { +"description": "Column length.", +"format": "int32", +"type": "integer" +}, +"nullable": { +"description": "Whether or not the column can accept a null value.", +"type": "boolean" +}, +"ordinalPosition": { +"description": "The ordinal position of the column in the table.", +"format": "int32", +"type": "integer" +}, +"precision": { +"description": "Column precision.", +"format": "int32", +"type": "integer" +}, +"primaryKey": { +"description": "Whether or not the column represents a primary key.", +"type": "boolean" +}, +"scale": { +"description": "Column scale.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"OracleObjectIdentifier": { +"description": "Oracle data source object identifier.", +"id": "OracleObjectIdentifier", +"properties": { +"schema": { +"description": "Required. The schema name.", +"type": "string" +}, +"table": { +"description": "Required. The table name.", +"type": "string" +} +}, +"type": "object" +}, +"OracleProfile": { +"description": "Oracle database profile.", +"id": "OracleProfile", +"properties": { +"connectionAttributes": { +"additionalProperties": { +"type": "string" +}, +"description": "Connection string attributes", +"type": "object" +}, +"databaseService": { +"description": "Required. Database for the Oracle connection.", +"type": "string" +}, +"hostname": { +"description": "Required. Hostname for the Oracle connection.", +"type": "string" +}, +"password": { +"description": "Required. Password for the Oracle connection.", +"type": "string" +}, +"port": { +"description": "Port for the Oracle connection, default value is 1521.", +"format": "int32", +"type": "integer" +}, +"username": { +"description": "Required. Username for the Oracle connection.", +"type": "string" +} +}, +"type": "object" +}, +"OracleRdbms": { +"description": "Oracle database structure.", +"id": "OracleRdbms", +"properties": { +"oracleSchemas": { +"description": "Oracle schemas/databases in the database server.", +"items": { +"$ref": "OracleSchema" +}, +"type": "array" +} +}, +"type": "object" +}, +"OracleSchema": { +"description": "Oracle schema.", +"id": "OracleSchema", +"properties": { +"oracleTables": { +"description": "Tables in the schema.", +"items": { +"$ref": "OracleTable" +}, +"type": "array" +}, +"schemaName": { +"description": "Schema name.", +"type": "string" +} +}, +"type": "object" +}, +"OracleSourceConfig": { +"description": "Oracle data source configuration", +"id": "OracleSourceConfig", +"properties": { +"allowlist": { +"$ref": "OracleRdbms", +"description": "Oracle objects to include in the stream." +}, +"dropLargeObjects": { +"$ref": "DropLargeObjects", +"description": "Drop large object values." +}, +"rejectlist": { +"$ref": "OracleRdbms", +"description": "Oracle objects to exclude from the stream." +} +}, +"type": "object" +}, +"OracleTable": { +"description": "Oracle table.", +"id": "OracleTable", +"properties": { +"oracleColumns": { +"description": "Oracle columns in the schema. When unspecified as part of inclue/exclude lists, includes/excludes everything.", +"items": { +"$ref": "OracleColumn" +}, +"type": "array" +}, +"tableName": { +"description": "Table name.", +"type": "string" +} +}, +"type": "object" +}, +"PrivateConnection": { +"description": "The PrivateConnection resource is used to establish private connectivity between Datastream and a customer's network.", +"id": "PrivateConnection", +"properties": { +"createTime": { +"description": "Output only. The create time of the resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. Display name.", +"type": "string" +}, +"error": { +"$ref": "Error", +"description": "Output only. In case of error, the details of the error in a user-friendly format.", +"readOnly": true +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels.", +"type": "object" +}, +"name": { +"description": "Output only. The resource's name.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the Private Connection.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"CREATED", +"FAILED", +"DELETING", +"FAILED_TO_DELETE" +], +"enumDescriptions": [ +"", +"The private connection is in creation state - creating resources.", +"The private connection has been created with all of its resources.", +"The private connection creation has failed.", +"The private connection is being deleted.", +"Delete request has failed, resource is in invalid state." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The update time of the resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vpcPeeringConfig": { +"$ref": "VpcPeeringConfig", +"description": "VPC Peering Config" +} +}, +"type": "object" +}, +"PrivateConnectivity": { +"description": "Private Connectivity", +"id": "PrivateConnectivity", +"properties": { +"privateConnectionName": { +"type": "string" +} +}, +"type": "object" +}, +"Route": { +"description": "The Route resource is the child of the PrivateConnection resource. It used to define a route for a PrivateConnection setup.", +"id": "Route", +"properties": { +"createTime": { +"description": "Output only. The create time of the resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"destinationAddress": { +"description": "Required. Destination address for connection", +"type": "string" +}, +"destinationPort": { +"description": "Destination port for connection", +"format": "int32", +"type": "integer" +}, +"displayName": { +"description": "Required. Display name.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels.", +"type": "object" +}, +"name": { +"description": "Output only. The resource's name.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The update time of the resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SourceConfig": { +"description": "The configuration of the stream source.", +"id": "SourceConfig", +"properties": { +"mysqlSourceConfig": { +"$ref": "MysqlSourceConfig", +"description": "MySQL data source configuration" +}, +"oracleSourceConfig": { +"$ref": "OracleSourceConfig", +"description": "Oracle data source configuration" +}, +"sourceConnectionProfileName": { +"description": "Required. Source connection profile identifier.", +"type": "string" +} +}, +"type": "object" +}, +"SourceObjectIdentifier": { +"description": "Represents an identifier of an object in the data source.", +"id": "SourceObjectIdentifier", +"properties": { +"mysqlIdentifier": { +"$ref": "MysqlObjectIdentifier", +"description": "Mysql data source object identifier." +}, +"oracleIdentifier": { +"$ref": "OracleObjectIdentifier", +"description": "Oracle data source object identifier." +} +}, +"type": "object" +}, +"StartBackfillJobResponse": { +"description": "Response for manually initiating a backfill job for a specific stream object.", +"id": "StartBackfillJobResponse", +"properties": { +"object": { +"$ref": "StreamObject", +"description": "The stream object resource a backfill job was started for." +} +}, +"type": "object" +}, +"StaticServiceIpConnectivity": { +"description": "Static IP address connectivity.", +"id": "StaticServiceIpConnectivity", +"properties": {}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StopBackfillJobResponse": { +"description": "Response for manually stop a backfill job for a specific stream object.", +"id": "StopBackfillJobResponse", +"properties": { +"object": { +"$ref": "StreamObject", +"description": "The stream object resource the backfill job was stopped for." +} +}, +"type": "object" +}, +"Stream": { +"id": "Stream", +"properties": { +"backfillAll": { +"$ref": "BackfillAllStrategy", +"description": "Automatically backfill objects included in the stream source configuration. Specific objects can be excluded." +}, +"backfillNone": { +"$ref": "BackfillNoneStrategy", +"description": "Do not automatically backfill any objects." +}, +"createTime": { +"description": "Output only. The creation time of the stream.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customerManagedEncryptionKey": { +"description": "Immutable. A reference to a KMS encryption key. If provided, it will be used to encrypt the data. If left blank, data will be encrypted using an internal Stream-specific encryption key provisioned through KMS.", +"type": "string" +}, +"destinationConfig": { +"$ref": "DestinationConfig", +"description": "Required. Destination connection profile configuration." +}, +"displayName": { +"description": "Required. Display name.", +"type": "string" +}, +"errors": { +"description": "Output only. Errors on the Stream.", +"items": { +"$ref": "Error" +}, +"readOnly": true, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels.", +"type": "object" +}, +"name": { +"description": "Output only. The stream's name.", +"readOnly": true, +"type": "string" +}, +"sourceConfig": { +"$ref": "SourceConfig", +"description": "Required. Source connection profile configuration." +}, +"state": { +"description": "The state of the stream.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATED", +"RUNNING", +"PAUSED", +"MAINTENANCE", +"FAILED", +"FAILED_PERMANENTLY", +"STARTING", +"DRAINING" +], +"enumDescriptions": [ +"Unspecified stream state.", +"The stream has been created.", +"The stream is running.", +"The stream is paused.", +"The stream is in maintenance mode. Updates are rejected on the resource in this state.", +"The stream is experiencing an error that is preventing data from being streamed.", +"The stream has experienced a terminal failure.", +"The stream is starting, but not yet running.", +"The Stream is no longer reading new events, but still writing events in the buffer." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The last update time of the stream.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"StreamObject": { +"description": "A specific stream object (e.g a specific DB table).", +"id": "StreamObject", +"properties": { +"backfillJob": { +"$ref": "BackfillJob", +"description": "The latest backfill job that was initiated for the stream object." +}, +"createTime": { +"description": "Output only. The creation time of the object.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. Display name.", +"type": "string" +}, +"errors": { +"description": "Output only. Active errors on the object.", +"items": { +"$ref": "Error" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The object's name.", +"readOnly": true, +"type": "string" +}, +"sourceObject": { +"$ref": "SourceObjectIdentifier", +"description": "The object identifier in the data source." +}, +"updateTime": { +"description": "Output only. The last update time of the object.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Validation": { +"id": "Validation", +"properties": { +"code": { +"description": "A custom code identifying this validation.", +"type": "string" +}, +"description": { +"description": "A short description of the validation.", +"type": "string" +}, +"message": { +"description": "Messages reflecting the validation results.", +"items": { +"$ref": "ValidationMessage" +}, +"type": "array" +}, +"status": { +"description": "Validation execution status.", +"enum": [ +"STATUS_UNSPECIFIED", +"NOT_EXECUTED", +"FAILED", +"PASSED" +], +"enumDescriptions": [ +"Unspecified status.", +"Validation did not execute.", +"Validation failed.", +"Validation passed." +], +"type": "string" +} +}, +"type": "object" +}, +"ValidationMessage": { +"description": "Represent user-facing validation result message.", +"id": "ValidationMessage", +"properties": { +"code": { +"description": "A custom code identifying this specific message.", +"type": "string" +}, +"level": { +"description": "Message severity level (warning or error).", +"enum": [ +"LEVEL_UNSPECIFIED", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"Unspecified level.", +"Potentially cause issues with the Stream.", +"Definitely cause issues with the Stream." +], +"type": "string" +}, +"message": { +"description": "The result of the validation.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional metadata related to the result.", +"type": "object" +} +}, +"type": "object" +}, +"ValidationResult": { +"description": "Contains the current validation results.", +"id": "ValidationResult", +"properties": { +"validations": { +"description": "A list of validations (includes both executed as well as not executed validations).", +"items": { +"$ref": "Validation" +}, +"type": "array" +} +}, +"type": "object" +}, +"VpcPeeringConfig": { +"description": "The VPC Peering configuration is used to create VPC peering between Datastream and the consumer's VPC.", +"id": "VpcPeeringConfig", +"properties": { +"subnet": { +"description": "Required. A free subnet for peering. (CIDR of /29)", +"type": "string" +}, +"vpcName": { +"description": "Required. fully qualified name of the VPC Datastream will peer to.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Datastream API", +"version": "v1alpha1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dfareporting.v3.3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dfareporting.v3.3.json new file mode 100644 index 0000000000000000000000000000000000000000..f29e4bbaf1932c92bd45745434f38aa527afe9d3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dfareporting.v3.3.json @@ -0,0 +1,19978 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/ddmconversions": { + "description": "Manage DoubleClick Digital Marketing conversions" + }, + "https://www.googleapis.com/auth/dfareporting": { + "description": "View and manage DoubleClick for Advertisers reports" + }, + "https://www.googleapis.com/auth/dfatrafficking": { + "description": "View and manage your DoubleClick Campaign Manager's (DCM) display ad campaigns" + } + } + } + }, + "basePath": "/dfareporting/v3.3/", + "baseUrl": "https://dfareporting.googleapis.com/dfareporting/v3.3/", + "batchPath": "batch", + "canonicalName": "Dfareporting", + "description": "Build applications to efficiently manage large or complex trafficking, reporting, and attribution workflows for Campaign Manager 360.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/doubleclick-advertisers/", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "dfareporting:v3.3", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://dfareporting.mtls.googleapis.com/", + "name": "dfareporting", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "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", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "key": { + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "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", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "accountActiveAdSummaries": { + "methods": { + "get": { + "description": "Gets the account's active ad summary by account ID.", + "flatPath": "userprofiles/{profileId}/accountActiveAdSummaries/{summaryAccountId}", + "httpMethod": "GET", + "id": "dfareporting.accountActiveAdSummaries.get", + "parameterOrder": [ + "profileId", + "summaryAccountId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "summaryAccountId": { + "description": "Account ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountActiveAdSummaries/{summaryAccountId}", + "response": { + "$ref": "AccountActiveAdSummary" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "accountPermissionGroups": { + "methods": { + "get": { + "description": "Gets one account permission group by ID.", + "flatPath": "userprofiles/{profileId}/accountPermissionGroups/{id}", + "httpMethod": "GET", + "id": "dfareporting.accountPermissionGroups.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Account permission group ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountPermissionGroups/{id}", + "response": { + "$ref": "AccountPermissionGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves the list of account permission groups.", + "flatPath": "userprofiles/{profileId}/accountPermissionGroups", + "httpMethod": "GET", + "id": "dfareporting.accountPermissionGroups.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountPermissionGroups", + "response": { + "$ref": "AccountPermissionGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "accountPermissions": { + "methods": { + "get": { + "description": "Gets one account permission by ID.", + "flatPath": "userprofiles/{profileId}/accountPermissions/{id}", + "httpMethod": "GET", + "id": "dfareporting.accountPermissions.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Account permission ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountPermissions/{id}", + "response": { + "$ref": "AccountPermission" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves the list of account permissions.", + "flatPath": "userprofiles/{profileId}/accountPermissions", + "httpMethod": "GET", + "id": "dfareporting.accountPermissions.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountPermissions", + "response": { + "$ref": "AccountPermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "accountUserProfiles": { + "methods": { + "get": { + "description": "Gets one account user profile by ID.", + "flatPath": "userprofiles/{profileId}/accountUserProfiles/{id}", + "httpMethod": "GET", + "id": "dfareporting.accountUserProfiles.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "User profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountUserProfiles/{id}", + "response": { + "$ref": "AccountUserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new account user profile.", + "flatPath": "userprofiles/{profileId}/accountUserProfiles", + "httpMethod": "POST", + "id": "dfareporting.accountUserProfiles.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountUserProfiles", + "request": { + "$ref": "AccountUserProfile" + }, + "response": { + "$ref": "AccountUserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of account user profiles, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/accountUserProfiles", + "httpMethod": "GET", + "id": "dfareporting.accountUserProfiles.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "active": { + "description": "Select only active user profiles.", + "location": "query", + "type": "boolean" + }, + "ids": { + "description": "Select only user profiles with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, \"user profile*2015\" will return objects with names like \"user profile June 2015\", \"user profile April 2015\", or simply \"user profile 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"user profile\" will match objects with name \"my user profile\", \"user profile 2015\", or simply \"user profile\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "subaccountId": { + "description": "Select only user profiles with the specified subaccount ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "userRoleId": { + "description": "Select only user profiles with the specified user role ID.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountUserProfiles", + "response": { + "$ref": "AccountUserProfilesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing account user profile. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/accountUserProfiles", + "httpMethod": "PATCH", + "id": "dfareporting.accountUserProfiles.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "AccountUserProfile ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountUserProfiles", + "request": { + "$ref": "AccountUserProfile" + }, + "response": { + "$ref": "AccountUserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing account user profile.", + "flatPath": "userprofiles/{profileId}/accountUserProfiles", + "httpMethod": "PUT", + "id": "dfareporting.accountUserProfiles.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accountUserProfiles", + "request": { + "$ref": "AccountUserProfile" + }, + "response": { + "$ref": "AccountUserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "accounts": { + "methods": { + "get": { + "description": "Gets one account by ID.", + "flatPath": "userprofiles/{profileId}/accounts/{id}", + "httpMethod": "GET", + "id": "dfareporting.accounts.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Account ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accounts/{id}", + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves the list of accounts, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/accounts", + "httpMethod": "GET", + "id": "dfareporting.accounts.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "active": { + "description": "Select only active accounts. Don't set this field to select both active and non-active accounts.", + "location": "query", + "type": "boolean" + }, + "ids": { + "description": "Select only accounts with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"account*2015\" will return objects with names like \"account June 2015\", \"account April 2015\", or simply \"account 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"account\" will match objects with name \"my account\", \"account 2015\", or simply \"account\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accounts", + "response": { + "$ref": "AccountsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing account. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/accounts", + "httpMethod": "PATCH", + "id": "dfareporting.accounts.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Account ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accounts", + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing account.", + "flatPath": "userprofiles/{profileId}/accounts", + "httpMethod": "PUT", + "id": "dfareporting.accounts.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/accounts", + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "ads": { + "methods": { + "get": { + "description": "Gets one ad by ID.", + "flatPath": "userprofiles/{profileId}/ads/{id}", + "httpMethod": "GET", + "id": "dfareporting.ads.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Ad ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/ads/{id}", + "response": { + "$ref": "Ad" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new ad.", + "flatPath": "userprofiles/{profileId}/ads", + "httpMethod": "POST", + "id": "dfareporting.ads.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/ads", + "request": { + "$ref": "Ad" + }, + "response": { + "$ref": "Ad" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of ads, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/ads", + "httpMethod": "GET", + "id": "dfareporting.ads.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "active": { + "description": "Select only active ads.", + "location": "query", + "type": "boolean" + }, + "advertiserId": { + "description": "Select only ads with this advertiser ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "archived": { + "description": "Select only archived ads.", + "location": "query", + "type": "boolean" + }, + "audienceSegmentIds": { + "description": "Select only ads with these audience segment IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "campaignIds": { + "description": "Select only ads with these campaign IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "compatibility": { + "description": "Select default ads with the specified compatibility. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.", + "enum": [ + "DISPLAY", + "DISPLAY_INTERSTITIAL", + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "IN_STREAM_AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "location": "query", + "type": "string" + }, + "creativeIds": { + "description": "Select only ads with these creative IDs assigned.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "creativeOptimizationConfigurationIds": { + "description": "Select only ads with these creative optimization configuration IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "dynamicClickTracker": { + "description": "Select only dynamic click trackers. Applicable when type is AD_SERVING_CLICK_TRACKER. If true, select dynamic click trackers. If false, select static click trackers. Leave unset to select both.", + "location": "query", + "type": "boolean" + }, + "ids": { + "description": "Select only ads with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "landingPageIds": { + "description": "Select only ads with these landing page IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "overriddenEventTagId": { + "description": "Select only ads with this event tag override ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "placementIds": { + "description": "Select only ads with these placement IDs assigned.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "remarketingListIds": { + "description": "Select only ads whose list targeting expression use these remarketing list IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"ad*2015\" will return objects with names like \"ad June 2015\", \"ad April 2015\", or simply \"ad 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"ad\" will match objects with name \"my ad\", \"ad 2015\", or simply \"ad\".", + "location": "query", + "type": "string" + }, + "sizeIds": { + "description": "Select only ads with these size IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sslCompliant": { + "description": "Select only ads that are SSL-compliant.", + "location": "query", + "type": "boolean" + }, + "sslRequired": { + "description": "Select only ads that require SSL.", + "location": "query", + "type": "boolean" + }, + "type": { + "description": "Select only ads with these types.", + "enum": [ + "AD_SERVING_STANDARD_AD", + "AD_SERVING_DEFAULT_AD", + "AD_SERVING_CLICK_TRACKER", + "AD_SERVING_TRACKING", + "AD_SERVING_BRAND_SAFE_AD" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/ads", + "response": { + "$ref": "AdsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing ad. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/ads", + "httpMethod": "PATCH", + "id": "dfareporting.ads.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Ad ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/ads", + "request": { + "$ref": "Ad" + }, + "response": { + "$ref": "Ad" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing ad.", + "flatPath": "userprofiles/{profileId}/ads", + "httpMethod": "PUT", + "id": "dfareporting.ads.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/ads", + "request": { + "$ref": "Ad" + }, + "response": { + "$ref": "Ad" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "advertiserGroups": { + "methods": { + "delete": { + "description": "Deletes an existing advertiser group.", + "flatPath": "userprofiles/{profileId}/advertiserGroups/{id}", + "httpMethod": "DELETE", + "id": "dfareporting.advertiserGroups.delete", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Advertiser group ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserGroups/{id}", + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "description": "Gets one advertiser group by ID.", + "flatPath": "userprofiles/{profileId}/advertiserGroups/{id}", + "httpMethod": "GET", + "id": "dfareporting.advertiserGroups.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Advertiser group ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserGroups/{id}", + "response": { + "$ref": "AdvertiserGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new advertiser group.", + "flatPath": "userprofiles/{profileId}/advertiserGroups", + "httpMethod": "POST", + "id": "dfareporting.advertiserGroups.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserGroups", + "request": { + "$ref": "AdvertiserGroup" + }, + "response": { + "$ref": "AdvertiserGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of advertiser groups, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/advertiserGroups", + "httpMethod": "GET", + "id": "dfareporting.advertiserGroups.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "ids": { + "description": "Select only advertiser groups with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"advertiser*2015\" will return objects with names like \"advertiser group June 2015\", \"advertiser group April 2015\", or simply \"advertiser group 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"advertisergroup\" will match objects with name \"my advertisergroup\", \"advertisergroup 2015\", or simply \"advertisergroup\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserGroups", + "response": { + "$ref": "AdvertiserGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing advertiser group. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/advertiserGroups", + "httpMethod": "PATCH", + "id": "dfareporting.advertiserGroups.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "AdvertiserGroup ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserGroups", + "request": { + "$ref": "AdvertiserGroup" + }, + "response": { + "$ref": "AdvertiserGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing advertiser group.", + "flatPath": "userprofiles/{profileId}/advertiserGroups", + "httpMethod": "PUT", + "id": "dfareporting.advertiserGroups.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserGroups", + "request": { + "$ref": "AdvertiserGroup" + }, + "response": { + "$ref": "AdvertiserGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "advertiserLandingPages": { + "methods": { + "get": { + "description": "Gets one landing page by ID.", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages/{id}", + "httpMethod": "GET", + "id": "dfareporting.advertiserLandingPages.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Landing page ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserLandingPages/{id}", + "response": { + "$ref": "LandingPage" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new landing page.", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages", + "httpMethod": "POST", + "id": "dfareporting.advertiserLandingPages.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserLandingPages", + "request": { + "$ref": "LandingPage" + }, + "response": { + "$ref": "LandingPage" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of landing pages.", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages", + "httpMethod": "GET", + "id": "dfareporting.advertiserLandingPages.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserIds": { + "description": "Select only landing pages that belong to these advertisers.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "archived": { + "description": "Select only archived landing pages. Don't set this field to select both archived and non-archived landing pages.", + "location": "query", + "type": "boolean" + }, + "campaignIds": { + "description": "Select only landing pages that are associated with these campaigns.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only landing pages with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for landing pages by name or ID. Wildcards (*) are allowed. For example, \"landingpage*2017\" will return landing pages with names like \"landingpage July 2017\", \"landingpage March 2017\", or simply \"landingpage 2017\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"landingpage\" will match campaigns with name \"my landingpage\", \"landingpage 2015\", or simply \"landingpage\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "subaccountId": { + "description": "Select only landing pages that belong to this subaccount.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserLandingPages", + "response": { + "$ref": "AdvertiserLandingPagesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing advertiser landing page. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages", + "httpMethod": "PATCH", + "id": "dfareporting.advertiserLandingPages.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "LandingPage ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserLandingPages", + "request": { + "$ref": "LandingPage" + }, + "response": { + "$ref": "LandingPage" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing landing page.", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages", + "httpMethod": "PUT", + "id": "dfareporting.advertiserLandingPages.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertiserLandingPages", + "request": { + "$ref": "LandingPage" + }, + "response": { + "$ref": "LandingPage" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "advertisers": { + "methods": { + "get": { + "description": "Gets one advertiser by ID.", + "flatPath": "userprofiles/{profileId}/advertisers/{id}", + "httpMethod": "GET", + "id": "dfareporting.advertisers.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Advertiser ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertisers/{id}", + "response": { + "$ref": "Advertiser" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new advertiser.", + "flatPath": "userprofiles/{profileId}/advertisers", + "httpMethod": "POST", + "id": "dfareporting.advertisers.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertisers", + "request": { + "$ref": "Advertiser" + }, + "response": { + "$ref": "Advertiser" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of advertisers, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/advertisers", + "httpMethod": "GET", + "id": "dfareporting.advertisers.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserGroupIds": { + "description": "Select only advertisers with these advertiser group IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "floodlightConfigurationIds": { + "description": "Select only advertisers with these floodlight configuration IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only advertisers with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "includeAdvertisersWithoutGroupsOnly": { + "description": "Select only advertisers which do not belong to any advertiser group.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "onlyParent": { + "description": "Select only advertisers which use another advertiser's floodlight configuration.", + "location": "query", + "type": "boolean" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"advertiser*2015\" will return objects with names like \"advertiser June 2015\", \"advertiser April 2015\", or simply \"advertiser 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"advertiser\" will match objects with name \"my advertiser\", \"advertiser 2015\", or simply \"advertiser\" .", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "status": { + "description": "Select only advertisers with the specified status.", + "enum": [ + "APPROVED", + "ON_HOLD" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "subaccountId": { + "description": "Select only advertisers with these subaccount IDs.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertisers", + "response": { + "$ref": "AdvertisersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing advertiser. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/advertisers", + "httpMethod": "PATCH", + "id": "dfareporting.advertisers.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Advertiser ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertisers", + "request": { + "$ref": "Advertiser" + }, + "response": { + "$ref": "Advertiser" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing advertiser.", + "flatPath": "userprofiles/{profileId}/advertisers", + "httpMethod": "PUT", + "id": "dfareporting.advertisers.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/advertisers", + "request": { + "$ref": "Advertiser" + }, + "response": { + "$ref": "Advertiser" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "browsers": { + "methods": { + "list": { + "description": "Retrieves a list of browsers.", + "flatPath": "userprofiles/{profileId}/browsers", + "httpMethod": "GET", + "id": "dfareporting.browsers.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/browsers", + "response": { + "$ref": "BrowsersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "campaignCreativeAssociations": { + "methods": { + "insert": { + "description": "Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.", + "flatPath": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "httpMethod": "POST", + "id": "dfareporting.campaignCreativeAssociations.insert", + "parameterOrder": [ + "profileId", + "campaignId" + ], + "parameters": { + "campaignId": { + "description": "Campaign ID in this association.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "request": { + "$ref": "CampaignCreativeAssociation" + }, + "response": { + "$ref": "CampaignCreativeAssociation" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves the list of creative IDs associated with the specified campaign. This method supports paging.", + "flatPath": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "httpMethod": "GET", + "id": "dfareporting.campaignCreativeAssociations.list", + "parameterOrder": [ + "profileId", + "campaignId" + ], + "parameters": { + "campaignId": { + "description": "Campaign ID in this association.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "response": { + "$ref": "CampaignCreativeAssociationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "campaigns": { + "methods": { + "get": { + "description": "Gets one campaign by ID.", + "flatPath": "userprofiles/{profileId}/campaigns/{id}", + "httpMethod": "GET", + "id": "dfareporting.campaigns.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Campaign ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/campaigns/{id}", + "response": { + "$ref": "Campaign" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new campaign.", + "flatPath": "userprofiles/{profileId}/campaigns", + "httpMethod": "POST", + "id": "dfareporting.campaigns.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/campaigns", + "request": { + "$ref": "Campaign" + }, + "response": { + "$ref": "Campaign" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of campaigns, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/campaigns", + "httpMethod": "GET", + "id": "dfareporting.campaigns.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserGroupIds": { + "description": "Select only campaigns whose advertisers belong to these advertiser groups.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "advertiserIds": { + "description": "Select only campaigns that belong to these advertisers.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "archived": { + "description": "Select only archived campaigns. Don't set this field to select both archived and non-archived campaigns.", + "location": "query", + "type": "boolean" + }, + "atLeastOneOptimizationActivity": { + "description": "Select only campaigns that have at least one optimization activity.", + "location": "query", + "type": "boolean" + }, + "excludedIds": { + "description": "Exclude campaigns with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only campaigns with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "overriddenEventTagId": { + "description": "Select only campaigns that have overridden this event tag ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for campaigns by name or ID. Wildcards (*) are allowed. For example, \"campaign*2015\" will return campaigns with names like \"campaign June 2015\", \"campaign April 2015\", or simply \"campaign 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"campaign\" will match campaigns with name \"my campaign\", \"campaign 2015\", or simply \"campaign\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "subaccountId": { + "description": "Select only campaigns that belong to this subaccount.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/campaigns", + "response": { + "$ref": "CampaignsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing campaign. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/campaigns", + "httpMethod": "PATCH", + "id": "dfareporting.campaigns.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Campaign ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/campaigns", + "request": { + "$ref": "Campaign" + }, + "response": { + "$ref": "Campaign" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing campaign.", + "flatPath": "userprofiles/{profileId}/campaigns", + "httpMethod": "PUT", + "id": "dfareporting.campaigns.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/campaigns", + "request": { + "$ref": "Campaign" + }, + "response": { + "$ref": "Campaign" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "changeLogs": { + "methods": { + "get": { + "description": "Gets one change log by ID.", + "flatPath": "userprofiles/{profileId}/changeLogs/{id}", + "httpMethod": "GET", + "id": "dfareporting.changeLogs.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Change log ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/changeLogs/{id}", + "response": { + "$ref": "ChangeLog" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of change logs. This method supports paging.", + "flatPath": "userprofiles/{profileId}/changeLogs", + "httpMethod": "GET", + "id": "dfareporting.changeLogs.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "action": { + "description": "Select only change logs with the specified action.", + "enum": [ + "ACTION_CREATE", + "ACTION_UPDATE", + "ACTION_DELETE", + "ACTION_ENABLE", + "ACTION_DISABLE", + "ACTION_ADD", + "ACTION_REMOVE", + "ACTION_MARK_AS_DEFAULT", + "ACTION_ASSOCIATE", + "ACTION_ASSIGN", + "ACTION_UNASSIGN", + "ACTION_SEND", + "ACTION_LINK", + "ACTION_UNLINK", + "ACTION_PUSH", + "ACTION_EMAIL_TAGS", + "ACTION_SHARE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query", + "type": "string" + }, + "ids": { + "description": "Select only change logs with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxChangeTime": { + "description": "Select only change logs whose change time is before the specified maxChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is \"2015-07-18T22:54:00-04:00\". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "minChangeTime": { + "description": "Select only change logs whose change time is after the specified minChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is \"2015-07-18T22:54:00-04:00\". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.", + "location": "query", + "type": "string" + }, + "objectIds": { + "description": "Select only change logs with these object IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "objectType": { + "description": "Select only change logs with the specified object type.", + "enum": [ + "OBJECT_ADVERTISER", + "OBJECT_FLOODLIGHT_CONFIGURATION", + "OBJECT_AD", + "OBJECT_FLOODLIGHT_ACTVITY", + "OBJECT_CAMPAIGN", + "OBJECT_FLOODLIGHT_ACTIVITY_GROUP", + "OBJECT_CREATIVE", + "OBJECT_PLACEMENT", + "OBJECT_DFA_SITE", + "OBJECT_USER_ROLE", + "OBJECT_USER_PROFILE", + "OBJECT_ADVERTISER_GROUP", + "OBJECT_ACCOUNT", + "OBJECT_SUBACCOUNT", + "OBJECT_RICHMEDIA_CREATIVE", + "OBJECT_INSTREAM_CREATIVE", + "OBJECT_MEDIA_ORDER", + "OBJECT_CONTENT_CATEGORY", + "OBJECT_PLACEMENT_STRATEGY", + "OBJECT_SD_SITE", + "OBJECT_SIZE", + "OBJECT_CREATIVE_GROUP", + "OBJECT_CREATIVE_ASSET", + "OBJECT_USER_PROFILE_FILTER", + "OBJECT_LANDING_PAGE", + "OBJECT_CREATIVE_FIELD", + "OBJECT_REMARKETING_LIST", + "OBJECT_PROVIDED_LIST_CLIENT", + "OBJECT_EVENT_TAG", + "OBJECT_CREATIVE_BUNDLE", + "OBJECT_BILLING_ACCOUNT_GROUP", + "OBJECT_BILLING_FEATURE", + "OBJECT_RATE_CARD", + "OBJECT_ACCOUNT_BILLING_FEATURE", + "OBJECT_BILLING_MINIMUM_FEE", + "OBJECT_BILLING_PROFILE", + "OBJECT_PLAYSTORE_LINK", + "OBJECT_TARGETING_TEMPLATE", + "OBJECT_SEARCH_LIFT_STUDY", + "OBJECT_FLOODLIGHT_DV360_LINK" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Select only change logs whose object ID, user name, old or new values match the search string.", + "location": "query", + "type": "string" + }, + "userProfileIds": { + "description": "Select only change logs with these user profile IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/changeLogs", + "response": { + "$ref": "ChangeLogsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "cities": { + "methods": { + "list": { + "description": "Retrieves a list of cities, possibly filtered.", + "flatPath": "userprofiles/{profileId}/cities", + "httpMethod": "GET", + "id": "dfareporting.cities.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "countryDartIds": { + "description": "Select only cities from these countries.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "dartIds": { + "description": "Select only cities with these DART IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "namePrefix": { + "description": "Select only cities with names starting with this prefix.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "regionDartIds": { + "description": "Select only cities from these regions.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/cities", + "response": { + "$ref": "CitiesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "connectionTypes": { + "methods": { + "get": { + "description": "Gets one connection type by ID.", + "flatPath": "userprofiles/{profileId}/connectionTypes/{id}", + "httpMethod": "GET", + "id": "dfareporting.connectionTypes.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Connection type ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/connectionTypes/{id}", + "response": { + "$ref": "ConnectionType" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of connection types.", + "flatPath": "userprofiles/{profileId}/connectionTypes", + "httpMethod": "GET", + "id": "dfareporting.connectionTypes.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/connectionTypes", + "response": { + "$ref": "ConnectionTypesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "contentCategories": { + "methods": { + "delete": { + "description": "Deletes an existing content category.", + "flatPath": "userprofiles/{profileId}/contentCategories/{id}", + "httpMethod": "DELETE", + "id": "dfareporting.contentCategories.delete", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Content category ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/contentCategories/{id}", + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "description": "Gets one content category by ID.", + "flatPath": "userprofiles/{profileId}/contentCategories/{id}", + "httpMethod": "GET", + "id": "dfareporting.contentCategories.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Content category ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/contentCategories/{id}", + "response": { + "$ref": "ContentCategory" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new content category.", + "flatPath": "userprofiles/{profileId}/contentCategories", + "httpMethod": "POST", + "id": "dfareporting.contentCategories.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/contentCategories", + "request": { + "$ref": "ContentCategory" + }, + "response": { + "$ref": "ContentCategory" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of content categories, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/contentCategories", + "httpMethod": "GET", + "id": "dfareporting.contentCategories.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "ids": { + "description": "Select only content categories with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"contentcategory*2015\" will return objects with names like \"contentcategory June 2015\", \"contentcategory April 2015\", or simply \"contentcategory 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"contentcategory\" will match objects with name \"my contentcategory\", \"contentcategory 2015\", or simply \"contentcategory\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/contentCategories", + "response": { + "$ref": "ContentCategoriesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing content category. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/contentCategories", + "httpMethod": "PATCH", + "id": "dfareporting.contentCategories.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "ContentCategory ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/contentCategories", + "request": { + "$ref": "ContentCategory" + }, + "response": { + "$ref": "ContentCategory" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing content category.", + "flatPath": "userprofiles/{profileId}/contentCategories", + "httpMethod": "PUT", + "id": "dfareporting.contentCategories.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/contentCategories", + "request": { + "$ref": "ContentCategory" + }, + "response": { + "$ref": "ContentCategory" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "conversions": { + "methods": { + "batchinsert": { + "description": "Inserts conversions.", + "flatPath": "userprofiles/{profileId}/conversions/batchinsert", + "httpMethod": "POST", + "id": "dfareporting.conversions.batchinsert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/conversions/batchinsert", + "request": { + "$ref": "ConversionsBatchInsertRequest" + }, + "response": { + "$ref": "ConversionsBatchInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/ddmconversions" + ] + }, + "batchupdate": { + "description": "Updates existing conversions.", + "flatPath": "userprofiles/{profileId}/conversions/batchupdate", + "httpMethod": "POST", + "id": "dfareporting.conversions.batchupdate", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/conversions/batchupdate", + "request": { + "$ref": "ConversionsBatchUpdateRequest" + }, + "response": { + "$ref": "ConversionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/ddmconversions" + ] + } + } + }, + "countries": { + "methods": { + "get": { + "description": "Gets one country by ID.", + "flatPath": "userprofiles/{profileId}/countries/{dartId}", + "httpMethod": "GET", + "id": "dfareporting.countries.get", + "parameterOrder": [ + "profileId", + "dartId" + ], + "parameters": { + "dartId": { + "description": "Country DART ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/countries/{dartId}", + "response": { + "$ref": "Country" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of countries.", + "flatPath": "userprofiles/{profileId}/countries", + "httpMethod": "GET", + "id": "dfareporting.countries.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/countries", + "response": { + "$ref": "CountriesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "creativeAssets": { + "methods": { + "insert": { + "description": "Inserts a new creative asset.", + "flatPath": "userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets", + "httpMethod": "POST", + "id": "dfareporting.creativeAssets.insert", + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "1073741824", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/dfareporting/v3.3/userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets" + } + } + }, + "parameterOrder": [ + "profileId", + "advertiserId" + ], + "parameters": { + "advertiserId": { + "description": "Advertiser ID of this creative. This is a required field.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets", + "request": { + "$ref": "CreativeAssetMetadata" + }, + "response": { + "$ref": "CreativeAssetMetadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ], + "supportsMediaUpload": true + } + } + }, + "creativeFieldValues": { + "methods": { + "delete": { + "description": "Deletes an existing creative field value.", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "httpMethod": "DELETE", + "id": "dfareporting.creativeFieldValues.delete", + "parameterOrder": [ + "profileId", + "creativeFieldId", + "id" + ], + "parameters": { + "creativeFieldId": { + "description": "Creative field ID for this creative field value.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "id": { + "description": "Creative Field Value ID", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "description": "Gets one creative field value by ID.", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "httpMethod": "GET", + "id": "dfareporting.creativeFieldValues.get", + "parameterOrder": [ + "profileId", + "creativeFieldId", + "id" + ], + "parameters": { + "creativeFieldId": { + "description": "Creative field ID for this creative field value.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "id": { + "description": "Creative Field Value ID", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "response": { + "$ref": "CreativeFieldValue" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new creative field value.", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "httpMethod": "POST", + "id": "dfareporting.creativeFieldValues.insert", + "parameterOrder": [ + "profileId", + "creativeFieldId" + ], + "parameters": { + "creativeFieldId": { + "description": "Creative field ID for this creative field value.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "request": { + "$ref": "CreativeFieldValue" + }, + "response": { + "$ref": "CreativeFieldValue" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of creative field values, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "httpMethod": "GET", + "id": "dfareporting.creativeFieldValues.list", + "parameterOrder": [ + "profileId", + "creativeFieldId" + ], + "parameters": { + "creativeFieldId": { + "description": "Creative field ID for this creative field value.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "ids": { + "description": "Select only creative field values with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for creative field values by their values. Wildcards (e.g. *) are not allowed.", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "VALUE" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "response": { + "$ref": "CreativeFieldValuesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing creative field value. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "httpMethod": "PATCH", + "id": "dfareporting.creativeFieldValues.patch", + "parameterOrder": [ + "profileId", + "creativeFieldId", + "id" + ], + "parameters": { + "creativeFieldId": { + "description": "CreativeField ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "id": { + "description": "CreativeFieldValue ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "request": { + "$ref": "CreativeFieldValue" + }, + "response": { + "$ref": "CreativeFieldValue" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing creative field value.", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "httpMethod": "PUT", + "id": "dfareporting.creativeFieldValues.update", + "parameterOrder": [ + "profileId", + "creativeFieldId" + ], + "parameters": { + "creativeFieldId": { + "description": "Creative field ID for this creative field value.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "request": { + "$ref": "CreativeFieldValue" + }, + "response": { + "$ref": "CreativeFieldValue" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "creativeFields": { + "methods": { + "delete": { + "description": "Deletes an existing creative field.", + "flatPath": "userprofiles/{profileId}/creativeFields/{id}", + "httpMethod": "DELETE", + "id": "dfareporting.creativeFields.delete", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Creative Field ID", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields/{id}", + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "description": "Gets one creative field by ID.", + "flatPath": "userprofiles/{profileId}/creativeFields/{id}", + "httpMethod": "GET", + "id": "dfareporting.creativeFields.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Creative Field ID", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields/{id}", + "response": { + "$ref": "CreativeField" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new creative field.", + "flatPath": "userprofiles/{profileId}/creativeFields", + "httpMethod": "POST", + "id": "dfareporting.creativeFields.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields", + "request": { + "$ref": "CreativeField" + }, + "response": { + "$ref": "CreativeField" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of creative fields, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/creativeFields", + "httpMethod": "GET", + "id": "dfareporting.creativeFields.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserIds": { + "description": "Select only creative fields that belong to these advertisers.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only creative fields with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for creative fields by name or ID. Wildcards (*) are allowed. For example, \"creativefield*2015\" will return creative fields with names like \"creativefield June 2015\", \"creativefield April 2015\", or simply \"creativefield 2015\". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of \"creativefield\" will match creative fields with the name \"my creativefield\", \"creativefield 2015\", or simply \"creativefield\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields", + "response": { + "$ref": "CreativeFieldsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing creative field. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/creativeFields", + "httpMethod": "PATCH", + "id": "dfareporting.creativeFields.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "CreativeField ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields", + "request": { + "$ref": "CreativeField" + }, + "response": { + "$ref": "CreativeField" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing creative field.", + "flatPath": "userprofiles/{profileId}/creativeFields", + "httpMethod": "PUT", + "id": "dfareporting.creativeFields.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeFields", + "request": { + "$ref": "CreativeField" + }, + "response": { + "$ref": "CreativeField" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "creativeGroups": { + "methods": { + "get": { + "description": "Gets one creative group by ID.", + "flatPath": "userprofiles/{profileId}/creativeGroups/{id}", + "httpMethod": "GET", + "id": "dfareporting.creativeGroups.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Creative group ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeGroups/{id}", + "response": { + "$ref": "CreativeGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new creative group.", + "flatPath": "userprofiles/{profileId}/creativeGroups", + "httpMethod": "POST", + "id": "dfareporting.creativeGroups.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeGroups", + "request": { + "$ref": "CreativeGroup" + }, + "response": { + "$ref": "CreativeGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of creative groups, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/creativeGroups", + "httpMethod": "GET", + "id": "dfareporting.creativeGroups.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserIds": { + "description": "Select only creative groups that belong to these advertisers.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "groupNumber": { + "description": "Select only creative groups that belong to this subgroup.", + "format": "int32", + "location": "query", + "maximum": "2", + "minimum": "1", + "type": "integer" + }, + "ids": { + "description": "Select only creative groups with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for creative groups by name or ID. Wildcards (*) are allowed. For example, \"creativegroup*2015\" will return creative groups with names like \"creativegroup June 2015\", \"creativegroup April 2015\", or simply \"creativegroup 2015\". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of \"creativegroup\" will match creative groups with the name \"my creativegroup\", \"creativegroup 2015\", or simply \"creativegroup\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeGroups", + "response": { + "$ref": "CreativeGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing creative group. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/creativeGroups", + "httpMethod": "PATCH", + "id": "dfareporting.creativeGroups.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "CreativeGroup ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeGroups", + "request": { + "$ref": "CreativeGroup" + }, + "response": { + "$ref": "CreativeGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing creative group.", + "flatPath": "userprofiles/{profileId}/creativeGroups", + "httpMethod": "PUT", + "id": "dfareporting.creativeGroups.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creativeGroups", + "request": { + "$ref": "CreativeGroup" + }, + "response": { + "$ref": "CreativeGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "creatives": { + "methods": { + "get": { + "description": "Gets one creative by ID.", + "flatPath": "userprofiles/{profileId}/creatives/{id}", + "httpMethod": "GET", + "id": "dfareporting.creatives.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Creative ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creatives/{id}", + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new creative.", + "flatPath": "userprofiles/{profileId}/creatives", + "httpMethod": "POST", + "id": "dfareporting.creatives.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creatives", + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of creatives, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/creatives", + "httpMethod": "GET", + "id": "dfareporting.creatives.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "active": { + "description": "Select only active creatives. Leave blank to select active and inactive creatives.", + "location": "query", + "type": "boolean" + }, + "advertiserId": { + "description": "Select only creatives with this advertiser ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "archived": { + "description": "Select only archived creatives. Leave blank to select archived and unarchived creatives.", + "location": "query", + "type": "boolean" + }, + "campaignId": { + "description": "Select only creatives with this campaign ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "companionCreativeIds": { + "description": "Select only in-stream video creatives with these companion IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "creativeFieldIds": { + "description": "Select only creatives with these creative field IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only creatives with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "renderingIds": { + "description": "Select only creatives with these rendering IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"creative*2015\" will return objects with names like \"creative June 2015\", \"creative April 2015\", or simply \"creative 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"creative\" will match objects with name \"my creative\", \"creative 2015\", or simply \"creative\".", + "location": "query", + "type": "string" + }, + "sizeIds": { + "description": "Select only creatives with these size IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "studioCreativeId": { + "description": "Select only creatives corresponding to this Studio creative ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "types": { + "description": "Select only creatives with these creative types.", + "enum": [ + "IMAGE", + "DISPLAY_REDIRECT", + "CUSTOM_DISPLAY", + "INTERNAL_REDIRECT", + "CUSTOM_DISPLAY_INTERSTITIAL", + "INTERSTITIAL_INTERNAL_REDIRECT", + "TRACKING_TEXT", + "RICH_MEDIA_DISPLAY_BANNER", + "RICH_MEDIA_INPAGE_FLOATING", + "RICH_MEDIA_IM_EXPAND", + "RICH_MEDIA_DISPLAY_EXPANDING", + "RICH_MEDIA_DISPLAY_INTERSTITIAL", + "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL", + "RICH_MEDIA_MOBILE_IN_APP", + "FLASH_INPAGE", + "INSTREAM_VIDEO", + "VPAID_LINEAR_VIDEO", + "VPAID_NON_LINEAR_VIDEO", + "INSTREAM_VIDEO_REDIRECT", + "RICH_MEDIA_PEEL_DOWN", + "HTML5_BANNER", + "DISPLAY", + "DISPLAY_IMAGE_GALLERY", + "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO", + "INSTREAM_AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creatives", + "response": { + "$ref": "CreativesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing creative. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/creatives", + "httpMethod": "PATCH", + "id": "dfareporting.creatives.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Creative ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creatives", + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing creative.", + "flatPath": "userprofiles/{profileId}/creatives", + "httpMethod": "PUT", + "id": "dfareporting.creatives.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/creatives", + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "dimensionValues": { + "methods": { + "query": { + "description": "Retrieves list of report dimension values for a list of filters.", + "flatPath": "userprofiles/{profileId}/dimensionvalues/query", + "httpMethod": "POST", + "id": "dfareporting.dimensionValues.query", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "maxResults": { + "default": "100", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "100", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "The value of the nextToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/dimensionvalues/query", + "request": { + "$ref": "DimensionValueRequest" + }, + "response": { + "$ref": "DimensionValueList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "directorySites": { + "methods": { + "get": { + "description": "Gets one directory site by ID.", + "flatPath": "userprofiles/{profileId}/directorySites/{id}", + "httpMethod": "GET", + "id": "dfareporting.directorySites.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Directory site ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/directorySites/{id}", + "response": { + "$ref": "DirectorySite" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new directory site.", + "flatPath": "userprofiles/{profileId}/directorySites", + "httpMethod": "POST", + "id": "dfareporting.directorySites.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/directorySites", + "request": { + "$ref": "DirectorySite" + }, + "response": { + "$ref": "DirectorySite" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of directory sites, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/directorySites", + "httpMethod": "GET", + "id": "dfareporting.directorySites.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "acceptsInStreamVideoPlacements": { + "description": "This search filter is no longer supported and will have no effect on the results returned.", + "location": "query", + "type": "boolean" + }, + "acceptsInterstitialPlacements": { + "description": "This search filter is no longer supported and will have no effect on the results returned.", + "location": "query", + "type": "boolean" + }, + "acceptsPublisherPaidPlacements": { + "description": "Select only directory sites that accept publisher paid placements. This field can be left blank.", + "location": "query", + "type": "boolean" + }, + "active": { + "description": "Select only active directory sites. Leave blank to retrieve both active and inactive directory sites.", + "location": "query", + "type": "boolean" + }, + "dfpNetworkCode": { + "description": "Select only directory sites with this Ad Manager network code.", + "location": "query", + "type": "string" + }, + "ids": { + "description": "Select only directory sites with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name, ID or URL. Wildcards (*) are allowed. For example, \"directory site*2015\" will return objects with names like \"directory site June 2015\", \"directory site April 2015\", or simply \"directory site 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"directory site\" will match objects with name \"my directory site\", \"directory site 2015\" or simply, \"directory site\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/directorySites", + "response": { + "$ref": "DirectorySitesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "dynamicTargetingKeys": { + "methods": { + "delete": { + "description": "Deletes an existing dynamic targeting key.", + "flatPath": "userprofiles/{profileId}/dynamicTargetingKeys/{objectId}", + "httpMethod": "DELETE", + "id": "dfareporting.dynamicTargetingKeys.delete", + "parameterOrder": [ + "profileId", + "objectId", + "name", + "objectType" + ], + "parameters": { + "name": { + "description": "Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.", + "location": "query", + "required": true, + "type": "string" + }, + "objectId": { + "description": "ID of the object of this dynamic targeting key. This is a required field.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "objectType": { + "description": "Type of the object of this dynamic targeting key. This is a required field.", + "enum": [ + "OBJECT_ADVERTISER", + "OBJECT_AD", + "OBJECT_CREATIVE", + "OBJECT_PLACEMENT" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/dynamicTargetingKeys/{objectId}", + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new dynamic targeting key. Keys must be created at the advertiser level before being assigned to the advertiser's ads, creatives, or placements. There is a maximum of 1000 keys per advertiser, out of which a maximum of 20 keys can be assigned per ad, creative, or placement.", + "flatPath": "userprofiles/{profileId}/dynamicTargetingKeys", + "httpMethod": "POST", + "id": "dfareporting.dynamicTargetingKeys.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/dynamicTargetingKeys", + "request": { + "$ref": "DynamicTargetingKey" + }, + "response": { + "$ref": "DynamicTargetingKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of dynamic targeting keys.", + "flatPath": "userprofiles/{profileId}/dynamicTargetingKeys", + "httpMethod": "GET", + "id": "dfareporting.dynamicTargetingKeys.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserId": { + "description": "Select only dynamic targeting keys whose object has this advertiser ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "names": { + "description": "Select only dynamic targeting keys exactly matching these names.", + "location": "query", + "repeated": true, + "type": "string" + }, + "objectId": { + "description": "Select only dynamic targeting keys with this object ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "objectType": { + "description": "Select only dynamic targeting keys with this object type.", + "enum": [ + "OBJECT_ADVERTISER", + "OBJECT_AD", + "OBJECT_CREATIVE", + "OBJECT_PLACEMENT" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/dynamicTargetingKeys", + "response": { + "$ref": "DynamicTargetingKeysListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "eventTags": { + "methods": { + "delete": { + "description": "Deletes an existing event tag.", + "flatPath": "userprofiles/{profileId}/eventTags/{id}", + "httpMethod": "DELETE", + "id": "dfareporting.eventTags.delete", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Event tag ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/eventTags/{id}", + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "description": "Gets one event tag by ID.", + "flatPath": "userprofiles/{profileId}/eventTags/{id}", + "httpMethod": "GET", + "id": "dfareporting.eventTags.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Event tag ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/eventTags/{id}", + "response": { + "$ref": "EventTag" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new event tag.", + "flatPath": "userprofiles/{profileId}/eventTags", + "httpMethod": "POST", + "id": "dfareporting.eventTags.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/eventTags", + "request": { + "$ref": "EventTag" + }, + "response": { + "$ref": "EventTag" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of event tags, possibly filtered.", + "flatPath": "userprofiles/{profileId}/eventTags", + "httpMethod": "GET", + "id": "dfareporting.eventTags.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "adId": { + "description": "Select only event tags that belong to this ad.", + "format": "int64", + "location": "query", + "type": "string" + }, + "advertiserId": { + "description": "Select only event tags that belong to this advertiser.", + "format": "int64", + "location": "query", + "type": "string" + }, + "campaignId": { + "description": "Select only event tags that belong to this campaign.", + "format": "int64", + "location": "query", + "type": "string" + }, + "definitionsOnly": { + "description": "Examine only the specified campaign or advertiser's event tags for matching selector criteria. When set to false, the parent advertiser and parent campaign of the specified ad or campaign is examined as well. In addition, when set to false, the status field is examined as well, along with the enabledByDefault field. This parameter can not be set to true when adId is specified as ads do not define their own even tags.", + "location": "query", + "type": "boolean" + }, + "enabled": { + "description": "Select only enabled event tags. What is considered enabled or disabled depends on the definitionsOnly parameter. When definitionsOnly is set to true, only the specified advertiser or campaign's event tags' enabledByDefault field is examined. When definitionsOnly is set to false, the specified ad or specified campaign's parent advertiser's or parent campaign's event tags' enabledByDefault and status fields are examined as well.", + "location": "query", + "type": "boolean" + }, + "eventTagTypes": { + "description": "Select only event tags with the specified event tag types. Event tag types can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking.", + "enum": [ + "IMPRESSION_IMAGE_EVENT_TAG", + "IMPRESSION_JAVASCRIPT_EVENT_TAG", + "CLICK_THROUGH_EVENT_TAG" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only event tags with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"eventtag*2015\" will return objects with names like \"eventtag June 2015\", \"eventtag April 2015\", or simply \"eventtag 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"eventtag\" will match objects with name \"my eventtag\", \"eventtag 2015\", or simply \"eventtag\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/eventTags", + "response": { + "$ref": "EventTagsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing event tag. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/eventTags", + "httpMethod": "PATCH", + "id": "dfareporting.eventTags.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "EventTag ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/eventTags", + "request": { + "$ref": "EventTag" + }, + "response": { + "$ref": "EventTag" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing event tag.", + "flatPath": "userprofiles/{profileId}/eventTags", + "httpMethod": "PUT", + "id": "dfareporting.eventTags.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/eventTags", + "request": { + "$ref": "EventTag" + }, + "response": { + "$ref": "EventTag" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "files": { + "methods": { + "get": { + "description": "Retrieves a report file by its report ID and file ID. This method supports media download.", + "flatPath": "reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "id": "dfareporting.files.get", + "parameterOrder": [ + "reportId", + "fileId" + ], + "parameters": { + "fileId": { + "description": "The ID of the report file.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "reportId": { + "description": "The ID of the report.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "reports/{reportId}/files/{fileId}", + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ], + "supportsMediaDownload": true + }, + "list": { + "description": "Lists files for a user profile.", + "flatPath": "userprofiles/{profileId}/files", + "httpMethod": "GET", + "id": "dfareporting.files.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "maxResults": { + "default": "10", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "10", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "The value of the nextToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "scope": { + "default": "MINE", + "description": "The scope that defines which results are returned.", + "enum": [ + "ALL", + "MINE", + "SHARED_WITH_ME" + ], + "enumDescriptions": [ + "All files in account.", + "My files.", + "Files shared with me." + ], + "location": "query", + "type": "string" + }, + "sortField": { + "default": "LAST_MODIFIED_TIME", + "description": "The field by which to sort the list.", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file ID.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "DESCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/files", + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "floodlightActivities": { + "methods": { + "delete": { + "description": "Deletes an existing floodlight activity.", + "flatPath": "userprofiles/{profileId}/floodlightActivities/{id}", + "httpMethod": "DELETE", + "id": "dfareporting.floodlightActivities.delete", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Floodlight activity ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivities/{id}", + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "generatetag": { + "description": "Generates a tag for a floodlight activity.", + "flatPath": "userprofiles/{profileId}/floodlightActivities/generatetag", + "httpMethod": "POST", + "id": "dfareporting.floodlightActivities.generatetag", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "floodlightActivityId": { + "description": "Floodlight activity ID for which we want to generate a tag.", + "format": "int64", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivities/generatetag", + "response": { + "$ref": "FloodlightActivitiesGenerateTagResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "description": "Gets one floodlight activity by ID.", + "flatPath": "userprofiles/{profileId}/floodlightActivities/{id}", + "httpMethod": "GET", + "id": "dfareporting.floodlightActivities.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Floodlight activity ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivities/{id}", + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new floodlight activity.", + "flatPath": "userprofiles/{profileId}/floodlightActivities", + "httpMethod": "POST", + "id": "dfareporting.floodlightActivities.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivities", + "request": { + "$ref": "FloodlightActivity" + }, + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of floodlight activities, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/floodlightActivities", + "httpMethod": "GET", + "id": "dfareporting.floodlightActivities.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserId": { + "description": "Select only floodlight activities for the specified advertiser ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query", + "type": "string" + }, + "floodlightActivityGroupIds": { + "description": "Select only floodlight activities with the specified floodlight activity group IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "floodlightActivityGroupName": { + "description": "Select only floodlight activities with the specified floodlight activity group name.", + "location": "query", + "type": "string" + }, + "floodlightActivityGroupTagString": { + "description": "Select only floodlight activities with the specified floodlight activity group tag string.", + "location": "query", + "type": "string" + }, + "floodlightActivityGroupType": { + "description": "Select only floodlight activities with the specified floodlight activity group type.", + "enum": [ + "COUNTER", + "SALE" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "floodlightConfigurationId": { + "description": "Select only floodlight activities for the specified floodlight configuration ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ids": { + "description": "Select only floodlight activities with the specified IDs. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"floodlightactivity*2015\" will return objects with names like \"floodlightactivity June 2015\", \"floodlightactivity April 2015\", or simply \"floodlightactivity 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"floodlightactivity\" will match objects with name \"my floodlightactivity activity\", \"floodlightactivity 2015\", or simply \"floodlightactivity\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "tagString": { + "description": "Select only floodlight activities with the specified tag string.", + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivities", + "response": { + "$ref": "FloodlightActivitiesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing floodlight activity. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/floodlightActivities", + "httpMethod": "PATCH", + "id": "dfareporting.floodlightActivities.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "FloodlightActivity ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivities", + "request": { + "$ref": "FloodlightActivity" + }, + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing floodlight activity.", + "flatPath": "userprofiles/{profileId}/floodlightActivities", + "httpMethod": "PUT", + "id": "dfareporting.floodlightActivities.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivities", + "request": { + "$ref": "FloodlightActivity" + }, + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "floodlightActivityGroups": { + "methods": { + "get": { + "description": "Gets one floodlight activity group by ID.", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups/{id}", + "httpMethod": "GET", + "id": "dfareporting.floodlightActivityGroups.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Floodlight activity Group ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivityGroups/{id}", + "response": { + "$ref": "FloodlightActivityGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new floodlight activity group.", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", + "httpMethod": "POST", + "id": "dfareporting.floodlightActivityGroups.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivityGroups", + "request": { + "$ref": "FloodlightActivityGroup" + }, + "response": { + "$ref": "FloodlightActivityGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of floodlight activity groups, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", + "httpMethod": "GET", + "id": "dfareporting.floodlightActivityGroups.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserId": { + "description": "Select only floodlight activity groups with the specified advertiser ID. Must specify either advertiserId or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query", + "type": "string" + }, + "floodlightConfigurationId": { + "description": "Select only floodlight activity groups with the specified floodlight configuration ID. Must specify either advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ids": { + "description": "Select only floodlight activity groups with the specified IDs. Must specify either advertiserId or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"floodlightactivitygroup*2015\" will return objects with names like \"floodlightactivitygroup June 2015\", \"floodlightactivitygroup April 2015\", or simply \"floodlightactivitygroup 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"floodlightactivitygroup\" will match objects with name \"my floodlightactivitygroup activity\", \"floodlightactivitygroup 2015\", or simply \"floodlightactivitygroup\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "type": { + "description": "Select only floodlight activity groups with the specified floodlight activity group type.", + "enum": [ + "COUNTER", + "SALE" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivityGroups", + "response": { + "$ref": "FloodlightActivityGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing floodlight activity group. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", + "httpMethod": "PATCH", + "id": "dfareporting.floodlightActivityGroups.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "FloodlightActivityGroup ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivityGroups", + "request": { + "$ref": "FloodlightActivityGroup" + }, + "response": { + "$ref": "FloodlightActivityGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing floodlight activity group.", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", + "httpMethod": "PUT", + "id": "dfareporting.floodlightActivityGroups.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightActivityGroups", + "request": { + "$ref": "FloodlightActivityGroup" + }, + "response": { + "$ref": "FloodlightActivityGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "floodlightConfigurations": { + "methods": { + "get": { + "description": "Gets one floodlight configuration by ID.", + "flatPath": "userprofiles/{profileId}/floodlightConfigurations/{id}", + "httpMethod": "GET", + "id": "dfareporting.floodlightConfigurations.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Floodlight configuration ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightConfigurations/{id}", + "response": { + "$ref": "FloodlightConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of floodlight configurations, possibly filtered.", + "flatPath": "userprofiles/{profileId}/floodlightConfigurations", + "httpMethod": "GET", + "id": "dfareporting.floodlightConfigurations.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "ids": { + "description": "Set of IDs of floodlight configurations to retrieve. Required field; otherwise an empty list will be returned.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightConfigurations", + "response": { + "$ref": "FloodlightConfigurationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing floodlight configuration. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/floodlightConfigurations", + "httpMethod": "PATCH", + "id": "dfareporting.floodlightConfigurations.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "FloodlightConfiguration ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightConfigurations", + "request": { + "$ref": "FloodlightConfiguration" + }, + "response": { + "$ref": "FloodlightConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing floodlight configuration.", + "flatPath": "userprofiles/{profileId}/floodlightConfigurations", + "httpMethod": "PUT", + "id": "dfareporting.floodlightConfigurations.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/floodlightConfigurations", + "request": { + "$ref": "FloodlightConfiguration" + }, + "response": { + "$ref": "FloodlightConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "inventoryItems": { + "methods": { + "get": { + "description": "Gets one inventory item by ID.", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/inventoryItems/{id}", + "httpMethod": "GET", + "id": "dfareporting.inventoryItems.get", + "parameterOrder": [ + "profileId", + "projectId", + "id" + ], + "parameters": { + "id": { + "description": "Inventory item ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Project ID for order documents.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/projects/{projectId}/inventoryItems/{id}", + "response": { + "$ref": "InventoryItem" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of inventory items, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/inventoryItems", + "httpMethod": "GET", + "id": "dfareporting.inventoryItems.list", + "parameterOrder": [ + "profileId", + "projectId" + ], + "parameters": { + "ids": { + "description": "Select only inventory items with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "inPlan": { + "description": "Select only inventory items that are in plan.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "orderId": { + "description": "Select only inventory items that belong to specified orders.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Project ID for order documents.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "siteId": { + "description": "Select only inventory items that are associated with these sites.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "type": { + "description": "Select only inventory items with this type.", + "enum": [ + "PLANNING_PLACEMENT_TYPE_REGULAR", + "PLANNING_PLACEMENT_TYPE_CREDIT" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/projects/{projectId}/inventoryItems", + "response": { + "$ref": "InventoryItemsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "languages": { + "methods": { + "list": { + "description": "Retrieves a list of languages.", + "flatPath": "userprofiles/{profileId}/languages", + "httpMethod": "GET", + "id": "dfareporting.languages.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/languages", + "response": { + "$ref": "LanguagesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "metros": { + "methods": { + "list": { + "description": "Retrieves a list of metros.", + "flatPath": "userprofiles/{profileId}/metros", + "httpMethod": "GET", + "id": "dfareporting.metros.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/metros", + "response": { + "$ref": "MetrosListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "mobileApps": { + "methods": { + "get": { + "description": "Gets one mobile app by ID.", + "flatPath": "userprofiles/{profileId}/mobileApps/{id}", + "httpMethod": "GET", + "id": "dfareporting.mobileApps.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Mobile app ID.", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/mobileApps/{id}", + "response": { + "$ref": "MobileApp" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves list of available mobile apps.", + "flatPath": "userprofiles/{profileId}/mobileApps", + "httpMethod": "GET", + "id": "dfareporting.mobileApps.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "directories": { + "description": "Select only apps from these directories.", + "enum": [ + "UNKNOWN", + "APPLE_APP_STORE", + "GOOGLE_PLAY_STORE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only apps with these IDs.", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"app*2015\" will return objects with names like \"app Jan 2018\", \"app Jan 2018\", or simply \"app 2018\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"app\" will match objects with name \"my app\", \"app 2018\", or simply \"app\".", + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/mobileApps", + "response": { + "$ref": "MobileAppsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "mobileCarriers": { + "methods": { + "get": { + "description": "Gets one mobile carrier by ID.", + "flatPath": "userprofiles/{profileId}/mobileCarriers/{id}", + "httpMethod": "GET", + "id": "dfareporting.mobileCarriers.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Mobile carrier ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/mobileCarriers/{id}", + "response": { + "$ref": "MobileCarrier" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of mobile carriers.", + "flatPath": "userprofiles/{profileId}/mobileCarriers", + "httpMethod": "GET", + "id": "dfareporting.mobileCarriers.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/mobileCarriers", + "response": { + "$ref": "MobileCarriersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "operatingSystemVersions": { + "methods": { + "get": { + "description": "Gets one operating system version by ID.", + "flatPath": "userprofiles/{profileId}/operatingSystemVersions/{id}", + "httpMethod": "GET", + "id": "dfareporting.operatingSystemVersions.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Operating system version ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/operatingSystemVersions/{id}", + "response": { + "$ref": "OperatingSystemVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of operating system versions.", + "flatPath": "userprofiles/{profileId}/operatingSystemVersions", + "httpMethod": "GET", + "id": "dfareporting.operatingSystemVersions.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/operatingSystemVersions", + "response": { + "$ref": "OperatingSystemVersionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "operatingSystems": { + "methods": { + "get": { + "description": "Gets one operating system by DART ID.", + "flatPath": "userprofiles/{profileId}/operatingSystems/{dartId}", + "httpMethod": "GET", + "id": "dfareporting.operatingSystems.get", + "parameterOrder": [ + "profileId", + "dartId" + ], + "parameters": { + "dartId": { + "description": "Operating system DART ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/operatingSystems/{dartId}", + "response": { + "$ref": "OperatingSystem" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of operating systems.", + "flatPath": "userprofiles/{profileId}/operatingSystems", + "httpMethod": "GET", + "id": "dfareporting.operatingSystems.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/operatingSystems", + "response": { + "$ref": "OperatingSystemsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "orderDocuments": { + "methods": { + "get": { + "description": "Gets one order document by ID.", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/orderDocuments/{id}", + "httpMethod": "GET", + "id": "dfareporting.orderDocuments.get", + "parameterOrder": [ + "profileId", + "projectId", + "id" + ], + "parameters": { + "id": { + "description": "Order document ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Project ID for order documents.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/projects/{projectId}/orderDocuments/{id}", + "response": { + "$ref": "OrderDocument" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of order documents, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/orderDocuments", + "httpMethod": "GET", + "id": "dfareporting.orderDocuments.list", + "parameterOrder": [ + "profileId", + "projectId" + ], + "parameters": { + "approved": { + "description": "Select only order documents that have been approved by at least one user.", + "location": "query", + "type": "boolean" + }, + "ids": { + "description": "Select only order documents with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "orderId": { + "description": "Select only order documents for specified orders.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Project ID for order documents.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for order documents by name or ID. Wildcards (*) are allowed. For example, \"orderdocument*2015\" will return order documents with names like \"orderdocument June 2015\", \"orderdocument April 2015\", or simply \"orderdocument 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"orderdocument\" will match order documents with name \"my orderdocument\", \"orderdocument 2015\", or simply \"orderdocument\".", + "location": "query", + "type": "string" + }, + "siteId": { + "description": "Select only order documents that are associated with these sites.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/projects/{projectId}/orderDocuments", + "response": { + "$ref": "OrderDocumentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "orders": { + "methods": { + "get": { + "description": "Gets one order by ID.", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/orders/{id}", + "httpMethod": "GET", + "id": "dfareporting.orders.get", + "parameterOrder": [ + "profileId", + "projectId", + "id" + ], + "parameters": { + "id": { + "description": "Order ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Project ID for orders.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/projects/{projectId}/orders/{id}", + "response": { + "$ref": "Order" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of orders, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/orders", + "httpMethod": "GET", + "id": "dfareporting.orders.list", + "parameterOrder": [ + "profileId", + "projectId" + ], + "parameters": { + "ids": { + "description": "Select only orders with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Project ID for orders.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for orders by name or ID. Wildcards (*) are allowed. For example, \"order*2015\" will return orders with names like \"order June 2015\", \"order April 2015\", or simply \"order 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"order\" will match orders with name \"my order\", \"order 2015\", or simply \"order\".", + "location": "query", + "type": "string" + }, + "siteId": { + "description": "Select only orders that are associated with these site IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/projects/{projectId}/orders", + "response": { + "$ref": "OrdersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "placementGroups": { + "methods": { + "get": { + "description": "Gets one placement group by ID.", + "flatPath": "userprofiles/{profileId}/placementGroups/{id}", + "httpMethod": "GET", + "id": "dfareporting.placementGroups.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Placement group ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementGroups/{id}", + "response": { + "$ref": "PlacementGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new placement group.", + "flatPath": "userprofiles/{profileId}/placementGroups", + "httpMethod": "POST", + "id": "dfareporting.placementGroups.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementGroups", + "request": { + "$ref": "PlacementGroup" + }, + "response": { + "$ref": "PlacementGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of placement groups, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/placementGroups", + "httpMethod": "GET", + "id": "dfareporting.placementGroups.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserIds": { + "description": "Select only placement groups that belong to these advertisers.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "archived": { + "description": "Select only archived placements. Don't set this field to select both archived and non-archived placements.", + "location": "query", + "type": "boolean" + }, + "campaignIds": { + "description": "Select only placement groups that belong to these campaigns.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "contentCategoryIds": { + "description": "Select only placement groups that are associated with these content categories.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "directorySiteIds": { + "description": "Select only placement groups that are associated with these directory sites.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only placement groups with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxEndDate": { + "description": "Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as \"yyyy-MM-dd\".", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "800", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "800", + "minimum": "0", + "type": "integer" + }, + "maxStartDate": { + "description": "Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as \"yyyy-MM-dd\".", + "location": "query", + "type": "string" + }, + "minEndDate": { + "description": "Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as \"yyyy-MM-dd\".", + "location": "query", + "type": "string" + }, + "minStartDate": { + "description": "Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as \"yyyy-MM-dd\".", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "placementGroupType": { + "description": "Select only placement groups belonging with this group type. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting.", + "enum": [ + "PLACEMENT_PACKAGE", + "PLACEMENT_ROADBLOCK" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "placementStrategyIds": { + "description": "Select only placement groups that are associated with these placement strategies.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "pricingTypes": { + "description": "Select only placement groups with these pricing types.", + "enum": [ + "PRICING_TYPE_CPM", + "PRICING_TYPE_CPC", + "PRICING_TYPE_CPA", + "PRICING_TYPE_FLAT_RATE_IMPRESSIONS", + "PRICING_TYPE_FLAT_RATE_CLICKS", + "PRICING_TYPE_CPM_ACTIVEVIEW" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "location": "query", + "repeated": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for placement groups by name or ID. Wildcards (*) are allowed. For example, \"placement*2015\" will return placement groups with names like \"placement group June 2015\", \"placement group May 2015\", or simply \"placements 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"placementgroup\" will match placement groups with name \"my placementgroup\", \"placementgroup 2015\", or simply \"placementgroup\".", + "location": "query", + "type": "string" + }, + "siteIds": { + "description": "Select only placement groups that are associated with these sites.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementGroups", + "response": { + "$ref": "PlacementGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing placement group. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/placementGroups", + "httpMethod": "PATCH", + "id": "dfareporting.placementGroups.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "PlacementGroup ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementGroups", + "request": { + "$ref": "PlacementGroup" + }, + "response": { + "$ref": "PlacementGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing placement group.", + "flatPath": "userprofiles/{profileId}/placementGroups", + "httpMethod": "PUT", + "id": "dfareporting.placementGroups.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementGroups", + "request": { + "$ref": "PlacementGroup" + }, + "response": { + "$ref": "PlacementGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "placementStrategies": { + "methods": { + "delete": { + "description": "Deletes an existing placement strategy.", + "flatPath": "userprofiles/{profileId}/placementStrategies/{id}", + "httpMethod": "DELETE", + "id": "dfareporting.placementStrategies.delete", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Placement strategy ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementStrategies/{id}", + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "description": "Gets one placement strategy by ID.", + "flatPath": "userprofiles/{profileId}/placementStrategies/{id}", + "httpMethod": "GET", + "id": "dfareporting.placementStrategies.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Placement strategy ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementStrategies/{id}", + "response": { + "$ref": "PlacementStrategy" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new placement strategy.", + "flatPath": "userprofiles/{profileId}/placementStrategies", + "httpMethod": "POST", + "id": "dfareporting.placementStrategies.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementStrategies", + "request": { + "$ref": "PlacementStrategy" + }, + "response": { + "$ref": "PlacementStrategy" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of placement strategies, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/placementStrategies", + "httpMethod": "GET", + "id": "dfareporting.placementStrategies.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "ids": { + "description": "Select only placement strategies with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"placementstrategy*2015\" will return objects with names like \"placementstrategy June 2015\", \"placementstrategy April 2015\", or simply \"placementstrategy 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"placementstrategy\" will match objects with name \"my placementstrategy\", \"placementstrategy 2015\", or simply \"placementstrategy\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementStrategies", + "response": { + "$ref": "PlacementStrategiesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing placement strategy. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/placementStrategies", + "httpMethod": "PATCH", + "id": "dfareporting.placementStrategies.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "PlacementStrategy ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementStrategies", + "request": { + "$ref": "PlacementStrategy" + }, + "response": { + "$ref": "PlacementStrategy" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing placement strategy.", + "flatPath": "userprofiles/{profileId}/placementStrategies", + "httpMethod": "PUT", + "id": "dfareporting.placementStrategies.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placementStrategies", + "request": { + "$ref": "PlacementStrategy" + }, + "response": { + "$ref": "PlacementStrategy" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "placements": { + "methods": { + "generatetags": { + "description": "Generates tags for a placement.", + "flatPath": "userprofiles/{profileId}/placements/generatetags", + "httpMethod": "POST", + "id": "dfareporting.placements.generatetags", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "campaignId": { + "description": "Generate placements belonging to this campaign. This is a required field.", + "format": "int64", + "location": "query", + "type": "string" + }, + "placementIds": { + "description": "Generate tags for these placements.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "tagFormats": { + "description": "Tag formats to generate for these placements. *Note:* PLACEMENT_TAG_STANDARD can only be generated for 1x1 placements.", + "enum": [ + "PLACEMENT_TAG_STANDARD", + "PLACEMENT_TAG_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_IFRAME_ILAYER", + "PLACEMENT_TAG_INTERNAL_REDIRECT", + "PLACEMENT_TAG_JAVASCRIPT", + "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT", + "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT", + "PLACEMENT_TAG_CLICK_COMMANDS", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH", + "PLACEMENT_TAG_TRACKING", + "PLACEMENT_TAG_TRACKING_IFRAME", + "PLACEMENT_TAG_TRACKING_JAVASCRIPT", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3", + "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4", + "PLACEMENT_TAG_TRACKING_THIRD_PARTY_MEASUREMENT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placements/generatetags", + "response": { + "$ref": "PlacementsGenerateTagsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "description": "Gets one placement by ID.", + "flatPath": "userprofiles/{profileId}/placements/{id}", + "httpMethod": "GET", + "id": "dfareporting.placements.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Placement ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placements/{id}", + "response": { + "$ref": "Placement" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new placement.", + "flatPath": "userprofiles/{profileId}/placements", + "httpMethod": "POST", + "id": "dfareporting.placements.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placements", + "request": { + "$ref": "Placement" + }, + "response": { + "$ref": "Placement" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of placements, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/placements", + "httpMethod": "GET", + "id": "dfareporting.placements.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserIds": { + "description": "Select only placements that belong to these advertisers.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "archived": { + "description": "Select only archived placements. Don't set this field to select both archived and non-archived placements.", + "location": "query", + "type": "boolean" + }, + "campaignIds": { + "description": "Select only placements that belong to these campaigns.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "compatibilities": { + "description": "Select only placements that are associated with these compatibilities. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.", + "enum": [ + "DISPLAY", + "DISPLAY_INTERSTITIAL", + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "IN_STREAM_AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "location": "query", + "repeated": true, + "type": "string" + }, + "contentCategoryIds": { + "description": "Select only placements that are associated with these content categories.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "directorySiteIds": { + "description": "Select only placements that are associated with these directory sites.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "groupIds": { + "description": "Select only placements that belong to these placement groups.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only placements with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxEndDate": { + "description": "Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as \"yyyy-MM-dd\".", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "maxStartDate": { + "description": "Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as \"yyyy-MM-dd\".", + "location": "query", + "type": "string" + }, + "minEndDate": { + "description": "Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as \"yyyy-MM-dd\".", + "location": "query", + "type": "string" + }, + "minStartDate": { + "description": "Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as \"yyyy-MM-dd\".", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "paymentSource": { + "description": "Select only placements with this payment source.", + "enum": [ + "PLACEMENT_AGENCY_PAID", + "PLACEMENT_PUBLISHER_PAID" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "placementStrategyIds": { + "description": "Select only placements that are associated with these placement strategies.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "pricingTypes": { + "description": "Select only placements with these pricing types.", + "enum": [ + "PRICING_TYPE_CPM", + "PRICING_TYPE_CPC", + "PRICING_TYPE_CPA", + "PRICING_TYPE_FLAT_RATE_IMPRESSIONS", + "PRICING_TYPE_FLAT_RATE_CLICKS", + "PRICING_TYPE_CPM_ACTIVEVIEW" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "location": "query", + "repeated": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for placements by name or ID. Wildcards (*) are allowed. For example, \"placement*2015\" will return placements with names like \"placement June 2015\", \"placement May 2015\", or simply \"placements 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"placement\" will match placements with name \"my placement\", \"placement 2015\", or simply \"placement\" .", + "location": "query", + "type": "string" + }, + "siteIds": { + "description": "Select only placements that are associated with these sites.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "sizeIds": { + "description": "Select only placements that are associated with these sizes.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placements", + "response": { + "$ref": "PlacementsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing placement. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/placements", + "httpMethod": "PATCH", + "id": "dfareporting.placements.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Placement ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placements", + "request": { + "$ref": "Placement" + }, + "response": { + "$ref": "Placement" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing placement.", + "flatPath": "userprofiles/{profileId}/placements", + "httpMethod": "PUT", + "id": "dfareporting.placements.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/placements", + "request": { + "$ref": "Placement" + }, + "response": { + "$ref": "Placement" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "platformTypes": { + "methods": { + "get": { + "description": "Gets one platform type by ID.", + "flatPath": "userprofiles/{profileId}/platformTypes/{id}", + "httpMethod": "GET", + "id": "dfareporting.platformTypes.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Platform type ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/platformTypes/{id}", + "response": { + "$ref": "PlatformType" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of platform types.", + "flatPath": "userprofiles/{profileId}/platformTypes", + "httpMethod": "GET", + "id": "dfareporting.platformTypes.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/platformTypes", + "response": { + "$ref": "PlatformTypesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "postalCodes": { + "methods": { + "get": { + "description": "Gets one postal code by ID.", + "flatPath": "userprofiles/{profileId}/postalCodes/{code}", + "httpMethod": "GET", + "id": "dfareporting.postalCodes.get", + "parameterOrder": [ + "profileId", + "code" + ], + "parameters": { + "code": { + "description": "Postal code ID.", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/postalCodes/{code}", + "response": { + "$ref": "PostalCode" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of postal codes.", + "flatPath": "userprofiles/{profileId}/postalCodes", + "httpMethod": "GET", + "id": "dfareporting.postalCodes.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/postalCodes", + "response": { + "$ref": "PostalCodesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "projects": { + "methods": { + "get": { + "description": "Gets one project by ID.", + "flatPath": "userprofiles/{profileId}/projects/{id}", + "httpMethod": "GET", + "id": "dfareporting.projects.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Project ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/projects/{id}", + "response": { + "$ref": "Project" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of projects, possibly filtered. This method supports paging .", + "flatPath": "userprofiles/{profileId}/projects", + "httpMethod": "GET", + "id": "dfareporting.projects.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserIds": { + "description": "Select only projects with these advertiser IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only projects with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for projects by name or ID. Wildcards (*) are allowed. For example, \"project*2015\" will return projects with names like \"project June 2015\", \"project April 2015\", or simply \"project 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"project\" will match projects with name \"my project\", \"project 2015\", or simply \"project\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/projects", + "response": { + "$ref": "ProjectsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "regions": { + "methods": { + "list": { + "description": "Retrieves a list of regions.", + "flatPath": "userprofiles/{profileId}/regions", + "httpMethod": "GET", + "id": "dfareporting.regions.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/regions", + "response": { + "$ref": "RegionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "remarketingListShares": { + "methods": { + "get": { + "description": "Gets one remarketing list share by remarketing list ID.", + "flatPath": "userprofiles/{profileId}/remarketingListShares/{remarketingListId}", + "httpMethod": "GET", + "id": "dfareporting.remarketingListShares.get", + "parameterOrder": [ + "profileId", + "remarketingListId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "remarketingListId": { + "description": "Remarketing list ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/remarketingListShares/{remarketingListId}", + "response": { + "$ref": "RemarketingListShare" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing remarketing list share. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/remarketingListShares", + "httpMethod": "PATCH", + "id": "dfareporting.remarketingListShares.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "RemarketingList ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/remarketingListShares", + "request": { + "$ref": "RemarketingListShare" + }, + "response": { + "$ref": "RemarketingListShare" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing remarketing list share.", + "flatPath": "userprofiles/{profileId}/remarketingListShares", + "httpMethod": "PUT", + "id": "dfareporting.remarketingListShares.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/remarketingListShares", + "request": { + "$ref": "RemarketingListShare" + }, + "response": { + "$ref": "RemarketingListShare" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "remarketingLists": { + "methods": { + "get": { + "description": "Gets one remarketing list by ID.", + "flatPath": "userprofiles/{profileId}/remarketingLists/{id}", + "httpMethod": "GET", + "id": "dfareporting.remarketingLists.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Remarketing list ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/remarketingLists/{id}", + "response": { + "$ref": "RemarketingList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new remarketing list.", + "flatPath": "userprofiles/{profileId}/remarketingLists", + "httpMethod": "POST", + "id": "dfareporting.remarketingLists.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/remarketingLists", + "request": { + "$ref": "RemarketingList" + }, + "response": { + "$ref": "RemarketingList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of remarketing lists, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/remarketingLists", + "httpMethod": "GET", + "id": "dfareporting.remarketingLists.list", + "parameterOrder": [ + "profileId", + "advertiserId" + ], + "parameters": { + "active": { + "description": "Select only active or only inactive remarketing lists.", + "location": "query", + "type": "boolean" + }, + "advertiserId": { + "description": "Select only remarketing lists owned by this advertiser.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "floodlightActivityId": { + "description": "Select only remarketing lists that have this floodlight activity ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "name": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"remarketing list*2015\" will return objects with names like \"remarketing list June 2015\", \"remarketing list April 2015\", or simply \"remarketing list 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"remarketing list\" will match objects with name \"my remarketing list\", \"remarketing list 2015\", or simply \"remarketing list\".", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/remarketingLists", + "response": { + "$ref": "RemarketingListsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing remarketing list. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/remarketingLists", + "httpMethod": "PATCH", + "id": "dfareporting.remarketingLists.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "RemarketingList ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/remarketingLists", + "request": { + "$ref": "RemarketingList" + }, + "response": { + "$ref": "RemarketingList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing remarketing list.", + "flatPath": "userprofiles/{profileId}/remarketingLists", + "httpMethod": "PUT", + "id": "dfareporting.remarketingLists.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/remarketingLists", + "request": { + "$ref": "RemarketingList" + }, + "response": { + "$ref": "RemarketingList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "reports": { + "methods": { + "delete": { + "description": "Deletes a report by its ID.", + "flatPath": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "DELETE", + "id": "dfareporting.reports.delete", + "parameterOrder": [ + "profileId", + "reportId" + ], + "parameters": { + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "reportId": { + "description": "The ID of the report.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/reports/{reportId}", + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "get": { + "description": "Retrieves a report by its ID.", + "flatPath": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "GET", + "id": "dfareporting.reports.get", + "parameterOrder": [ + "profileId", + "reportId" + ], + "parameters": { + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "reportId": { + "description": "The ID of the report.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/reports/{reportId}", + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "insert": { + "description": "Creates a report.", + "flatPath": "userprofiles/{profileId}/reports", + "httpMethod": "POST", + "id": "dfareporting.reports.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/reports", + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "description": "Retrieves list of reports.", + "flatPath": "userprofiles/{profileId}/reports", + "httpMethod": "GET", + "id": "dfareporting.reports.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "maxResults": { + "default": "10", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "10", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "The value of the nextToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "scope": { + "default": "MINE", + "description": "The scope that defines which results are returned.", + "enum": [ + "ALL", + "MINE" + ], + "enumDescriptions": [ + "All reports in account.", + "My reports." + ], + "location": "query", + "type": "string" + }, + "sortField": { + "default": "LAST_MODIFIED_TIME", + "description": "The field by which to sort the list.", + "enum": [ + "ID", + "LAST_MODIFIED_TIME", + "NAME" + ], + "enumDescriptions": [ + "Sort by report ID.", + "Sort by 'lastModifiedTime' field.", + "Sort by name of reports." + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "DESCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/reports", + "response": { + "$ref": "ReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "patch": { + "description": "Updates an existing report. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PATCH", + "id": "dfareporting.reports.patch", + "parameterOrder": [ + "profileId", + "reportId" + ], + "parameters": { + "profileId": { + "description": "The DFA user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "reportId": { + "description": "The ID of the report.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/reports/{reportId}", + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "run": { + "description": "Runs a report.", + "flatPath": "userprofiles/{profileId}/reports/{reportId}/run", + "httpMethod": "POST", + "id": "dfareporting.reports.run", + "parameterOrder": [ + "profileId", + "reportId" + ], + "parameters": { + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "reportId": { + "description": "The ID of the report.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "synchronous": { + "default": "false", + "description": "If set and true, tries to run the report synchronously.", + "location": "query", + "type": "boolean" + } + }, + "path": "userprofiles/{profileId}/reports/{reportId}/run", + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "update": { + "description": "Updates a report.", + "flatPath": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PUT", + "id": "dfareporting.reports.update", + "parameterOrder": [ + "profileId", + "reportId" + ], + "parameters": { + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "reportId": { + "description": "The ID of the report.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/reports/{reportId}", + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + }, + "resources": { + "compatibleFields": { + "methods": { + "query": { + "description": "Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.", + "flatPath": "userprofiles/{profileId}/reports/compatiblefields/query", + "httpMethod": "POST", + "id": "dfareporting.reports.compatibleFields.query", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/reports/compatiblefields/query", + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "CompatibleFields" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "files": { + "methods": { + "get": { + "description": "Retrieves a report file by its report ID and file ID. This method supports media download.", + "flatPath": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "id": "dfareporting.reports.files.get", + "parameterOrder": [ + "profileId", + "reportId", + "fileId" + ], + "parameters": { + "fileId": { + "description": "The ID of the report file.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "reportId": { + "description": "The ID of the report.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ], + "supportsMediaDownload": true + }, + "list": { + "description": "Lists files for a report.", + "flatPath": "userprofiles/{profileId}/reports/{reportId}/files", + "httpMethod": "GET", + "id": "dfareporting.reports.files.list", + "parameterOrder": [ + "profileId", + "reportId" + ], + "parameters": { + "maxResults": { + "default": "10", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "10", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "The value of the nextToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "The Campaign Manager 360 user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "reportId": { + "description": "The ID of the parent report.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "sortField": { + "default": "LAST_MODIFIED_TIME", + "description": "The field by which to sort the list.", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "DESCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/reports/{reportId}/files", + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } + }, + "sites": { + "methods": { + "get": { + "description": "Gets one site by ID.", + "flatPath": "userprofiles/{profileId}/sites/{id}", + "httpMethod": "GET", + "id": "dfareporting.sites.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Site ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/sites/{id}", + "response": { + "$ref": "Site" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new site.", + "flatPath": "userprofiles/{profileId}/sites", + "httpMethod": "POST", + "id": "dfareporting.sites.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/sites", + "request": { + "$ref": "Site" + }, + "response": { + "$ref": "Site" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of sites, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/sites", + "httpMethod": "GET", + "id": "dfareporting.sites.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "acceptsInStreamVideoPlacements": { + "description": "This search filter is no longer supported and will have no effect on the results returned.", + "location": "query", + "type": "boolean" + }, + "acceptsInterstitialPlacements": { + "description": "This search filter is no longer supported and will have no effect on the results returned.", + "location": "query", + "type": "boolean" + }, + "acceptsPublisherPaidPlacements": { + "description": "Select only sites that accept publisher paid placements.", + "location": "query", + "type": "boolean" + }, + "adWordsSite": { + "description": "Select only AdWords sites.", + "location": "query", + "type": "boolean" + }, + "approved": { + "description": "Select only approved sites.", + "location": "query", + "type": "boolean" + }, + "campaignIds": { + "description": "Select only sites with these campaign IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "directorySiteIds": { + "description": "Select only sites with these directory site IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "ids": { + "description": "Select only sites with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name, ID or keyName. Wildcards (*) are allowed. For example, \"site*2015\" will return objects with names like \"site June 2015\", \"site April 2015\", or simply \"site 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"site\" will match objects with name \"my site\", \"site 2015\", or simply \"site\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "subaccountId": { + "description": "Select only sites with this subaccount ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "unmappedSite": { + "description": "Select only sites that have not been mapped to a directory site.", + "location": "query", + "type": "boolean" + } + }, + "path": "userprofiles/{profileId}/sites", + "response": { + "$ref": "SitesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing site. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/sites", + "httpMethod": "PATCH", + "id": "dfareporting.sites.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Site ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/sites", + "request": { + "$ref": "Site" + }, + "response": { + "$ref": "Site" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing site.", + "flatPath": "userprofiles/{profileId}/sites", + "httpMethod": "PUT", + "id": "dfareporting.sites.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/sites", + "request": { + "$ref": "Site" + }, + "response": { + "$ref": "Site" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "sizes": { + "methods": { + "get": { + "description": "Gets one size by ID.", + "flatPath": "userprofiles/{profileId}/sizes/{id}", + "httpMethod": "GET", + "id": "dfareporting.sizes.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Size ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/sizes/{id}", + "response": { + "$ref": "Size" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new size.", + "flatPath": "userprofiles/{profileId}/sizes", + "httpMethod": "POST", + "id": "dfareporting.sizes.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/sizes", + "request": { + "$ref": "Size" + }, + "response": { + "$ref": "Size" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of sizes, possibly filtered. Retrieved sizes are globally unique and may include values not currently in use by your account. Due to this, the list of sizes returned by this method may differ from the list seen in the Trafficking UI.", + "flatPath": "userprofiles/{profileId}/sizes", + "httpMethod": "GET", + "id": "dfareporting.sizes.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "height": { + "description": "Select only sizes with this height.", + "format": "int32", + "location": "query", + "maximum": "32767", + "minimum": "0", + "type": "integer" + }, + "iabStandard": { + "description": "Select only IAB standard sizes.", + "location": "query", + "type": "boolean" + }, + "ids": { + "description": "Select only sizes with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "width": { + "description": "Select only sizes with this width.", + "format": "int32", + "location": "query", + "maximum": "32767", + "minimum": "0", + "type": "integer" + } + }, + "path": "userprofiles/{profileId}/sizes", + "response": { + "$ref": "SizesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "subaccounts": { + "methods": { + "get": { + "description": "Gets one subaccount by ID.", + "flatPath": "userprofiles/{profileId}/subaccounts/{id}", + "httpMethod": "GET", + "id": "dfareporting.subaccounts.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Subaccount ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/subaccounts/{id}", + "response": { + "$ref": "Subaccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new subaccount.", + "flatPath": "userprofiles/{profileId}/subaccounts", + "httpMethod": "POST", + "id": "dfareporting.subaccounts.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/subaccounts", + "request": { + "$ref": "Subaccount" + }, + "response": { + "$ref": "Subaccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Gets a list of subaccounts, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/subaccounts", + "httpMethod": "GET", + "id": "dfareporting.subaccounts.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "ids": { + "description": "Select only subaccounts with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"subaccount*2015\" will return objects with names like \"subaccount June 2015\", \"subaccount April 2015\", or simply \"subaccount 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"subaccount\" will match objects with name \"my subaccount\", \"subaccount 2015\", or simply \"subaccount\" .", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/subaccounts", + "response": { + "$ref": "SubaccountsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing subaccount. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/subaccounts", + "httpMethod": "PATCH", + "id": "dfareporting.subaccounts.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Subaccount ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/subaccounts", + "request": { + "$ref": "Subaccount" + }, + "response": { + "$ref": "Subaccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing subaccount.", + "flatPath": "userprofiles/{profileId}/subaccounts", + "httpMethod": "PUT", + "id": "dfareporting.subaccounts.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/subaccounts", + "request": { + "$ref": "Subaccount" + }, + "response": { + "$ref": "Subaccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "targetableRemarketingLists": { + "methods": { + "get": { + "description": "Gets one remarketing list by ID.", + "flatPath": "userprofiles/{profileId}/targetableRemarketingLists/{id}", + "httpMethod": "GET", + "id": "dfareporting.targetableRemarketingLists.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Remarketing list ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/targetableRemarketingLists/{id}", + "response": { + "$ref": "TargetableRemarketingList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/targetableRemarketingLists", + "httpMethod": "GET", + "id": "dfareporting.targetableRemarketingLists.list", + "parameterOrder": [ + "profileId", + "advertiserId" + ], + "parameters": { + "active": { + "description": "Select only active or only inactive targetable remarketing lists.", + "location": "query", + "type": "boolean" + }, + "advertiserId": { + "description": "Select only targetable remarketing lists targetable by these advertisers.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "name": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"remarketing list*2015\" will return objects with names like \"remarketing list June 2015\", \"remarketing list April 2015\", or simply \"remarketing list 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"remarketing list\" will match objects with name \"my remarketing list\", \"remarketing list 2015\", or simply \"remarketing list\".", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/targetableRemarketingLists", + "response": { + "$ref": "TargetableRemarketingListsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "targetingTemplates": { + "methods": { + "get": { + "description": "Gets one targeting template by ID.", + "flatPath": "userprofiles/{profileId}/targetingTemplates/{id}", + "httpMethod": "GET", + "id": "dfareporting.targetingTemplates.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Targeting template ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/targetingTemplates/{id}", + "response": { + "$ref": "TargetingTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new targeting template.", + "flatPath": "userprofiles/{profileId}/targetingTemplates", + "httpMethod": "POST", + "id": "dfareporting.targetingTemplates.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/targetingTemplates", + "request": { + "$ref": "TargetingTemplate" + }, + "response": { + "$ref": "TargetingTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of targeting templates, optionally filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/targetingTemplates", + "httpMethod": "GET", + "id": "dfareporting.targetingTemplates.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "advertiserId": { + "description": "Select only targeting templates with this advertiser ID.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ids": { + "description": "Select only targeting templates with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"template*2015\" will return objects with names like \"template June 2015\", \"template April 2015\", or simply \"template 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"template\" will match objects with name \"my template\", \"template 2015\", or simply \"template\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/targetingTemplates", + "response": { + "$ref": "TargetingTemplatesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing targeting template. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/targetingTemplates", + "httpMethod": "PATCH", + "id": "dfareporting.targetingTemplates.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "TargetingTemplate ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/targetingTemplates", + "request": { + "$ref": "TargetingTemplate" + }, + "response": { + "$ref": "TargetingTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing targeting template.", + "flatPath": "userprofiles/{profileId}/targetingTemplates", + "httpMethod": "PUT", + "id": "dfareporting.targetingTemplates.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/targetingTemplates", + "request": { + "$ref": "TargetingTemplate" + }, + "response": { + "$ref": "TargetingTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "userProfiles": { + "methods": { + "get": { + "description": "Gets one user profile by ID.", + "flatPath": "userprofiles/{profileId}", + "httpMethod": "GET", + "id": "dfareporting.userProfiles.get", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "The user profile ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}", + "response": { + "$ref": "UserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/ddmconversions", + "https://www.googleapis.com/auth/dfareporting", + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves list of user profiles for a user.", + "flatPath": "userprofiles", + "httpMethod": "GET", + "id": "dfareporting.userProfiles.list", + "parameterOrder": [], + "parameters": {}, + "path": "userprofiles", + "response": { + "$ref": "UserProfileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/ddmconversions", + "https://www.googleapis.com/auth/dfareporting", + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "userRolePermissionGroups": { + "methods": { + "get": { + "description": "Gets one user role permission group by ID.", + "flatPath": "userprofiles/{profileId}/userRolePermissionGroups/{id}", + "httpMethod": "GET", + "id": "dfareporting.userRolePermissionGroups.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "User role permission group ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRolePermissionGroups/{id}", + "response": { + "$ref": "UserRolePermissionGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Gets a list of all supported user role permission groups.", + "flatPath": "userprofiles/{profileId}/userRolePermissionGroups", + "httpMethod": "GET", + "id": "dfareporting.userRolePermissionGroups.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRolePermissionGroups", + "response": { + "$ref": "UserRolePermissionGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "userRolePermissions": { + "methods": { + "get": { + "description": "Gets one user role permission by ID.", + "flatPath": "userprofiles/{profileId}/userRolePermissions/{id}", + "httpMethod": "GET", + "id": "dfareporting.userRolePermissions.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "User role permission ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRolePermissions/{id}", + "response": { + "$ref": "UserRolePermission" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Gets a list of user role permissions, possibly filtered.", + "flatPath": "userprofiles/{profileId}/userRolePermissions", + "httpMethod": "GET", + "id": "dfareporting.userRolePermissions.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "ids": { + "description": "Select only user role permissions with these IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRolePermissions", + "response": { + "$ref": "UserRolePermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "userRoles": { + "methods": { + "delete": { + "description": "Deletes an existing user role.", + "flatPath": "userprofiles/{profileId}/userRoles/{id}", + "httpMethod": "DELETE", + "id": "dfareporting.userRoles.delete", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "User role ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRoles/{id}", + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "description": "Gets one user role by ID.", + "flatPath": "userprofiles/{profileId}/userRoles/{id}", + "httpMethod": "GET", + "id": "dfareporting.userRoles.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "User role ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRoles/{id}", + "response": { + "$ref": "UserRole" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "description": "Inserts a new user role.", + "flatPath": "userprofiles/{profileId}/userRoles", + "httpMethod": "POST", + "id": "dfareporting.userRoles.insert", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRoles", + "request": { + "$ref": "UserRole" + }, + "response": { + "$ref": "UserRole" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Retrieves a list of user roles, possibly filtered. This method supports paging.", + "flatPath": "userprofiles/{profileId}/userRoles", + "httpMethod": "GET", + "id": "dfareporting.userRoles.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "accountUserRoleOnly": { + "description": "Select only account level user roles not associated with any specific subaccount.", + "location": "query", + "type": "boolean" + }, + "ids": { + "description": "Select only user roles with the specified IDs.", + "format": "int64", + "location": "query", + "repeated": true, + "type": "string" + }, + "maxResults": { + "default": "1000", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "Value of the nextPageToken from the previous result page.", + "location": "query", + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "searchString": { + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"userrole*2015\" will return objects with names like \"userrole June 2015\", \"userrole April 2015\", or simply \"userrole 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"userrole\" will match objects with name \"my userrole\", \"userrole 2015\", or simply \"userrole\".", + "location": "query", + "type": "string" + }, + "sortField": { + "default": "ID", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "default": "ASCENDING", + "description": "Order of sorted results.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "subaccountId": { + "description": "Select only user roles that belong to this subaccount.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRoles", + "response": { + "$ref": "UserRolesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "description": "Updates an existing user role. This method supports patch semantics.", + "flatPath": "userprofiles/{profileId}/userRoles", + "httpMethod": "PATCH", + "id": "dfareporting.userRoles.patch", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "UserRole ID.", + "format": "int64", + "location": "query", + "required": true, + "type": "string" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRoles", + "request": { + "$ref": "UserRole" + }, + "response": { + "$ref": "UserRole" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "description": "Updates an existing user role.", + "flatPath": "userprofiles/{profileId}/userRoles", + "httpMethod": "PUT", + "id": "dfareporting.userRoles.update", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/userRoles", + "request": { + "$ref": "UserRole" + }, + "response": { + "$ref": "UserRole" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "videoFormats": { + "methods": { + "get": { + "description": "Gets one video format by ID.", + "flatPath": "userprofiles/{profileId}/videoFormats/{id}", + "httpMethod": "GET", + "id": "dfareporting.videoFormats.get", + "parameterOrder": [ + "profileId", + "id" + ], + "parameters": { + "id": { + "description": "Video format ID.", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + }, + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/videoFormats/{id}", + "response": { + "$ref": "VideoFormat" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "description": "Lists available video formats.", + "flatPath": "userprofiles/{profileId}/videoFormats", + "httpMethod": "GET", + "id": "dfareporting.videoFormats.list", + "parameterOrder": [ + "profileId" + ], + "parameters": { + "profileId": { + "description": "User profile ID associated with this request.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "userprofiles/{profileId}/videoFormats", + "response": { + "$ref": "VideoFormatsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + } + }, + "revision": "20220104", + "rootUrl": "https://dfareporting.googleapis.com/", + "schemas": { + "Account": { + "description": "Contains properties of a Campaign Manager account.", + "id": "Account", + "properties": { + "accountPermissionIds": { + "description": "Account permissions assigned to this account.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "accountProfile": { + "description": "Profile for this account. This is a read-only field that can be left blank.", + "enum": [ + "ACCOUNT_PROFILE_BASIC", + "ACCOUNT_PROFILE_STANDARD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "active": { + "description": "Whether this account is active.", + "type": "boolean" + }, + "activeAdsLimitTier": { + "description": "Maximum number of active ads allowed for this account.", + "enum": [ + "ACTIVE_ADS_TIER_40K", + "ACTIVE_ADS_TIER_75K", + "ACTIVE_ADS_TIER_100K", + "ACTIVE_ADS_TIER_200K", + "ACTIVE_ADS_TIER_300K", + "ACTIVE_ADS_TIER_500K", + "ACTIVE_ADS_TIER_750K", + "ACTIVE_ADS_TIER_1M" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "activeViewOptOut": { + "description": "Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.", + "type": "boolean" + }, + "availablePermissionIds": { + "description": "User role permissions available to the user roles of this account.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "countryId": { + "description": "ID of the country associated with this account.", + "format": "int64", + "type": "string" + }, + "currencyId": { + "description": "ID of currency associated with this account. This is a required field. Acceptable values are: - \"1\" for USD - \"2\" for GBP - \"3\" for ESP - \"4\" for SEK - \"5\" for CAD - \"6\" for JPY - \"7\" for DEM - \"8\" for AUD - \"9\" for FRF - \"10\" for ITL - \"11\" for DKK - \"12\" for NOK - \"13\" for FIM - \"14\" for ZAR - \"15\" for IEP - \"16\" for NLG - \"17\" for EUR - \"18\" for KRW - \"19\" for TWD - \"20\" for SGD - \"21\" for CNY - \"22\" for HKD - \"23\" for NZD - \"24\" for MYR - \"25\" for BRL - \"26\" for PTE - \"28\" for CLP - \"29\" for TRY - \"30\" for ARS - \"31\" for PEN - \"32\" for ILS - \"33\" for CHF - \"34\" for VEF - \"35\" for COP - \"36\" for GTQ - \"37\" for PLN - \"39\" for INR - \"40\" for THB - \"41\" for IDR - \"42\" for CZK - \"43\" for RON - \"44\" for HUF - \"45\" for RUB - \"46\" for AED - \"47\" for BGN - \"48\" for HRK - \"49\" for MXN - \"50\" for NGN - \"51\" for EGP ", + "format": "int64", + "type": "string" + }, + "defaultCreativeSizeId": { + "description": "Default placement dimensions for this account.", + "format": "int64", + "type": "string" + }, + "description": { + "description": "Description of this account.", + "type": "string" + }, + "id": { + "description": "ID of this account. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#account\".", + "type": "string" + }, + "locale": { + "description": "Locale of this account. Acceptable values are: - \"cs\" (Czech) - \"de\" (German) - \"en\" (English) - \"en-GB\" (English United Kingdom) - \"es\" (Spanish) - \"fr\" (French) - \"it\" (Italian) - \"ja\" (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) - \"pt-BR\" (Portuguese Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) - \"tr\" (Turkish) - \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese Traditional) ", + "type": "string" + }, + "maximumImageSize": { + "description": "Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.", + "type": "string" + }, + "nielsenOcrEnabled": { + "description": "Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.", + "type": "boolean" + }, + "reportsConfiguration": { + "$ref": "ReportsConfiguration", + "description": "Reporting configuration of this account." + }, + "shareReportsWithTwitter": { + "description": "Share Path to Conversion reports with Twitter.", + "type": "boolean" + }, + "teaserSizeLimit": { + "description": "File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "AccountActiveAdSummary": { + "description": "Gets a summary of active ads in an account.", + "id": "AccountActiveAdSummary", + "properties": { + "accountId": { + "description": "ID of the account.", + "format": "int64", + "type": "string" + }, + "activeAds": { + "description": "Ads that have been activated for the account", + "format": "int64", + "type": "string" + }, + "activeAdsLimitTier": { + "description": "Maximum number of active ads allowed for the account.", + "enum": [ + "ACTIVE_ADS_TIER_40K", + "ACTIVE_ADS_TIER_75K", + "ACTIVE_ADS_TIER_100K", + "ACTIVE_ADS_TIER_200K", + "ACTIVE_ADS_TIER_300K", + "ACTIVE_ADS_TIER_500K", + "ACTIVE_ADS_TIER_750K", + "ACTIVE_ADS_TIER_1M" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "availableAds": { + "description": "Ads that can be activated for the account.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountActiveAdSummary\".", + "type": "string" + } + }, + "type": "object" + }, + "AccountPermission": { + "description": "AccountPermissions contains information about a particular account permission. Some features of Campaign Manager require an account permission to be present in the account.", + "id": "AccountPermission", + "properties": { + "accountProfiles": { + "description": "Account profiles associated with this account permission. Possible values are: - \"ACCOUNT_PROFILE_BASIC\" - \"ACCOUNT_PROFILE_STANDARD\" ", + "items": { + "enum": [ + "ACCOUNT_PROFILE_BASIC", + "ACCOUNT_PROFILE_STANDARD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "ID of this account permission.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermission\".", + "type": "string" + }, + "level": { + "description": "Administrative level required to enable this account permission.", + "enum": [ + "USER", + "ADMINISTRATOR" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "name": { + "description": "Name of this account permission.", + "type": "string" + }, + "permissionGroupId": { + "description": "Permission group of this account permission.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "AccountPermissionGroup": { + "description": "AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.", + "id": "AccountPermissionGroup", + "properties": { + "id": { + "description": "ID of this account permission group.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermissionGroup\".", + "type": "string" + }, + "name": { + "description": "Name of this account permission group.", + "type": "string" + } + }, + "type": "object" + }, + "AccountPermissionGroupsListResponse": { + "description": "Account Permission Group List Response", + "id": "AccountPermissionGroupsListResponse", + "properties": { + "accountPermissionGroups": { + "description": "Account permission group collection.", + "items": { + "$ref": "AccountPermissionGroup" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermissionGroupsListResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "AccountPermissionsListResponse": { + "description": "Account Permission List Response", + "id": "AccountPermissionsListResponse", + "properties": { + "accountPermissions": { + "description": "Account permission collection.", + "items": { + "$ref": "AccountPermission" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermissionsListResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "AccountUserProfile": { + "description": "AccountUserProfiles contains properties of a Campaign Manager user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.", + "id": "AccountUserProfile", + "properties": { + "accountId": { + "description": "Account ID of the user profile. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "active": { + "description": "Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.", + "type": "boolean" + }, + "advertiserFilter": { + "$ref": "ObjectFilter", + "description": "Filter that describes which advertisers are visible to the user profile." + }, + "campaignFilter": { + "$ref": "ObjectFilter", + "description": "Filter that describes which campaigns are visible to the user profile." + }, + "comments": { + "description": "Comments for this user profile.", + "type": "string" + }, + "email": { + "description": "Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.", + "type": "string" + }, + "id": { + "description": "ID of the user profile. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountUserProfile\".", + "type": "string" + }, + "locale": { + "description": "Locale of the user profile. This is a required field. Acceptable values are: - \"cs\" (Czech) - \"de\" (German) - \"en\" (English) - \"en-GB\" (English United Kingdom) - \"es\" (Spanish) - \"fr\" (French) - \"it\" (Italian) - \"ja\" (Japanese) - \"ko\" (Korean) - \"pl\" (Polish) - \"pt-BR\" (Portuguese Brazil) - \"ru\" (Russian) - \"sv\" (Swedish) - \"tr\" (Turkish) - \"zh-CN\" (Chinese Simplified) - \"zh-TW\" (Chinese Traditional) ", + "type": "string" + }, + "name": { + "description": "Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: \"&;<>\"#%,\".", + "type": "string" + }, + "siteFilter": { + "$ref": "ObjectFilter", + "description": "Filter that describes which sites are visible to the user profile." + }, + "subaccountId": { + "description": "Subaccount ID of the user profile. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "traffickerType": { + "description": "Trafficker type of this user profile. This is a read-only field.", + "enum": [ + "INTERNAL_NON_TRAFFICKER", + "INTERNAL_TRAFFICKER", + "EXTERNAL_TRAFFICKER" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "userAccessType": { + "description": "User type of the user profile. This is a read-only field that can be left blank.", + "enum": [ + "NORMAL_USER", + "SUPER_USER", + "INTERNAL_ADMINISTRATOR", + "READ_ONLY_SUPER_USER" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "userRoleFilter": { + "$ref": "ObjectFilter", + "description": "Filter that describes which user roles are visible to the user profile." + }, + "userRoleId": { + "description": "User role ID of the user profile. This is a required field.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "AccountUserProfilesListResponse": { + "description": "Account User Profile List Response", + "id": "AccountUserProfilesListResponse", + "properties": { + "accountUserProfiles": { + "description": "Account user profile collection.", + "items": { + "$ref": "AccountUserProfile" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountUserProfilesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "AccountsListResponse": { + "description": "Account List Response", + "id": "AccountsListResponse", + "properties": { + "accounts": { + "description": "Account collection.", + "items": { + "$ref": "Account" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "Activities": { + "description": "Represents an activity group.", + "id": "Activities", + "properties": { + "filters": { + "description": "List of activity filters. The dimension values need to be all either of type \"dfa:activity\" or \"dfa:activityGroup\".", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#activities.", + "type": "string" + }, + "metricNames": { + "description": "List of names of floodlight activity metrics.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Ad": { + "description": "Contains properties of a Campaign Manager ad.", + "id": "Ad", + "properties": { + "accountId": { + "description": "Account ID of this ad. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "active": { + "description": "Whether this ad is active. When true, archived must be false.", + "type": "boolean" + }, + "advertiserId": { + "description": "Advertiser ID of this ad. This is a required field on insertion.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "archived": { + "description": "Whether this ad is archived. When true, active must be false.", + "type": "boolean" + }, + "audienceSegmentId": { + "description": "Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.", + "format": "int64", + "type": "string" + }, + "campaignId": { + "description": "Campaign ID of this ad. This is a required field on insertion.", + "format": "int64", + "type": "string" + }, + "campaignIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." + }, + "clickThroughUrl": { + "$ref": "ClickThroughUrl", + "description": "Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER." + }, + "clickThroughUrlSuffixProperties": { + "$ref": "ClickThroughUrlSuffixProperties", + "description": "Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative." + }, + "comments": { + "description": "Comments for this ad.", + "type": "string" + }, + "compatibility": { + "description": "Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.", + "enum": [ + "DISPLAY", + "DISPLAY_INTERSTITIAL", + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "IN_STREAM_AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "createInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the creation of this ad. This is a read-only field." + }, + "creativeGroupAssignments": { + "description": "Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.", + "items": { + "$ref": "CreativeGroupAssignment" + }, + "type": "array" + }, + "creativeRotation": { + "$ref": "CreativeRotation", + "description": "Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment ." + }, + "dayPartTargeting": { + "$ref": "DayPartTargeting", + "description": "Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." + }, + "defaultClickThroughEventTagProperties": { + "$ref": "DefaultClickThroughEventTagProperties", + "description": "Default click-through event tag properties for this ad." + }, + "deliverySchedule": { + "$ref": "DeliverySchedule", + "description": "Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD." + }, + "dynamicClickTracker": { + "description": "Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.", + "type": "boolean" + }, + "endTime": { + "format": "date-time", + "type": "string" + }, + "eventTagOverrides": { + "description": "Event tag overrides for this ad.", + "items": { + "$ref": "EventTagOverride" + }, + "type": "array" + }, + "geoTargeting": { + "$ref": "GeoTargeting", + "description": "Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." + }, + "id": { + "description": "ID of this ad. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this ad. This is a read-only, auto-generated field." + }, + "keyValueTargetingExpression": { + "$ref": "KeyValueTargetingExpression", + "description": "Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#ad\".", + "type": "string" + }, + "languageTargeting": { + "$ref": "LanguageTargeting", + "description": "Language targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this ad. This is a read-only field." + }, + "name": { + "description": "Name of this ad. This is a required field and must be less than 256 characters long.", + "type": "string" + }, + "placementAssignments": { + "description": "Placement assignments for this ad.", + "items": { + "$ref": "PlacementAssignment" + }, + "type": "array" + }, + "remarketingListExpression": { + "$ref": "ListTargetingExpression", + "description": "Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." + }, + "size": { + "$ref": "Size", + "description": "Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD." + }, + "sslCompliant": { + "description": "Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.", + "type": "boolean" + }, + "sslRequired": { + "description": "Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.", + "type": "boolean" + }, + "startTime": { + "format": "date-time", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this ad. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "targetingTemplateId": { + "description": "Targeting template ID, used to apply preconfigured targeting information to this ad. This cannot be set while any of dayPartTargeting, geoTargeting, keyValueTargetingExpression, languageTargeting, remarketingListExpression, or technologyTargeting are set. Applicable when type is AD_SERVING_STANDARD_AD.", + "format": "int64", + "type": "string" + }, + "technologyTargeting": { + "$ref": "TechnologyTargeting", + "description": "Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD." + }, + "type": { + "description": "Type of ad. This is a required field on insertion. Note that default ads ( AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).", + "enum": [ + "AD_SERVING_STANDARD_AD", + "AD_SERVING_DEFAULT_AD", + "AD_SERVING_CLICK_TRACKER", + "AD_SERVING_TRACKING", + "AD_SERVING_BRAND_SAFE_AD" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "AdBlockingConfiguration": { + "description": "Campaign ad blocking settings.", + "id": "AdBlockingConfiguration", + "properties": { + "clickThroughUrl": { + "description": "Click-through URL used by brand-neutral ads. This is a required field when overrideClickThroughUrl is set to true.", + "type": "string" + }, + "creativeBundleId": { + "description": "ID of a creative bundle to use for this campaign. If set, brand-neutral ads will select creatives from this bundle. Otherwise, a default transparent pixel will be used.", + "format": "int64", + "type": "string" + }, + "enabled": { + "description": "Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.", + "type": "boolean" + }, + "overrideClickThroughUrl": { + "description": "Whether the brand-neutral ad's click-through URL comes from the campaign's creative bundle or the override URL. Must be set to true if ad blocking is enabled and no creative bundle is configured.", + "type": "boolean" + } + }, + "type": "object" + }, + "AdSlot": { + "description": "Ad Slot", + "id": "AdSlot", + "properties": { + "comment": { + "description": "Comment for this ad slot.", + "type": "string" + }, + "compatibility": { + "description": "Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop, mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.", + "enum": [ + "DISPLAY", + "DISPLAY_INTERSTITIAL", + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "IN_STREAM_AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "height": { + "description": "Height of this ad slot.", + "format": "int64", + "type": "string" + }, + "linkedPlacementId": { + "description": "ID of the placement from an external platform that is linked to this ad slot.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Name of this ad slot.", + "type": "string" + }, + "paymentSourceType": { + "description": "Payment source type of this ad slot.", + "enum": [ + "PLANNING_PAYMENT_SOURCE_TYPE_AGENCY_PAID", + "PLANNING_PAYMENT_SOURCE_TYPE_PUBLISHER_PAID" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "primary": { + "description": "Primary ad slot of a roadblock inventory item.", + "type": "boolean" + }, + "width": { + "description": "Width of this ad slot.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "AdsListResponse": { + "description": "Ad List Response", + "id": "AdsListResponse", + "properties": { + "ads": { + "description": "Ad collection.", + "items": { + "$ref": "Ad" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#adsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "Advertiser": { + "description": "Contains properties of a Campaign Manager advertiser.", + "id": "Advertiser", + "properties": { + "accountId": { + "description": "Account ID of this advertiser.This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "advertiserGroupId": { + "description": "ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.", + "format": "int64", + "type": "string" + }, + "clickThroughUrlSuffix": { + "description": "Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.", + "type": "string" + }, + "defaultClickThroughEventTagId": { + "description": "ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.", + "format": "int64", + "type": "string" + }, + "defaultEmail": { + "description": "Default email address used in sender field for tag emails.", + "type": "string" + }, + "floodlightConfigurationId": { + "description": "Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as: - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups. - This advertiser's original floodlight configuration is not already shared with another advertiser. ", + "format": "int64", + "type": "string" + }, + "floodlightConfigurationIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field." + }, + "id": { + "description": "ID of this advertiser. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this advertiser. This is a read-only, auto-generated field." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiser\".", + "type": "string" + }, + "name": { + "description": "Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.", + "type": "string" + }, + "originalFloodlightConfigurationId": { + "description": "Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.", + "format": "int64", + "type": "string" + }, + "status": { + "description": "Status of this advertiser.", + "enum": [ + "APPROVED", + "ON_HOLD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this advertiser.This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "suspended": { + "description": "Suspension status of this advertiser.", + "type": "boolean" + } + }, + "type": "object" + }, + "AdvertiserGroup": { + "description": "Groups advertisers together so that reports can be generated for the entire group at once.", + "id": "AdvertiserGroup", + "properties": { + "accountId": { + "description": "Account ID of this advertiser group. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "id": { + "description": "ID of this advertiser group. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiserGroup\".", + "type": "string" + }, + "name": { + "description": "Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.", + "type": "string" + } + }, + "type": "object" + }, + "AdvertiserGroupsListResponse": { + "description": "Advertiser Group List Response", + "id": "AdvertiserGroupsListResponse", + "properties": { + "advertiserGroups": { + "description": "Advertiser group collection.", + "items": { + "$ref": "AdvertiserGroup" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiserGroupsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "AdvertiserLandingPagesListResponse": { + "description": "Landing Page List Response", + "id": "AdvertiserLandingPagesListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiserLandingPagesListResponse\".", + "type": "string" + }, + "landingPages": { + "description": "Landing page collection", + "items": { + "$ref": "LandingPage" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "AdvertisersListResponse": { + "description": "Advertiser List Response", + "id": "AdvertisersListResponse", + "properties": { + "advertisers": { + "description": "Advertiser collection.", + "items": { + "$ref": "Advertiser" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertisersListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "AudienceSegment": { + "description": "Audience Segment.", + "id": "AudienceSegment", + "properties": { + "allocation": { + "description": "Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.", + "format": "int32", + "type": "integer" + }, + "id": { + "description": "ID of this audience segment. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Name of this audience segment. This is a required field and must be less than 65 characters long.", + "type": "string" + } + }, + "type": "object" + }, + "AudienceSegmentGroup": { + "description": "Audience Segment Group.", + "id": "AudienceSegmentGroup", + "properties": { + "audienceSegments": { + "description": "Audience segments assigned to this group. The number of segments must be between 2 and 100.", + "items": { + "$ref": "AudienceSegment" + }, + "type": "array" + }, + "id": { + "description": "ID of this audience segment group. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Name of this audience segment group. This is a required field and must be less than 65 characters long.", + "type": "string" + } + }, + "type": "object" + }, + "Browser": { + "description": "Contains information about a browser that can be targeted by ads.", + "id": "Browser", + "properties": { + "browserVersionId": { + "description": "ID referring to this grouping of browser and version numbers. This is the ID used for targeting.", + "format": "int64", + "type": "string" + }, + "dartId": { + "description": "DART ID of this browser. This is the ID used when generating reports.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#browser\".", + "type": "string" + }, + "majorVersion": { + "description": "Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.", + "type": "string" + }, + "minorVersion": { + "description": "Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.", + "type": "string" + }, + "name": { + "description": "Name of this browser.", + "type": "string" + } + }, + "type": "object" + }, + "BrowsersListResponse": { + "description": "Browser List Response", + "id": "BrowsersListResponse", + "properties": { + "browsers": { + "description": "Browser collection.", + "items": { + "$ref": "Browser" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#browsersListResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "Campaign": { + "description": "Contains properties of a Campaign Manager campaign.", + "id": "Campaign", + "properties": { + "accountId": { + "description": "Account ID of this campaign. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "adBlockingConfiguration": { + "$ref": "AdBlockingConfiguration", + "description": "Ad blocking settings for this campaign." + }, + "additionalCreativeOptimizationConfigurations": { + "description": "Additional creative optimization configurations for the campaign.", + "items": { + "$ref": "CreativeOptimizationConfiguration" + }, + "type": "array" + }, + "advertiserGroupId": { + "description": "Advertiser group ID of the associated advertiser.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this campaign. This is a required field.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field." + }, + "archived": { + "description": "Whether this campaign has been archived.", + "type": "boolean" + }, + "audienceSegmentGroups": { + "description": "Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.", + "items": { + "$ref": "AudienceSegmentGroup" + }, + "type": "array" + }, + "billingInvoiceCode": { + "description": "Billing invoice code included in the Campaign Manager client billing invoices associated with the campaign.", + "type": "string" + }, + "clickThroughUrlSuffixProperties": { + "$ref": "ClickThroughUrlSuffixProperties", + "description": "Click-through URL suffix override properties for this campaign." + }, + "comment": { + "description": "Arbitrary comments about this campaign. Must be less than 256 characters long.", + "type": "string" + }, + "createInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the creation of this campaign. This is a read-only field." + }, + "creativeGroupIds": { + "description": "List of creative group IDs that are assigned to the campaign.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "creativeOptimizationConfiguration": { + "$ref": "CreativeOptimizationConfiguration", + "description": "Creative optimization configuration for the campaign." + }, + "defaultClickThroughEventTagProperties": { + "$ref": "DefaultClickThroughEventTagProperties", + "description": "Click-through event tag ID override properties for this campaign." + }, + "defaultLandingPageId": { + "description": "The default landing page ID for this campaign.", + "format": "int64", + "type": "string" + }, + "endDate": { + "format": "date", + "type": "string" + }, + "eventTagOverrides": { + "description": "Overrides that can be used to activate or deactivate advertiser event tags.", + "items": { + "$ref": "EventTagOverride" + }, + "type": "array" + }, + "externalId": { + "description": "External ID for this campaign.", + "type": "string" + }, + "id": { + "description": "ID of this campaign. This is a read-only auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this campaign. This is a read-only, auto-generated field." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaign\".", + "type": "string" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this campaign. This is a read-only field." + }, + "name": { + "description": "Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.", + "type": "string" + }, + "nielsenOcrEnabled": { + "description": "Whether Nielsen reports are enabled for this campaign.", + "type": "boolean" + }, + "startDate": { + "format": "date", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this campaign. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "traffickerEmails": { + "description": "Campaign trafficker contact emails.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CampaignCreativeAssociation": { + "description": "Identifies a creative which has been associated with a given campaign.", + "id": "CampaignCreativeAssociation", + "properties": { + "creativeId": { + "description": "ID of the creative associated with the campaign. This is a required field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaignCreativeAssociation\".", + "type": "string" + } + }, + "type": "object" + }, + "CampaignCreativeAssociationsListResponse": { + "description": "Campaign Creative Association List Response", + "id": "CampaignCreativeAssociationsListResponse", + "properties": { + "campaignCreativeAssociations": { + "description": "Campaign creative association collection", + "items": { + "$ref": "CampaignCreativeAssociation" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaignCreativeAssociationsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "CampaignsListResponse": { + "description": "Campaign List Response", + "id": "CampaignsListResponse", + "properties": { + "campaigns": { + "description": "Campaign collection.", + "items": { + "$ref": "Campaign" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaignsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "ChangeLog": { + "description": "Describes a change that a user has made to a resource.", + "id": "ChangeLog", + "properties": { + "accountId": { + "description": "Account ID of the modified object.", + "format": "int64", + "type": "string" + }, + "action": { + "description": "Action which caused the change.", + "type": "string" + }, + "changeTime": { + "format": "date-time", + "type": "string" + }, + "fieldName": { + "description": "Field name of the object which changed.", + "type": "string" + }, + "id": { + "description": "ID of this change log.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#changeLog\".", + "type": "string" + }, + "newValue": { + "description": "New value of the object field.", + "type": "string" + }, + "objectId": { + "description": "ID of the object of this change log. The object could be a campaign, placement, ad, or other type.", + "format": "int64", + "type": "string" + }, + "objectType": { + "description": "Object type of the change log.", + "type": "string" + }, + "oldValue": { + "description": "Old value of the object field.", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of the modified object.", + "format": "int64", + "type": "string" + }, + "transactionId": { + "description": "Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.", + "format": "int64", + "type": "string" + }, + "userProfileId": { + "description": "ID of the user who modified the object.", + "format": "int64", + "type": "string" + }, + "userProfileName": { + "description": "User profile name of the user who modified the object.", + "type": "string" + } + }, + "type": "object" + }, + "ChangeLogsListResponse": { + "description": "Change Log List Response", + "id": "ChangeLogsListResponse", + "properties": { + "changeLogs": { + "description": "Change log collection.", + "items": { + "$ref": "ChangeLog" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#changeLogsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "CitiesListResponse": { + "description": "City List Response", + "id": "CitiesListResponse", + "properties": { + "cities": { + "description": "City collection.", + "items": { + "$ref": "City" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#citiesListResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "City": { + "description": "Contains information about a city that can be targeted by ads.", + "id": "City", + "properties": { + "countryCode": { + "description": "Country code of the country to which this city belongs.", + "type": "string" + }, + "countryDartId": { + "description": "DART ID of the country to which this city belongs.", + "format": "int64", + "type": "string" + }, + "dartId": { + "description": "DART ID of this city. This is the ID used for targeting and generating reports.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#city\".", + "type": "string" + }, + "metroCode": { + "description": "Metro region code of the metro region (DMA) to which this city belongs.", + "type": "string" + }, + "metroDmaId": { + "description": "ID of the metro region (DMA) to which this city belongs.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Name of this city.", + "type": "string" + }, + "regionCode": { + "description": "Region code of the region to which this city belongs.", + "type": "string" + }, + "regionDartId": { + "description": "DART ID of the region to which this city belongs.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ClickTag": { + "description": "Creative Click Tag.", + "id": "ClickTag", + "properties": { + "clickThroughUrl": { + "$ref": "CreativeClickThroughUrl", + "description": "Parameter value for the specified click tag. This field contains a click-through url." + }, + "eventName": { + "description": "Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", + "type": "string" + }, + "name": { + "description": "Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.", + "type": "string" + } + }, + "type": "object" + }, + "ClickThroughUrl": { + "description": "Click-through URL", + "id": "ClickThroughUrl", + "properties": { + "computedClickThroughUrl": { + "description": "Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field. - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field. - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field. ", + "type": "string" + }, + "customClickThroughUrl": { + "description": "Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.", + "type": "string" + }, + "defaultLandingPage": { + "description": "Whether the campaign default landing page is used.", + "type": "boolean" + }, + "landingPageId": { + "description": "ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ClickThroughUrlSuffixProperties": { + "description": "Click Through URL Suffix settings.", + "id": "ClickThroughUrlSuffixProperties", + "properties": { + "clickThroughUrlSuffix": { + "description": "Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.", + "type": "string" + }, + "overrideInheritedSuffix": { + "description": "Whether this entity should override the inherited click-through URL suffix with its own defined value.", + "type": "boolean" + } + }, + "type": "object" + }, + "CompanionClickThroughOverride": { + "description": "Companion Click-through override.", + "id": "CompanionClickThroughOverride", + "properties": { + "clickThroughUrl": { + "$ref": "ClickThroughUrl", + "description": "Click-through URL of this companion click-through override." + }, + "creativeId": { + "description": "ID of the creative for this companion click-through override.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "CompanionSetting": { + "description": "Companion Settings", + "id": "CompanionSetting", + "properties": { + "companionsDisabled": { + "description": "Whether companions are disabled for this placement.", + "type": "boolean" + }, + "enabledSizes": { + "description": "Allowlist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.", + "items": { + "$ref": "Size" + }, + "type": "array" + }, + "imageOnly": { + "description": "Whether to serve only static images as companions.", + "type": "boolean" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#companionSetting\".", + "type": "string" + } + }, + "type": "object" + }, + "CompatibleFields": { + "description": "Represents a response to the queryCompatibleFields method.", + "id": "CompatibleFields", + "properties": { + "crossDimensionReachReportCompatibleFields": { + "$ref": "CrossDimensionReachReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"CROSS_DIMENSION_REACH\"." + }, + "floodlightReportCompatibleFields": { + "$ref": "FloodlightReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"FLOODLIGHT\"." + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#compatibleFields.", + "type": "string" + }, + "pathToConversionReportCompatibleFields": { + "$ref": "PathToConversionReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"PATH_TO_CONVERSION\"." + }, + "reachReportCompatibleFields": { + "$ref": "ReachReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"REACH\"." + }, + "reportCompatibleFields": { + "$ref": "ReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"STANDARD\"." + } + }, + "type": "object" + }, + "ConnectionType": { + "description": "Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.", + "id": "ConnectionType", + "properties": { + "id": { + "description": "ID of this connection type.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#connectionType\".", + "type": "string" + }, + "name": { + "description": "Name of this connection type.", + "type": "string" + } + }, + "type": "object" + }, + "ConnectionTypesListResponse": { + "description": "Connection Type List Response", + "id": "ConnectionTypesListResponse", + "properties": { + "connectionTypes": { + "description": "Collection of connection types such as broadband and mobile.", + "items": { + "$ref": "ConnectionType" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#connectionTypesListResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "ContentCategoriesListResponse": { + "description": "Content Category List Response", + "id": "ContentCategoriesListResponse", + "properties": { + "contentCategories": { + "description": "Content category collection.", + "items": { + "$ref": "ContentCategory" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#contentCategoriesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "ContentCategory": { + "description": "Organizes placements according to the contents of their associated webpages.", + "id": "ContentCategory", + "properties": { + "accountId": { + "description": "Account ID of this content category. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "id": { + "description": "ID of this content category. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#contentCategory\".", + "type": "string" + }, + "name": { + "description": "Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.", + "type": "string" + } + }, + "type": "object" + }, + "Conversion": { + "description": "A Conversion represents when a user successfully performs a desired action after seeing an ad.", + "id": "Conversion", + "properties": { + "childDirectedTreatment": { + "description": "Whether this particular request may come from a user under the age of 13, under COPPA compliance.", + "type": "boolean" + }, + "customVariables": { + "description": "Custom floodlight variables. This field may only be used when calling batchinsert; it is not supported by batchupdate.", + "items": { + "$ref": "CustomFloodlightVariable" + }, + "type": "array" + }, + "encryptedUserId": { + "description": "The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[], matchId, mobileDeviceId and gclid. This or encryptedUserIdCandidates[] or matchId or mobileDeviceId or gclid is a required field.", + "type": "string" + }, + "encryptedUserIdCandidates": { + "description": "A list of the alphanumeric encrypted user IDs. Any user ID with exposure prior to the conversion timestamp will be used in the inserted conversion. If no such user ID is found then the conversion will be rejected with INVALID_ARGUMENT error. When set, encryptionInfo should also be specified. This field may only be used when calling batchinsert; it is not supported by batchupdate. This field is mutually exclusive with encryptedUserId, matchId, mobileDeviceId and gclid. This or encryptedUserId or matchId or mobileDeviceId or gclid is a required field.", + "items": { + "type": "string" + }, + "type": "array" + }, + "floodlightActivityId": { + "description": "Floodlight Activity ID of this conversion. This is a required field.", + "format": "int64", + "type": "string" + }, + "floodlightConfigurationId": { + "description": "Floodlight Configuration ID of this conversion. This is a required field.", + "format": "int64", + "type": "string" + }, + "gclid": { + "description": "The Google click ID. This field is mutually exclusive with encryptedUserId, encryptedUserIdCandidates[], matchId and mobileDeviceId. This or encryptedUserId or encryptedUserIdCandidates[] or matchId or mobileDeviceId is a required field.", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversion\".", + "type": "string" + }, + "limitAdTracking": { + "description": "Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.", + "type": "boolean" + }, + "matchId": { + "description": "The match ID field. A match ID is your own first-party identifier that has been synced with Google using the match ID feature in Floodlight. This field is mutually exclusive with encryptedUserId, encryptedUserIdCandidates[],mobileDeviceId and gclid. This or encryptedUserId or encryptedUserIdCandidates[] or mobileDeviceId or gclid is a required field.", + "type": "string" + }, + "mobileDeviceId": { + "description": "The mobile device ID. This field is mutually exclusive with encryptedUserId, encryptedUserIdCandidates[], matchId and gclid. This or encryptedUserId or encryptedUserIdCandidates[] or matchId or gclid is a required field.", + "type": "string" + }, + "nonPersonalizedAd": { + "description": "Whether the conversion was for a non personalized ad.", + "type": "boolean" + }, + "ordinal": { + "description": "The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.", + "type": "string" + }, + "quantity": { + "description": "The quantity of the conversion.", + "format": "int64", + "type": "string" + }, + "timestampMicros": { + "description": "The timestamp of conversion, in Unix epoch micros. This is a required field.", + "format": "int64", + "type": "string" + }, + "treatmentForUnderage": { + "description": "Whether this particular request may come from a user under the age of 16 (may differ by country), under compliance with the European Union's General Data Protection Regulation (GDPR).", + "type": "boolean" + }, + "value": { + "description": "The value of the conversion.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "ConversionError": { + "description": "The error code and description for a conversion that failed to insert or update.", + "id": "ConversionError", + "properties": { + "code": { + "description": "The error code.", + "enum": [ + "INVALID_ARGUMENT", + "INTERNAL", + "PERMISSION_DENIED", + "NOT_FOUND" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionError\".", + "type": "string" + }, + "message": { + "description": "A description of the error.", + "type": "string" + } + }, + "type": "object" + }, + "ConversionStatus": { + "description": "The original conversion that was inserted or updated and whether there were any errors.", + "id": "ConversionStatus", + "properties": { + "conversion": { + "$ref": "Conversion", + "description": "The original conversion that was inserted or updated." + }, + "errors": { + "description": "A list of errors related to this conversion.", + "items": { + "$ref": "ConversionError" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionStatus\".", + "type": "string" + } + }, + "type": "object" + }, + "ConversionsBatchInsertRequest": { + "description": "Insert Conversions Request.", + "id": "ConversionsBatchInsertRequest", + "properties": { + "conversions": { + "description": "The set of conversions to insert.", + "items": { + "$ref": "Conversion" + }, + "type": "array" + }, + "encryptionInfo": { + "$ref": "EncryptionInfo", + "description": "Describes how encryptedUserId or encryptedUserIdCandidates[] is encrypted. This is a required field if encryptedUserId or encryptedUserIdCandidates[] is used." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionsBatchInsertRequest\".", + "type": "string" + } + }, + "type": "object" + }, + "ConversionsBatchInsertResponse": { + "description": "Insert Conversions Response.", + "id": "ConversionsBatchInsertResponse", + "properties": { + "hasFailures": { + "description": "Indicates that some or all conversions failed to insert.", + "type": "boolean" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionsBatchInsertResponse\".", + "type": "string" + }, + "status": { + "description": "The insert status of each conversion. Statuses are returned in the same order that conversions are inserted.", + "items": { + "$ref": "ConversionStatus" + }, + "type": "array" + } + }, + "type": "object" + }, + "ConversionsBatchUpdateRequest": { + "description": "Update Conversions Request.", + "id": "ConversionsBatchUpdateRequest", + "properties": { + "conversions": { + "description": "The set of conversions to update.", + "items": { + "$ref": "Conversion" + }, + "type": "array" + }, + "encryptionInfo": { + "$ref": "EncryptionInfo", + "description": "Describes how encryptedUserId is encrypted. This is a required field if encryptedUserId is used." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionsBatchUpdateRequest\".", + "type": "string" + } + }, + "type": "object" + }, + "ConversionsBatchUpdateResponse": { + "description": "Update Conversions Response.", + "id": "ConversionsBatchUpdateResponse", + "properties": { + "hasFailures": { + "description": "Indicates that some or all conversions failed to update.", + "type": "boolean" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#conversionsBatchUpdateResponse\".", + "type": "string" + }, + "status": { + "description": "The update status of each conversion. Statuses are returned in the same order that conversions are updated.", + "items": { + "$ref": "ConversionStatus" + }, + "type": "array" + } + }, + "type": "object" + }, + "CountriesListResponse": { + "description": "Country List Response", + "id": "CountriesListResponse", + "properties": { + "countries": { + "description": "Country collection.", + "items": { + "$ref": "Country" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#countriesListResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "Country": { + "description": "Contains information about a country that can be targeted by ads.", + "id": "Country", + "properties": { + "countryCode": { + "description": "Country code.", + "type": "string" + }, + "dartId": { + "description": "DART ID of this country. This is the ID used for targeting and generating reports.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#country\".", + "type": "string" + }, + "name": { + "description": "Name of this country.", + "type": "string" + }, + "sslEnabled": { + "description": "Whether ad serving supports secure servers in this country.", + "type": "boolean" + } + }, + "type": "object" + }, + "Creative": { + "description": "Contains properties of a Creative.", + "id": "Creative", + "properties": { + "accountId": { + "description": "Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.", + "format": "int64", + "type": "string" + }, + "active": { + "description": "Whether the creative is active. Applicable to all creative types.", + "type": "boolean" + }, + "adParameters": { + "description": "Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.", + "type": "string" + }, + "adTagKeys": { + "description": "Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "items": { + "type": "string" + }, + "type": "array" + }, + "additionalSizes": { + "description": "Additional sizes associated with a responsive creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. Applicable to DISPLAY creatives when the primary asset type is HTML_IMAGE.", + "items": { + "$ref": "Size" + }, + "type": "array" + }, + "advertiserId": { + "description": "Advertiser ID of this creative. This is a required field. Applicable to all creative types.", + "format": "int64", + "type": "string" + }, + "allowScriptAccess": { + "description": "Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.", + "type": "boolean" + }, + "archived": { + "description": "Whether the creative is archived. Applicable to all creative types.", + "type": "boolean" + }, + "artworkType": { + "description": "Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "enum": [ + "ARTWORK_TYPE_FLASH", + "ARTWORK_TYPE_HTML5", + "ARTWORK_TYPE_MIXED", + "ARTWORK_TYPE_IMAGE" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "authoringSource": { + "description": "Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.", + "enum": [ + "CREATIVE_AUTHORING_SOURCE_DCM", + "CREATIVE_AUTHORING_SOURCE_DBM", + "CREATIVE_AUTHORING_SOURCE_STUDIO", + "CREATIVE_AUTHORING_SOURCE_GWD" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "authoringTool": { + "description": "Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.", + "enum": [ + "NINJA", + "SWIFFY" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "autoAdvanceImages": { + "description": "Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.", + "type": "boolean" + }, + "backgroundColor": { + "description": "The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.", + "type": "string" + }, + "backupImageClickThroughUrl": { + "$ref": "CreativeClickThroughUrl", + "description": "Click-through URL for backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE." + }, + "backupImageFeatures": { + "description": "List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by Campaign Manager for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", + "items": { + "enum": [ + "CSS_FONT_FACE", + "CSS_BACKGROUND_SIZE", + "CSS_BORDER_IMAGE", + "CSS_BORDER_RADIUS", + "CSS_BOX_SHADOW", + "CSS_FLEX_BOX", + "CSS_HSLA", + "CSS_MULTIPLE_BGS", + "CSS_OPACITY", + "CSS_RGBA", + "CSS_TEXT_SHADOW", + "CSS_ANIMATIONS", + "CSS_COLUMNS", + "CSS_GENERATED_CONTENT", + "CSS_GRADIENTS", + "CSS_REFLECTIONS", + "CSS_TRANSFORMS", + "CSS_TRANSFORMS3D", + "CSS_TRANSITIONS", + "APPLICATION_CACHE", + "CANVAS", + "CANVAS_TEXT", + "DRAG_AND_DROP", + "HASH_CHANGE", + "HISTORY", + "AUDIO", + "VIDEO", + "INDEXED_DB", + "INPUT_ATTR_AUTOCOMPLETE", + "INPUT_ATTR_AUTOFOCUS", + "INPUT_ATTR_LIST", + "INPUT_ATTR_PLACEHOLDER", + "INPUT_ATTR_MAX", + "INPUT_ATTR_MIN", + "INPUT_ATTR_MULTIPLE", + "INPUT_ATTR_PATTERN", + "INPUT_ATTR_REQUIRED", + "INPUT_ATTR_STEP", + "INPUT_TYPE_SEARCH", + "INPUT_TYPE_TEL", + "INPUT_TYPE_URL", + "INPUT_TYPE_EMAIL", + "INPUT_TYPE_DATETIME", + "INPUT_TYPE_DATE", + "INPUT_TYPE_MONTH", + "INPUT_TYPE_WEEK", + "INPUT_TYPE_TIME", + "INPUT_TYPE_DATETIME_LOCAL", + "INPUT_TYPE_NUMBER", + "INPUT_TYPE_RANGE", + "INPUT_TYPE_COLOR", + "LOCAL_STORAGE", + "POST_MESSAGE", + "SESSION_STORAGE", + "WEB_SOCKETS", + "WEB_SQL_DATABASE", + "WEB_WORKERS", + "GEO_LOCATION", + "INLINE_SVG", + "SMIL", + "SVG_HREF", + "SVG_CLIP_PATHS", + "TOUCH", + "WEBGL", + "SVG_FILTERS", + "SVG_FE_IMAGE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "backupImageReportingLabel": { + "description": "Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.", + "type": "string" + }, + "backupImageTargetWindow": { + "$ref": "TargetWindow", + "description": "Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE." + }, + "clickTags": { + "description": "Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", + "items": { + "$ref": "ClickTag" + }, + "type": "array" + }, + "commercialId": { + "description": "Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.", + "type": "string" + }, + "companionCreatives": { + "description": "List of companion creatives assigned to an in-Stream video creative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all VPAID, all INSTREAM_AUDIO and all INSTREAM_VIDEO with dynamicAssetSelection set to false.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "compatibility": { + "description": "Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. IN_STREAM_AUDIO refers to rendering in in-stream audio ads developed with the VAST standard. Applicable to all creative types. Acceptable values are: - \"APP\" - \"APP_INTERSTITIAL\" - \"IN_STREAM_VIDEO\" - \"IN_STREAM_AUDIO\" - \"DISPLAY\" - \"DISPLAY_INTERSTITIAL\" ", + "items": { + "enum": [ + "DISPLAY", + "DISPLAY_INTERSTITIAL", + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "IN_STREAM_AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "convertFlashToHtml5": { + "description": "Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", + "type": "boolean" + }, + "counterCustomEvents": { + "description": "List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.", + "items": { + "$ref": "CreativeCustomEvent" + }, + "type": "array" + }, + "creativeAssetSelection": { + "$ref": "CreativeAssetSelection", + "description": "Required if dynamicAssetSelection is true." + }, + "creativeAssets": { + "description": "Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT", + "items": { + "$ref": "CreativeAsset" + }, + "type": "array" + }, + "creativeFieldAssignments": { + "description": "Creative field assignments for this creative. Applicable to all creative types.", + "items": { + "$ref": "CreativeFieldAssignment" + }, + "type": "array" + }, + "customKeyValues": { + "description": "Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "items": { + "type": "string" + }, + "type": "array" + }, + "dynamicAssetSelection": { + "description": "Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.", + "type": "boolean" + }, + "exitCustomEvents": { + "description": "List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", + "items": { + "$ref": "CreativeCustomEvent" + }, + "type": "array" + }, + "fsCommand": { + "$ref": "FsCommand", + "description": "OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE." + }, + "htmlCode": { + "description": "HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is true. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.", + "type": "string" + }, + "htmlCodeLocked": { + "description": "Whether HTML code is generated by Campaign Manager or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.", + "type": "boolean" + }, + "id": { + "description": "ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creative\".", + "type": "string" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Creative last modification information. This is a read-only field. Applicable to all creative types." + }, + "latestTraffickedCreativeId": { + "description": "Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64", + "type": "string" + }, + "mediaDescription": { + "description": "Description of the audio or video ad. Applicable to the following creative types: all INSTREAM_VIDEO, INSTREAM_AUDIO, and all VPAID.", + "type": "string" + }, + "mediaDuration": { + "description": "Creative audio or video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, INSTREAM_AUDIO, all RICH_MEDIA, and all VPAID.", + "format": "float", + "type": "number" + }, + "name": { + "description": "Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.", + "type": "string" + }, + "overrideCss": { + "description": "Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.", + "type": "string" + }, + "progressOffset": { + "$ref": "VideoOffset", + "description": "Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO." + }, + "redirectUrl": { + "description": "URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT", + "type": "string" + }, + "renderingId": { + "description": "ID of current rendering version. This is a read-only field. Applicable to all creative types.", + "format": "int64", + "type": "string" + }, + "renderingIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types." + }, + "requiredFlashPluginVersion": { + "description": "The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "type": "string" + }, + "requiredFlashVersion": { + "description": "The internal Flash version for this creative as calculated by Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", + "format": "int32", + "type": "integer" + }, + "size": { + "$ref": "Size", + "description": "Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA." + }, + "skipOffset": { + "$ref": "VideoOffset", + "description": "Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO." + }, + "skippable": { + "description": "Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.", + "type": "boolean" + }, + "sslCompliant": { + "description": "Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.", + "type": "boolean" + }, + "sslOverride": { + "description": "Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.", + "type": "boolean" + }, + "studioAdvertiserId": { + "description": "Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64", + "type": "string" + }, + "studioCreativeId": { + "description": "Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64", + "type": "string" + }, + "studioTraffickedCreativeId": { + "description": "Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.", + "format": "int64", + "type": "string" + }, + "thirdPartyBackupImageImpressionsUrl": { + "description": "Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.", + "type": "string" + }, + "thirdPartyRichMediaImpressionsUrl": { + "description": "Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.", + "type": "string" + }, + "thirdPartyUrls": { + "description": "Third-party URLs for tracking in-stream creative events. Applicable to the following creative types: all INSTREAM_VIDEO, all INSTREAM_AUDIO, and all VPAID.", + "items": { + "$ref": "ThirdPartyTrackingUrl" + }, + "type": "array" + }, + "timerCustomEvents": { + "description": "List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.", + "items": { + "$ref": "CreativeCustomEvent" + }, + "type": "array" + }, + "totalFileSize": { + "description": "Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64", + "type": "string" + }, + "type": { + "description": "Type of this creative. This is a required field. Applicable to all creative types. *Note:* FLASH_INPAGE, HTML5_BANNER, and IMAGE are only used for existing creatives. New creatives should use DISPLAY as a replacement for these types.", + "enum": [ + "IMAGE", + "DISPLAY_REDIRECT", + "CUSTOM_DISPLAY", + "INTERNAL_REDIRECT", + "CUSTOM_DISPLAY_INTERSTITIAL", + "INTERSTITIAL_INTERNAL_REDIRECT", + "TRACKING_TEXT", + "RICH_MEDIA_DISPLAY_BANNER", + "RICH_MEDIA_INPAGE_FLOATING", + "RICH_MEDIA_IM_EXPAND", + "RICH_MEDIA_DISPLAY_EXPANDING", + "RICH_MEDIA_DISPLAY_INTERSTITIAL", + "RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL", + "RICH_MEDIA_MOBILE_IN_APP", + "FLASH_INPAGE", + "INSTREAM_VIDEO", + "VPAID_LINEAR_VIDEO", + "VPAID_NON_LINEAR_VIDEO", + "INSTREAM_VIDEO_REDIRECT", + "RICH_MEDIA_PEEL_DOWN", + "HTML5_BANNER", + "DISPLAY", + "DISPLAY_IMAGE_GALLERY", + "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO", + "INSTREAM_AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "universalAdId": { + "$ref": "UniversalAdId", + "description": "A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO and INSTREAM_VIDEO and VPAID." + }, + "version": { + "description": "The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CreativeAsset": { + "description": "Creative Asset.", + "id": "CreativeAsset", + "properties": { + "actionScript3": { + "description": "Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", + "type": "boolean" + }, + "active": { + "description": "Whether the video or audio asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", + "type": "boolean" + }, + "additionalSizes": { + "description": "Additional sizes associated with this creative asset. HTML5 asset generated by compatible software such as GWD will be able to support more sizes this creative asset can render.", + "items": { + "$ref": "Size" + }, + "type": "array" + }, + "alignment": { + "description": "Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL .", + "enum": [ + "ALIGNMENT_TOP", + "ALIGNMENT_RIGHT", + "ALIGNMENT_BOTTOM", + "ALIGNMENT_LEFT" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "artworkType": { + "description": "Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "ARTWORK_TYPE_FLASH", + "ARTWORK_TYPE_HTML5", + "ARTWORK_TYPE_MIXED", + "ARTWORK_TYPE_IMAGE" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "assetIdentifier": { + "$ref": "CreativeAssetId", + "description": "Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT." + }, + "audioBitRate": { + "description": "Audio stream bit rate in kbps. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", + "format": "int32", + "type": "integer" + }, + "audioSampleRate": { + "description": "Audio sample bit rate in hertz. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", + "format": "int32", + "type": "integer" + }, + "backupImageExit": { + "$ref": "CreativeCustomEvent", + "description": "Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA." + }, + "bitRate": { + "description": "Detected bit-rate for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", + "format": "int32", + "type": "integer" + }, + "childAssetType": { + "description": "Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.", + "enum": [ + "CHILD_ASSET_TYPE_FLASH", + "CHILD_ASSET_TYPE_VIDEO", + "CHILD_ASSET_TYPE_IMAGE", + "CHILD_ASSET_TYPE_DATA" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "collapsedSize": { + "$ref": "Size", + "description": "Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN." + }, + "companionCreativeIds": { + "description": "List of companion creatives assigned to an in-stream video creative asset. Acceptable values include IDs of existing flash and image creatives. Applicable to INSTREAM_VIDEO creative type with dynamicAssetSelection set to true.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "customStartTimeValue": { + "description": "Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.", + "format": "int32", + "type": "integer" + }, + "detectedFeatures": { + "description": "List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", + "items": { + "enum": [ + "CSS_FONT_FACE", + "CSS_BACKGROUND_SIZE", + "CSS_BORDER_IMAGE", + "CSS_BORDER_RADIUS", + "CSS_BOX_SHADOW", + "CSS_FLEX_BOX", + "CSS_HSLA", + "CSS_MULTIPLE_BGS", + "CSS_OPACITY", + "CSS_RGBA", + "CSS_TEXT_SHADOW", + "CSS_ANIMATIONS", + "CSS_COLUMNS", + "CSS_GENERATED_CONTENT", + "CSS_GRADIENTS", + "CSS_REFLECTIONS", + "CSS_TRANSFORMS", + "CSS_TRANSFORMS3D", + "CSS_TRANSITIONS", + "APPLICATION_CACHE", + "CANVAS", + "CANVAS_TEXT", + "DRAG_AND_DROP", + "HASH_CHANGE", + "HISTORY", + "AUDIO", + "VIDEO", + "INDEXED_DB", + "INPUT_ATTR_AUTOCOMPLETE", + "INPUT_ATTR_AUTOFOCUS", + "INPUT_ATTR_LIST", + "INPUT_ATTR_PLACEHOLDER", + "INPUT_ATTR_MAX", + "INPUT_ATTR_MIN", + "INPUT_ATTR_MULTIPLE", + "INPUT_ATTR_PATTERN", + "INPUT_ATTR_REQUIRED", + "INPUT_ATTR_STEP", + "INPUT_TYPE_SEARCH", + "INPUT_TYPE_TEL", + "INPUT_TYPE_URL", + "INPUT_TYPE_EMAIL", + "INPUT_TYPE_DATETIME", + "INPUT_TYPE_DATE", + "INPUT_TYPE_MONTH", + "INPUT_TYPE_WEEK", + "INPUT_TYPE_TIME", + "INPUT_TYPE_DATETIME_LOCAL", + "INPUT_TYPE_NUMBER", + "INPUT_TYPE_RANGE", + "INPUT_TYPE_COLOR", + "LOCAL_STORAGE", + "POST_MESSAGE", + "SESSION_STORAGE", + "WEB_SOCKETS", + "WEB_SQL_DATABASE", + "WEB_WORKERS", + "GEO_LOCATION", + "INLINE_SVG", + "SMIL", + "SVG_HREF", + "SVG_CLIP_PATHS", + "TOUCH", + "WEBGL", + "SVG_FILTERS", + "SVG_FE_IMAGE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "displayType": { + "description": "Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "ASSET_DISPLAY_TYPE_INPAGE", + "ASSET_DISPLAY_TYPE_FLOATING", + "ASSET_DISPLAY_TYPE_OVERLAY", + "ASSET_DISPLAY_TYPE_EXPANDING", + "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH", + "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING", + "ASSET_DISPLAY_TYPE_PEEL_DOWN", + "ASSET_DISPLAY_TYPE_VPAID_LINEAR", + "ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR", + "ASSET_DISPLAY_TYPE_BACKDROP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "duration": { + "description": "Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.", + "format": "int32", + "type": "integer" + }, + "durationType": { + "description": "Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "ASSET_DURATION_TYPE_AUTO", + "ASSET_DURATION_TYPE_NONE", + "ASSET_DURATION_TYPE_CUSTOM" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "expandedDimension": { + "$ref": "Size", + "description": "Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID." + }, + "fileSize": { + "description": "File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.", + "format": "int64", + "type": "string" + }, + "flashVersion": { + "description": "Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.", + "format": "int32", + "type": "integer" + }, + "frameRate": { + "description": "Video frame rate for video asset in frames per second. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", + "format": "float", + "type": "number" + }, + "hideFlashObjects": { + "description": "Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.", + "type": "boolean" + }, + "hideSelectionBoxes": { + "description": "Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.", + "type": "boolean" + }, + "horizontallyLocked": { + "description": "Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", + "type": "boolean" + }, + "id": { + "description": "Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the asset. This is a read-only, auto-generated field." + }, + "mediaDuration": { + "description": "Detected duration for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", + "format": "float", + "type": "number" + }, + "mimeType": { + "description": "Detected MIME type for audio or video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and all VPAID.", + "type": "string" + }, + "offset": { + "$ref": "OffsetPosition", + "description": "Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN." + }, + "orientation": { + "description": "Orientation of video asset. This is a read-only, auto-generated field.", + "enum": [ + "LANDSCAPE", + "PORTRAIT", + "SQUARE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "originalBackup": { + "description": "Whether the backup asset is original or changed by the user in Campaign Manager. Applicable to the following creative types: all RICH_MEDIA.", + "type": "boolean" + }, + "politeLoad": { + "description": "Whether this asset is used as a polite load asset.", + "type": "boolean" + }, + "position": { + "$ref": "OffsetPosition", + "description": "Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA." + }, + "positionLeftUnit": { + "description": "Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "OFFSET_UNIT_PIXEL", + "OFFSET_UNIT_PERCENT", + "OFFSET_UNIT_PIXEL_FROM_CENTER" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "positionTopUnit": { + "description": "Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "OFFSET_UNIT_PIXEL", + "OFFSET_UNIT_PERCENT", + "OFFSET_UNIT_PIXEL_FROM_CENTER" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "progressiveServingUrl": { + "description": "Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", + "type": "string" + }, + "pushdown": { + "description": "Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.", + "type": "boolean" + }, + "pushdownDuration": { + "description": "Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.", + "format": "float", + "type": "number" + }, + "role": { + "description": "Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field. PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives. BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE. ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives. OTHER refers to assets from sources other than Campaign Manager, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives. PARENT_VIDEO refers to videos uploaded by the user in Campaign Manager and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. TRANSCODED_VIDEO refers to videos transcoded by Campaign Manager from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives. ALTERNATE_VIDEO refers to the Campaign Manager representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within Campaign Manager. For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative. PARENT_AUDIO refers to audios uploaded by the user in Campaign Manager and is applicable to INSTREAM_AUDIO creatives. TRANSCODED_AUDIO refers to audios transcoded by Campaign Manager from PARENT_AUDIO assets and is applicable to INSTREAM_AUDIO creatives. ", + "enum": [ + "PRIMARY", + "BACKUP_IMAGE", + "ADDITIONAL_IMAGE", + "ADDITIONAL_FLASH", + "PARENT_VIDEO", + "TRANSCODED_VIDEO", + "OTHER", + "ALTERNATE_VIDEO", + "PARENT_AUDIO", + "TRANSCODED_AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "size": { + "$ref": "Size", + "description": "Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE." + }, + "sslCompliant": { + "description": "Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.", + "type": "boolean" + }, + "startTimeType": { + "description": "Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "ASSET_START_TIME_TYPE_NONE", + "ASSET_START_TIME_TYPE_CUSTOM" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "streamingServingUrl": { + "description": "Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", + "type": "string" + }, + "transparency": { + "description": "Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.", + "type": "boolean" + }, + "verticallyLocked": { + "description": "Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", + "type": "boolean" + }, + "windowMode": { + "description": "Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.", + "enum": [ + "OPAQUE", + "WINDOW", + "TRANSPARENT" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "zIndex": { + "description": "zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.", + "format": "int32", + "type": "integer" + }, + "zipFilename": { + "description": "File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.", + "type": "string" + }, + "zipFilesize": { + "description": "Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.", + "type": "string" + } + }, + "type": "object" + }, + "CreativeAssetId": { + "description": "Creative Asset ID.", + "id": "CreativeAssetId", + "properties": { + "name": { + "description": "Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: \".-_ \". Spaces are allowed.", + "type": "string" + }, + "type": { + "description": "Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.", + "enum": [ + "IMAGE", + "FLASH", + "VIDEO", + "HTML", + "HTML_IMAGE", + "AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "CreativeAssetMetadata": { + "description": "CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.", + "id": "CreativeAssetMetadata", + "properties": { + "assetIdentifier": { + "$ref": "CreativeAssetId", + "description": "ID of the creative asset. This is a required field." + }, + "clickTags": { + "description": "List of detected click tags for assets. This is a read-only, auto-generated field. This field is empty for a rich media asset.", + "items": { + "$ref": "ClickTag" + }, + "type": "array" + }, + "detectedFeatures": { + "description": "List of feature dependencies for the creative asset that are detected by Campaign Manager. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.", + "items": { + "enum": [ + "CSS_FONT_FACE", + "CSS_BACKGROUND_SIZE", + "CSS_BORDER_IMAGE", + "CSS_BORDER_RADIUS", + "CSS_BOX_SHADOW", + "CSS_FLEX_BOX", + "CSS_HSLA", + "CSS_MULTIPLE_BGS", + "CSS_OPACITY", + "CSS_RGBA", + "CSS_TEXT_SHADOW", + "CSS_ANIMATIONS", + "CSS_COLUMNS", + "CSS_GENERATED_CONTENT", + "CSS_GRADIENTS", + "CSS_REFLECTIONS", + "CSS_TRANSFORMS", + "CSS_TRANSFORMS3D", + "CSS_TRANSITIONS", + "APPLICATION_CACHE", + "CANVAS", + "CANVAS_TEXT", + "DRAG_AND_DROP", + "HASH_CHANGE", + "HISTORY", + "AUDIO", + "VIDEO", + "INDEXED_DB", + "INPUT_ATTR_AUTOCOMPLETE", + "INPUT_ATTR_AUTOFOCUS", + "INPUT_ATTR_LIST", + "INPUT_ATTR_PLACEHOLDER", + "INPUT_ATTR_MAX", + "INPUT_ATTR_MIN", + "INPUT_ATTR_MULTIPLE", + "INPUT_ATTR_PATTERN", + "INPUT_ATTR_REQUIRED", + "INPUT_ATTR_STEP", + "INPUT_TYPE_SEARCH", + "INPUT_TYPE_TEL", + "INPUT_TYPE_URL", + "INPUT_TYPE_EMAIL", + "INPUT_TYPE_DATETIME", + "INPUT_TYPE_DATE", + "INPUT_TYPE_MONTH", + "INPUT_TYPE_WEEK", + "INPUT_TYPE_TIME", + "INPUT_TYPE_DATETIME_LOCAL", + "INPUT_TYPE_NUMBER", + "INPUT_TYPE_RANGE", + "INPUT_TYPE_COLOR", + "LOCAL_STORAGE", + "POST_MESSAGE", + "SESSION_STORAGE", + "WEB_SOCKETS", + "WEB_SQL_DATABASE", + "WEB_WORKERS", + "GEO_LOCATION", + "INLINE_SVG", + "SMIL", + "SVG_HREF", + "SVG_CLIP_PATHS", + "TOUCH", + "WEBGL", + "SVG_FILTERS", + "SVG_FE_IMAGE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "Numeric ID of the asset. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the numeric ID of the asset. This is a read-only, auto-generated field." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeAssetMetadata\".", + "type": "string" + }, + "warnedValidationRules": { + "description": "Rules validated during code generation that generated a warning. This is a read-only, auto-generated field. Possible values are: - \"ADMOB_REFERENCED\" - \"ASSET_FORMAT_UNSUPPORTED_DCM\" - \"ASSET_INVALID\" - \"CLICK_TAG_HARD_CODED\" - \"CLICK_TAG_INVALID\" - \"CLICK_TAG_IN_GWD\" - \"CLICK_TAG_MISSING\" - \"CLICK_TAG_MORE_THAN_ONE\" - \"CLICK_TAG_NON_TOP_LEVEL\" - \"COMPONENT_UNSUPPORTED_DCM\" - \"ENABLER_UNSUPPORTED_METHOD_DCM\" - \"EXTERNAL_FILE_REFERENCED\" - \"FILE_DETAIL_EMPTY\" - \"FILE_TYPE_INVALID\" - \"GWD_PROPERTIES_INVALID\" - \"HTML5_FEATURE_UNSUPPORTED\" - \"LINKED_FILE_NOT_FOUND\" - \"MAX_FLASH_VERSION_11\" - \"MRAID_REFERENCED\" - \"NOT_SSL_COMPLIANT\" - \"ORPHANED_ASSET\" - \"PRIMARY_HTML_MISSING\" - \"SVG_INVALID\" - \"ZIP_INVALID\" ", + "items": { + "enum": [ + "CLICK_TAG_NON_TOP_LEVEL", + "CLICK_TAG_MISSING", + "CLICK_TAG_MORE_THAN_ONE", + "CLICK_TAG_INVALID", + "ORPHANED_ASSET", + "PRIMARY_HTML_MISSING", + "EXTERNAL_FILE_REFERENCED", + "MRAID_REFERENCED", + "ADMOB_REFERENCED", + "FILE_TYPE_INVALID", + "ZIP_INVALID", + "LINKED_FILE_NOT_FOUND", + "MAX_FLASH_VERSION_11", + "NOT_SSL_COMPLIANT", + "FILE_DETAIL_EMPTY", + "ASSET_INVALID", + "GWD_PROPERTIES_INVALID", + "ENABLER_UNSUPPORTED_METHOD_DCM", + "ASSET_FORMAT_UNSUPPORTED_DCM", + "COMPONENT_UNSUPPORTED_DCM", + "HTML5_FEATURE_UNSUPPORTED", + "CLICK_TAG_IN_GWD", + "CLICK_TAG_HARD_CODED", + "SVG_INVALID", + "CLICK_TAG_IN_RICH_MEDIA" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CreativeAssetSelection": { + "description": "Encapsulates the list of rules for asset selection and a default asset in case none of the rules match. Applicable to INSTREAM_VIDEO creatives.", + "id": "CreativeAssetSelection", + "properties": { + "defaultAssetId": { + "description": "A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.", + "format": "int64", + "type": "string" + }, + "rules": { + "description": "Rules determine which asset will be served to a viewer. Rules will be evaluated in the order in which they are stored in this list. This list must contain at least one rule. Applicable to INSTREAM_VIDEO creatives.", + "items": { + "$ref": "Rule" + }, + "type": "array" + } + }, + "type": "object" + }, + "CreativeAssignment": { + "description": "Creative Assignment.", + "id": "CreativeAssignment", + "properties": { + "active": { + "description": "Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.", + "type": "boolean" + }, + "applyEventTags": { + "description": "Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.", + "type": "boolean" + }, + "clickThroughUrl": { + "$ref": "ClickThroughUrl", + "description": "Click-through URL of the creative assignment." + }, + "companionCreativeOverrides": { + "description": "Companion creative overrides for this creative assignment. Applicable to video ads.", + "items": { + "$ref": "CompanionClickThroughOverride" + }, + "type": "array" + }, + "creativeGroupAssignments": { + "description": "Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.", + "items": { + "$ref": "CreativeGroupAssignment" + }, + "type": "array" + }, + "creativeId": { + "description": "ID of the creative to be assigned. This is a required field.", + "format": "int64", + "type": "string" + }, + "creativeIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the creative. This is a read-only, auto-generated field." + }, + "endTime": { + "format": "date-time", + "type": "string" + }, + "richMediaExitOverrides": { + "description": "Rich media exit overrides for this creative assignment. Applicable when the creative type is any of the following: - DISPLAY - RICH_MEDIA_INPAGE - RICH_MEDIA_INPAGE_FLOATING - RICH_MEDIA_IM_EXPAND - RICH_MEDIA_EXPANDING - RICH_MEDIA_INTERSTITIAL_FLOAT - RICH_MEDIA_MOBILE_IN_APP - RICH_MEDIA_MULTI_FLOATING - RICH_MEDIA_PEEL_DOWN - VPAID_LINEAR - VPAID_NON_LINEAR ", + "items": { + "$ref": "RichMediaExitOverride" + }, + "type": "array" + }, + "sequence": { + "description": "Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.", + "format": "int32", + "type": "integer" + }, + "sslCompliant": { + "description": "Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.", + "type": "boolean" + }, + "startTime": { + "format": "date-time", + "type": "string" + }, + "weight": { + "description": "Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CreativeClickThroughUrl": { + "description": "Click-through URL", + "id": "CreativeClickThroughUrl", + "properties": { + "computedClickThroughUrl": { + "description": "Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows: - If landingPageId is specified then that landing page's URL is assigned to this field. - Otherwise, the customClickThroughUrl is assigned to this field. ", + "type": "string" + }, + "customClickThroughUrl": { + "description": "Custom click-through URL. Applicable if the landingPageId field is left unset.", + "type": "string" + }, + "landingPageId": { + "description": "ID of the landing page for the click-through URL.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "CreativeCustomEvent": { + "description": "Creative Custom Event.", + "id": "CreativeCustomEvent", + "properties": { + "advertiserCustomEventId": { + "description": "Unique ID of this event used by Reporting and Data Transfer. This is a read-only field.", + "format": "int64", + "type": "string" + }, + "advertiserCustomEventName": { + "description": "User-entered name for the event.", + "type": "string" + }, + "advertiserCustomEventType": { + "description": "Type of the event. This is a read-only field.", + "enum": [ + "ADVERTISER_EVENT_TIMER", + "ADVERTISER_EVENT_EXIT", + "ADVERTISER_EVENT_COUNTER" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "artworkLabel": { + "description": "Artwork label column, used to link events in Campaign Manager back to events in Studio. This is a required field and should not be modified after insertion.", + "type": "string" + }, + "artworkType": { + "description": "Artwork type used by the creative.This is a read-only field.", + "enum": [ + "ARTWORK_TYPE_FLASH", + "ARTWORK_TYPE_HTML5", + "ARTWORK_TYPE_MIXED", + "ARTWORK_TYPE_IMAGE" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "exitClickThroughUrl": { + "$ref": "CreativeClickThroughUrl", + "description": "Exit click-through URL for the event. This field is used only for exit events." + }, + "id": { + "description": "ID of this event. This is a required field and should not be modified after insertion.", + "format": "int64", + "type": "string" + }, + "popupWindowProperties": { + "$ref": "PopupWindowProperties", + "description": "Properties for rich media popup windows. This field is used only for exit events." + }, + "targetType": { + "description": "Target type used by the event.", + "enum": [ + "TARGET_BLANK", + "TARGET_TOP", + "TARGET_SELF", + "TARGET_PARENT", + "TARGET_POPUP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "videoReportingId": { + "description": "Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.", + "type": "string" + } + }, + "type": "object" + }, + "CreativeField": { + "description": "Contains properties of a creative field.", + "id": "CreativeField", + "properties": { + "accountId": { + "description": "Account ID of this creative field. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this creative field. This is a required field on insertion.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "id": { + "description": "ID of this creative field. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeField\".", + "type": "string" + }, + "name": { + "description": "Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this creative field. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "CreativeFieldAssignment": { + "description": "Creative Field Assignment.", + "id": "CreativeFieldAssignment", + "properties": { + "creativeFieldId": { + "description": "ID of the creative field.", + "format": "int64", + "type": "string" + }, + "creativeFieldValueId": { + "description": "ID of the creative field value.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "CreativeFieldValue": { + "description": "Contains properties of a creative field value.", + "id": "CreativeFieldValue", + "properties": { + "id": { + "description": "ID of this creative field value. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeFieldValue\".", + "type": "string" + }, + "value": { + "description": "Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.", + "type": "string" + } + }, + "type": "object" + }, + "CreativeFieldValuesListResponse": { + "description": "Creative Field Value List Response", + "id": "CreativeFieldValuesListResponse", + "properties": { + "creativeFieldValues": { + "description": "Creative field value collection.", + "items": { + "$ref": "CreativeFieldValue" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeFieldValuesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "CreativeFieldsListResponse": { + "description": "Creative Field List Response", + "id": "CreativeFieldsListResponse", + "properties": { + "creativeFields": { + "description": "Creative field collection.", + "items": { + "$ref": "CreativeField" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeFieldsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "CreativeGroup": { + "description": "Contains properties of a creative group.", + "id": "CreativeGroup", + "properties": { + "accountId": { + "description": "Account ID of this creative group. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this creative group. This is a required field on insertion.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "groupNumber": { + "description": "Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.", + "format": "int32", + "type": "integer" + }, + "id": { + "description": "ID of this creative group. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeGroup\".", + "type": "string" + }, + "name": { + "description": "Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this creative group. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "CreativeGroupAssignment": { + "description": "Creative Group Assignment.", + "id": "CreativeGroupAssignment", + "properties": { + "creativeGroupId": { + "description": "ID of the creative group to be assigned.", + "format": "int64", + "type": "string" + }, + "creativeGroupNumber": { + "description": "Creative group number of the creative group assignment.", + "enum": [ + "CREATIVE_GROUP_ONE", + "CREATIVE_GROUP_TWO" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "CreativeGroupsListResponse": { + "description": "Creative Group List Response", + "id": "CreativeGroupsListResponse", + "properties": { + "creativeGroups": { + "description": "Creative group collection.", + "items": { + "$ref": "CreativeGroup" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeGroupsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "CreativeOptimizationConfiguration": { + "description": "Creative optimization settings.", + "id": "CreativeOptimizationConfiguration", + "properties": { + "id": { + "description": "ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Name of this creative optimization config. This is a required field and must be less than 129 characters long.", + "type": "string" + }, + "optimizationActivitys": { + "description": "List of optimization activities associated with this configuration.", + "items": { + "$ref": "OptimizationActivity" + }, + "type": "array" + }, + "optimizationModel": { + "description": "Optimization model for this configuration.", + "enum": [ + "CLICK", + "POST_CLICK", + "POST_IMPRESSION", + "POST_CLICK_AND_IMPRESSION", + "VIDEO_COMPLETION" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "CreativeRotation": { + "description": "Creative Rotation.", + "id": "CreativeRotation", + "properties": { + "creativeAssignments": { + "description": "Creative assignments in this creative rotation.", + "items": { + "$ref": "CreativeAssignment" + }, + "type": "array" + }, + "creativeOptimizationConfigurationId": { + "description": "Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.", + "format": "int64", + "type": "string" + }, + "type": { + "description": "Type of creative rotation. Can be used to specify whether to use sequential or random rotation.", + "enum": [ + "CREATIVE_ROTATION_TYPE_SEQUENTIAL", + "CREATIVE_ROTATION_TYPE_RANDOM" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "weightCalculationStrategy": { + "description": "Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.", + "enum": [ + "WEIGHT_STRATEGY_EQUAL", + "WEIGHT_STRATEGY_CUSTOM", + "WEIGHT_STRATEGY_HIGHEST_CTR", + "WEIGHT_STRATEGY_OPTIMIZED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "CreativesListResponse": { + "description": "Creative List Response", + "id": "CreativesListResponse", + "properties": { + "creatives": { + "description": "Creative collection.", + "items": { + "$ref": "Creative" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "CrossDimensionReachReportCompatibleFields": { + "description": "Represents fields that are compatible to be selected for a report of type \"CROSS_DIMENSION_REACH\".", + "id": "CrossDimensionReachReportCompatibleFields", + "properties": { + "breakdown": { + "description": "Dimensions which are compatible to be selected in the \"breakdown\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "dimensionFilters": { + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#crossDimensionReachReportCompatibleFields.", + "type": "string" + }, + "metrics": { + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + }, + "type": "array" + }, + "overlapMetrics": { + "description": "Metrics which are compatible to be selected in the \"overlapMetricNames\" section of the report.", + "items": { + "$ref": "Metric" + }, + "type": "array" + } + }, + "type": "object" + }, + "CustomFloodlightVariable": { + "description": "A custom floodlight variable. This field may only be used when calling batchinsert; it is not supported by batchupdate.", + "id": "CustomFloodlightVariable", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#customFloodlightVariable\".", + "type": "string" + }, + "type": { + "description": "The type of custom floodlight variable to supply a value for. These map to the \"u[1-20]=\" in the tags.", + "enum": [ + "U1", + "U2", + "U3", + "U4", + "U5", + "U6", + "U7", + "U8", + "U9", + "U10", + "U11", + "U12", + "U13", + "U14", + "U15", + "U16", + "U17", + "U18", + "U19", + "U20", + "U21", + "U22", + "U23", + "U24", + "U25", + "U26", + "U27", + "U28", + "U29", + "U30", + "U31", + "U32", + "U33", + "U34", + "U35", + "U36", + "U37", + "U38", + "U39", + "U40", + "U41", + "U42", + "U43", + "U44", + "U45", + "U46", + "U47", + "U48", + "U49", + "U50", + "U51", + "U52", + "U53", + "U54", + "U55", + "U56", + "U57", + "U58", + "U59", + "U60", + "U61", + "U62", + "U63", + "U64", + "U65", + "U66", + "U67", + "U68", + "U69", + "U70", + "U71", + "U72", + "U73", + "U74", + "U75", + "U76", + "U77", + "U78", + "U79", + "U80", + "U81", + "U82", + "U83", + "U84", + "U85", + "U86", + "U87", + "U88", + "U89", + "U90", + "U91", + "U92", + "U93", + "U94", + "U95", + "U96", + "U97", + "U98", + "U99", + "U100" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "value": { + "description": "The value of the custom floodlight variable. The length of string must not exceed 100 characters.", + "type": "string" + } + }, + "type": "object" + }, + "CustomRichMediaEvents": { + "description": "Represents a Custom Rich Media Events group.", + "id": "CustomRichMediaEvents", + "properties": { + "filteredEventIds": { + "description": "List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#customRichMediaEvents.", + "type": "string" + } + }, + "type": "object" + }, + "CustomViewabilityMetric": { + "description": "Custom Viewability Metric", + "id": "CustomViewabilityMetric", + "properties": { + "configuration": { + "$ref": "CustomViewabilityMetricConfiguration", + "description": "Configuration of the custom viewability metric." + }, + "id": { + "description": "ID of the custom viewability metric.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Name of the custom viewability metric.", + "type": "string" + } + }, + "type": "object" + }, + "CustomViewabilityMetricConfiguration": { + "description": "The attributes, like playtime and percent onscreen, that define the Custom Viewability Metric.", + "id": "CustomViewabilityMetricConfiguration", + "properties": { + "audible": { + "description": "Whether the video must be audible to count an impression.", + "type": "boolean" + }, + "timeMillis": { + "description": "The time in milliseconds the video must play for the Custom Viewability Metric to count an impression. If both this and timePercent are specified, the earlier of the two will be used.", + "format": "int32", + "type": "integer" + }, + "timePercent": { + "description": "The percentage of video that must play for the Custom Viewability Metric to count an impression. If both this and timeMillis are specified, the earlier of the two will be used.", + "format": "int32", + "type": "integer" + }, + "viewabilityPercent": { + "description": "The percentage of video that must be on screen for the Custom Viewability Metric to count an impression.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DateRange": { + "description": "Represents a date range.", + "id": "DateRange", + "properties": { + "endDate": { + "format": "date", + "type": "string" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#dateRange.", + "type": "string" + }, + "relativeDateRange": { + "description": "The date range relative to the date of when the report is run.", + "enum": [ + "TODAY", + "YESTERDAY", + "WEEK_TO_DATE", + "MONTH_TO_DATE", + "QUARTER_TO_DATE", + "YEAR_TO_DATE", + "PREVIOUS_WEEK", + "PREVIOUS_MONTH", + "PREVIOUS_QUARTER", + "PREVIOUS_YEAR", + "LAST_7_DAYS", + "LAST_30_DAYS", + "LAST_90_DAYS", + "LAST_365_DAYS", + "LAST_24_MONTHS", + "LAST_14_DAYS", + "LAST_60_DAYS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "startDate": { + "format": "date", + "type": "string" + } + }, + "type": "object" + }, + "DayPartTargeting": { + "description": "Day Part Targeting.", + "id": "DayPartTargeting", + "properties": { + "daysOfWeek": { + "description": "Days of the week when the ad will serve. Acceptable values are: - \"SUNDAY\" - \"MONDAY\" - \"TUESDAY\" - \"WEDNESDAY\" - \"THURSDAY\" - \"FRIDAY\" - \"SATURDAY\" ", + "items": { + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "hoursOfDay": { + "description": "Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "userLocalTime": { + "description": "Whether or not to use the user's local time. If false, the America/New York time zone applies.", + "type": "boolean" + } + }, + "type": "object" + }, + "DeepLink": { + "description": "Contains information about a landing page deep link.", + "id": "DeepLink", + "properties": { + "appUrl": { + "description": "The URL of the mobile app being linked to.", + "type": "string" + }, + "fallbackUrl": { + "description": "The fallback URL. This URL will be served to users who do not have the mobile app installed.", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#deepLink\".", + "type": "string" + }, + "mobileApp": { + "$ref": "MobileApp", + "description": "The mobile app targeted by this deep link." + }, + "remarketingListIds": { + "description": "Ads served to users on these remarketing lists will use this deep link. Applicable when mobileApp.directory is APPLE_APP_STORE.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "DefaultClickThroughEventTagProperties": { + "description": "Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further.", + "id": "DefaultClickThroughEventTagProperties", + "properties": { + "defaultClickThroughEventTagId": { + "description": "ID of the click-through event tag to apply to all ads in this entity's scope.", + "format": "int64", + "type": "string" + }, + "overrideInheritedEventTag": { + "description": "Whether this entity should override the inherited default click-through event tag with its own defined value.", + "type": "boolean" + } + }, + "type": "object" + }, + "DeliverySchedule": { + "description": "Delivery Schedule.", + "id": "DeliverySchedule", + "properties": { + "frequencyCap": { + "$ref": "FrequencyCap", + "description": "Limit on the number of times an individual user can be served the ad within a specified period of time." + }, + "hardCutoff": { + "description": "Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.", + "type": "boolean" + }, + "impressionRatio": { + "description": "Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then Campaign Manager will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.", + "format": "int64", + "type": "string" + }, + "priority": { + "description": "Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.", + "enum": [ + "AD_PRIORITY_01", + "AD_PRIORITY_02", + "AD_PRIORITY_03", + "AD_PRIORITY_04", + "AD_PRIORITY_05", + "AD_PRIORITY_06", + "AD_PRIORITY_07", + "AD_PRIORITY_08", + "AD_PRIORITY_09", + "AD_PRIORITY_10", + "AD_PRIORITY_11", + "AD_PRIORITY_12", + "AD_PRIORITY_13", + "AD_PRIORITY_14", + "AD_PRIORITY_15", + "AD_PRIORITY_16" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "DfpSettings": { + "description": "Google Ad Manager Settings", + "id": "DfpSettings", + "properties": { + "dfpNetworkCode": { + "description": "Ad Manager network code for this directory site.", + "type": "string" + }, + "dfpNetworkName": { + "description": "Ad Manager network name for this directory site.", + "type": "string" + }, + "programmaticPlacementAccepted": { + "description": "Whether this directory site accepts programmatic placements.", + "type": "boolean" + }, + "pubPaidPlacementAccepted": { + "description": "Whether this directory site accepts publisher-paid tags.", + "type": "boolean" + }, + "publisherPortalOnly": { + "description": "Whether this directory site is available only via Publisher Portal.", + "type": "boolean" + } + }, + "type": "object" + }, + "Dimension": { + "description": "Represents a dimension.", + "id": "Dimension", + "properties": { + "kind": { + "description": "The kind of resource this is, in this case dfareporting#dimension.", + "type": "string" + }, + "name": { + "description": "The dimension name, e.g. dfa:advertiser", + "type": "string" + } + }, + "type": "object" + }, + "DimensionFilter": { + "description": "Represents a dimension filter.", + "id": "DimensionFilter", + "properties": { + "dimensionName": { + "description": "The name of the dimension to filter.", + "type": "string" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#dimensionFilter.", + "type": "string" + }, + "value": { + "description": "The value of the dimension to filter.", + "type": "string" + } + }, + "type": "object" + }, + "DimensionValue": { + "description": "Represents a DimensionValue resource.", + "id": "DimensionValue", + "properties": { + "dimensionName": { + "description": "The name of the dimension.", + "type": "string" + }, + "etag": { + "description": "The eTag of this response for caching purposes.", + "type": "string" + }, + "id": { + "description": "The ID associated with the value if available.", + "type": "string" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#dimensionValue.", + "type": "string" + }, + "matchType": { + "description": "Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.", + "enum": [ + "EXACT", + "BEGINS_WITH", + "CONTAINS", + "WILDCARD_EXPRESSION" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "value": { + "description": "The value of the dimension.", + "type": "string" + } + }, + "type": "object" + }, + "DimensionValueList": { + "description": "Represents the list of DimensionValue resources.", + "id": "DimensionValueList", + "properties": { + "etag": { + "description": "The eTag of this response for caching purposes.", + "type": "string" + }, + "items": { + "description": "The dimension values returned in this response.", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "kind": { + "description": "The kind of list this is, in this case dfareporting#dimensionValueList.", + "type": "string" + }, + "nextPageToken": { + "description": "Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.", + "type": "string" + } + }, + "type": "object" + }, + "DimensionValueRequest": { + "description": "Represents a DimensionValuesRequest.", + "id": "DimensionValueRequest", + "properties": { + "dimensionName": { + "annotations": { + "required": [ + "dfareporting.dimensionValues.query" + ] + }, + "description": "The name of the dimension for which values should be requested.", + "type": "string" + }, + "endDate": { + "format": "date", + "type": "string" + }, + "filters": { + "description": "The list of filters by which to filter values. The filters are ANDed.", + "items": { + "$ref": "DimensionFilter" + }, + "type": "array" + }, + "kind": { + "description": "The kind of request this is, in this case dfareporting#dimensionValueRequest .", + "type": "string" + }, + "startDate": { + "format": "date", + "type": "string" + } + }, + "type": "object" + }, + "DirectorySite": { + "description": "DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.", + "id": "DirectorySite", + "properties": { + "active": { + "description": "Whether this directory site is active.", + "type": "boolean" + }, + "id": { + "description": "ID of this directory site. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this directory site. This is a read-only, auto-generated field." + }, + "inpageTagFormats": { + "description": "Tag types for regular placements. Acceptable values are: - \"STANDARD\" - \"IFRAME_JAVASCRIPT_INPAGE\" - \"INTERNAL_REDIRECT_INPAGE\" - \"JAVASCRIPT_INPAGE\" ", + "items": { + "enum": [ + "STANDARD", + "IFRAME_JAVASCRIPT_INPAGE", + "INTERNAL_REDIRECT_INPAGE", + "JAVASCRIPT_INPAGE" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "interstitialTagFormats": { + "description": "Tag types for interstitial placements. Acceptable values are: - \"IFRAME_JAVASCRIPT_INTERSTITIAL\" - \"INTERNAL_REDIRECT_INTERSTITIAL\" - \"JAVASCRIPT_INTERSTITIAL\" ", + "items": { + "enum": [ + "IFRAME_JAVASCRIPT_INTERSTITIAL", + "INTERNAL_REDIRECT_INTERSTITIAL", + "JAVASCRIPT_INTERSTITIAL" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#directorySite\".", + "type": "string" + }, + "name": { + "description": "Name of this directory site.", + "type": "string" + }, + "settings": { + "$ref": "DirectorySiteSettings", + "description": "Directory site settings." + }, + "url": { + "description": "URL of this directory site.", + "type": "string" + } + }, + "type": "object" + }, + "DirectorySiteSettings": { + "description": "Directory Site Settings", + "id": "DirectorySiteSettings", + "properties": { + "activeViewOptOut": { + "description": "Whether this directory site has disabled active view creatives.", + "type": "boolean" + }, + "dfpSettings": { + "$ref": "DfpSettings", + "description": "Directory site Ad Manager settings." + }, + "instreamVideoPlacementAccepted": { + "description": "Whether this site accepts in-stream video ads.", + "type": "boolean" + }, + "interstitialPlacementAccepted": { + "description": "Whether this site accepts interstitial ads.", + "type": "boolean" + } + }, + "type": "object" + }, + "DirectorySitesListResponse": { + "description": "Directory Site List Response", + "id": "DirectorySitesListResponse", + "properties": { + "directorySites": { + "description": "Directory site collection.", + "items": { + "$ref": "DirectorySite" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#directorySitesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "DynamicTargetingKey": { + "description": "Contains properties of a dynamic targeting key. Dynamic targeting keys are unique, user-friendly labels, created at the advertiser level in DCM, that can be assigned to ads, creatives, and placements and used for targeting with Studio dynamic creatives. Use these labels instead of numeric Campaign Manager IDs (such as placement IDs) to save time and avoid errors in your dynamic feeds.", + "id": "DynamicTargetingKey", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#dynamicTargetingKey\".", + "type": "string" + }, + "name": { + "description": "Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.", + "type": "string" + }, + "objectId": { + "description": "ID of the object of this dynamic targeting key. This is a required field.", + "format": "int64", + "type": "string" + }, + "objectType": { + "description": "Type of the object of this dynamic targeting key. This is a required field.", + "enum": [ + "OBJECT_ADVERTISER", + "OBJECT_AD", + "OBJECT_CREATIVE", + "OBJECT_PLACEMENT" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "DynamicTargetingKeysListResponse": { + "description": "Dynamic Targeting Key List Response", + "id": "DynamicTargetingKeysListResponse", + "properties": { + "dynamicTargetingKeys": { + "description": "Dynamic targeting key collection.", + "items": { + "$ref": "DynamicTargetingKey" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#dynamicTargetingKeysListResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "EncryptionInfo": { + "description": "A description of how user IDs are encrypted.", + "id": "EncryptionInfo", + "properties": { + "encryptionEntityId": { + "description": "The encryption entity ID. This should match the encryption configuration for ad serving or Data Transfer.", + "format": "int64", + "type": "string" + }, + "encryptionEntityType": { + "description": "The encryption entity type. This should match the encryption configuration for ad serving or Data Transfer.", + "enum": [ + "ENCRYPTION_ENTITY_TYPE_UNKNOWN", + "DCM_ACCOUNT", + "DCM_ADVERTISER", + "DBM_PARTNER", + "DBM_ADVERTISER", + "ADWORDS_CUSTOMER", + "DFP_NETWORK_CODE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "encryptionSource": { + "description": "Describes whether the encrypted cookie was received from ad serving (the %m macro) or from Data Transfer.", + "enum": [ + "ENCRYPTION_SCOPE_UNKNOWN", + "AD_SERVING", + "DATA_TRANSFER" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#encryptionInfo\".", + "type": "string" + } + }, + "type": "object" + }, + "EventTag": { + "description": "Contains properties of an event tag.", + "id": "EventTag", + "properties": { + "accountId": { + "description": "Account ID of this event tag. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this event tag. This field or the campaignId field is required on insertion.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "campaignId": { + "description": "Campaign ID of this event tag. This field or the advertiserId field is required on insertion.", + "format": "int64", + "type": "string" + }, + "campaignIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." + }, + "enabledByDefault": { + "description": "Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.", + "type": "boolean" + }, + "excludeFromAdxRequests": { + "description": "Whether to remove this event tag from ads that are trafficked through Display & Video 360 to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.", + "type": "boolean" + }, + "id": { + "description": "ID of this event tag. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#eventTag\".", + "type": "string" + }, + "name": { + "description": "Name of this event tag. This is a required field and must be less than 256 characters long.", + "type": "string" + }, + "siteFilterType": { + "description": "Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.", + "enum": [ + "WHITELIST", + "BLACKLIST" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "siteIds": { + "description": "Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a allowlist or blocklist filter.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "sslCompliant": { + "description": "Whether this tag is SSL-compliant or not. This is a read-only field.", + "type": "boolean" + }, + "status": { + "description": "Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this event tag. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "type": { + "description": "Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.", + "enum": [ + "IMPRESSION_IMAGE_EVENT_TAG", + "IMPRESSION_JAVASCRIPT_EVENT_TAG", + "CLICK_THROUGH_EVENT_TAG" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "url": { + "description": "Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.", + "type": "string" + }, + "urlEscapeLevels": { + "description": "Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "EventTagOverride": { + "description": "Event tag override information.", + "id": "EventTagOverride", + "properties": { + "enabled": { + "description": "Whether this override is enabled.", + "type": "boolean" + }, + "id": { + "description": "ID of this event tag override. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "EventTagsListResponse": { + "description": "Event Tag List Response", + "id": "EventTagsListResponse", + "properties": { + "eventTags": { + "description": "Event tag collection.", + "items": { + "$ref": "EventTag" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#eventTagsListResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "File": { + "description": "Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is \"REPORT_AVAILABLE\".", + "id": "File", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which the file has report data. The date range will always be the absolute date range for which the report is run." + }, + "etag": { + "description": "Etag of this resource.", + "type": "string" + }, + "fileName": { + "description": "The filename of the file.", + "type": "string" + }, + "format": { + "description": "The output format of the report. Only available once the file is available.", + "enum": [ + "CSV", + "EXCEL" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "id": { + "description": "The unique ID of this report file.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#file\".", + "type": "string" + }, + "lastModifiedTime": { + "description": "The timestamp in milliseconds since epoch when this file was last modified.", + "format": "int64", + "type": "string" + }, + "reportId": { + "description": "The ID of the report this file was generated from.", + "format": "int64", + "type": "string" + }, + "status": { + "description": "The status of the report file.", + "enum": [ + "PROCESSING", + "REPORT_AVAILABLE", + "FAILED", + "CANCELLED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "urls": { + "description": "The URLs where the completed report file can be downloaded.", + "properties": { + "apiUrl": { + "description": "The URL for downloading the report data through the API.", + "type": "string" + }, + "browserUrl": { + "description": "The URL for downloading the report data through a browser.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "FileList": { + "description": "List of files for a report.", + "id": "FileList", + "properties": { + "etag": { + "description": "Etag of this resource.", + "type": "string" + }, + "items": { + "description": "The files returned in this response.", + "items": { + "$ref": "File" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#fileList\".", + "type": "string" + }, + "nextPageToken": { + "description": "Continuation token used to page through files. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.", + "type": "string" + } + }, + "type": "object" + }, + "Flight": { + "description": "Flight", + "id": "Flight", + "properties": { + "endDate": { + "format": "date", + "type": "string" + }, + "rateOrCost": { + "description": "Rate or cost of this flight.", + "format": "int64", + "type": "string" + }, + "startDate": { + "format": "date", + "type": "string" + }, + "units": { + "description": "Units of this flight.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "FloodlightActivitiesGenerateTagResponse": { + "description": "Floodlight Activity GenerateTag Response", + "id": "FloodlightActivitiesGenerateTagResponse", + "properties": { + "floodlightActivityTag": { + "description": "Generated tag for this Floodlight activity. For global site tags, this is the event snippet.", + "type": "string" + }, + "globalSiteTagGlobalSnippet": { + "description": "The global snippet section of a global site tag. The global site tag sets new cookies on your domain, which will store a unique identifier for a user or the ad click that brought the user to your site. Learn more.", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivitiesGenerateTagResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "FloodlightActivitiesListResponse": { + "description": "Floodlight Activity List Response", + "id": "FloodlightActivitiesListResponse", + "properties": { + "floodlightActivities": { + "description": "Floodlight activity collection.", + "items": { + "$ref": "FloodlightActivity" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivitiesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "FloodlightActivity": { + "description": "Contains properties of a Floodlight activity.", + "id": "FloodlightActivity", + "properties": { + "accountId": { + "description": "Account ID of this floodlight activity. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "cacheBustingType": { + "description": "Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.", + "enum": [ + "JAVASCRIPT", + "ACTIVE_SERVER_PAGE", + "JSP", + "PHP", + "COLD_FUSION" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "countingMethod": { + "description": "Counting method for conversions for this floodlight activity. This is a required field.", + "enum": [ + "STANDARD_COUNTING", + "UNIQUE_COUNTING", + "SESSION_COUNTING", + "TRANSACTIONS_COUNTING", + "ITEMS_SOLD_COUNTING" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "defaultTags": { + "description": "Dynamic floodlight tags.", + "items": { + "$ref": "FloodlightActivityDynamicTag" + }, + "type": "array" + }, + "expectedUrl": { + "description": "URL where this tag will be deployed. If specified, must be less than 256 characters long.", + "type": "string" + }, + "floodlightActivityGroupId": { + "description": "Floodlight activity group ID of this floodlight activity. This is a required field.", + "format": "int64", + "type": "string" + }, + "floodlightActivityGroupName": { + "description": "Name of the associated floodlight activity group. This is a read-only field.", + "type": "string" + }, + "floodlightActivityGroupTagString": { + "description": "Tag string of the associated floodlight activity group. This is a read-only field.", + "type": "string" + }, + "floodlightActivityGroupType": { + "description": "Type of the associated floodlight activity group. This is a read-only field.", + "enum": [ + "COUNTER", + "SALE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "floodlightConfigurationId": { + "description": "Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.", + "format": "int64", + "type": "string" + }, + "floodlightConfigurationIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field." + }, + "floodlightTagType": { + "description": "The type of Floodlight tag this activity will generate. This is a required field.", + "enum": [ + "IFRAME", + "IMAGE", + "GLOBAL_SITE_TAG" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "hidden": { + "description": "Whether this activity is archived.", + "type": "boolean" + }, + "id": { + "description": "ID of this floodlight activity. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivity\".", + "type": "string" + }, + "name": { + "description": "Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.", + "type": "string" + }, + "notes": { + "description": "General notes or implementation instructions for the tag.", + "type": "string" + }, + "publisherTags": { + "description": "Publisher dynamic floodlight tags.", + "items": { + "$ref": "FloodlightActivityPublisherDynamicTag" + }, + "type": "array" + }, + "secure": { + "description": "Whether this tag should use SSL.", + "type": "boolean" + }, + "sslCompliant": { + "description": "Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.", + "type": "boolean" + }, + "sslRequired": { + "description": "Whether this floodlight activity must be SSL-compliant.", + "type": "boolean" + }, + "subaccountId": { + "description": "Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "tagFormat": { + "description": "Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.", + "enum": [ + "HTML", + "XHTML" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "tagString": { + "description": "Value of the cat= parameter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being a-z0-9[ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.", + "type": "string" + }, + "userDefinedVariableTypes": { + "description": "List of the user-defined variables used by this conversion tag. These map to the \"u[1-100]=\" in the tags. Each of these can have a user defined type. Acceptable values are U1 to U100, inclusive. ", + "items": { + "enum": [ + "U1", + "U2", + "U3", + "U4", + "U5", + "U6", + "U7", + "U8", + "U9", + "U10", + "U11", + "U12", + "U13", + "U14", + "U15", + "U16", + "U17", + "U18", + "U19", + "U20", + "U21", + "U22", + "U23", + "U24", + "U25", + "U26", + "U27", + "U28", + "U29", + "U30", + "U31", + "U32", + "U33", + "U34", + "U35", + "U36", + "U37", + "U38", + "U39", + "U40", + "U41", + "U42", + "U43", + "U44", + "U45", + "U46", + "U47", + "U48", + "U49", + "U50", + "U51", + "U52", + "U53", + "U54", + "U55", + "U56", + "U57", + "U58", + "U59", + "U60", + "U61", + "U62", + "U63", + "U64", + "U65", + "U66", + "U67", + "U68", + "U69", + "U70", + "U71", + "U72", + "U73", + "U74", + "U75", + "U76", + "U77", + "U78", + "U79", + "U80", + "U81", + "U82", + "U83", + "U84", + "U85", + "U86", + "U87", + "U88", + "U89", + "U90", + "U91", + "U92", + "U93", + "U94", + "U95", + "U96", + "U97", + "U98", + "U99", + "U100" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "FloodlightActivityDynamicTag": { + "description": "Dynamic Tag", + "id": "FloodlightActivityDynamicTag", + "properties": { + "id": { + "description": "ID of this dynamic tag. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Name of this tag.", + "type": "string" + }, + "tag": { + "description": "Tag code.", + "type": "string" + } + }, + "type": "object" + }, + "FloodlightActivityGroup": { + "description": "Contains properties of a Floodlight activity group.", + "id": "FloodlightActivityGroup", + "properties": { + "accountId": { + "description": "Account ID of this floodlight activity group. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "floodlightConfigurationId": { + "description": "Floodlight configuration ID of this floodlight activity group. This is a required field.", + "format": "int64", + "type": "string" + }, + "floodlightConfigurationIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field." + }, + "id": { + "description": "ID of this floodlight activity group. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivityGroup\".", + "type": "string" + }, + "name": { + "description": "Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "tagString": { + "description": "Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being a-z0-9[ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.", + "type": "string" + }, + "type": { + "description": "Type of the floodlight activity group. This is a required field that is read-only after insertion.", + "enum": [ + "COUNTER", + "SALE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "FloodlightActivityGroupsListResponse": { + "description": "Floodlight Activity Group List Response", + "id": "FloodlightActivityGroupsListResponse", + "properties": { + "floodlightActivityGroups": { + "description": "Floodlight activity group collection.", + "items": { + "$ref": "FloodlightActivityGroup" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivityGroupsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "FloodlightActivityPublisherDynamicTag": { + "description": "Publisher Dynamic Tag", + "id": "FloodlightActivityPublisherDynamicTag", + "properties": { + "clickThrough": { + "description": "Whether this tag is applicable only for click-throughs.", + "type": "boolean" + }, + "directorySiteId": { + "description": "Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.", + "format": "int64", + "type": "string" + }, + "dynamicTag": { + "$ref": "FloodlightActivityDynamicTag", + "description": "Dynamic floodlight tag." + }, + "siteId": { + "description": "Site ID of this dynamic tag.", + "format": "int64", + "type": "string" + }, + "siteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the site. This is a read-only, auto-generated field." + }, + "viewThrough": { + "description": "Whether this tag is applicable only for view-throughs.", + "type": "boolean" + } + }, + "type": "object" + }, + "FloodlightConfiguration": { + "description": "Contains properties of a Floodlight configuration.", + "id": "FloodlightConfiguration", + "properties": { + "accountId": { + "description": "Account ID of this floodlight configuration. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of the parent advertiser of this floodlight configuration.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "analyticsDataSharingEnabled": { + "description": "Whether advertiser data is shared with Google Analytics.", + "type": "boolean" + }, + "customViewabilityMetric": { + "$ref": "CustomViewabilityMetric", + "description": "Custom Viewability metric for the floodlight configuration." + }, + "exposureToConversionEnabled": { + "description": "Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.", + "type": "boolean" + }, + "firstDayOfWeek": { + "description": "Day that will be counted as the first day of the week in reports. This is a required field.", + "enum": [ + "MONDAY", + "SUNDAY" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "id": { + "description": "ID of this floodlight configuration. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field." + }, + "inAppAttributionTrackingEnabled": { + "description": "Whether in-app attribution tracking is enabled.", + "type": "boolean" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightConfiguration\".", + "type": "string" + }, + "lookbackConfiguration": { + "$ref": "LookbackConfiguration", + "description": "Lookback window settings for this floodlight configuration." + }, + "naturalSearchConversionAttributionOption": { + "description": "Types of attribution options for natural search conversions.", + "enum": [ + "EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION", + "INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION", + "INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "omnitureSettings": { + "$ref": "OmnitureSettings", + "description": "Settings for Campaign Manager Omniture integration." + }, + "subaccountId": { + "description": "Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "tagSettings": { + "$ref": "TagSettings", + "description": "Configuration settings for dynamic and image floodlight tags." + }, + "thirdPartyAuthenticationTokens": { + "description": "List of third-party authentication tokens enabled for this configuration.", + "items": { + "$ref": "ThirdPartyAuthenticationToken" + }, + "type": "array" + }, + "userDefinedVariableConfigurations": { + "description": "List of user defined variables enabled for this configuration.", + "items": { + "$ref": "UserDefinedVariableConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "FloodlightConfigurationsListResponse": { + "description": "Floodlight Configuration List Response", + "id": "FloodlightConfigurationsListResponse", + "properties": { + "floodlightConfigurations": { + "description": "Floodlight configuration collection.", + "items": { + "$ref": "FloodlightConfiguration" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightConfigurationsListResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "FloodlightReportCompatibleFields": { + "description": "Represents fields that are compatible to be selected for a report of type \"FlOODLIGHT\".", + "id": "FloodlightReportCompatibleFields", + "properties": { + "dimensionFilters": { + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "dimensions": { + "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#floodlightReportCompatibleFields.", + "type": "string" + }, + "metrics": { + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + }, + "type": "array" + } + }, + "type": "object" + }, + "FrequencyCap": { + "description": "Frequency Cap.", + "id": "FrequencyCap", + "properties": { + "duration": { + "description": "Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.", + "format": "int64", + "type": "string" + }, + "impressions": { + "description": "Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "FsCommand": { + "description": "FsCommand.", + "id": "FsCommand", + "properties": { + "left": { + "description": "Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.", + "format": "int32", + "type": "integer" + }, + "positionOption": { + "description": "Position in the browser where the window will open.", + "enum": [ + "CENTERED", + "DISTANCE_FROM_TOP_LEFT_CORNER" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "top": { + "description": "Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.", + "format": "int32", + "type": "integer" + }, + "windowHeight": { + "description": "Height of the window.", + "format": "int32", + "type": "integer" + }, + "windowWidth": { + "description": "Width of the window.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GeoTargeting": { + "description": "Geographical Targeting.", + "id": "GeoTargeting", + "properties": { + "cities": { + "description": "Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.", + "items": { + "$ref": "City" + }, + "type": "array" + }, + "countries": { + "description": "Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.", + "items": { + "$ref": "Country" + }, + "type": "array" + }, + "excludeCountries": { + "description": "Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.", + "type": "boolean" + }, + "metros": { + "description": "Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.", + "items": { + "$ref": "Metro" + }, + "type": "array" + }, + "postalCodes": { + "description": "Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.", + "items": { + "$ref": "PostalCode" + }, + "type": "array" + }, + "regions": { + "description": "Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.", + "items": { + "$ref": "Region" + }, + "type": "array" + } + }, + "type": "object" + }, + "InventoryItem": { + "description": "Represents a buy from the Planning inventory store.", + "id": "InventoryItem", + "properties": { + "accountId": { + "description": "Account ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "adSlots": { + "description": "Ad slots of this inventory item. If this inventory item represents a standalone placement, there will be exactly one ad slot. If this inventory item represents a placement group, there will be more than one ad slot, each representing one child placement in that placement group.", + "items": { + "$ref": "AdSlot" + }, + "type": "array" + }, + "advertiserId": { + "description": "Advertiser ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "contentCategoryId": { + "description": "Content category ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "estimatedClickThroughRate": { + "description": "Estimated click-through rate of this inventory item.", + "format": "int64", + "type": "string" + }, + "estimatedConversionRate": { + "description": "Estimated conversion rate of this inventory item.", + "format": "int64", + "type": "string" + }, + "id": { + "description": "ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "inPlan": { + "description": "Whether this inventory item is in plan.", + "type": "boolean" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#inventoryItem\".", + "type": "string" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this inventory item." + }, + "name": { + "description": "Name of this inventory item. For standalone inventory items, this is the same name as that of its only ad slot. For group inventory items, this can differ from the name of any of its ad slots.", + "type": "string" + }, + "negotiationChannelId": { + "description": "Negotiation channel ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "orderId": { + "description": "Order ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "placementStrategyId": { + "description": "Placement strategy ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "pricing": { + "$ref": "Pricing", + "description": "Pricing of this inventory item." + }, + "projectId": { + "description": "Project ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "rfpId": { + "description": "RFP ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "siteId": { + "description": "ID of the site this inventory item is associated with.", + "format": "int64", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this inventory item.", + "format": "int64", + "type": "string" + }, + "type": { + "description": "Type of inventory item.", + "enum": [ + "PLANNING_PLACEMENT_TYPE_REGULAR", + "PLANNING_PLACEMENT_TYPE_CREDIT" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "InventoryItemsListResponse": { + "description": "Inventory item List Response", + "id": "InventoryItemsListResponse", + "properties": { + "inventoryItems": { + "description": "Inventory item collection", + "items": { + "$ref": "InventoryItem" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#inventoryItemsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "KeyValueTargetingExpression": { + "description": "Key Value Targeting Expression.", + "id": "KeyValueTargetingExpression", + "properties": { + "expression": { + "description": "Keyword expression being targeted by the ad.", + "type": "string" + } + }, + "type": "object" + }, + "LandingPage": { + "description": "Contains information about where a user's browser is taken after the user clicks an ad.", + "id": "LandingPage", + "properties": { + "advertiserId": { + "description": "Advertiser ID of this landing page. This is a required field.", + "format": "int64", + "type": "string" + }, + "archived": { + "description": "Whether this landing page has been archived.", + "type": "boolean" + }, + "deepLinks": { + "description": "Links that will direct the user to a mobile app, if installed.", + "items": { + "$ref": "DeepLink" + }, + "type": "array" + }, + "id": { + "description": "ID of this landing page. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#landingPage\".", + "type": "string" + }, + "name": { + "description": "Name of this landing page. This is a required field. It must be less than 256 characters long.", + "type": "string" + }, + "url": { + "description": "URL of this landing page. This is a required field.", + "type": "string" + } + }, + "type": "object" + }, + "Language": { + "description": "Contains information about a language that can be targeted by ads.", + "id": "Language", + "properties": { + "id": { + "description": "Language ID of this language. This is the ID used for targeting and generating reports.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#language\".", + "type": "string" + }, + "languageCode": { + "description": "Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are \"en\" for English or \"zh_CN\" for Simplified Chinese.", + "type": "string" + }, + "name": { + "description": "Name of this language.", + "type": "string" + } + }, + "type": "object" + }, + "LanguageTargeting": { + "description": "Language Targeting.", + "id": "LanguageTargeting", + "properties": { + "languages": { + "description": "Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.", + "items": { + "$ref": "Language" + }, + "type": "array" + } + }, + "type": "object" + }, + "LanguagesListResponse": { + "description": "Language List Response", + "id": "LanguagesListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#languagesListResponse\".", + "type": "string" + }, + "languages": { + "description": "Language collection.", + "items": { + "$ref": "Language" + }, + "type": "array" + } + }, + "type": "object" + }, + "LastModifiedInfo": { + "description": "Modification timestamp.", + "id": "LastModifiedInfo", + "properties": { + "time": { + "description": "Timestamp of the last change in milliseconds since epoch.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ListPopulationClause": { + "description": "A group clause made up of list population terms representing constraints joined by ORs.", + "id": "ListPopulationClause", + "properties": { + "terms": { + "description": "Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.", + "items": { + "$ref": "ListPopulationTerm" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListPopulationRule": { + "description": "Remarketing List Population Rule.", + "id": "ListPopulationRule", + "properties": { + "floodlightActivityId": { + "description": "Floodlight activity ID associated with this rule. This field can be left blank.", + "format": "int64", + "type": "string" + }, + "floodlightActivityName": { + "description": "Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.", + "type": "string" + }, + "listPopulationClauses": { + "description": "Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.", + "items": { + "$ref": "ListPopulationClause" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListPopulationTerm": { + "description": "Remarketing List Population Rule Term.", + "id": "ListPopulationTerm", + "properties": { + "contains": { + "description": "Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.", + "type": "boolean" + }, + "negation": { + "description": "Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.", + "type": "boolean" + }, + "operator": { + "description": "Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.", + "enum": [ + "NUM_EQUALS", + "NUM_LESS_THAN", + "NUM_LESS_THAN_EQUAL", + "NUM_GREATER_THAN", + "NUM_GREATER_THAN_EQUAL", + "STRING_EQUALS", + "STRING_CONTAINS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "remarketingListId": { + "description": "ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.", + "format": "int64", + "type": "string" + }, + "type": { + "description": "List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.", + "enum": [ + "CUSTOM_VARIABLE_TERM", + "LIST_MEMBERSHIP_TERM", + "REFERRER_TERM" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "value": { + "description": "Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.", + "type": "string" + }, + "variableFriendlyName": { + "description": "Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.", + "type": "string" + }, + "variableName": { + "description": "Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.", + "type": "string" + } + }, + "type": "object" + }, + "ListTargetingExpression": { + "description": "Remarketing List Targeting Expression.", + "id": "ListTargetingExpression", + "properties": { + "expression": { + "description": "Expression describing which lists are being targeted by the ad.", + "type": "string" + } + }, + "type": "object" + }, + "LookbackConfiguration": { + "description": "Lookback configuration settings.", + "id": "LookbackConfiguration", + "properties": { + "clickDuration": { + "description": "Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.", + "format": "int32", + "type": "integer" + }, + "postImpressionActivitiesDuration": { + "description": "Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Metric": { + "description": "Represents a metric.", + "id": "Metric", + "properties": { + "kind": { + "description": "The kind of resource this is, in this case dfareporting#metric.", + "type": "string" + }, + "name": { + "description": "The metric name, e.g. dfa:impressions", + "type": "string" + } + }, + "type": "object" + }, + "Metro": { + "description": "Contains information about a metro region that can be targeted by ads.", + "id": "Metro", + "properties": { + "countryCode": { + "description": "Country code of the country to which this metro region belongs.", + "type": "string" + }, + "countryDartId": { + "description": "DART ID of the country to which this metro region belongs.", + "format": "int64", + "type": "string" + }, + "dartId": { + "description": "DART ID of this metro region.", + "format": "int64", + "type": "string" + }, + "dmaId": { + "description": "DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#metro\".", + "type": "string" + }, + "metroCode": { + "description": "Metro code of this metro region. This is equivalent to dma_id.", + "type": "string" + }, + "name": { + "description": "Name of this metro region.", + "type": "string" + } + }, + "type": "object" + }, + "MetrosListResponse": { + "description": "Metro List Response", + "id": "MetrosListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#metrosListResponse\".", + "type": "string" + }, + "metros": { + "description": "Metro collection.", + "items": { + "$ref": "Metro" + }, + "type": "array" + } + }, + "type": "object" + }, + "MobileApp": { + "description": "Contains information about a mobile app. Used as a landing page deep link.", + "id": "MobileApp", + "properties": { + "directory": { + "description": "Mobile app directory.", + "enum": [ + "UNKNOWN", + "APPLE_APP_STORE", + "GOOGLE_PLAY_STORE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "id": { + "description": "ID of this mobile app.", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileApp\".", + "type": "string" + }, + "publisherName": { + "description": "Publisher name.", + "type": "string" + }, + "title": { + "description": "Title of this mobile app.", + "type": "string" + } + }, + "type": "object" + }, + "MobileAppsListResponse": { + "description": "Mobile app List Response", + "id": "MobileAppsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileAppsListResponse\".", + "type": "string" + }, + "mobileApps": { + "description": "Mobile apps collection.", + "items": { + "$ref": "MobileApp" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + } + }, + "type": "object" + }, + "MobileCarrier": { + "description": "Contains information about a mobile carrier that can be targeted by ads.", + "id": "MobileCarrier", + "properties": { + "countryCode": { + "description": "Country code of the country to which this mobile carrier belongs.", + "type": "string" + }, + "countryDartId": { + "description": "DART ID of the country to which this mobile carrier belongs.", + "format": "int64", + "type": "string" + }, + "id": { + "description": "ID of this mobile carrier.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileCarrier\".", + "type": "string" + }, + "name": { + "description": "Name of this mobile carrier.", + "type": "string" + } + }, + "type": "object" + }, + "MobileCarriersListResponse": { + "description": "Mobile Carrier List Response", + "id": "MobileCarriersListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileCarriersListResponse\".", + "type": "string" + }, + "mobileCarriers": { + "description": "Mobile carrier collection.", + "items": { + "$ref": "MobileCarrier" + }, + "type": "array" + } + }, + "type": "object" + }, + "ObjectFilter": { + "description": "Object Filter.", + "id": "ObjectFilter", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#objectFilter\".", + "type": "string" + }, + "objectIds": { + "description": "Applicable when status is ASSIGNED. The user has access to objects with these object IDs.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.", + "enum": [ + "NONE", + "ASSIGNED", + "ALL" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "OffsetPosition": { + "description": "Offset Position.", + "id": "OffsetPosition", + "properties": { + "left": { + "description": "Offset distance from left side of an asset or a window.", + "format": "int32", + "type": "integer" + }, + "top": { + "description": "Offset distance from top side of an asset or a window.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "OmnitureSettings": { + "description": "Omniture Integration Settings.", + "id": "OmnitureSettings", + "properties": { + "omnitureCostDataEnabled": { + "description": "Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.", + "type": "boolean" + }, + "omnitureIntegrationEnabled": { + "description": "Whether Omniture integration is enabled. This property can be enabled only when the \"Advanced Ad Serving\" account setting is enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "OperatingSystem": { + "description": "Contains information about an operating system that can be targeted by ads.", + "id": "OperatingSystem", + "properties": { + "dartId": { + "description": "DART ID of this operating system. This is the ID used for targeting.", + "format": "int64", + "type": "string" + }, + "desktop": { + "description": "Whether this operating system is for desktop.", + "type": "boolean" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystem\".", + "type": "string" + }, + "mobile": { + "description": "Whether this operating system is for mobile.", + "type": "boolean" + }, + "name": { + "description": "Name of this operating system.", + "type": "string" + } + }, + "type": "object" + }, + "OperatingSystemVersion": { + "description": "Contains information about a particular version of an operating system that can be targeted by ads.", + "id": "OperatingSystemVersion", + "properties": { + "id": { + "description": "ID of this operating system version.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystemVersion\".", + "type": "string" + }, + "majorVersion": { + "description": "Major version (leftmost number) of this operating system version.", + "type": "string" + }, + "minorVersion": { + "description": "Minor version (number after the first dot) of this operating system version.", + "type": "string" + }, + "name": { + "description": "Name of this operating system version.", + "type": "string" + }, + "operatingSystem": { + "$ref": "OperatingSystem", + "description": "Operating system of this operating system version." + } + }, + "type": "object" + }, + "OperatingSystemVersionsListResponse": { + "description": "Operating System Version List Response", + "id": "OperatingSystemVersionsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystemVersionsListResponse\".", + "type": "string" + }, + "operatingSystemVersions": { + "description": "Operating system version collection.", + "items": { + "$ref": "OperatingSystemVersion" + }, + "type": "array" + } + }, + "type": "object" + }, + "OperatingSystemsListResponse": { + "description": "Operating System List Response", + "id": "OperatingSystemsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystemsListResponse\".", + "type": "string" + }, + "operatingSystems": { + "description": "Operating system collection.", + "items": { + "$ref": "OperatingSystem" + }, + "type": "array" + } + }, + "type": "object" + }, + "OptimizationActivity": { + "description": "Creative optimization activity.", + "id": "OptimizationActivity", + "properties": { + "floodlightActivityId": { + "description": "Floodlight activity ID of this optimization activity. This is a required field.", + "format": "int64", + "type": "string" + }, + "floodlightActivityIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field." + }, + "weight": { + "description": "Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Order": { + "description": "Describes properties of a Planning order.", + "id": "Order", + "properties": { + "accountId": { + "description": "Account ID of this order.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this order.", + "format": "int64", + "type": "string" + }, + "approverUserProfileIds": { + "description": "IDs for users that have to approve documents created for this order.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "buyerInvoiceId": { + "description": "Buyer invoice ID associated with this order.", + "type": "string" + }, + "buyerOrganizationName": { + "description": "Name of the buyer organization.", + "type": "string" + }, + "comments": { + "description": "Comments in this order.", + "type": "string" + }, + "contacts": { + "description": "Contacts for this order.", + "items": { + "$ref": "OrderContact" + }, + "type": "array" + }, + "id": { + "description": "ID of this order. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#order\".", + "type": "string" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this order." + }, + "name": { + "description": "Name of this order.", + "type": "string" + }, + "notes": { + "description": "Notes of this order.", + "type": "string" + }, + "planningTermId": { + "description": "ID of the terms and conditions template used in this order.", + "format": "int64", + "type": "string" + }, + "projectId": { + "description": "Project ID of this order.", + "format": "int64", + "type": "string" + }, + "sellerOrderId": { + "description": "Seller order ID associated with this order.", + "type": "string" + }, + "sellerOrganizationName": { + "description": "Name of the seller organization.", + "type": "string" + }, + "siteId": { + "description": "Site IDs this order is associated with.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "siteNames": { + "description": "Free-form site names this order is associated with.", + "items": { + "type": "string" + }, + "type": "array" + }, + "subaccountId": { + "description": "Subaccount ID of this order.", + "format": "int64", + "type": "string" + }, + "termsAndConditions": { + "description": "Terms and conditions of this order.", + "type": "string" + } + }, + "type": "object" + }, + "OrderContact": { + "description": "Contact of an order.", + "id": "OrderContact", + "properties": { + "contactInfo": { + "description": "Free-form information about this contact. It could be any information related to this contact in addition to type, title, name, and signature user profile ID.", + "type": "string" + }, + "contactName": { + "description": "Name of this contact.", + "type": "string" + }, + "contactTitle": { + "description": "Title of this contact.", + "type": "string" + }, + "contactType": { + "description": "Type of this contact.", + "enum": [ + "PLANNING_ORDER_CONTACT_BUYER_CONTACT", + "PLANNING_ORDER_CONTACT_BUYER_BILLING_CONTACT", + "PLANNING_ORDER_CONTACT_SELLER_CONTACT" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "signatureUserProfileId": { + "description": "ID of the user profile containing the signature that will be embedded into order documents.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "OrderDocument": { + "description": "Contains properties of a Planning order document.", + "id": "OrderDocument", + "properties": { + "accountId": { + "description": "Account ID of this order document.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this order document.", + "format": "int64", + "type": "string" + }, + "amendedOrderDocumentId": { + "description": "The amended order document ID of this order document. An order document can be created by optionally amending another order document so that the change history can be preserved.", + "format": "int64", + "type": "string" + }, + "approvedByUserProfileIds": { + "description": "IDs of users who have approved this order document.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "cancelled": { + "description": "Whether this order document is cancelled.", + "type": "boolean" + }, + "createdInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the creation of this order document." + }, + "effectiveDate": { + "format": "date", + "type": "string" + }, + "id": { + "description": "ID of this order document.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#orderDocument\".", + "type": "string" + }, + "lastSentRecipients": { + "description": "List of email addresses that received the last sent document.", + "items": { + "type": "string" + }, + "type": "array" + }, + "lastSentTime": { + "format": "date-time", + "type": "string" + }, + "orderId": { + "description": "ID of the order from which this order document is created.", + "format": "int64", + "type": "string" + }, + "projectId": { + "description": "Project ID of this order document.", + "format": "int64", + "type": "string" + }, + "signed": { + "description": "Whether this order document has been signed.", + "type": "boolean" + }, + "subaccountId": { + "description": "Subaccount ID of this order document.", + "format": "int64", + "type": "string" + }, + "title": { + "description": "Title of this order document.", + "type": "string" + }, + "type": { + "description": "Type of this order document", + "enum": [ + "PLANNING_ORDER_TYPE_INSERTION_ORDER", + "PLANNING_ORDER_TYPE_CHANGE_ORDER" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "OrderDocumentsListResponse": { + "description": "Order document List Response", + "id": "OrderDocumentsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#orderDocumentsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "orderDocuments": { + "description": "Order document collection", + "items": { + "$ref": "OrderDocument" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrdersListResponse": { + "description": "Order List Response", + "id": "OrdersListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#ordersListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "orders": { + "description": "Order collection.", + "items": { + "$ref": "Order" + }, + "type": "array" + } + }, + "type": "object" + }, + "PathToConversionReportCompatibleFields": { + "description": "Represents fields that are compatible to be selected for a report of type \"PATH_TO_CONVERSION\".", + "id": "PathToConversionReportCompatibleFields", + "properties": { + "conversionDimensions": { + "description": "Conversion dimensions which are compatible to be selected in the \"conversionDimensions\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "customFloodlightVariables": { + "description": "Custom floodlight variables which are compatible to be selected in the \"customFloodlightVariables\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#pathToConversionReportCompatibleFields.", + "type": "string" + }, + "metrics": { + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + }, + "type": "array" + }, + "perInteractionDimensions": { + "description": "Per-interaction dimensions which are compatible to be selected in the \"perInteractionDimensions\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + } + }, + "type": "object" + }, + "Placement": { + "description": "Contains properties of a placement.", + "id": "Placement", + "properties": { + "accountId": { + "description": "Account ID of this placement. This field can be left blank.", + "format": "int64", + "type": "string" + }, + "adBlockingOptOut": { + "description": "Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.", + "type": "boolean" + }, + "additionalSizes": { + "description": "Additional sizes associated with this placement. When inserting or updating a placement, only the size ID field is used.", + "items": { + "$ref": "Size" + }, + "type": "array" + }, + "advertiserId": { + "description": "Advertiser ID of this placement. This field can be left blank.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "archived": { + "description": "Whether this placement is archived.", + "type": "boolean" + }, + "campaignId": { + "description": "Campaign ID of this placement. This field is a required field on insertion.", + "format": "int64", + "type": "string" + }, + "campaignIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." + }, + "comment": { + "description": "Comments for this placement.", + "type": "string" + }, + "compatibility": { + "description": "Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.", + "enum": [ + "DISPLAY", + "DISPLAY_INTERSTITIAL", + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "IN_STREAM_AUDIO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "contentCategoryId": { + "description": "ID of the content category assigned to this placement.", + "format": "int64", + "type": "string" + }, + "createInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the creation of this placement. This is a read-only field." + }, + "directorySiteId": { + "description": "Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.", + "format": "int64", + "type": "string" + }, + "directorySiteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field." + }, + "externalId": { + "description": "External ID for this placement.", + "type": "string" + }, + "id": { + "description": "ID of this placement. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this placement. This is a read-only, auto-generated field." + }, + "keyName": { + "description": "Key name of this placement. This is a read-only, auto-generated field.", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placement\".", + "type": "string" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this placement. This is a read-only field." + }, + "lookbackConfiguration": { + "$ref": "LookbackConfiguration", + "description": "Lookback window settings for this placement." + }, + "name": { + "description": "Name of this placement.This is a required field and must be less than or equal to 256 characters long.", + "type": "string" + }, + "paymentApproved": { + "description": "Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.", + "type": "boolean" + }, + "paymentSource": { + "description": "Payment source for this placement. This is a required field that is read-only after insertion.", + "enum": [ + "PLACEMENT_AGENCY_PAID", + "PLACEMENT_PUBLISHER_PAID" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "placementGroupId": { + "description": "ID of this placement's group, if applicable.", + "format": "int64", + "type": "string" + }, + "placementGroupIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the placement group. This is a read-only, auto-generated field." + }, + "placementStrategyId": { + "description": "ID of the placement strategy assigned to this placement.", + "format": "int64", + "type": "string" + }, + "pricingSchedule": { + "$ref": "PricingSchedule", + "description": "Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType." + }, + "primary": { + "description": "Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.", + "type": "boolean" + }, + "publisherUpdateInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the last publisher update. This is a read-only field." + }, + "siteId": { + "description": "Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.", + "format": "int64", + "type": "string" + }, + "siteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the site. This is a read-only, auto-generated field." + }, + "size": { + "$ref": "Size", + "description": "Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion." + }, + "sslRequired": { + "description": "Whether creatives assigned to this placement must be SSL-compliant.", + "type": "boolean" + }, + "status": { + "description": "Third-party placement status.", + "enum": [ + "PENDING_REVIEW", + "PAYMENT_ACCEPTED", + "PAYMENT_REJECTED", + "ACKNOWLEDGE_REJECTION", + "ACKNOWLEDGE_ACCEPTANCE", + "DRAFT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this placement. This field can be left blank.", + "format": "int64", + "type": "string" + }, + "tagFormats": { + "description": "Tag formats to generate for this placement. This field is required on insertion. Acceptable values are: - \"PLACEMENT_TAG_STANDARD\" - \"PLACEMENT_TAG_IFRAME_JAVASCRIPT\" - \"PLACEMENT_TAG_IFRAME_ILAYER\" - \"PLACEMENT_TAG_INTERNAL_REDIRECT\" - \"PLACEMENT_TAG_JAVASCRIPT\" - \"PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT\" - \"PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT\" - \"PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT\" - \"PLACEMENT_TAG_CLICK_COMMANDS\" - \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH\" - \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3\" - \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4\" - \"PLACEMENT_TAG_TRACKING\" - \"PLACEMENT_TAG_TRACKING_IFRAME\" - \"PLACEMENT_TAG_TRACKING_JAVASCRIPT\" ", + "items": { + "enum": [ + "PLACEMENT_TAG_STANDARD", + "PLACEMENT_TAG_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_IFRAME_ILAYER", + "PLACEMENT_TAG_INTERNAL_REDIRECT", + "PLACEMENT_TAG_JAVASCRIPT", + "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT", + "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT", + "PLACEMENT_TAG_CLICK_COMMANDS", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH", + "PLACEMENT_TAG_TRACKING", + "PLACEMENT_TAG_TRACKING_IFRAME", + "PLACEMENT_TAG_TRACKING_JAVASCRIPT", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3", + "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4", + "PLACEMENT_TAG_TRACKING_THIRD_PARTY_MEASUREMENT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "tagSetting": { + "$ref": "TagSetting", + "description": "Tag settings for this placement." + }, + "videoActiveViewOptOut": { + "description": "Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.", + "type": "boolean" + }, + "videoSettings": { + "$ref": "VideoSettings", + "description": "A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility." + }, + "vpaidAdapterChoice": { + "description": "VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement. *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.", + "enum": [ + "DEFAULT", + "FLASH", + "HTML5", + "BOTH" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "PlacementAssignment": { + "description": "Placement Assignment.", + "id": "PlacementAssignment", + "properties": { + "active": { + "description": "Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.", + "type": "boolean" + }, + "placementId": { + "description": "ID of the placement to be assigned. This is a required field.", + "format": "int64", + "type": "string" + }, + "placementIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the placement. This is a read-only, auto-generated field." + }, + "sslRequired": { + "description": "Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.", + "type": "boolean" + } + }, + "type": "object" + }, + "PlacementGroup": { + "description": "Contains properties of a package or roadblock.", + "id": "PlacementGroup", + "properties": { + "accountId": { + "description": "Account ID of this placement group. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this placement group. This is a required field on insertion.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "archived": { + "description": "Whether this placement group is archived.", + "type": "boolean" + }, + "campaignId": { + "description": "Campaign ID of this placement group. This field is required on insertion.", + "format": "int64", + "type": "string" + }, + "campaignIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." + }, + "childPlacementIds": { + "description": "IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "comment": { + "description": "Comments for this placement group.", + "type": "string" + }, + "contentCategoryId": { + "description": "ID of the content category assigned to this placement group.", + "format": "int64", + "type": "string" + }, + "createInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the creation of this placement group. This is a read-only field." + }, + "directorySiteId": { + "description": "Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.", + "format": "int64", + "type": "string" + }, + "directorySiteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field." + }, + "externalId": { + "description": "External ID for this placement.", + "type": "string" + }, + "id": { + "description": "ID of this placement group. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this placement group. This is a read-only, auto-generated field." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementGroup\".", + "type": "string" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this placement group. This is a read-only field." + }, + "name": { + "description": "Name of this placement group. This is a required field and must be less than 256 characters long.", + "type": "string" + }, + "placementGroupType": { + "description": "Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.", + "enum": [ + "PLACEMENT_PACKAGE", + "PLACEMENT_ROADBLOCK" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "placementStrategyId": { + "description": "ID of the placement strategy assigned to this placement group.", + "format": "int64", + "type": "string" + }, + "pricingSchedule": { + "$ref": "PricingSchedule", + "description": "Pricing schedule of this placement group. This field is required on insertion." + }, + "primaryPlacementId": { + "description": "ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.", + "format": "int64", + "type": "string" + }, + "primaryPlacementIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the primary placement. This is a read-only, auto-generated field." + }, + "siteId": { + "description": "Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.", + "format": "int64", + "type": "string" + }, + "siteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the site. This is a read-only, auto-generated field." + }, + "subaccountId": { + "description": "Subaccount ID of this placement group. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "PlacementGroupsListResponse": { + "description": "Placement Group List Response", + "id": "PlacementGroupsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementGroupsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "placementGroups": { + "description": "Placement group collection.", + "items": { + "$ref": "PlacementGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "PlacementStrategiesListResponse": { + "description": "Placement Strategy List Response", + "id": "PlacementStrategiesListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementStrategiesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "placementStrategies": { + "description": "Placement strategy collection.", + "items": { + "$ref": "PlacementStrategy" + }, + "type": "array" + } + }, + "type": "object" + }, + "PlacementStrategy": { + "description": "Contains properties of a placement strategy.", + "id": "PlacementStrategy", + "properties": { + "accountId": { + "description": "Account ID of this placement strategy.This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "id": { + "description": "ID of this placement strategy. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementStrategy\".", + "type": "string" + }, + "name": { + "description": "Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.", + "type": "string" + } + }, + "type": "object" + }, + "PlacementTag": { + "description": "Placement Tag", + "id": "PlacementTag", + "properties": { + "placementId": { + "description": "Placement ID", + "format": "int64", + "type": "string" + }, + "tagDatas": { + "description": "Tags generated for this placement.", + "items": { + "$ref": "TagData" + }, + "type": "array" + } + }, + "type": "object" + }, + "PlacementsGenerateTagsResponse": { + "description": "Placement GenerateTags Response", + "id": "PlacementsGenerateTagsResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementsGenerateTagsResponse\".", + "type": "string" + }, + "placementTags": { + "description": "Set of generated tags for the specified placements.", + "items": { + "$ref": "PlacementTag" + }, + "type": "array" + } + }, + "type": "object" + }, + "PlacementsListResponse": { + "description": "Placement List Response", + "id": "PlacementsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "placements": { + "description": "Placement collection.", + "items": { + "$ref": "Placement" + }, + "type": "array" + } + }, + "type": "object" + }, + "PlatformType": { + "description": "Contains information about a platform type that can be targeted by ads.", + "id": "PlatformType", + "properties": { + "id": { + "description": "ID of this platform type.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#platformType\".", + "type": "string" + }, + "name": { + "description": "Name of this platform type.", + "type": "string" + } + }, + "type": "object" + }, + "PlatformTypesListResponse": { + "description": "Platform Type List Response", + "id": "PlatformTypesListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#platformTypesListResponse\".", + "type": "string" + }, + "platformTypes": { + "description": "Platform type collection.", + "items": { + "$ref": "PlatformType" + }, + "type": "array" + } + }, + "type": "object" + }, + "PopupWindowProperties": { + "description": "Popup Window Properties.", + "id": "PopupWindowProperties", + "properties": { + "dimension": { + "$ref": "Size", + "description": "Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID" + }, + "offset": { + "$ref": "OffsetPosition", + "description": "Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES." + }, + "positionType": { + "description": "Popup window position either centered or at specific coordinate.", + "enum": [ + "CENTER", + "COORDINATES" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "showAddressBar": { + "description": "Whether to display the browser address bar.", + "type": "boolean" + }, + "showMenuBar": { + "description": "Whether to display the browser menu bar.", + "type": "boolean" + }, + "showScrollBar": { + "description": "Whether to display the browser scroll bar.", + "type": "boolean" + }, + "showStatusBar": { + "description": "Whether to display the browser status bar.", + "type": "boolean" + }, + "showToolBar": { + "description": "Whether to display the browser tool bar.", + "type": "boolean" + }, + "title": { + "description": "Title of popup window.", + "type": "string" + } + }, + "type": "object" + }, + "PostalCode": { + "description": "Contains information about a postal code that can be targeted by ads.", + "id": "PostalCode", + "properties": { + "code": { + "description": "Postal code. This is equivalent to the id field.", + "type": "string" + }, + "countryCode": { + "description": "Country code of the country to which this postal code belongs.", + "type": "string" + }, + "countryDartId": { + "description": "DART ID of the country to which this postal code belongs.", + "format": "int64", + "type": "string" + }, + "id": { + "description": "ID of this postal code.", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#postalCode\".", + "type": "string" + } + }, + "type": "object" + }, + "PostalCodesListResponse": { + "description": "Postal Code List Response", + "id": "PostalCodesListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#postalCodesListResponse\".", + "type": "string" + }, + "postalCodes": { + "description": "Postal code collection.", + "items": { + "$ref": "PostalCode" + }, + "type": "array" + } + }, + "type": "object" + }, + "Pricing": { + "description": "Pricing Information", + "id": "Pricing", + "properties": { + "capCostType": { + "description": "Cap cost type of this inventory item.", + "enum": [ + "PLANNING_PLACEMENT_CAP_COST_TYPE_NONE", + "PLANNING_PLACEMENT_CAP_COST_TYPE_MONTHLY", + "PLANNING_PLACEMENT_CAP_COST_TYPE_CUMULATIVE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "endDate": { + "format": "date", + "type": "string" + }, + "flights": { + "description": "Flights of this inventory item. A flight (a.k.a. pricing period) represents the inventory item pricing information for a specific period of time.", + "items": { + "$ref": "Flight" + }, + "type": "array" + }, + "groupType": { + "description": "Group type of this inventory item if it represents a placement group. Is null otherwise. There are two type of placement groups: PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory items that acts as a single pricing point for a group of tags. PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned inventory items to be marked as primary.", + "enum": [ + "PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE", + "PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "pricingType": { + "description": "Pricing type of this inventory item.", + "enum": [ + "PLANNING_PLACEMENT_PRICING_TYPE_IMPRESSIONS", + "PLANNING_PLACEMENT_PRICING_TYPE_CPM", + "PLANNING_PLACEMENT_PRICING_TYPE_CLICKS", + "PLANNING_PLACEMENT_PRICING_TYPE_CPC", + "PLANNING_PLACEMENT_PRICING_TYPE_CPA", + "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_IMPRESSIONS", + "PLANNING_PLACEMENT_PRICING_TYPE_FLAT_RATE_CLICKS", + "PLANNING_PLACEMENT_PRICING_TYPE_CPM_ACTIVEVIEW" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "startDate": { + "format": "date", + "type": "string" + } + }, + "type": "object" + }, + "PricingSchedule": { + "description": "Pricing Schedule", + "id": "PricingSchedule", + "properties": { + "capCostOption": { + "description": "Placement cap cost option.", + "enum": [ + "CAP_COST_NONE", + "CAP_COST_MONTHLY", + "CAP_COST_CUMULATIVE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "disregardOverdelivery": { + "description": "Whether cap costs are ignored by ad serving.", + "type": "boolean" + }, + "endDate": { + "format": "date", + "type": "string" + }, + "flighted": { + "description": "Whether this placement is flighted. If true, pricing periods will be computed automatically.", + "type": "boolean" + }, + "floodlightActivityId": { + "description": "Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.", + "format": "int64", + "type": "string" + }, + "pricingPeriods": { + "description": "Pricing periods for this placement.", + "items": { + "$ref": "PricingSchedulePricingPeriod" + }, + "type": "array" + }, + "pricingType": { + "description": "Placement pricing type. This field is required on insertion.", + "enum": [ + "PRICING_TYPE_CPM", + "PRICING_TYPE_CPC", + "PRICING_TYPE_CPA", + "PRICING_TYPE_FLAT_RATE_IMPRESSIONS", + "PRICING_TYPE_FLAT_RATE_CLICKS", + "PRICING_TYPE_CPM_ACTIVEVIEW" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "startDate": { + "format": "date", + "type": "string" + }, + "testingStartDate": { + "format": "date", + "type": "string" + } + }, + "type": "object" + }, + "PricingSchedulePricingPeriod": { + "description": "Pricing Period", + "id": "PricingSchedulePricingPeriod", + "properties": { + "endDate": { + "format": "date", + "type": "string" + }, + "pricingComment": { + "description": "Comments for this pricing period.", + "type": "string" + }, + "rateOrCostNanos": { + "description": "Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.", + "format": "int64", + "type": "string" + }, + "startDate": { + "format": "date", + "type": "string" + }, + "units": { + "description": "Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "Project": { + "description": "Contains properties of a Planning project.", + "id": "Project", + "properties": { + "accountId": { + "description": "Account ID of this project.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this project.", + "format": "int64", + "type": "string" + }, + "audienceAgeGroup": { + "description": "Audience age group of this project.", + "enum": [ + "PLANNING_AUDIENCE_AGE_18_24", + "PLANNING_AUDIENCE_AGE_25_34", + "PLANNING_AUDIENCE_AGE_35_44", + "PLANNING_AUDIENCE_AGE_45_54", + "PLANNING_AUDIENCE_AGE_55_64", + "PLANNING_AUDIENCE_AGE_65_OR_MORE", + "PLANNING_AUDIENCE_AGE_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "audienceGender": { + "description": "Audience gender of this project.", + "enum": [ + "PLANNING_AUDIENCE_GENDER_MALE", + "PLANNING_AUDIENCE_GENDER_FEMALE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "budget": { + "description": "Budget of this project in the currency specified by the current account. The value stored in this field represents only the non-fractional amount. For example, for USD, the smallest value that can be represented by this field is 1 US dollar.", + "format": "int64", + "type": "string" + }, + "clientBillingCode": { + "description": "Client billing code of this project.", + "type": "string" + }, + "clientName": { + "description": "Name of the project client.", + "type": "string" + }, + "endDate": { + "format": "date", + "type": "string" + }, + "id": { + "description": "ID of this project. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#project\".", + "type": "string" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this project." + }, + "name": { + "description": "Name of this project.", + "type": "string" + }, + "overview": { + "description": "Overview of this project.", + "type": "string" + }, + "startDate": { + "format": "date", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this project.", + "format": "int64", + "type": "string" + }, + "targetClicks": { + "description": "Number of clicks that the advertiser is targeting.", + "format": "int64", + "type": "string" + }, + "targetConversions": { + "description": "Number of conversions that the advertiser is targeting.", + "format": "int64", + "type": "string" + }, + "targetCpaNanos": { + "description": "CPA that the advertiser is targeting.", + "format": "int64", + "type": "string" + }, + "targetCpcNanos": { + "description": "CPC that the advertiser is targeting.", + "format": "int64", + "type": "string" + }, + "targetCpmActiveViewNanos": { + "description": "vCPM from Active View that the advertiser is targeting.", + "format": "int64", + "type": "string" + }, + "targetCpmNanos": { + "description": "CPM that the advertiser is targeting.", + "format": "int64", + "type": "string" + }, + "targetImpressions": { + "description": "Number of impressions that the advertiser is targeting.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ProjectsListResponse": { + "description": "Project List Response", + "id": "ProjectsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#projectsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "projects": { + "description": "Project collection.", + "items": { + "$ref": "Project" + }, + "type": "array" + } + }, + "type": "object" + }, + "ReachReportCompatibleFields": { + "description": "Represents fields that are compatible to be selected for a report of type \"REACH\".", + "id": "ReachReportCompatibleFields", + "properties": { + "dimensionFilters": { + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "dimensions": { + "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#reachReportCompatibleFields.", + "type": "string" + }, + "metrics": { + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + }, + "type": "array" + }, + "pivotedActivityMetrics": { + "description": "Metrics which are compatible to be selected as activity metrics to pivot on in the \"activities\" section of the report.", + "items": { + "$ref": "Metric" + }, + "type": "array" + }, + "reachByFrequencyMetrics": { + "description": "Metrics which are compatible to be selected in the \"reachByFrequencyMetricNames\" section of the report.", + "items": { + "$ref": "Metric" + }, + "type": "array" + } + }, + "type": "object" + }, + "Recipient": { + "description": "Represents a recipient.", + "id": "Recipient", + "properties": { + "deliveryType": { + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + }, + "description": "The delivery type for the recipient.", + "enum": [ + "LINK", + "ATTACHMENT" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "email": { + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + }, + "description": "The email address of the recipient.", + "type": "string" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#recipient.", + "type": "string" + } + }, + "type": "object" + }, + "Region": { + "description": "Contains information about a region that can be targeted by ads.", + "id": "Region", + "properties": { + "countryCode": { + "description": "Country code of the country to which this region belongs.", + "type": "string" + }, + "countryDartId": { + "description": "DART ID of the country to which this region belongs.", + "format": "int64", + "type": "string" + }, + "dartId": { + "description": "DART ID of this region.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#region\".", + "type": "string" + }, + "name": { + "description": "Name of this region.", + "type": "string" + }, + "regionCode": { + "description": "Region code.", + "type": "string" + } + }, + "type": "object" + }, + "RegionsListResponse": { + "description": "Region List Response", + "id": "RegionsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#regionsListResponse\".", + "type": "string" + }, + "regions": { + "description": "Region collection.", + "items": { + "$ref": "Region" + }, + "type": "array" + } + }, + "type": "object" + }, + "RemarketingList": { + "description": "Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.", + "id": "RemarketingList", + "properties": { + "accountId": { + "description": "Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.", + "format": "int64", + "type": "string" + }, + "active": { + "description": "Whether this remarketing list is active.", + "type": "boolean" + }, + "advertiserId": { + "description": "Dimension value for the advertiser ID that owns this remarketing list. This is a required field.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "description": { + "description": "Remarketing list description.", + "type": "string" + }, + "id": { + "description": "Remarketing list ID. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#remarketingList\".", + "type": "string" + }, + "lifeSpan": { + "description": "Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.", + "format": "int64", + "type": "string" + }, + "listPopulationRule": { + "$ref": "ListPopulationRule", + "description": "Rule used to populate the remarketing list with users." + }, + "listSize": { + "description": "Number of users currently in the list. This is a read-only field.", + "format": "int64", + "type": "string" + }, + "listSource": { + "description": "Product from which this remarketing list was originated.", + "enum": [ + "REMARKETING_LIST_SOURCE_OTHER", + "REMARKETING_LIST_SOURCE_ADX", + "REMARKETING_LIST_SOURCE_DFP", + "REMARKETING_LIST_SOURCE_XFP", + "REMARKETING_LIST_SOURCE_DFA", + "REMARKETING_LIST_SOURCE_GA", + "REMARKETING_LIST_SOURCE_YOUTUBE", + "REMARKETING_LIST_SOURCE_DBM", + "REMARKETING_LIST_SOURCE_GPLUS", + "REMARKETING_LIST_SOURCE_DMP", + "REMARKETING_LIST_SOURCE_PLAY_STORE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "name": { + "description": "Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "RemarketingListShare": { + "description": "Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.", + "id": "RemarketingListShare", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#remarketingListShare\".", + "type": "string" + }, + "remarketingListId": { + "description": "Remarketing list ID. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "sharedAccountIds": { + "description": "Accounts that the remarketing list is shared with.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "sharedAdvertiserIds": { + "description": "Advertisers that the remarketing list is shared with.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RemarketingListsListResponse": { + "description": "Remarketing list response", + "id": "RemarketingListsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#remarketingListsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "remarketingLists": { + "description": "Remarketing list collection.", + "items": { + "$ref": "RemarketingList" + }, + "type": "array" + } + }, + "type": "object" + }, + "Report": { + "description": "Represents a Report resource.", + "id": "Report", + "properties": { + "accountId": { + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + }, + "description": "The account ID to which this report belongs.", + "format": "int64", + "type": "string" + }, + "criteria": { + "description": "The report criteria for a report of type \"STANDARD\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which this report should be run." + }, + "dimensionFilters": { + "description": "The list of filters on which dimensions are filtered. Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "dimensions": { + "description": "The list of standard dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + }, + "type": "array" + }, + "metricNames": { + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "crossDimensionReachCriteria": { + "description": "The report criteria for a report of type \"CROSS_DIMENSION_REACH\".", + "properties": { + "breakdown": { + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + }, + "type": "array" + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimension": { + "description": "The dimension option.", + "enum": [ + "ADVERTISER", + "CAMPAIGN", + "SITE_BY_ADVERTISER", + "SITE_BY_CAMPAIGN" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "dimensionFilters": { + "description": "The list of filters on which dimensions are filtered.", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "metricNames": { + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + }, + "type": "array" + }, + "overlapMetricNames": { + "description": "The list of names of overlap metrics the report should include.", + "items": { + "type": "string" + }, + "type": "array" + }, + "pivoted": { + "description": "Whether the report is pivoted or not. Defaults to true.", + "type": "boolean" + } + }, + "type": "object" + }, + "delivery": { + "description": "The report's email delivery settings.", + "properties": { + "emailOwner": { + "description": "Whether the report should be emailed to the report owner.", + "type": "boolean" + }, + "emailOwnerDeliveryType": { + "description": "The type of delivery for the owner to receive, if enabled.", + "enum": [ + "LINK", + "ATTACHMENT" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "message": { + "description": "The message to be sent with each email.", + "type": "string" + }, + "recipients": { + "description": "The list of recipients to which to email the report.", + "items": { + "$ref": "Recipient" + }, + "type": "array" + } + }, + "type": "object" + }, + "etag": { + "description": "The eTag of this response for caching purposes.", + "type": "string" + }, + "fileName": { + "description": "The filename used when generating report files for this report.", + "type": "string" + }, + "floodlightCriteria": { + "description": "The report criteria for a report of type \"FLOODLIGHT\".", + "properties": { + "customRichMediaEvents": { + "description": "The list of custom rich media events to include.", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "description": "The list of filters on which dimensions are filtered. Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "dimensions": { + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + }, + "type": "array" + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + }, + "type": "array" + }, + "reportProperties": { + "description": "The properties of the report.", + "properties": { + "includeAttributedIPConversions": { + "description": "Include conversions that have no cookie, but do have an exposure path.", + "type": "boolean" + }, + "includeUnattributedCookieConversions": { + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.", + "type": "boolean" + }, + "includeUnattributedIPConversions": { + "description": "Include conversions that have no associated cookies and no exposures. It\u2019s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.", + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "format": { + "description": "The output format of the report. If not specified, default format is \"CSV\". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. \"CSV\" will then be the fallback format.", + "enum": [ + "CSV", + "EXCEL" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "id": { + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + }, + "description": "The unique ID identifying this report resource.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#report.", + "type": "string" + }, + "lastModifiedTime": { + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + }, + "description": "The timestamp (in milliseconds since epoch) of when this report was last modified.", + "format": "uint64", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + }, + "description": "The name of the report.", + "type": "string" + }, + "ownerProfileId": { + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + }, + "description": "The user profile id of the owner of this report.", + "format": "int64", + "type": "string" + }, + "pathToConversionCriteria": { + "description": "The report criteria for a report of type \"PATH_TO_CONVERSION\".", + "properties": { + "activityFilters": { + "description": "The list of 'dfa:activity' values to filter on.", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "conversionDimensions": { + "description": "The list of conversion dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + }, + "type": "array" + }, + "customFloodlightVariables": { + "description": "The list of custom floodlight variables the report should include.", + "items": { + "$ref": "SortedDimension" + }, + "type": "array" + }, + "customRichMediaEvents": { + "description": "The list of custom rich media events to include.", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + }, + "type": "array" + }, + "perInteractionDimensions": { + "description": "The list of per interaction dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + }, + "type": "array" + }, + "reportProperties": { + "description": "The properties of the report.", + "properties": { + "clicksLookbackWindow": { + "description": "CM360 checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32", + "type": "integer" + }, + "impressionsLookbackWindow": { + "description": "CM360 checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32", + "type": "integer" + }, + "includeAttributedIPConversions": { + "description": "Deprecated: has no effect.", + "type": "boolean" + }, + "includeUnattributedCookieConversions": { + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.", + "type": "boolean" + }, + "includeUnattributedIPConversions": { + "description": "Include conversions that have no associated cookies and no exposures. It\u2019s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.", + "type": "boolean" + }, + "maximumClickInteractions": { + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32", + "type": "integer" + }, + "maximumImpressionInteractions": { + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32", + "type": "integer" + }, + "maximumInteractionGap": { + "description": "The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.", + "format": "int32", + "type": "integer" + }, + "pivotOnInteractionPath": { + "description": "Enable pivoting on interaction path.", + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "reachCriteria": { + "description": "The report criteria for a report of type \"REACH\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "description": "The list of filters on which dimensions are filtered. Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + }, + "type": "array" + }, + "dimensions": { + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + }, + "type": "array" + }, + "enableAllDimensionCombinations": { + "description": "Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last 42 days.", + "type": "boolean" + }, + "metricNames": { + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + }, + "type": "array" + }, + "reachByFrequencyMetricNames": { + "description": "The list of names of Reach By Frequency metrics the report should include.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "schedule": { + "description": "The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not \"TODAY\".", + "properties": { + "active": { + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + }, + "description": "Whether the schedule is active or not. Must be set to either true or false.", + "type": "boolean" + }, + "every": { + "description": "Defines every how many days, weeks or months the report should be run. Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or \"MONTHLY\".", + "format": "int32", + "type": "integer" + }, + "expirationDate": { + "format": "date", + "type": "string" + }, + "repeats": { + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + }, + "description": "The interval for which the report is repeated. Note: - \"DAILY\" also requires field \"every\" to be set. - \"WEEKLY\" also requires fields \"every\" and \"repeatsOnWeekDays\" to be set. - \"MONTHLY\" also requires fields \"every\" and \"runsOnDayOfMonth\" to be set. ", + "type": "string" + }, + "repeatsOnWeekDays": { + "description": "List of week days \"WEEKLY\" on which scheduled reports should run.", + "items": { + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "runsOnDayOfMonth": { + "description": "Enum to define for \"MONTHLY\" scheduled reports whether reports should be repeated on the same day of the month as \"startDate\" or the same day of the week of the month. Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent reports on the first Monday of the month.", + "enum": [ + "DAY_OF_MONTH", + "WEEK_OF_MONTH" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "startDate": { + "format": "date", + "type": "string" + } + }, + "type": "object" + }, + "subAccountId": { + "description": "The subaccount ID to which this report belongs if applicable.", + "format": "int64", + "type": "string" + }, + "type": { + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + }, + "description": "The type of the report.", + "enum": [ + "STANDARD", + "REACH", + "PATH_TO_CONVERSION", + "CROSS_DIMENSION_REACH", + "FLOODLIGHT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "ReportCompatibleFields": { + "description": "Represents fields that are compatible to be selected for a report of type \"STANDARD\".", + "id": "ReportCompatibleFields", + "properties": { + "dimensionFilters": { + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "dimensions": { + "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "kind": { + "description": "The kind of resource this is, in this case dfareporting#reportCompatibleFields.", + "type": "string" + }, + "metrics": { + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + }, + "type": "array" + }, + "pivotedActivityMetrics": { + "description": "Metrics which are compatible to be selected as activity metrics to pivot on in the \"activities\" section of the report.", + "items": { + "$ref": "Metric" + }, + "type": "array" + } + }, + "type": "object" + }, + "ReportList": { + "description": "Represents the list of reports.", + "id": "ReportList", + "properties": { + "etag": { + "description": "The eTag of this response for caching purposes.", + "type": "string" + }, + "items": { + "description": "The reports returned in this response.", + "items": { + "$ref": "Report" + }, + "type": "array" + }, + "kind": { + "description": "The kind of list this is, in this case dfareporting#reportList.", + "type": "string" + }, + "nextPageToken": { + "description": "Continuation token used to page through reports. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.", + "type": "string" + } + }, + "type": "object" + }, + "ReportsConfiguration": { + "description": "Reporting Configuration", + "id": "ReportsConfiguration", + "properties": { + "exposureToConversionEnabled": { + "description": "Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.", + "type": "boolean" + }, + "lookbackConfiguration": { + "$ref": "LookbackConfiguration", + "description": "Default lookback windows for new advertisers in this account." + }, + "reportGenerationTimeZoneId": { + "description": "Report generation time zone ID of this account. This is a required field that can only be changed by a superuser. Acceptable values are: - \"1\" for \"America/New_York\" - \"2\" for \"Europe/London\" - \"3\" for \"Europe/Paris\" - \"4\" for \"Africa/Johannesburg\" - \"5\" for \"Asia/Jerusalem\" - \"6\" for \"Asia/Shanghai\" - \"7\" for \"Asia/Hong_Kong\" - \"8\" for \"Asia/Tokyo\" - \"9\" for \"Australia/Sydney\" - \"10\" for \"Asia/Dubai\" - \"11\" for \"America/Los_Angeles\" - \"12\" for \"Pacific/Auckland\" - \"13\" for \"America/Sao_Paulo\" - \"16\" for \"America/Asuncion\" - \"17\" for \"America/Chicago\" - \"18\" for \"America/Denver\" - \"19\" for \"America/St_Johns\" - \"20\" for \"Asia/Dhaka\" - \"21\" for \"Asia/Jakarta\" - \"22\" for \"Asia/Kabul\" - \"23\" for \"Asia/Karachi\" - \"24\" for \"Asia/Calcutta\" - \"25\" for \"Asia/Pyongyang\" - \"26\" for \"Asia/Rangoon\" - \"27\" for \"Atlantic/Cape_Verde\" - \"28\" for \"Atlantic/South_Georgia\" - \"29\" for \"Australia/Adelaide\" - \"30\" for \"Australia/Lord_Howe\" - \"31\" for \"Europe/Moscow\" - \"32\" for \"Pacific/Kiritimati\" - \"35\" for \"Pacific/Norfolk\" - \"36\" for \"Pacific/Tongatapu\" ", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "RichMediaExitOverride": { + "description": "Rich Media Exit Override.", + "id": "RichMediaExitOverride", + "properties": { + "clickThroughUrl": { + "$ref": "ClickThroughUrl", + "description": "Click-through URL of this rich media exit override. Applicable if the enabled field is set to true." + }, + "enabled": { + "description": "Whether to use the clickThroughUrl. If false, the creative-level exit will be used.", + "type": "boolean" + }, + "exitId": { + "description": "ID for the override to refer to a specific exit in the creative.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "Rule": { + "description": "A rule associates an asset with a targeting template for asset-level targeting. Applicable to INSTREAM_VIDEO creatives.", + "id": "Rule", + "properties": { + "assetId": { + "description": "A creativeAssets[].id. This should refer to one of the parent assets in this creative. This is a required field.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "A user-friendly name for this rule. This is a required field.", + "type": "string" + }, + "targetingTemplateId": { + "description": "A targeting template ID. The targeting from the targeting template will be used to determine whether this asset should be served. This is a required field.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "Site": { + "description": "Contains properties of a site.", + "id": "Site", + "properties": { + "accountId": { + "description": "Account ID of this site. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "approved": { + "description": "Whether this site is approved.", + "type": "boolean" + }, + "directorySiteId": { + "description": "Directory site associated with this site. This is a required field that is read-only after insertion.", + "format": "int64", + "type": "string" + }, + "directorySiteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field." + }, + "id": { + "description": "ID of this site. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this site. This is a read-only, auto-generated field." + }, + "keyName": { + "description": "Key name of this site. This is a read-only, auto-generated field.", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#site\".", + "type": "string" + }, + "name": { + "description": "Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.", + "type": "string" + }, + "siteContacts": { + "description": "Site contacts.", + "items": { + "$ref": "SiteContact" + }, + "type": "array" + }, + "siteSettings": { + "$ref": "SiteSettings", + "description": "Site-wide settings." + }, + "subaccountId": { + "description": "Subaccount ID of this site. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "videoSettings": { + "$ref": "SiteVideoSettings", + "description": "Default video settings for new placements created under this site. This value will be used to populate the placements.videoSettings field, when no value is specified for the new placement." + } + }, + "type": "object" + }, + "SiteCompanionSetting": { + "description": "Companion Settings", + "id": "SiteCompanionSetting", + "properties": { + "companionsDisabled": { + "description": "Whether companions are disabled for this site template.", + "type": "boolean" + }, + "enabledSizes": { + "description": "Allowlist of companion sizes to be served via this site template. Set this list to null or empty to serve all companion sizes.", + "items": { + "$ref": "Size" + }, + "type": "array" + }, + "imageOnly": { + "description": "Whether to serve only static images as companions.", + "type": "boolean" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteCompanionSetting\".", + "type": "string" + } + }, + "type": "object" + }, + "SiteContact": { + "description": "Site Contact", + "id": "SiteContact", + "properties": { + "address": { + "description": "Address of this site contact.", + "type": "string" + }, + "contactType": { + "description": "Site contact type.", + "enum": [ + "SALES_PERSON", + "TRAFFICKER" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "email": { + "description": "Email address of this site contact. This is a required field.", + "type": "string" + }, + "firstName": { + "description": "First name of this site contact.", + "type": "string" + }, + "id": { + "description": "ID of this site contact. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "lastName": { + "description": "Last name of this site contact.", + "type": "string" + }, + "phone": { + "description": "Primary phone number of this site contact.", + "type": "string" + }, + "title": { + "description": "Title or designation of this site contact.", + "type": "string" + } + }, + "type": "object" + }, + "SiteSettings": { + "description": "Site Settings", + "id": "SiteSettings", + "properties": { + "activeViewOptOut": { + "description": "Whether active view creatives are disabled for this site.", + "type": "boolean" + }, + "adBlockingOptOut": { + "description": "Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.", + "type": "boolean" + }, + "disableNewCookie": { + "description": "Whether new cookies are disabled for this site.", + "type": "boolean" + }, + "tagSetting": { + "$ref": "TagSetting", + "description": "Configuration settings for dynamic and image floodlight tags." + }, + "videoActiveViewOptOutTemplate": { + "description": "Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.", + "type": "boolean" + }, + "vpaidAdapterChoiceTemplate": { + "description": "Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter). *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH.", + "enum": [ + "DEFAULT", + "FLASH", + "HTML5", + "BOTH" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "SiteSkippableSetting": { + "description": "Skippable Settings", + "id": "SiteSkippableSetting", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteSkippableSetting\".", + "type": "string" + }, + "progressOffset": { + "$ref": "VideoOffset", + "description": "Amount of time to play videos served to this site template before counting a view. Applicable when skippable is true." + }, + "skipOffset": { + "$ref": "VideoOffset", + "description": "Amount of time to play videos served to this site before the skip button should appear. Applicable when skippable is true." + }, + "skippable": { + "description": "Whether the user can skip creatives served to this site. This will act as default for new placements created under this site.", + "type": "boolean" + } + }, + "type": "object" + }, + "SiteTranscodeSetting": { + "description": "Transcode Settings", + "id": "SiteTranscodeSetting", + "properties": { + "enabledVideoFormats": { + "description": "Allowlist of video formats to be served to this site template. Set this list to null or empty to serve all video formats.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteTranscodeSetting\".", + "type": "string" + } + }, + "type": "object" + }, + "SiteVideoSettings": { + "description": "Video Settings", + "id": "SiteVideoSettings", + "properties": { + "companionSettings": { + "$ref": "SiteCompanionSetting", + "description": "Settings for the companion creatives of video creatives served to this site." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteVideoSettings\".", + "type": "string" + }, + "orientation": { + "description": "Orientation of a site template used for video. This will act as default for new placements created under this site.", + "enum": [ + "ANY", + "LANDSCAPE", + "PORTRAIT" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "skippableSettings": { + "$ref": "SiteSkippableSetting", + "description": "Settings for the skippability of video creatives served to this site. This will act as default for new placements created under this site." + }, + "transcodeSettings": { + "$ref": "SiteTranscodeSetting", + "description": "Settings for the transcodes of video creatives served to this site. This will act as default for new placements created under this site." + } + }, + "type": "object" + }, + "SitesListResponse": { + "description": "Site List Response", + "id": "SitesListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#sitesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "sites": { + "description": "Site collection.", + "items": { + "$ref": "Site" + }, + "type": "array" + } + }, + "type": "object" + }, + "Size": { + "description": "Represents the dimensions of ads, placements, creatives, or creative assets.", + "id": "Size", + "properties": { + "height": { + "description": "Height of this size. Acceptable values are 0 to 32767, inclusive.", + "format": "int32", + "type": "integer" + }, + "iab": { + "description": "IAB standard size. This is a read-only, auto-generated field.", + "type": "boolean" + }, + "id": { + "description": "ID of this size. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#size\".", + "type": "string" + }, + "width": { + "description": "Width of this size. Acceptable values are 0 to 32767, inclusive.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SizesListResponse": { + "description": "Size List Response", + "id": "SizesListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#sizesListResponse\".", + "type": "string" + }, + "sizes": { + "description": "Size collection.", + "items": { + "$ref": "Size" + }, + "type": "array" + } + }, + "type": "object" + }, + "SkippableSetting": { + "description": "Skippable Settings", + "id": "SkippableSetting", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#skippableSetting\".", + "type": "string" + }, + "progressOffset": { + "$ref": "VideoOffset", + "description": "Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true." + }, + "skipOffset": { + "$ref": "VideoOffset", + "description": "Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true." + }, + "skippable": { + "description": "Whether the user can skip creatives served to this placement.", + "type": "boolean" + } + }, + "type": "object" + }, + "SortedDimension": { + "description": "Represents a sorted dimension.", + "id": "SortedDimension", + "properties": { + "kind": { + "description": "The kind of resource this is, in this case dfareporting#sortedDimension.", + "type": "string" + }, + "name": { + "description": "The name of the dimension.", + "type": "string" + }, + "sortOrder": { + "description": "An optional sort order for the dimension column.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "Subaccount": { + "description": "Contains properties of a Campaign Manager subaccount.", + "id": "Subaccount", + "properties": { + "accountId": { + "description": "ID of the account that contains this subaccount. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "availablePermissionIds": { + "description": "IDs of the available user role permissions for this subaccount.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "ID of this subaccount. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#subaccount\".", + "type": "string" + }, + "name": { + "description": "Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.", + "type": "string" + } + }, + "type": "object" + }, + "SubaccountsListResponse": { + "description": "Subaccount List Response", + "id": "SubaccountsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#subaccountsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "subaccounts": { + "description": "Subaccount collection.", + "items": { + "$ref": "Subaccount" + }, + "type": "array" + } + }, + "type": "object" + }, + "TagData": { + "description": "Placement Tag Data", + "id": "TagData", + "properties": { + "adId": { + "description": "Ad associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.", + "format": "int64", + "type": "string" + }, + "clickTag": { + "description": "Tag string to record a click.", + "type": "string" + }, + "creativeId": { + "description": "Creative associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.", + "format": "int64", + "type": "string" + }, + "format": { + "description": "TagData tag format of this tag.", + "enum": [ + "PLACEMENT_TAG_STANDARD", + "PLACEMENT_TAG_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_IFRAME_ILAYER", + "PLACEMENT_TAG_INTERNAL_REDIRECT", + "PLACEMENT_TAG_JAVASCRIPT", + "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT", + "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT", + "PLACEMENT_TAG_CLICK_COMMANDS", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH", + "PLACEMENT_TAG_TRACKING", + "PLACEMENT_TAG_TRACKING_IFRAME", + "PLACEMENT_TAG_TRACKING_JAVASCRIPT", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3", + "PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4", + "PLACEMENT_TAG_TRACKING_THIRD_PARTY_MEASUREMENT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "impressionTag": { + "description": "Tag string for serving an ad.", + "type": "string" + } + }, + "type": "object" + }, + "TagSetting": { + "description": "Tag Settings", + "id": "TagSetting", + "properties": { + "additionalKeyValues": { + "description": "Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.", + "type": "string" + }, + "includeClickThroughUrls": { + "description": "Whether static landing page URLs should be included in the tags. This setting applies only to placements.", + "type": "boolean" + }, + "includeClickTracking": { + "description": "Whether click-tracking string should be included in the tags.", + "type": "boolean" + }, + "keywordOption": { + "description": "Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.", + "enum": [ + "PLACEHOLDER_WITH_LIST_OF_KEYWORDS", + "IGNORE", + "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "TagSettings": { + "description": "Dynamic and Image Tag Settings.", + "id": "TagSettings", + "properties": { + "dynamicTagEnabled": { + "description": "Whether dynamic floodlight tags are enabled.", + "type": "boolean" + }, + "imageTagEnabled": { + "description": "Whether image tags are enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "TargetWindow": { + "description": "Target Window.", + "id": "TargetWindow", + "properties": { + "customHtml": { + "description": "User-entered value.", + "type": "string" + }, + "targetWindowOption": { + "description": "Type of browser window for which the backup image of the flash creative can be displayed.", + "enum": [ + "NEW_WINDOW", + "CURRENT_WINDOW", + "CUSTOM" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "TargetableRemarketingList": { + "description": "Contains properties of a targetable remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource is a read-only view of a remarketing list to be used to faciliate targeting ads to specific lists. Remarketing lists that are owned by your advertisers and those that are shared to your advertisers or account are accessible via this resource. To manage remarketing lists that are owned by your advertisers, use the RemarketingLists resource.", + "id": "TargetableRemarketingList", + "properties": { + "accountId": { + "description": "Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.", + "format": "int64", + "type": "string" + }, + "active": { + "description": "Whether this targetable remarketing list is active.", + "type": "boolean" + }, + "advertiserId": { + "description": "Dimension value for the advertiser ID that owns this targetable remarketing list.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser." + }, + "description": { + "description": "Targetable remarketing list description.", + "type": "string" + }, + "id": { + "description": "Targetable remarketing list ID.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#targetableRemarketingList\".", + "type": "string" + }, + "lifeSpan": { + "description": "Number of days that a user should remain in the targetable remarketing list without an impression.", + "format": "int64", + "type": "string" + }, + "listSize": { + "description": "Number of users currently in the list. This is a read-only field.", + "format": "int64", + "type": "string" + }, + "listSource": { + "description": "Product from which this targetable remarketing list was originated.", + "enum": [ + "REMARKETING_LIST_SOURCE_OTHER", + "REMARKETING_LIST_SOURCE_ADX", + "REMARKETING_LIST_SOURCE_DFP", + "REMARKETING_LIST_SOURCE_XFP", + "REMARKETING_LIST_SOURCE_DFA", + "REMARKETING_LIST_SOURCE_GA", + "REMARKETING_LIST_SOURCE_YOUTUBE", + "REMARKETING_LIST_SOURCE_DBM", + "REMARKETING_LIST_SOURCE_GPLUS", + "REMARKETING_LIST_SOURCE_DMP", + "REMARKETING_LIST_SOURCE_PLAY_STORE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "name": { + "description": "Name of the targetable remarketing list. Is no greater than 128 characters long.", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "TargetableRemarketingListsListResponse": { + "description": "Targetable remarketing list response", + "id": "TargetableRemarketingListsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#targetableRemarketingListsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "targetableRemarketingLists": { + "description": "Targetable remarketing list collection.", + "items": { + "$ref": "TargetableRemarketingList" + }, + "type": "array" + } + }, + "type": "object" + }, + "TargetingTemplate": { + "description": "Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.", + "id": "TargetingTemplate", + "properties": { + "accountId": { + "description": "Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.", + "format": "int64", + "type": "string" + }, + "advertiserId": { + "description": "Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.", + "format": "int64", + "type": "string" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "dayPartTargeting": { + "$ref": "DayPartTargeting", + "description": "Time and day targeting criteria." + }, + "geoTargeting": { + "$ref": "GeoTargeting", + "description": "Geographical targeting criteria." + }, + "id": { + "description": "ID of this targeting template. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "keyValueTargetingExpression": { + "$ref": "KeyValueTargetingExpression", + "description": "Key-value targeting criteria." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#targetingTemplate\".", + "type": "string" + }, + "languageTargeting": { + "$ref": "LanguageTargeting", + "description": "Language targeting criteria." + }, + "listTargetingExpression": { + "$ref": "ListTargetingExpression", + "description": "Remarketing list targeting criteria." + }, + "name": { + "description": "Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.", + "type": "string" + }, + "subaccountId": { + "description": "Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.", + "format": "int64", + "type": "string" + }, + "technologyTargeting": { + "$ref": "TechnologyTargeting", + "description": "Technology platform targeting criteria." + } + }, + "type": "object" + }, + "TargetingTemplatesListResponse": { + "description": "Targeting Template List Response", + "id": "TargetingTemplatesListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#targetingTemplatesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "targetingTemplates": { + "description": "Targeting template collection.", + "items": { + "$ref": "TargetingTemplate" + }, + "type": "array" + } + }, + "type": "object" + }, + "TechnologyTargeting": { + "description": "Technology Targeting.", + "id": "TechnologyTargeting", + "properties": { + "browsers": { + "description": "Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.", + "items": { + "$ref": "Browser" + }, + "type": "array" + }, + "connectionTypes": { + "description": "Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.", + "items": { + "$ref": "ConnectionType" + }, + "type": "array" + }, + "mobileCarriers": { + "description": "Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.", + "items": { + "$ref": "MobileCarrier" + }, + "type": "array" + }, + "operatingSystemVersions": { + "description": "Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.", + "items": { + "$ref": "OperatingSystemVersion" + }, + "type": "array" + }, + "operatingSystems": { + "description": "Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.", + "items": { + "$ref": "OperatingSystem" + }, + "type": "array" + }, + "platformTypes": { + "description": "Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.", + "items": { + "$ref": "PlatformType" + }, + "type": "array" + } + }, + "type": "object" + }, + "ThirdPartyAuthenticationToken": { + "description": "Third Party Authentication Token", + "id": "ThirdPartyAuthenticationToken", + "properties": { + "name": { + "description": "Name of the third-party authentication token.", + "type": "string" + }, + "value": { + "description": "Value of the third-party authentication token. This is a read-only, auto-generated field.", + "type": "string" + } + }, + "type": "object" + }, + "ThirdPartyTrackingUrl": { + "description": "Third-party Tracking URL.", + "id": "ThirdPartyTrackingUrl", + "properties": { + "thirdPartyUrlType": { + "description": "Third-party URL type for in-stream video and in-stream audio creatives.", + "enum": [ + "IMPRESSION", + "CLICK_TRACKING", + "VIDEO_START", + "VIDEO_FIRST_QUARTILE", + "VIDEO_MIDPOINT", + "VIDEO_THIRD_QUARTILE", + "VIDEO_COMPLETE", + "VIDEO_MUTE", + "VIDEO_PAUSE", + "VIDEO_REWIND", + "VIDEO_FULLSCREEN", + "VIDEO_STOP", + "VIDEO_CUSTOM", + "SURVEY", + "RICH_MEDIA_IMPRESSION", + "RICH_MEDIA_RM_IMPRESSION", + "RICH_MEDIA_BACKUP_IMPRESSION", + "VIDEO_SKIP", + "VIDEO_PROGRESS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "url": { + "description": "URL for the specified third-party URL type.", + "type": "string" + } + }, + "type": "object" + }, + "TranscodeSetting": { + "description": "Transcode Settings", + "id": "TranscodeSetting", + "properties": { + "enabledVideoFormats": { + "description": "Allowlist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#transcodeSetting\".", + "type": "string" + } + }, + "type": "object" + }, + "UniversalAdId": { + "description": "A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_AUDIO, INSTREAM_VIDEO and VPAID.", + "id": "UniversalAdId", + "properties": { + "registry": { + "description": "Registry used for the Ad ID value.", + "enum": [ + "OTHER", + "AD_ID.ORG", + "CLEARCAST", + "DCM" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "value": { + "description": "ID value for this creative. Only alphanumeric characters and the following symbols are valid: \"_/\\-\". Maximum length is 64 characters. Read only when registry is DCM.", + "type": "string" + } + }, + "type": "object" + }, + "UserDefinedVariableConfiguration": { + "description": "User Defined Variable configuration.", + "id": "UserDefinedVariableConfiguration", + "properties": { + "dataType": { + "description": "Data type for the variable. This is a required field.", + "enum": [ + "STRING", + "NUMBER" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "reportName": { + "description": "User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: \"\"<>\".", + "type": "string" + }, + "variableType": { + "description": "Variable name in the tag. This is a required field.", + "enum": [ + "U1", + "U2", + "U3", + "U4", + "U5", + "U6", + "U7", + "U8", + "U9", + "U10", + "U11", + "U12", + "U13", + "U14", + "U15", + "U16", + "U17", + "U18", + "U19", + "U20", + "U21", + "U22", + "U23", + "U24", + "U25", + "U26", + "U27", + "U28", + "U29", + "U30", + "U31", + "U32", + "U33", + "U34", + "U35", + "U36", + "U37", + "U38", + "U39", + "U40", + "U41", + "U42", + "U43", + "U44", + "U45", + "U46", + "U47", + "U48", + "U49", + "U50", + "U51", + "U52", + "U53", + "U54", + "U55", + "U56", + "U57", + "U58", + "U59", + "U60", + "U61", + "U62", + "U63", + "U64", + "U65", + "U66", + "U67", + "U68", + "U69", + "U70", + "U71", + "U72", + "U73", + "U74", + "U75", + "U76", + "U77", + "U78", + "U79", + "U80", + "U81", + "U82", + "U83", + "U84", + "U85", + "U86", + "U87", + "U88", + "U89", + "U90", + "U91", + "U92", + "U93", + "U94", + "U95", + "U96", + "U97", + "U98", + "U99", + "U100" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "UserProfile": { + "description": "A UserProfile resource lets you list all DFA user profiles that are associated with a Google user account. The profile_id needs to be specified in other API requests. ", + "id": "UserProfile", + "properties": { + "accountId": { + "description": "The account ID to which this profile belongs.", + "format": "int64", + "type": "string" + }, + "accountName": { + "description": "The account name this profile belongs to.", + "type": "string" + }, + "etag": { + "description": "Etag of this resource.", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userProfile\".", + "type": "string" + }, + "profileId": { + "description": "The unique ID of the user profile.", + "format": "int64", + "type": "string" + }, + "subAccountId": { + "description": "The sub account ID this profile belongs to if applicable.", + "format": "int64", + "type": "string" + }, + "subAccountName": { + "description": "The sub account name this profile belongs to if applicable.", + "type": "string" + }, + "userName": { + "description": "The user name.", + "type": "string" + } + }, + "type": "object" + }, + "UserProfileList": { + "description": "Represents the list of user profiles.", + "id": "UserProfileList", + "properties": { + "etag": { + "description": "Etag of this resource.", + "type": "string" + }, + "items": { + "description": "The user profiles returned in this response.", + "items": { + "$ref": "UserProfile" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userProfileList\".", + "type": "string" + } + }, + "type": "object" + }, + "UserRole": { + "description": "Contains properties of auser role, which is used to manage user access.", + "id": "UserRole", + "properties": { + "accountId": { + "description": "Account ID of this user role. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + }, + "defaultUserRole": { + "description": "Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.", + "type": "boolean" + }, + "id": { + "description": "ID of this user role. This is a read-only, auto-generated field.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRole\".", + "type": "string" + }, + "name": { + "description": "Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.", + "type": "string" + }, + "parentUserRoleId": { + "description": "ID of the user role that this user role is based on or copied from. This is a required field.", + "format": "int64", + "type": "string" + }, + "permissions": { + "description": "List of permissions associated with this user role.", + "items": { + "$ref": "UserRolePermission" + }, + "type": "array" + }, + "subaccountId": { + "description": "Subaccount ID of this user role. This is a read-only field that can be left blank.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "UserRolePermission": { + "description": "Contains properties of a user role permission.", + "id": "UserRolePermission", + "properties": { + "availability": { + "description": "Levels of availability for a user role permission.", + "enum": [ + "NOT_AVAILABLE_BY_DEFAULT", + "ACCOUNT_BY_DEFAULT", + "SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT", + "ACCOUNT_ALWAYS", + "SUBACCOUNT_AND_ACCOUNT_ALWAYS", + "USER_PROFILE_ONLY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "id": { + "description": "ID of this user role permission.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermission\".", + "type": "string" + }, + "name": { + "description": "Name of this user role permission.", + "type": "string" + }, + "permissionGroupId": { + "description": "ID of the permission group that this user role permission belongs to.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "UserRolePermissionGroup": { + "description": "Represents a grouping of related user role permissions.", + "id": "UserRolePermissionGroup", + "properties": { + "id": { + "description": "ID of this user role permission.", + "format": "int64", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermissionGroup\".", + "type": "string" + }, + "name": { + "description": "Name of this user role permission group.", + "type": "string" + } + }, + "type": "object" + }, + "UserRolePermissionGroupsListResponse": { + "description": "User Role Permission Group List Response", + "id": "UserRolePermissionGroupsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermissionGroupsListResponse\".", + "type": "string" + }, + "userRolePermissionGroups": { + "description": "User role permission group collection.", + "items": { + "$ref": "UserRolePermissionGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserRolePermissionsListResponse": { + "description": "User Role Permission List Response", + "id": "UserRolePermissionsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermissionsListResponse\".", + "type": "string" + }, + "userRolePermissions": { + "description": "User role permission collection.", + "items": { + "$ref": "UserRolePermission" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserRolesListResponse": { + "description": "User Role List Response", + "id": "UserRolesListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolesListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Pagination token to be used for the next list operation.", + "type": "string" + }, + "userRoles": { + "description": "User role collection.", + "items": { + "$ref": "UserRole" + }, + "type": "array" + } + }, + "type": "object" + }, + "VideoFormat": { + "description": "Contains information about supported video formats.", + "id": "VideoFormat", + "properties": { + "fileType": { + "description": "File type of the video format.", + "enum": [ + "FLV", + "THREEGPP", + "MP4", + "WEBM", + "M3U8" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "id": { + "description": "ID of the video format.", + "format": "int32", + "type": "integer" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#videoFormat\".", + "type": "string" + }, + "resolution": { + "$ref": "Size", + "description": "The resolution of this video format." + }, + "targetBitRate": { + "description": "The target bit rate of this video format.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "VideoFormatsListResponse": { + "description": "Video Format List Response", + "id": "VideoFormatsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#videoFormatsListResponse\".", + "type": "string" + }, + "videoFormats": { + "description": "Video format collection.", + "items": { + "$ref": "VideoFormat" + }, + "type": "array" + } + }, + "type": "object" + }, + "VideoOffset": { + "description": "Video Offset", + "id": "VideoOffset", + "properties": { + "offsetPercentage": { + "description": "Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.", + "format": "int32", + "type": "integer" + }, + "offsetSeconds": { + "description": "Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "VideoSettings": { + "description": "Video Settings", + "id": "VideoSettings", + "properties": { + "companionSettings": { + "$ref": "CompanionSetting", + "description": "Settings for the companion creatives of video creatives served to this placement." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#videoSettings\".", + "type": "string" + }, + "orientation": { + "description": "Orientation of a video placement. If this value is set, placement will return assets matching the specified orientation.", + "enum": [ + "ANY", + "LANDSCAPE", + "PORTRAIT" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "skippableSettings": { + "$ref": "SkippableSetting", + "description": "Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden." + }, + "transcodeSettings": { + "$ref": "TranscodeSetting", + "description": "Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden." + } + }, + "type": "object" + } + }, + "servicePath": "dfareporting/v3.3/", + "title": "Campaign Manager 360 API", + "version": "v3.3" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/digitalassetlinks.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/digitalassetlinks.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..54782689ae49f00d50c51455f873c114cbb995f5 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/digitalassetlinks.v1.json @@ -0,0 +1,376 @@ +{ +"basePath": "", +"baseUrl": "https://digitalassetlinks.googleapis.com/", +"batchPath": "batch", +"description": "Discovers relationships between online assets such as websites or mobile apps.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/digital-asset-links/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "digitalassetlinks:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://digitalassetlinks.mtls.googleapis.com/", +"name": "digitalassetlinks", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"assetlinks": { +"methods": { +"check": { +"description": "Determines whether the specified (directional) relationship exists between the specified source and target assets. The relation describes the intent of the link between the two assets as claimed by the source asset. An example for such relationships is the delegation of privileges or permissions. This command is most often used by infrastructure systems to check preconditions for an action. For example, a client may want to know if it is OK to send a web URL to a particular mobile app instead. The client can check for the relevant asset link from the website to the mobile app to decide if the operation should be allowed. A note about security: if you specify a secure asset as the source, such as an HTTPS website or an Android app, the API will ensure that any statements used to generate the response have been made in a secure way by the owner of that asset. Conversely, if the source asset is an insecure HTTP website (that is, the URL starts with `http://` instead of `https://`), the API cannot verify its statements securely, and it is not possible to ensure that the website's statements have not been altered by a third party. For more information, see the [Digital Asset Links technical design specification](https://github.com/google/digitalassetlinks/blob/master/well-known/details.md).", +"flatPath": "v1/assetlinks:check", +"httpMethod": "GET", +"id": "digitalassetlinks.assetlinks.check", +"parameterOrder": [], +"parameters": { +"relation": { +"description": "Query string for the relation. We identify relations with strings of the format `/`, where `` must be one of a set of pre-defined purpose categories, and `` is a free-form lowercase alphanumeric string that describes the specific use case of the statement. Refer to [our API documentation](/digital-asset-links/v1/relation-strings) for the current list of supported relations. For a query to match an asset link, both the query's and the asset link's relation strings must match exactly. Example: A query with relation `delegate_permission/common.handle_all_urls` matches an asset link with relation `delegate_permission/common.handle_all_urls`.", +"location": "query", +"type": "string" +}, +"source.androidApp.certificate.sha256Fingerprint": { +"description": "The uppercase SHA-265 fingerprint of the certificate. From the PEM certificate, it can be acquired like this: $ keytool -printcert -file $CERTFILE | grep SHA256: SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \\ 42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 or like this: $ openssl x509 -in $CERTFILE -noout -fingerprint -sha256 SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \\ 16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 In this example, the contents of this field would be `14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5`. If these tools are not available to you, you can convert the PEM certificate into the DER format, compute the SHA-256 hash of that string and represent the result as a hexstring (that is, uppercase hexadecimal representations of each octet, separated by colons).", +"location": "query", +"type": "string" +}, +"source.androidApp.packageName": { +"description": "Android App assets are naturally identified by their Java package name. For example, the Google Maps app uses the package name `com.google.android.apps.maps`. REQUIRED", +"location": "query", +"type": "string" +}, +"source.web.site": { +"description": "Web assets are identified by a URL that contains only the scheme, hostname and port parts. The format is http[s]://[:] Hostnames must be fully qualified: they must end in a single period (\"`.`\"). Only the schemes \"http\" and \"https\" are currently allowed. Port numbers are given as a decimal number, and they must be omitted if the standard port numbers are used: 80 for http and 443 for https. We call this limited URL the \"site\". All URLs that share the same scheme, hostname and port are considered to be a part of the site and thus belong to the web asset. Example: the asset with the site `https://www.google.com` contains all these URLs: * `https://www.google.com/` * `https://www.google.com:443/` * `https://www.google.com/foo` * `https://www.google.com/foo?bar` * `https://www.google.com/foo#bar` * `https://user@password:www.google.com/` But it does not contain these URLs: * `http://www.google.com/` (wrong scheme) * `https://google.com/` (hostname does not match) * `https://www.google.com:444/` (port does not match) REQUIRED", +"location": "query", +"type": "string" +}, +"target.androidApp.certificate.sha256Fingerprint": { +"description": "The uppercase SHA-265 fingerprint of the certificate. From the PEM certificate, it can be acquired like this: $ keytool -printcert -file $CERTFILE | grep SHA256: SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \\ 42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 or like this: $ openssl x509 -in $CERTFILE -noout -fingerprint -sha256 SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \\ 16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 In this example, the contents of this field would be `14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5`. If these tools are not available to you, you can convert the PEM certificate into the DER format, compute the SHA-256 hash of that string and represent the result as a hexstring (that is, uppercase hexadecimal representations of each octet, separated by colons).", +"location": "query", +"type": "string" +}, +"target.androidApp.packageName": { +"description": "Android App assets are naturally identified by their Java package name. For example, the Google Maps app uses the package name `com.google.android.apps.maps`. REQUIRED", +"location": "query", +"type": "string" +}, +"target.web.site": { +"description": "Web assets are identified by a URL that contains only the scheme, hostname and port parts. The format is http[s]://[:] Hostnames must be fully qualified: they must end in a single period (\"`.`\"). Only the schemes \"http\" and \"https\" are currently allowed. Port numbers are given as a decimal number, and they must be omitted if the standard port numbers are used: 80 for http and 443 for https. We call this limited URL the \"site\". All URLs that share the same scheme, hostname and port are considered to be a part of the site and thus belong to the web asset. Example: the asset with the site `https://www.google.com` contains all these URLs: * `https://www.google.com/` * `https://www.google.com:443/` * `https://www.google.com/foo` * `https://www.google.com/foo?bar` * `https://www.google.com/foo#bar` * `https://user@password:www.google.com/` But it does not contain these URLs: * `http://www.google.com/` (wrong scheme) * `https://google.com/` (hostname does not match) * `https://www.google.com:444/` (port does not match) REQUIRED", +"location": "query", +"type": "string" +} +}, +"path": "v1/assetlinks:check", +"response": { +"$ref": "CheckResponse" +} +} +} +}, +"statements": { +"methods": { +"list": { +"description": "Retrieves a list of all statements from a given source that match the specified target and statement string. The API guarantees that all statements with secure source assets, such as HTTPS websites or Android apps, have been made in a secure way by the owner of those assets, as described in the [Digital Asset Links technical design specification](https://github.com/google/digitalassetlinks/blob/master/well-known/details.md). Specifically, you should consider that for insecure websites (that is, where the URL starts with `http://` instead of `https://`), this guarantee cannot be made. The `List` command is most useful in cases where the API client wants to know all the ways in which two assets are related, or enumerate all the relationships from a particular source asset. Example: a feature that helps users navigate to related items. When a mobile app is running on a device, the feature would make it easy to navigate to the corresponding web site or Google+ profile.", +"flatPath": "v1/statements:list", +"httpMethod": "GET", +"id": "digitalassetlinks.statements.list", +"parameterOrder": [], +"parameters": { +"relation": { +"description": "Use only associations that match the specified relation. See the [`Statement`](#Statement) message for a detailed definition of relation strings. For a query to match a statement, one of the following must be true: * both the query's and the statement's relation strings match exactly, or * the query's relation string is empty or missing. Example: A query with relation `delegate_permission/common.handle_all_urls` matches an asset link with relation `delegate_permission/common.handle_all_urls`.", +"location": "query", +"type": "string" +}, +"source.androidApp.certificate.sha256Fingerprint": { +"description": "The uppercase SHA-265 fingerprint of the certificate. From the PEM certificate, it can be acquired like this: $ keytool -printcert -file $CERTFILE | grep SHA256: SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \\ 42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 or like this: $ openssl x509 -in $CERTFILE -noout -fingerprint -sha256 SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \\ 16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 In this example, the contents of this field would be `14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5`. If these tools are not available to you, you can convert the PEM certificate into the DER format, compute the SHA-256 hash of that string and represent the result as a hexstring (that is, uppercase hexadecimal representations of each octet, separated by colons).", +"location": "query", +"type": "string" +}, +"source.androidApp.packageName": { +"description": "Android App assets are naturally identified by their Java package name. For example, the Google Maps app uses the package name `com.google.android.apps.maps`. REQUIRED", +"location": "query", +"type": "string" +}, +"source.web.site": { +"description": "Web assets are identified by a URL that contains only the scheme, hostname and port parts. The format is http[s]://[:] Hostnames must be fully qualified: they must end in a single period (\"`.`\"). Only the schemes \"http\" and \"https\" are currently allowed. Port numbers are given as a decimal number, and they must be omitted if the standard port numbers are used: 80 for http and 443 for https. We call this limited URL the \"site\". All URLs that share the same scheme, hostname and port are considered to be a part of the site and thus belong to the web asset. Example: the asset with the site `https://www.google.com` contains all these URLs: * `https://www.google.com/` * `https://www.google.com:443/` * `https://www.google.com/foo` * `https://www.google.com/foo?bar` * `https://www.google.com/foo#bar` * `https://user@password:www.google.com/` But it does not contain these URLs: * `http://www.google.com/` (wrong scheme) * `https://google.com/` (hostname does not match) * `https://www.google.com:444/` (port does not match) REQUIRED", +"location": "query", +"type": "string" +} +}, +"path": "v1/statements:list", +"response": { +"$ref": "ListResponse" +} +} +} +} +}, +"revision": "20241207", +"rootUrl": "https://digitalassetlinks.googleapis.com/", +"schemas": { +"AndroidAppAsset": { +"description": "Describes an android app asset.", +"id": "AndroidAppAsset", +"properties": { +"certificate": { +"$ref": "CertificateInfo", +"description": "Because there is no global enforcement of package name uniqueness, we also require a signing certificate, which in combination with the package name uniquely identifies an app. Some apps' signing keys are rotated, so they may be signed by different keys over time. We treat these as distinct assets, since we use (package name, cert) as the unique ID. This should not normally pose any problems as both versions of the app will make the same or similar statements. Other assets making statements about the app will have to be updated when a key is rotated, however. (Note that the syntaxes for publishing and querying for statements contain syntactic sugar to easily let you specify apps that are known by multiple certificates.) REQUIRED" +}, +"packageName": { +"description": "Android App assets are naturally identified by their Java package name. For example, the Google Maps app uses the package name `com.google.android.apps.maps`. REQUIRED", +"type": "string" +} +}, +"type": "object" +}, +"Asset": { +"description": "Uniquely identifies an asset. A digital asset is an identifiable and addressable online entity that typically provides some service or content. Examples of assets are websites, Android apps, Twitter feeds, and Plus Pages.", +"id": "Asset", +"properties": { +"androidApp": { +"$ref": "AndroidAppAsset", +"description": "Set if this is an Android App asset." +}, +"web": { +"$ref": "WebAsset", +"description": "Set if this is a web asset." +} +}, +"type": "object" +}, +"CertificateInfo": { +"description": "Describes an X509 certificate.", +"id": "CertificateInfo", +"properties": { +"sha256Fingerprint": { +"description": "The uppercase SHA-265 fingerprint of the certificate. From the PEM certificate, it can be acquired like this: $ keytool -printcert -file $CERTFILE | grep SHA256: SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \\ 42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 or like this: $ openssl x509 -in $CERTFILE -noout -fingerprint -sha256 SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \\ 16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 In this example, the contents of this field would be `14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5`. If these tools are not available to you, you can convert the PEM certificate into the DER format, compute the SHA-256 hash of that string and represent the result as a hexstring (that is, uppercase hexadecimal representations of each octet, separated by colons).", +"type": "string" +} +}, +"type": "object" +}, +"CheckResponse": { +"description": "Response message for the CheckAssetLinks call.", +"id": "CheckResponse", +"properties": { +"debugString": { +"description": "Human-readable message containing information intended to help end users understand, reproduce and debug the result. The message will be in English and we are currently not planning to offer any translations. Please note that no guarantees are made about the contents or format of this string. Any aspect of it may be subject to change without notice. You should not attempt to programmatically parse this data. For programmatic access, use the error_code field below.", +"type": "string" +}, +"errorCode": { +"description": "Error codes that describe the result of the Check operation.", +"items": { +"enum": [ +"ERROR_CODE_UNSPECIFIED", +"ERROR_CODE_INVALID_QUERY", +"ERROR_CODE_FETCH_ERROR", +"ERROR_CODE_FAILED_SSL_VALIDATION", +"ERROR_CODE_REDIRECT", +"ERROR_CODE_TOO_LARGE", +"ERROR_CODE_MALFORMED_HTTP_RESPONSE", +"ERROR_CODE_WRONG_CONTENT_TYPE", +"ERROR_CODE_MALFORMED_CONTENT", +"ERROR_CODE_SECURE_ASSET_INCLUDES_INSECURE", +"ERROR_CODE_FETCH_BUDGET_EXHAUSTED" +], +"enumDescriptions": [ +"Default value, otherwise unused.", +"Unable to parse query.", +"Unable to fetch the asset links data.", +"Invalid HTTPS certificate .", +"HTTP redirects (e.g, 301) are not allowed.", +"Asset links data exceeds maximum size.", +"Can't parse HTTP response.", +"HTTP Content-type should be application/json.", +"JSON content is malformed.", +"A secure asset includes an insecure asset (security downgrade).", +"Too many includes (maybe a loop)." +], +"type": "string" +}, +"type": "array" +}, +"linked": { +"description": "Set to true if the assets specified in the request are linked by the relation specified in the request.", +"type": "boolean" +}, +"maxAge": { +"description": "From serving time, how much longer the response should be considered valid barring further updates. REQUIRED", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"ListResponse": { +"description": "Response message for the List call.", +"id": "ListResponse", +"properties": { +"debugString": { +"description": "Human-readable message containing information intended to help end users understand, reproduce and debug the result. The message will be in English and we are currently not planning to offer any translations. Please note that no guarantees are made about the contents or format of this string. Any aspect of it may be subject to change without notice. You should not attempt to programmatically parse this data. For programmatic access, use the error_code field below.", +"type": "string" +}, +"errorCode": { +"description": "Error codes that describe the result of the List operation.", +"items": { +"enum": [ +"ERROR_CODE_UNSPECIFIED", +"ERROR_CODE_INVALID_QUERY", +"ERROR_CODE_FETCH_ERROR", +"ERROR_CODE_FAILED_SSL_VALIDATION", +"ERROR_CODE_REDIRECT", +"ERROR_CODE_TOO_LARGE", +"ERROR_CODE_MALFORMED_HTTP_RESPONSE", +"ERROR_CODE_WRONG_CONTENT_TYPE", +"ERROR_CODE_MALFORMED_CONTENT", +"ERROR_CODE_SECURE_ASSET_INCLUDES_INSECURE", +"ERROR_CODE_FETCH_BUDGET_EXHAUSTED" +], +"enumDescriptions": [ +"Default value, otherwise unused.", +"Unable to parse query.", +"Unable to fetch the asset links data.", +"Invalid HTTPS certificate .", +"HTTP redirects (e.g, 301) are not allowed.", +"Asset links data exceeds maximum size.", +"Can't parse HTTP response.", +"HTTP Content-type should be application/json.", +"JSON content is malformed.", +"A secure asset includes an insecure asset (security downgrade).", +"Too many includes (maybe a loop)." +], +"type": "string" +}, +"type": "array" +}, +"maxAge": { +"description": "From serving time, how much longer the response should be considered valid barring further updates. REQUIRED", +"format": "google-duration", +"type": "string" +}, +"statements": { +"description": "A list of all the matching statements that have been found.", +"items": { +"$ref": "Statement" +}, +"type": "array" +} +}, +"type": "object" +}, +"Statement": { +"description": "Describes a reliable statement that has been made about the relationship between a source asset and a target asset. Statements are always made by the source asset, either directly or by delegating to a statement list that is stored elsewhere. For more detailed definitions of statements and assets, please refer to our [API documentation landing page](/digital-asset-links/v1/getting-started).", +"id": "Statement", +"properties": { +"relation": { +"description": "The relation identifies the use of the statement as intended by the source asset's owner (that is, the person or entity who issued the statement). Every complete statement has a relation. We identify relations with strings of the format `/`, where `` must be one of a set of pre-defined purpose categories, and `` is a free-form lowercase alphanumeric string that describes the specific use case of the statement. Refer to [our API documentation](/digital-asset-links/v1/relation-strings) for the current list of supported relations. Example: `delegate_permission/common.handle_all_urls` REQUIRED", +"type": "string" +}, +"source": { +"$ref": "Asset", +"description": "Every statement has a source asset. REQUIRED" +}, +"target": { +"$ref": "Asset", +"description": "Every statement has a target asset. REQUIRED" +} +}, +"type": "object" +}, +"WebAsset": { +"description": "Describes a web asset.", +"id": "WebAsset", +"properties": { +"site": { +"description": "Web assets are identified by a URL that contains only the scheme, hostname and port parts. The format is http[s]://[:] Hostnames must be fully qualified: they must end in a single period (\"`.`\"). Only the schemes \"http\" and \"https\" are currently allowed. Port numbers are given as a decimal number, and they must be omitted if the standard port numbers are used: 80 for http and 443 for https. We call this limited URL the \"site\". All URLs that share the same scheme, hostname and port are considered to be a part of the site and thus belong to the web asset. Example: the asset with the site `https://www.google.com` contains all these URLs: * `https://www.google.com/` * `https://www.google.com:443/` * `https://www.google.com/foo` * `https://www.google.com/foo?bar` * `https://www.google.com/foo#bar` * `https://user@password:www.google.com/` But it does not contain these URLs: * `http://www.google.com/` (wrong scheme) * `https://google.com/` (hostname does not match) * `https://www.google.com:444/` (port does not match) REQUIRED", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Digital Asset Links API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/discovery.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/discovery.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..97434b0f0a22f726fea76a1f37a76ffe7ba2ce68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/discovery.v1.json @@ -0,0 +1,738 @@ +{ +"basePath": "/discovery/v1/", +"baseUrl": "https://www.googleapis.com/discovery/v1/", +"batchPath": "batch/discovery/v1", +"description": "Provides information about other Google APIs, such as what APIs are available, the resource, and method details for each API.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/discovery/", +"etag": "\"-2NioU2H8y8siEzrBOV_qzRI6kQ/vabF8Q1ADCm_Bt9EBq9rkrRawQA\"", +"icons": { +"x16": "http://www.google.com/images/icons/feature/filing_cabinet_search-g16.png", +"x32": "http://www.google.com/images/icons/feature/filing_cabinet_search-g32.png" +}, +"id": "discovery:v1", +"kind": "discovery#restDescription", +"name": "discovery", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"alt": { +"default": "json", +"description": "Data format for the response.", +"enum": [ +"json" +], +"enumDescriptions": [ +"Responses with Content-Type of application/json" +], +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.", +"location": "query", +"type": "string" +}, +"userIp": { +"description": "Deprecated. Please use quotaUser instead.", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"apis": { +"methods": { +"getRest": { +"description": "Retrieve the description of a particular version of an api.", +"httpMethod": "GET", +"id": "discovery.apis.getRest", +"parameterOrder": [ +"api", +"version" +], +"parameters": { +"api": { +"description": "The name of the API.", +"location": "path", +"required": true, +"type": "string" +}, +"version": { +"description": "The version of the API.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apis/{api}/{version}/rest", +"response": { +"$ref": "RestDescription" +} +}, +"list": { +"description": "Retrieve the list of APIs supported at this endpoint.", +"httpMethod": "GET", +"id": "discovery.apis.list", +"parameters": { +"name": { +"description": "Only include APIs with the given name.", +"location": "query", +"type": "string" +}, +"preferred": { +"default": "false", +"description": "Return only the preferred version of an API.", +"location": "query", +"type": "boolean" +} +}, +"path": "apis", +"response": { +"$ref": "DirectoryList" +} +} +} +} +}, +"revision": "20200806", +"rootUrl": "https://www.googleapis.com/", +"schemas": { +"DirectoryList": { +"id": "DirectoryList", +"properties": { +"discoveryVersion": { +"default": "v1", +"description": "Indicate the version of the Discovery API used to generate this doc.", +"type": "string" +}, +"items": { +"description": "The individual directory entries. One entry per api/version pair.", +"items": { +"properties": { +"description": { +"description": "The description of this API.", +"type": "string" +}, +"discoveryLink": { +"description": "A link to the discovery document.", +"type": "string" +}, +"discoveryRestUrl": { +"description": "The URL for the discovery REST document.", +"type": "string" +}, +"documentationLink": { +"description": "A link to human readable documentation for the API.", +"type": "string" +}, +"icons": { +"description": "Links to 16x16 and 32x32 icons representing the API.", +"properties": { +"x16": { +"description": "The URL of the 16x16 icon.", +"type": "string" +}, +"x32": { +"description": "The URL of the 32x32 icon.", +"type": "string" +} +}, +"type": "object" +}, +"id": { +"description": "The id of this API.", +"type": "string" +}, +"kind": { +"default": "discovery#directoryItem", +"description": "The kind for this response.", +"type": "string" +}, +"labels": { +"description": "Labels for the status of this API, such as labs or deprecated.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the API.", +"type": "string" +}, +"preferred": { +"description": "True if this version is the preferred version to use.", +"type": "boolean" +}, +"title": { +"description": "The title of this API.", +"type": "string" +}, +"version": { +"description": "The version of the API.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"kind": { +"default": "discovery#directoryList", +"description": "The kind for this response.", +"type": "string" +} +}, +"type": "object" +}, +"JsonSchema": { +"id": "JsonSchema", +"properties": { +"$ref": { +"description": "A reference to another schema. The value of this property is the \"id\" of another schema.", +"type": "string" +}, +"additionalProperties": { +"$ref": "JsonSchema", +"description": "If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object." +}, +"annotations": { +"description": "Additional information about this property.", +"properties": { +"required": { +"description": "A list of methods for which this property is required on requests.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"default": { +"description": "The default value of this property (if one exists).", +"type": "string" +}, +"deprecated": { +"description": "Whether the parameter is deprecated.", +"type": "boolean" +}, +"description": { +"description": "A description of this object.", +"type": "string" +}, +"enum": { +"description": "Values this parameter may take (if it is an enum).", +"items": { +"type": "string" +}, +"type": "array" +}, +"enumDeprecated": { +"description": "The deprecation status for the enums. Each position maps to the corresponding value in the \"enum\" array.", +"items": { +"type": "boolean" +}, +"type": "array" +}, +"enumDescriptions": { +"description": "The descriptions for the enums. Each position maps to the corresponding value in the \"enum\" array.", +"items": { +"type": "string" +}, +"type": "array" +}, +"format": { +"description": "An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23", +"type": "string" +}, +"id": { +"description": "Unique identifier for this schema.", +"type": "string" +}, +"items": { +"$ref": "JsonSchema", +"description": "If this is a schema for an array, this property is the schema for each element in the array." +}, +"location": { +"description": "Whether this parameter goes in the query or the path for REST requests.", +"type": "string" +}, +"maximum": { +"description": "The maximum value of this parameter.", +"type": "string" +}, +"minimum": { +"description": "The minimum value of this parameter.", +"type": "string" +}, +"pattern": { +"description": "The regular expression this parameter must conform to. Uses Java 6 regex format: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html", +"type": "string" +}, +"properties": { +"additionalProperties": { +"$ref": "JsonSchema", +"description": "A single property of this object. The value is itself a JSON Schema object describing this property." +}, +"description": "If this is a schema for an object, list the schema for each property of this object.", +"type": "object" +}, +"readOnly": { +"description": "The value is read-only, generated by the service. The value cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is ignored by the service.", +"type": "boolean" +}, +"repeated": { +"description": "Whether this parameter may appear multiple times.", +"type": "boolean" +}, +"required": { +"description": "Whether the parameter is required.", +"type": "boolean" +}, +"type": { +"description": "The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1", +"type": "string" +}, +"variant": { +"description": "In a variant data type, the value of one property is used to determine how to interpret the entire entity. Its value must exist in a map of descriminant values to schema names.", +"properties": { +"discriminant": { +"description": "The name of the type discriminant property.", +"type": "string" +}, +"map": { +"description": "The map of discriminant value to schema to use for parsing..", +"items": { +"properties": { +"$ref": { +"type": "string" +}, +"type_value": { +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"RestDescription": { +"id": "RestDescription", +"properties": { +"auth": { +"description": "Authentication information.", +"properties": { +"oauth2": { +"description": "OAuth 2.0 authentication information.", +"properties": { +"scopes": { +"additionalProperties": { +"description": "The scope value.", +"properties": { +"description": { +"description": "Description of scope.", +"type": "string" +} +}, +"type": "object" +}, +"description": "Available OAuth 2.0 scopes.", +"type": "object" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"basePath": { +"description": "[DEPRECATED] The base path for REST requests.", +"type": "string" +}, +"baseUrl": { +"description": "[DEPRECATED] The base URL for REST requests.", +"type": "string" +}, +"batchPath": { +"description": "The path for REST batch requests.", +"type": "string" +}, +"canonicalName": { +"description": "Indicates how the API name should be capitalized and split into various parts. Useful for generating pretty class names.", +"type": "string" +}, +"description": { +"description": "The description of this API.", +"type": "string" +}, +"discoveryVersion": { +"default": "v1", +"description": "Indicate the version of the Discovery API used to generate this doc.", +"type": "string" +}, +"documentationLink": { +"description": "A link to human readable documentation for the API.", +"type": "string" +}, +"endpoints": { +"description": "A list of location-based endpoint objects for this API. Each object contains the endpoint URL, location, description and deprecation status.", +"items": { +"description": "A single endpoint object", +"properties": { +"deprecated": { +"description": "Whether this endpoint is deprecated", +"type": "boolean" +}, +"description": { +"description": "A string describing the host designated by the URL", +"type": "string" +}, +"endpointUrl": { +"description": "The URL of the endpoint target host", +"type": "string" +}, +"location": { +"description": "The location of the endpoint", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"etag": { +"description": "The ETag for this response.", +"readOnly": true, +"type": "string" +}, +"exponentialBackoffDefault": { +"description": "Enable exponential backoff for suitable methods in the generated clients.", +"type": "boolean" +}, +"features": { +"description": "A list of supported features for this API.", +"items": { +"type": "string" +}, +"type": "array" +}, +"icons": { +"description": "Links to 16x16 and 32x32 icons representing the API.", +"properties": { +"x16": { +"description": "The URL of the 16x16 icon.", +"type": "string" +}, +"x32": { +"description": "The URL of the 32x32 icon.", +"type": "string" +} +}, +"type": "object" +}, +"id": { +"description": "The ID of this API.", +"type": "string" +}, +"kind": { +"default": "discovery#restDescription", +"description": "The kind for this response.", +"type": "string" +}, +"labels": { +"description": "Labels for the status of this API, such as labs or deprecated.", +"items": { +"type": "string" +}, +"type": "array" +}, +"methods": { +"additionalProperties": { +"$ref": "RestMethod", +"description": "An individual method description." +}, +"description": "API-level methods for this API.", +"type": "object" +}, +"name": { +"description": "The name of this API.", +"type": "string" +}, +"ownerDomain": { +"description": "The domain of the owner of this API. Together with the ownerName and a packagePath values, this can be used to generate a library for this API which would have a unique fully qualified name.", +"type": "string" +}, +"ownerName": { +"description": "The name of the owner of this API. See ownerDomain.", +"type": "string" +}, +"packagePath": { +"description": "The package of the owner of this API. See ownerDomain.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"$ref": "JsonSchema", +"description": "Description of a single parameter." +}, +"description": "Common parameters that apply across all apis.", +"type": "object" +}, +"protocol": { +"default": "rest", +"description": "The protocol described by this document.", +"type": "string" +}, +"resources": { +"additionalProperties": { +"$ref": "RestResource", +"description": "An individual resource description. Contains methods and sub-resources related to this resource." +}, +"description": "The resources in this API.", +"type": "object" +}, +"revision": { +"description": "The version of this API.", +"type": "string" +}, +"rootUrl": { +"description": "The root URL under which all API services live.", +"type": "string" +}, +"schemas": { +"additionalProperties": { +"$ref": "JsonSchema", +"description": "An individual schema description." +}, +"description": "The schemas for this API.", +"type": "object" +}, +"servicePath": { +"description": "The base path for all REST requests.", +"type": "string" +}, +"title": { +"description": "The title of this API.", +"type": "string" +}, +"version": { +"description": "The version of this API.", +"type": "string" +}, +"version_module": { +"type": "boolean" +} +}, +"type": "object" +}, +"RestMethod": { +"id": "RestMethod", +"properties": { +"apiVersion": { +"description": "The API Version of this method, as passed in via the `X-Goog-Api-Version` header or `$apiVersion` query parameter.", +"type": "string" +}, +"deprecated": { +"description": "Whether this method is deprecated.", +"type": "boolean" +}, +"description": { +"description": "Description of this method.", +"type": "string" +}, +"etagRequired": { +"description": "Whether this method requires an ETag to be specified. The ETag is sent as an HTTP If-Match or If-None-Match header.", +"type": "boolean" +}, +"flatPath": { +"description": "The URI path of this REST method in (RFC 6570) format without level 2 features ({+var}). Supplementary to the path property.", +"type": "string" +}, +"httpMethod": { +"description": "HTTP method used by this method.", +"type": "string" +}, +"id": { +"description": "A unique ID for this method. This property can be used to match methods between different versions of Discovery.", +"type": "string" +}, +"mediaUpload": { +"description": "Media upload parameters.", +"properties": { +"accept": { +"description": "MIME Media Ranges for acceptable media uploads to this method.", +"items": { +"type": "string" +}, +"type": "array" +}, +"maxSize": { +"description": "Maximum size of a media upload, such as \"1MB\", \"2GB\" or \"3TB\".", +"type": "string" +}, +"protocols": { +"description": "Supported upload protocols.", +"properties": { +"resumable": { +"description": "Supports the Resumable Media Upload protocol.", +"properties": { +"multipart": { +"default": "true", +"description": "True if this endpoint supports uploading multipart media.", +"type": "boolean" +}, +"path": { +"description": "The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.", +"type": "string" +} +}, +"type": "object" +}, +"simple": { +"description": "Supports uploading as a single HTTP request.", +"properties": { +"multipart": { +"default": "true", +"description": "True if this endpoint supports upload multipart media.", +"type": "boolean" +}, +"path": { +"description": "The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.", +"type": "string" +} +}, +"type": "object" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"parameterOrder": { +"description": "Ordered list of required parameters, serves as a hint to clients on how to structure their method signatures. The array is ordered such that the \"most-significant\" parameter appears first.", +"items": { +"type": "string" +}, +"type": "array" +}, +"parameters": { +"additionalProperties": { +"$ref": "JsonSchema", +"description": "Details for a single parameter in this method." +}, +"description": "Details for all parameters in this method.", +"type": "object" +}, +"path": { +"description": "The URI path of this REST method. Should be used in conjunction with the basePath property at the api-level.", +"type": "string" +}, +"request": { +"description": "The schema for the request.", +"properties": { +"$ref": { +"description": "Schema ID for the request schema.", +"type": "string" +}, +"parameterName": { +"description": "parameter name.", +"type": "string" +} +}, +"type": "object" +}, +"response": { +"description": "The schema for the response.", +"properties": { +"$ref": { +"description": "Schema ID for the response schema.", +"type": "string" +} +}, +"type": "object" +}, +"scopes": { +"description": "OAuth 2.0 scopes applicable to this method.", +"items": { +"type": "string" +}, +"type": "array" +}, +"supportsMediaDownload": { +"description": "Whether this method supports media downloads.", +"type": "boolean" +}, +"supportsMediaUpload": { +"description": "Whether this method supports media uploads.", +"type": "boolean" +}, +"supportsSubscription": { +"description": "Whether this method supports subscriptions.", +"type": "boolean" +}, +"useMediaDownloadService": { +"description": "Indicates that downloads from this method should use the download service URL (i.e. \"/download\"). Only applies if the method supports media download.", +"type": "boolean" +} +}, +"type": "object" +}, +"RestResource": { +"id": "RestResource", +"properties": { +"deprecated": { +"description": "Whether this resource is deprecated.", +"type": "boolean" +}, +"methods": { +"additionalProperties": { +"$ref": "RestMethod", +"description": "Description for any methods on this resource." +}, +"description": "Methods on this resource.", +"type": "object" +}, +"resources": { +"additionalProperties": { +"$ref": "RestResource", +"description": "Description for any sub-resources on this resource." +}, +"description": "Sub-resources on this resource.", +"type": "object" +} +}, +"type": "object" +} +}, +"servicePath": "discovery/v1/", +"title": "API Discovery Service", +"version": "v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/displayvideo.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/displayvideo.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..fb72b019302b161fcf9282dc9d0a4e84e23c533d --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/displayvideo.v2.json @@ -0,0 +1,21730 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/display-video": { +"description": "Create, see, edit, and permanently delete your Display & Video 360 entities and reports" +}, +"https://www.googleapis.com/auth/display-video-mediaplanning": { +"description": "Create, see, and edit Display & Video 360 Campaign entities and see billing invoices" +}, +"https://www.googleapis.com/auth/display-video-user-management": { +"description": "Private Service: https://www.googleapis.com/auth/display-video-user-management" +}, +"https://www.googleapis.com/auth/doubleclickbidmanager": { +"description": "View and manage your reports in DoubleClick Bid Manager" +} +} +} +}, +"basePath": "", +"baseUrl": "https://displayvideo.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Display Video", +"description": "Display & Video 360 API allows users to automate complex Display & Video 360 workflows, such as creating insertion orders and setting targeting options for individual line items.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/display-video/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "displayvideo:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://displayvideo.mtls.googleapis.com/", +"name": "displayvideo", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"advertisers": { +"methods": { +"audit": { +"description": "Audits an advertiser. Returns the counts of used entities per resource type under the advertiser provided. Used entities count towards their respective resource limit. See https://support.google.com/displayvideo/answer/6071450.", +"flatPath": "v2/advertisers/{advertisersId}:audit", +"httpMethod": "GET", +"id": "displayvideo.advertisers.audit", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to audit.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "Optional. The specific fields to return. If no mask is specified, all fields in the response proto will be filled. Valid values are: * usedLineItemsCount * usedInsertionOrdersCount * usedCampaignsCount * channelsCount * negativelyTargetedChannelsCount * negativeKeywordListsCount * adGroupCriteriaCount * campaignCriteriaCount", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}:audit", +"response": { +"$ref": "AuditAdvertiserResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a new advertiser. Returns the newly created advertiser if successful. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", +"flatPath": "v2/advertisers", +"httpMethod": "POST", +"id": "displayvideo.advertisers.create", +"parameterOrder": [], +"parameters": {}, +"path": "v2/advertisers", +"request": { +"$ref": "Advertiser" +}, +"response": { +"$ref": "Advertiser" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an advertiser. Deleting an advertiser will delete all of its child resources, for example, campaigns, insertion orders and line items. A deleted advertiser cannot be recovered.", +"flatPath": "v2/advertisers/{advertisersId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.delete", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser we need to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"editAssignedTargetingOptions": { +"description": "Edits targeting options under a single advertiser. The operation will delete the assigned targeting options provided in BulkEditAdvertiserAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditAdvertiserAssignedTargetingOptionsRequest.create_requests .", +"flatPath": "v2/advertisers/{advertisersId}:editAssignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.advertisers.editAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}:editAssignedTargetingOptions", +"request": { +"$ref": "BulkEditAdvertiserAssignedTargetingOptionsRequest" +}, +"response": { +"$ref": "BulkEditAdvertiserAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an advertiser.", +"flatPath": "v2/advertisers/{advertisersId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.get", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}", +"response": { +"$ref": "Advertiser" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists advertisers that are accessible to the current user. The order is defined by the order_by parameter. A single partner_id is required. Cross-partner listing is not supported.", +"flatPath": "v2/advertisers", +"httpMethod": "GET", +"id": "displayvideo.advertisers.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Allows filtering by advertiser fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `advertiserId` * `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All active advertisers under a partner: `entityStatus=\"ENTITY_STATUS_ACTIVE\"` * All advertisers with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All advertisers with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAdvertisers` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner that the fetched advertisers should all belong to. The system only supports listing advertisers for one partner at a time.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers", +"response": { +"$ref": "ListAdvertisersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"listAssignedTargetingOptions": { +"description": "Lists assigned targeting options of an advertiser across targeting types.", +"flatPath": "v2/advertisers/{advertisersId}:listAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.listAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=) operator`. Supported fields: * `targetingType` Examples: * targetingType with value TARGETING_TYPE_CHANNEL `targetingType=\"TARGETING_TYPE_CHANNEL\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is '5000'. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListAdvertiserAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}:listAssignedTargetingOptions", +"response": { +"$ref": "BulkListAdvertiserAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing advertiser. Returns the updated advertiser if successful.", +"flatPath": "v2/advertisers/{advertisersId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.patch", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}", +"request": { +"$ref": "Advertiser" +}, +"response": { +"$ref": "Advertiser" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"assets": { +"methods": { +"upload": { +"description": "Uploads an asset. Returns the ID of the newly uploaded asset if successful. The asset file size should be no more than 10 MB for images, 200 MB for ZIP files, and 1 GB for videos. Must be used within the [multipart media upload process](/display-video/api/guides/how-tos/upload#multipart). Examples using provided client libraries can be found in our [Creating Creatives guide](/display-video/api/guides/creating-creatives/overview#upload_an_asset).", +"flatPath": "v2/advertisers/{advertisersId}/assets", +"httpMethod": "POST", +"id": "displayvideo.advertisers.assets.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v2/advertisers/{+advertiserId}/assets" +} +} +}, +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this asset belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/assets", +"request": { +"$ref": "CreateAssetRequest" +}, +"response": { +"$ref": "CreateAssetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +], +"supportsMediaUpload": true +} +} +}, +"campaigns": { +"methods": { +"create": { +"description": "Creates a new campaign. Returns the newly created campaign if successful.", +"flatPath": "v2/advertisers/{advertisersId}/campaigns", +"httpMethod": "POST", +"id": "displayvideo.advertisers.campaigns.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/campaigns", +"request": { +"$ref": "Campaign" +}, +"response": { +"$ref": "Campaign" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"delete": { +"description": "Permanently deletes a campaign. A deleted campaign cannot be recovered. The campaign should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", +"flatPath": "v2/advertisers/{advertisersId}/campaigns/{campaignsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.campaigns.delete", +"parameterOrder": [ +"advertiserId", +"campaignId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser this campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "The ID of the campaign we need to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/campaigns/{+campaignId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"get": { +"description": "Gets a campaign.", +"flatPath": "v2/advertisers/{advertisersId}/campaigns/{campaignsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.get", +"parameterOrder": [ +"advertiserId", +"campaignId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Required. The ID of the campaign to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/campaigns/{+campaignId}", +"response": { +"$ref": "Campaign" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"list": { +"description": "Lists campaigns in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, campaigns with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v2/advertisers/{advertisersId}/campaigns", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser to list campaigns for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by campaign fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `campaignId` * `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` campaigns under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\")` * All campaigns with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All campaigns with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCampaigns` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/campaigns", +"response": { +"$ref": "ListCampaignsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"listAssignedTargetingOptions": { +"description": "Lists assigned targeting options of a campaign across targeting types.", +"flatPath": "v2/advertisers/{advertisersId}/campaigns/{campaignsId}:listAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.listAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId", +"campaignId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Required. The ID of the campaign to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_LANGUAGE` or `TARGETING_TYPE_GENDER`: `targetingType=\"TARGETING_TYPE_LANGUAGE\" OR targetingType=\"TARGETING_TYPE_GENDER\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListCampaignAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/campaigns/{+campaignId}:listAssignedTargetingOptions", +"response": { +"$ref": "BulkListCampaignAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing campaign. Returns the updated campaign if successful.", +"flatPath": "v2/advertisers/{advertisersId}/campaigns/{campaignsId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.campaigns.patch", +"parameterOrder": [ +"advertiserId", +"campaignId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Output only. The unique ID of the campaign. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/campaigns/{+campaignId}", +"request": { +"$ref": "Campaign" +}, +"response": { +"$ref": "Campaign" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +} +}, +"resources": { +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"get": { +"description": "Gets a single targeting option assigned to a campaign.", +"flatPath": "v2/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"campaignId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this campaign that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Required. The ID of the campaign the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to a campaign for a specified targeting type.", +"flatPath": "v2/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"campaignId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the campaign belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"campaignId": { +"description": "Required. The ID of the campaign to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or 2 `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER` `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCampaignAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListCampaignAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"channels": { +"methods": { +"create": { +"description": "Creates a new channel. Returns the newly created channel if successful.", +"flatPath": "v2/advertisers/{advertisersId}/channels", +"httpMethod": "POST", +"id": "displayvideo.advertisers.channels.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the created channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the created channel.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/channels", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a channel for a partner or advertiser.", +"flatPath": "v2/advertisers/{advertisersId}/channels/{channelsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.channels.get", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the fetched channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the channel to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the fetched channel.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/channels/{+channelId}", +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists channels for a partner or advertiser.", +"flatPath": "v2/advertisers/{advertisersId}/channels", +"httpMethod": "GET", +"id": "displayvideo.advertisers.channels.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the channels.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All channels for which the display name contains \"google\": `displayName : \"google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `channelId` The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListChannels` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the channels.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/channels", +"response": { +"$ref": "ListChannelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a channel. Returns the updated channel if successful.", +"flatPath": "v2/advertisers/{advertisersId}/channels/{channelId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.channels.patch", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the created channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Output only. The unique ID of the channel. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the created channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/channels/{channelId}", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"sites": { +"methods": { +"bulkEdit": { +"description": "Bulk edits sites under a single channel. The operation will delete the sites provided in BulkEditSitesRequest.deleted_sites and then create the sites provided in BulkEditSitesRequest.created_sites.", +"flatPath": "v2/advertisers/{advertiserId}/channels/{channelsId}/sites:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.advertisers.channels.sites.bulkEdit", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the sites belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/channels/{+channelId}/sites:bulkEdit", +"request": { +"$ref": "BulkEditSitesRequest" +}, +"response": { +"$ref": "BulkEditSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a site in a channel.", +"flatPath": "v2/advertisers/{advertiserId}/channels/{channelsId}/sites", +"httpMethod": "POST", +"id": "displayvideo.advertisers.channels.sites.create", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel in which the site will be created.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/channels/{+channelId}/sites", +"request": { +"$ref": "Site" +}, +"response": { +"$ref": "Site" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a site from a channel.", +"flatPath": "v2/advertisers/{advertiserId}/channels/{channelsId}/sites/{sitesId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.channels.sites.delete", +"parameterOrder": [ +"advertiserId", +"channelId", +"urlOrAppId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the site belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"urlOrAppId": { +"description": "Required. The URL or app ID of the site to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/channels/{+channelId}/sites/{+urlOrAppId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists sites in a channel.", +"flatPath": "v2/advertisers/{advertisersId}/channels/{channelsId}/sites", +"httpMethod": "GET", +"id": "displayvideo.advertisers.channels.sites.list", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the requested sites belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site retrieval can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `urlOrAppId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `urlOrAppId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `10000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListSites` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/channels/{+channelId}/sites", +"response": { +"$ref": "ListSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"replace": { +"description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", +"flatPath": "v2/advertisers/{advertiserId}/channels/{channelsId}/sites:replace", +"httpMethod": "POST", +"id": "displayvideo.advertisers.channels.sites.replace", +"parameterOrder": [ +"advertiserId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel whose sites will be replaced.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/channels/{+channelId}/sites:replace", +"request": { +"$ref": "ReplaceSitesRequest" +}, +"response": { +"$ref": "ReplaceSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"creatives": { +"methods": { +"create": { +"description": "Creates a new creative. Returns the newly created creative if successful. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", +"flatPath": "v2/advertisers/{advertisersId}/creatives", +"httpMethod": "POST", +"id": "displayvideo.advertisers.creatives.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the creative belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/creatives", +"request": { +"$ref": "Creative" +}, +"response": { +"$ref": "Creative" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a creative. Returns error code `NOT_FOUND` if the creative does not exist. The creative should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be deleted. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", +"flatPath": "v2/advertisers/{advertisersId}/creatives/{creativesId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.creatives.delete", +"parameterOrder": [ +"advertiserId", +"creativeId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser this creative belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"creativeId": { +"description": "The ID of the creative to be deleted.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/creatives/{+creativeId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a creative.", +"flatPath": "v2/advertisers/{advertisersId}/creatives/{creativesId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.creatives.get", +"parameterOrder": [ +"advertiserId", +"creativeId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this creative belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"creativeId": { +"description": "Required. The ID of the creative to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/creatives/{+creativeId}", +"response": { +"$ref": "Creative" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists creatives in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, creatives with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v2/advertisers/{advertisersId}/creatives", +"httpMethod": "GET", +"id": "displayvideo.advertisers.creatives.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to list creatives for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by creative fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `lineItemIds` field must use the `HAS (:)` operator. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. * For `entityStatus`, `minDuration`, `maxDuration`, `updateTime`, and `dynamic` fields, there may be at most one restriction. Supported Fields: * `approvalStatus` * `creativeId` * `creativeType` * `dimensions` (input in the form of `{width}x{height}`) * `dynamic` * `entityStatus` * `exchangeReviewStatus` (input in the form of `{exchange}-{reviewStatus}`) * `lineItemIds` * `maxDuration` (input in the form of `{duration}s`. Only seconds are supported) * `minDuration` (input in the form of `{duration}s`. Only seconds are supported) * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Notes: * For `updateTime`, a creative resource's field value reflects the last time that a creative has been updated, which includes updates made by the system (e.g. creative review updates). Examples: * All native creatives: `creativeType=\"CREATIVE_TYPE_NATIVE\"` * All active creatives with 300x400 or 50x100 dimensions: `entityStatus=\"ENTITY_STATUS_ACTIVE\" AND (dimensions=\"300x400\" OR dimensions=\"50x100\")` * All dynamic creatives that are approved by AdX or AppNexus, with a minimum duration of 5 seconds and 200ms: `dynamic=\"true\" AND minDuration=\"5.2s\" AND (exchangeReviewStatus=\"EXCHANGE_GOOGLE_AD_MANAGER-REVIEW_STATUS_APPROVED\" OR exchangeReviewStatus=\"EXCHANGE_APPNEXUS-REVIEW_STATUS_APPROVED\")` * All video creatives that are associated with line item ID 1 or 2: `creativeType=\"CREATIVE_TYPE_VIDEO\" AND (lineItemIds:1 OR lineItemIds:2)` * Find creatives by multiple creative IDs: `creativeId=1 OR creativeId=2` * All creatives with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `creativeId` (default) * `createTime` * `mediaDuration` * `dimensions` (sorts by width first, then by height) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `createTime desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCreatives` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/creatives", +"response": { +"$ref": "ListCreativesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing creative. Returns the updated creative if successful. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", +"flatPath": "v2/advertisers/{advertisersId}/creatives/{creativesId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.creatives.patch", +"parameterOrder": [ +"advertiserId", +"creativeId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the creative belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"creativeId": { +"description": "Output only. The unique ID of the creative. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/creatives/{+creativeId}", +"request": { +"$ref": "Creative" +}, +"response": { +"$ref": "Creative" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"insertionOrders": { +"methods": { +"create": { +"description": "Creates a new insertion order. Returns the newly created insertion order if successful.", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders", +"httpMethod": "POST", +"id": "displayvideo.advertisers.insertionOrders.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders", +"request": { +"$ref": "InsertionOrder" +}, +"response": { +"$ref": "InsertionOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an insertion order. Returns error code `NOT_FOUND` if the insertion order does not exist. The insertion order should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.insertionOrders.delete", +"parameterOrder": [ +"advertiserId", +"insertionOrderId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser this insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "The ID of the insertion order to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an insertion order. Returns error code `NOT_FOUND` if the insertion order does not exist.", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.get", +"parameterOrder": [ +"advertiserId", +"insertionOrderId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}", +"response": { +"$ref": "InsertionOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists insertion orders in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, insertion orders with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to list insertion orders for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by insertion order fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `campaignId` * `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All insertion orders under a campaign: `campaignId=\"1234\"` * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` insertion orders under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\")` * All insertion orders with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All insertion orders with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * \"displayName\" (default) * \"entityStatus\" * \"updateTime\" The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInsertionOrders` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders", +"response": { +"$ref": "ListInsertionOrdersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"listAssignedTargetingOptions": { +"description": "Lists assigned targeting options of an insertion order across targeting types.", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}:listAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.listAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId", +"insertionOrderId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` or `TARGETING_TYPE_CHANNEL`: `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListInsertionOrderAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}:listAssignedTargetingOptions", +"response": { +"$ref": "BulkListInsertionOrderAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing insertion order. Returns the updated insertion order if successful.", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.insertionOrders.patch", +"parameterOrder": [ +"advertiserId", +"insertionOrderId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "Output only. The unique ID of the insertion order. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}", +"request": { +"$ref": "InsertionOrder" +}, +"response": { +"$ref": "InsertionOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"create": { +"description": "Assigns a targeting option to an insertion order. Returns the assigned targeting option if successful. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_VIEWABILITY`", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.create", +"parameterOrder": [ +"advertiserId", +"insertionOrderId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order the assigned targeting option will belong to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"request": { +"$ref": "AssignedTargetingOption" +}, +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an assigned targeting option from an insertion order. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_VIEWABILITY`", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.delete", +"parameterOrder": [ +"advertiserId", +"insertionOrderId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. The ID of the assigned targeting option to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a single targeting option assigned to an insertion order.", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"insertionOrderId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this insertion order that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to an insertion order.", +"flatPath": "v2/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"insertionOrderId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the insertion order belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or 2: `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The ID of the insertion order to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInsertionOrderAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListInsertionOrderAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"invoices": { +"methods": { +"list": { +"description": "Lists invoices posted for an advertiser in a given month. Invoices generated by billing profiles with a \"Partner\" invoice level are not retrievable through this method.", +"flatPath": "v2/advertisers/{advertisersId}/invoices", +"httpMethod": "GET", +"id": "displayvideo.advertisers.invoices.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to list invoices for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"issueMonth": { +"description": "The month to list the invoices for. If not set, the request will retrieve invoices for the previous month. Must be in the format YYYYMM.", +"location": "query", +"type": "string" +}, +"loiSapinInvoiceType": { +"description": "Select type of invoice to retrieve for Loi Sapin advertisers. Only applicable to Loi Sapin advertisers. Will be ignored otherwise.", +"enum": [ +"LOI_SAPIN_INVOICE_TYPE_UNSPECIFIED", +"LOI_SAPIN_INVOICE_TYPE_MEDIA", +"LOI_SAPIN_INVOICE_TYPE_PLATFORM" +], +"enumDescriptions": [ +"Value is not specified.", +"Invoices with Media cost.", +"Invoices with Platform fee." +], +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInvoices` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/invoices", +"response": { +"$ref": "ListInvoicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +}, +"lookupInvoiceCurrency": { +"description": "Retrieves the invoice currency used by an advertiser in a given month.", +"flatPath": "v2/advertisers/{advertisersId}/invoices:lookupInvoiceCurrency", +"httpMethod": "GET", +"id": "displayvideo.advertisers.invoices.lookupInvoiceCurrency", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to lookup currency for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"invoiceMonth": { +"description": "Month for which the currency is needed. If not set, the request will return existing currency settings for the advertiser. Must be in the format YYYYMM.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/invoices:lookupInvoiceCurrency", +"response": { +"$ref": "LookupInvoiceCurrencyResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/display-video-mediaplanning" +] +} +} +}, +"lineItems": { +"methods": { +"bulkEditAssignedTargetingOptions": { +"description": "Bulk edits targeting options under multiple line items. The operation will delete the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.create_requests. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkUpdate * lineItems.patch * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems:bulkEditAssignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.bulkEditAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line items belong to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems:bulkEditAssignedTargetingOptions", +"request": { +"$ref": "BulkEditAssignedTargetingOptionsRequest" +}, +"response": { +"$ref": "BulkEditAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"bulkListAssignedTargetingOptions": { +"description": "Lists assigned targeting options for multiple line items across targeting types.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems:bulkListAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.bulkListAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line items belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR` on the same field. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` or `TARGETING_TYPE_CHANNEL`: `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"lineItemIds": { +"description": "Required. The IDs of the line items to list assigned targeting options for.", +"format": "int64", +"location": "query", +"repeated": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `lineItemId` (default) * `assignedTargetingOption.targetingType` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to the `BulkListAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems:bulkListAssignedTargetingOptions", +"response": { +"$ref": "BulkListAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"bulkUpdate": { +"description": "Updates multiple line items. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * UpdateLineItem * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems:bulkUpdate", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.bulkUpdate", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems:bulkUpdate", +"request": { +"$ref": "BulkUpdateLineItemsRequest" +}, +"response": { +"$ref": "BulkUpdateLineItemsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a new line item. Returns the newly created line item if successful. YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems", +"request": { +"$ref": "LineItem" +}, +"response": { +"$ref": "LineItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a line item. Returns error code `NOT_FOUND` if the line item does not exist. The line item should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it. YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.lineItems.delete", +"parameterOrder": [ +"advertiserId", +"lineItemId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser this line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "The ID of the line item to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems/{+lineItemId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"duplicate": { +"description": "Duplicates a line item. Returns the ID of the created line item if successful. YouTube & Partners line items cannot be created or updated using the API. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}:duplicate", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.duplicate", +"parameterOrder": [ +"advertiserId", +"lineItemId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item to duplicate.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems/{+lineItemId}:duplicate", +"request": { +"$ref": "DuplicateLineItemRequest" +}, +"response": { +"$ref": "DuplicateLineItemResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"generateDefault": { +"description": "Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's insertion_order_type * The insertion order's automation_type * The given line_item_type YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems:generateDefault", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.generateDefault", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems:generateDefault", +"request": { +"$ref": "GenerateDefaultLineItemRequest" +}, +"response": { +"$ref": "LineItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a line item.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.get", +"parameterOrder": [ +"advertiserId", +"lineItemId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems/{+lineItemId}", +"response": { +"$ref": "LineItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists line items in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, line items with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser to list line items for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by line item fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `campaignId` * `displayName` * `entityStatus` * `insertionOrderId` * `lineItemId` * `lineItemType` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All line items under an insertion order: `insertionOrderId=\"1234\"` * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` and `LINE_ITEM_TYPE_DISPLAY_DEFAULT` line items under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\") AND lineItemType=\"LINE_ITEM_TYPE_DISPLAY_DEFAULT\"` * All line items with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All line items with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLineItems` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems", +"response": { +"$ref": "ListLineItemsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing line item. Returns the updated line item if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.lineItems.patch", +"parameterOrder": [ +"advertiserId", +"lineItemId" +], +"parameters": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Output only. The unique ID of the line item. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems/{+lineItemId}", +"request": { +"$ref": "LineItem" +}, +"response": { +"$ref": "LineItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"create": { +"description": "Assigns a targeting option to a line item. Returns the assigned targeting option if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * DeleteLineItemAssignedTargetingOption YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create", +"parameterOrder": [ +"advertiserId", +"lineItemId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item the assigned targeting option will belong to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"request": { +"$ref": "AssignedTargetingOption" +}, +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an assigned targeting option from a line item. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * CreateLineItemAssignedTargetingOption YouTube & Partners line items cannot be created or updated using the API.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete", +"parameterOrder": [ +"advertiserId", +"lineItemId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. The ID of the assigned targeting option to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a single targeting option assigned to a line item.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"lineItemId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this line item that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_YOUTUBE_CHANNEL` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) * `TARGETING_TYPE_YOUTUBE_VIDEO` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items)", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to a line item.", +"flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"lineItemId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line item belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or 2: `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"lineItemId": { +"description": "Required. The ID of the line item to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLineItemAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_YOUTUBE_CHANNEL` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) * `TARGETING_TYPE_YOUTUBE_VIDEO` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items)", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListLineItemAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"locationLists": { +"methods": { +"create": { +"description": "Creates a new location list. Returns the newly created location list if successful.", +"flatPath": "v2/advertisers/{advertisersId}/locationLists", +"httpMethod": "POST", +"id": "displayvideo.advertisers.locationLists.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/locationLists", +"request": { +"$ref": "LocationList" +}, +"response": { +"$ref": "LocationList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a location list.", +"flatPath": "v2/advertisers/{advertisersId}/locationLists/{locationListsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.locationLists.get", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the fetched location list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/locationLists/{+locationListId}", +"response": { +"$ref": "LocationList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists location lists based on a given advertiser id.", +"flatPath": "v2/advertisers/{advertisersId}/locationLists", +"httpMethod": "GET", +"id": "displayvideo.advertisers.locationLists.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the fetched location lists belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by location list fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `locationType` Examples: * All regional location list: `locationType=\"TARGETING_LOCATION_TYPE_REGIONAL\"` * All proximity location list: `locationType=\"TARGETING_LOCATION_TYPE_PROXIMITY\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `locationListId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLocationLists` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/locationLists", +"response": { +"$ref": "ListLocationListsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a location list. Returns the updated location list if successful.", +"flatPath": "v2/advertisers/{advertisersId}/locationLists/{locationListId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.locationLists.patch", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location lists belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Output only. The unique ID of the location list. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/locationLists/{locationListId}", +"request": { +"$ref": "LocationList" +}, +"response": { +"$ref": "LocationList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"assignedLocations": { +"methods": { +"bulkEdit": { +"description": "Bulk edits multiple assignments between locations and a single location list. The operation will delete the assigned locations provided in deletedAssignedLocations and then create the assigned locations provided in createdAssignedLocations.", +"flatPath": "v2/advertisers/{advertiserId}/locationLists/{locationListsId}/assignedLocations:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.advertisers.locationLists.assignedLocations.bulkEdit", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list to which these assignments are assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/locationLists/{+locationListId}/assignedLocations:bulkEdit", +"request": { +"$ref": "BulkEditAssignedLocationsRequest" +}, +"response": { +"$ref": "BulkEditAssignedLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates an assignment between a location and a location list.", +"flatPath": "v2/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", +"httpMethod": "POST", +"id": "displayvideo.advertisers.locationLists.assignedLocations.create", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list for which the assignment will be created.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", +"request": { +"$ref": "AssignedLocation" +}, +"response": { +"$ref": "AssignedLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes the assignment between a location and a location list.", +"flatPath": "v2/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{assignedLocationsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.locationLists.assignedLocations.delete", +"parameterOrder": [ +"advertiserId", +"locationListId", +"assignedLocationId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"assignedLocationId": { +"description": "Required. The ID of the assigned location to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list to which this assignment is assigned.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{+assignedLocationId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists locations assigned to a location list.", +"flatPath": "v2/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", +"httpMethod": "GET", +"id": "displayvideo.advertisers.locationLists.assignedLocations.list", +"parameterOrder": [ +"advertiserId", +"locationListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the location list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by location list assignment fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedLocationId` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"locationListId": { +"description": "Required. The ID of the location list to which these assignments are assigned.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedLocationId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `assignedLocationId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAssignedLocations` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", +"response": { +"$ref": "ListAssignedLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"manualTriggers": { +"methods": { +"activate": { +"description": "Activates a manual trigger. Each activation of the manual trigger must be at least 5 minutes apart, otherwise an error will be returned. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v2/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:activate", +"httpMethod": "POST", +"id": "displayvideo.advertisers.manualTriggers.activate", +"parameterOrder": [ +"advertiserId", +"triggerId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser that the manual trigger belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. The ID of the manual trigger to activate.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:activate", +"request": { +"$ref": "ActivateManualTriggerRequest" +}, +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a new manual trigger. Returns the newly created manual trigger if successful. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v2/advertisers/{advertisersId}/manualTriggers", +"httpMethod": "POST", +"id": "displayvideo.advertisers.manualTriggers.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/manualTriggers", +"request": { +"$ref": "ManualTrigger" +}, +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"deactivate": { +"description": "Deactivates a manual trigger. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v2/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:deactivate", +"httpMethod": "POST", +"id": "displayvideo.advertisers.manualTriggers.deactivate", +"parameterOrder": [ +"advertiserId", +"triggerId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser that the manual trigger belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. The ID of the manual trigger to deactivate.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:deactivate", +"request": { +"$ref": "DeactivateManualTriggerRequest" +}, +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a manual trigger. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v2/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.manualTriggers.get", +"parameterOrder": [ +"advertiserId", +"triggerId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this manual trigger belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Required. The ID of the manual trigger to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/manualTriggers/{+triggerId}", +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists manual triggers that are accessible to the current user for a given advertiser ID. The order is defined by the order_by parameter. A single advertiser_id is required. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v2/advertisers/{advertisersId}/manualTriggers", +"httpMethod": "GET", +"id": "displayvideo.advertisers.manualTriggers.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser that the fetched manual triggers belong to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by manual trigger fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `displayName` * `state` Examples: * All active manual triggers under an advertiser: `state=\"ACTIVE\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `state` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListManualTriggers` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/manualTriggers", +"response": { +"$ref": "ListManualTriggersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a manual trigger. Returns the updated manual trigger if successful. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"flatPath": "v2/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.manualTriggers.patch", +"parameterOrder": [ +"advertiserId", +"triggerId" +], +"parameters": { +"advertiserId": { +"description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"triggerId": { +"description": "Output only. The unique ID of the manual trigger.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/manualTriggers/{+triggerId}", +"request": { +"$ref": "ManualTrigger" +}, +"response": { +"$ref": "ManualTrigger" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"negativeKeywordLists": { +"methods": { +"create": { +"description": "Creates a new negative keyword list. Returns the newly created negative keyword list if successful.", +"flatPath": "v2/advertisers/{advertisersId}/negativeKeywordLists", +"httpMethod": "POST", +"id": "displayvideo.advertisers.negativeKeywordLists.create", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the negative keyword list will belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/negativeKeywordLists", +"request": { +"$ref": "NegativeKeywordList" +}, +"response": { +"$ref": "NegativeKeywordList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a negative keyword list given an advertiser ID and a negative keyword list ID.", +"flatPath": "v2/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.negativeKeywordLists.delete", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the negative keyword list to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a negative keyword list given an advertiser ID and a negative keyword list ID.", +"flatPath": "v2/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.negativeKeywordLists.get", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the negative keyword list to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}", +"response": { +"$ref": "NegativeKeywordList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists negative keyword lists based on a given advertiser id.", +"flatPath": "v2/advertisers/{advertisersId}/negativeKeywordLists", +"httpMethod": "GET", +"id": "displayvideo.advertisers.negativeKeywordLists.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword lists belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListNegativeKeywordLists` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/negativeKeywordLists", +"response": { +"$ref": "ListNegativeKeywordListsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a negative keyword list. Returns the updated negative keyword list if successful.", +"flatPath": "v2/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListId}", +"httpMethod": "PATCH", +"id": "displayvideo.advertisers.negativeKeywordLists.patch", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Output only. The unique ID of the negative keyword list. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/negativeKeywordLists/{negativeKeywordListId}", +"request": { +"$ref": "NegativeKeywordList" +}, +"response": { +"$ref": "NegativeKeywordList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"negativeKeywords": { +"methods": { +"bulkEdit": { +"description": "Bulk edits negative keywords in a single negative keyword list. The operation will delete the negative keywords provided in BulkEditNegativeKeywordsRequest.deleted_negative_keywords and then create the negative keywords provided in BulkEditNegativeKeywordsRequest.created_negative_keywords. This operation is guaranteed to be atomic and will never result in a partial success or partial failure.", +"flatPath": "v2/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.bulkEdit", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:bulkEdit", +"request": { +"$ref": "BulkEditNegativeKeywordsRequest" +}, +"response": { +"$ref": "BulkEditNegativeKeywordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a negative keyword in a negative keyword list.", +"flatPath": "v2/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords", +"httpMethod": "POST", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.create", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list in which the negative keyword will be created.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords", +"request": { +"$ref": "NegativeKeyword" +}, +"response": { +"$ref": "NegativeKeyword" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a negative keyword from a negative keyword list.", +"flatPath": "v2/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords/{negativeKeywordsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.delete", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId", +"keywordValue" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"keywordValue": { +"description": "Required. The keyword value of the negative keyword to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list to which the negative keyword belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords/{+keywordValue}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists negative keywords in a negative keyword list.", +"flatPath": "v2/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords", +"httpMethod": "GET", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.list", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by negative keyword fields. Supported syntax: * Filter expressions for negative keywords can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `keywordValue` Examples: * All negative keywords for which the keyword value contains \"google\": `keywordValue : \"google\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list to which the requested negative keywords belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `keywordValue` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `keywordValue desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `1000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListNegativeKeywords` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords", +"response": { +"$ref": "ListNegativeKeywordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"replace": { +"description": "Replaces all negative keywords in a single negative keyword list. The operation will replace the keywords in a negative keyword list with keywords provided in ReplaceNegativeKeywordsRequest.new_negative_keywords.", +"flatPath": "v2/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:replace", +"httpMethod": "POST", +"id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.replace", +"parameterOrder": [ +"advertiserId", +"negativeKeywordListId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:replace", +"request": { +"$ref": "ReplaceNegativeKeywordsRequest" +}, +"response": { +"$ref": "ReplaceNegativeKeywordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"create": { +"description": "Assigns a targeting option to an advertiser. Returns the assigned targeting option if successful.", +"flatPath": "v2/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create", +"parameterOrder": [ +"advertiserId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_KEYWORD`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"request": { +"$ref": "AssignedTargetingOption" +}, +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an assigned targeting option from an advertiser.", +"flatPath": "v2/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "DELETE", +"id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.delete", +"parameterOrder": [ +"advertiserId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. The ID of the assigned targeting option to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_KEYWORD`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a single targeting option assigned to an advertiser.", +"flatPath": "v2/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this advertiser that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_YOUTUBE_VIDEO` * `TARGETING_TYPE_YOUTUBE_CHANNEL` * `TARGETING_TYPE_KEYWORD`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to an advertiser.", +"flatPath": "v2/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` Examples: * `AssignedTargetingOption` with ID 123456: `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAdvertiserAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_YOUTUBE_VIDEO` * `TARGETING_TYPE_YOUTUBE_CHANNEL` * `TARGETING_TYPE_KEYWORD`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListAdvertiserAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"youtubeAdGroupAds": { +"methods": { +"get": { +"description": "Gets a YouTube ad group ad.", +"flatPath": "v2/advertisers/{advertisersId}/youtubeAdGroupAds/{youtubeAdGroupAdsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.youtubeAdGroupAds.get", +"parameterOrder": [ +"advertiserId", +"youtubeAdGroupAdId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this ad group ad belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"youtubeAdGroupAdId": { +"description": "Required. The ID of the ad group ad to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/youtubeAdGroupAds/{+youtubeAdGroupAdId}", +"response": { +"$ref": "YoutubeAdGroupAd" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists YouTube ad group ads.", +"flatPath": "v2/advertisers/{advertisersId}/youtubeAdGroupAds", +"httpMethod": "GET", +"id": "displayvideo.advertisers.youtubeAdGroupAds.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the ad groups belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by custom YouTube ad group ad fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` and `OR`. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `adGroupId` * `displayName` * `entityStatus` * `adGroupAdId` Examples: * All ad group ads under an ad group: `adGroupId=\"1234\"` * All ad group ads under an ad group with an entityStatus of `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED`: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\") AND adGroupId=\"12345\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListYoutubeAdGroupAds` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/youtubeAdGroupAds", +"response": { +"$ref": "ListYoutubeAdGroupAdsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"youtubeAdGroups": { +"methods": { +"bulkListAdGroupAssignedTargetingOptions": { +"description": "Lists assigned targeting options for multiple YouTube ad groups across targeting types. Inherited assigned targeting options are not included.", +"flatPath": "v2/advertisers/{advertisersId}/youtubeAdGroups:bulkListAdGroupAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.youtubeAdGroups.bulkListAdGroupAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the line items belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Optional. Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_YOUTUBE_VIDEO` or `TARGETING_TYPE_YOUTUBE_CHANNEL`: `targetingType=\"TARGETING_TYPE_YOUTUBE_VIDEO\" OR targetingType=\"TARGETING_TYPE_YOUTUBE_CHANNEL\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Field by which to sort the list. Acceptable values are: * `adGroupId` (default) * `assignedTargetingOption.targetingType` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to the `BulkListAdGroupAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"youtubeAdGroupIds": { +"description": "Required. The IDs of the youtube ad groups to list assigned targeting options for.", +"format": "int64", +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/youtubeAdGroups:bulkListAdGroupAssignedTargetingOptions", +"response": { +"$ref": "BulkListAdGroupAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a YouTube ad group.", +"flatPath": "v2/advertisers/{advertisersId}/youtubeAdGroups/{youtubeAdGroupsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.youtubeAdGroups.get", +"parameterOrder": [ +"advertiserId", +"youtubeAdGroupId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser this ad group belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"youtubeAdGroupId": { +"description": "Required. The ID of the ad group to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/youtubeAdGroups/{+youtubeAdGroupId}", +"response": { +"$ref": "YoutubeAdGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists YouTube ad groups.", +"flatPath": "v2/advertisers/{advertisersId}/youtubeAdGroups", +"httpMethod": "GET", +"id": "displayvideo.advertisers.youtubeAdGroups.list", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the ad groups belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by custom YouTube ad group fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` and `OR`. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported properties: * `adGroupId` * `displayName` * `entityStatus` * `lineItemId` * `adGroupFormat` Examples: * All ad groups under an line item: `lineItemId=\"1234\"` * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` `YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_IN_STREAM` ad groups under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\") AND adGroupFormat=\"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_IN_STREAM\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListYoutubeAdGroups` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/youtubeAdGroups", +"response": { +"$ref": "ListYoutubeAdGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"get": { +"description": "Gets a single targeting option assigned to a YouTube ad group. Inherited assigned targeting options are not included.", +"flatPath": "v2/advertisers/{advertisersId}/youtubeAdGroups/{youtubeAdGroupsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.youtubeAdGroups.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"youtubeAdGroupId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the ad group belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this line item that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SESSION_POSITION` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_YOUTUBE_CHANNEL` * `TARGETING_TYPE_YOUTUBE_VIDEO`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"youtubeAdGroupId": { +"description": "Required. The ID of the ad group the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/youtubeAdGroups/{+youtubeAdGroupId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to a YouTube ad group. Inherited assigned targeting options are not included.", +"flatPath": "v2/advertisers/{advertisersId}/youtubeAdGroups/{youtubeAdGroupsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.youtubeAdGroups.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"youtubeAdGroupId", +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser the ad group belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` Examples: * `AssignedTargetingOption` resources with ID 1 or 2: `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListYoutubeAdGroupAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SESSION_POSITION` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_YOUTUBE_CHANNEL` * `TARGETING_TYPE_YOUTUBE_VIDEO`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"youtubeAdGroupId": { +"description": "Required. The ID of the ad group to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/advertisers/{+advertiserId}/youtubeAdGroups/{+youtubeAdGroupId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListYoutubeAdGroupAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +} +} +}, +"combinedAudiences": { +"methods": { +"get": { +"description": "Gets a combined audience.", +"flatPath": "v2/combinedAudiences/{combinedAudiencesId}", +"httpMethod": "GET", +"id": "displayvideo.combinedAudiences.get", +"parameterOrder": [ +"combinedAudienceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched combined audience.", +"format": "int64", +"location": "query", +"type": "string" +}, +"combinedAudienceId": { +"description": "Required. The ID of the combined audience to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched combined audience.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/combinedAudiences/{+combinedAudienceId}", +"response": { +"$ref": "CombinedAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists combined audiences. The order is defined by the order_by parameter.", +"flatPath": "v2/combinedAudiences", +"httpMethod": "GET", +"id": "displayvideo.combinedAudiences.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched combined audiences.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by combined audience fields. Supported syntax: * Filter expressions for combined audiences can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All combined audiences for which the display name contains \"Google\": `displayName : \"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `combinedAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCombinedAudiences` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched combined audiences.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/combinedAudiences", +"response": { +"$ref": "ListCombinedAudiencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"customBiddingAlgorithms": { +"methods": { +"create": { +"description": "Creates a new custom bidding algorithm. Returns the newly created custom bidding algorithm if successful.", +"flatPath": "v2/customBiddingAlgorithms", +"httpMethod": "POST", +"id": "displayvideo.customBiddingAlgorithms.create", +"parameterOrder": [], +"parameters": {}, +"path": "v2/customBiddingAlgorithms", +"request": { +"$ref": "CustomBiddingAlgorithm" +}, +"response": { +"$ref": "CustomBiddingAlgorithm" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a custom bidding algorithm.", +"flatPath": "v2/customBiddingAlgorithms/{customBiddingAlgorithmsId}", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.get", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the DV360 partner that has access to the custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the DV360 partner that has access to the custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/customBiddingAlgorithms/{+customBiddingAlgorithmId}", +"response": { +"$ref": "CustomBiddingAlgorithm" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists custom bidding algorithms that are accessible to the current user and can be used in bidding stratgies. The order is defined by the order_by parameter.", +"flatPath": "v2/customBiddingAlgorithms", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the DV360 advertiser that has access to the custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by custom bidding algorithm fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND`. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `customBiddingAlgorithmType` field must use the `EQUALS (=)` operator. * The `displayName` field must use the `HAS (:)` operator. Supported fields: * `customBiddingAlgorithmType` * `displayName` Examples: * All custom bidding algorithms for which the display name contains \"politics\": `displayName:\"politics\"`. * All custom bidding algorithms for which the type is \"SCRIPT_BASED\": `customBiddingAlgorithmType=SCRIPT_BASED` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomBiddingAlgorithms` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the DV360 partner that has access to the custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/customBiddingAlgorithms", +"response": { +"$ref": "ListCustomBiddingAlgorithmsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing custom bidding algorithm. Returns the updated custom bidding algorithm if successful.", +"flatPath": "v2/customBiddingAlgorithms/{customBiddingAlgorithmsId}", +"httpMethod": "PATCH", +"id": "displayvideo.customBiddingAlgorithms.patch", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"customBiddingAlgorithmId": { +"description": "Output only. The unique ID of the custom bidding algorithm. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/customBiddingAlgorithms/{+customBiddingAlgorithmId}", +"request": { +"$ref": "CustomBiddingAlgorithm" +}, +"response": { +"$ref": "CustomBiddingAlgorithm" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"uploadScript": { +"description": "Creates a custom bidding script reference object for a script file. The resulting reference object provides a resource path to which the script file should be uploaded. This reference object should be included in when creating a new custom bidding script object.", +"flatPath": "v2/customBiddingAlgorithms/{customBiddingAlgorithmsId}:uploadScript", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.uploadScript", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm owns the script.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/customBiddingAlgorithms/{+customBiddingAlgorithmId}:uploadScript", +"response": { +"$ref": "CustomBiddingScriptRef" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"scripts": { +"methods": { +"create": { +"description": "Creates a new custom bidding script. Returns the newly created script if successful.", +"flatPath": "v2/customBiddingAlgorithms/{customBiddingAlgorithmsId}/scripts", +"httpMethod": "POST", +"id": "displayvideo.customBiddingAlgorithms.scripts.create", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm that owns the script.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts", +"request": { +"$ref": "CustomBiddingScript" +}, +"response": { +"$ref": "CustomBiddingScript" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a custom bidding script.", +"flatPath": "v2/customBiddingAlgorithms/{customBiddingAlgorithmsId}/scripts/{scriptsId}", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.scripts.get", +"parameterOrder": [ +"customBiddingAlgorithmId", +"customBiddingScriptId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm owns the script.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"customBiddingScriptId": { +"description": "Required. The ID of the custom bidding script to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts/{+customBiddingScriptId}", +"response": { +"$ref": "CustomBiddingScript" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists custom bidding scripts that belong to the given algorithm. The order is defined by the order_by parameter.", +"flatPath": "v2/customBiddingAlgorithms/{customBiddingAlgorithmsId}/scripts", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.scripts.list", +"parameterOrder": [ +"customBiddingAlgorithmId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Required. The ID of the custom bidding algorithm owns the script.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `createTime desc` (default) The default sorting order is descending. To specify ascending order for a field, the suffix \"desc\" should be removed. Example: `createTime`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomBiddingScripts` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts", +"response": { +"$ref": "ListCustomBiddingScriptsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"customLists": { +"methods": { +"get": { +"description": "Gets a custom list.", +"flatPath": "v2/customLists/{customListsId}", +"httpMethod": "GET", +"id": "displayvideo.customLists.get", +"parameterOrder": [ +"customListId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the DV360 advertiser that has access to the fetched custom lists.", +"format": "int64", +"location": "query", +"type": "string" +}, +"customListId": { +"description": "Required. The ID of the custom list to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/customLists/{+customListId}", +"response": { +"$ref": "CustomList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists custom lists. The order is defined by the order_by parameter.", +"flatPath": "v2/customLists", +"httpMethod": "GET", +"id": "displayvideo.customLists.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the DV360 advertiser that has access to the fetched custom lists.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by custom list fields. Supported syntax: * Filter expressions for custom lists can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All custom lists for which the display name contains \"Google\": `displayName:\"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `customListId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomLists` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/customLists", +"response": { +"$ref": "ListCustomListsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"firstAndThirdPartyAudiences": { +"methods": { +"create": { +"description": "Creates a FirstAndThirdPartyAudience. Only supported for the following audience_type: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", +"flatPath": "v2/firstAndThirdPartyAudiences", +"httpMethod": "POST", +"id": "displayvideo.firstAndThirdPartyAudiences.create", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the advertiser under whom the FirstAndThirdPartyAudience will be created.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/firstAndThirdPartyAudiences", +"request": { +"$ref": "FirstAndThirdPartyAudience" +}, +"response": { +"$ref": "FirstAndThirdPartyAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"editCustomerMatchMembers": { +"description": "Updates the member list of a Customer Match audience. Only supported for the following audience_type: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", +"flatPath": "v2/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}:editCustomerMatchMembers", +"httpMethod": "POST", +"id": "displayvideo.firstAndThirdPartyAudiences.editCustomerMatchMembers", +"parameterOrder": [ +"firstAndThirdPartyAudienceId" +], +"parameters": { +"firstAndThirdPartyAudienceId": { +"description": "Required. The ID of the Customer Match FirstAndThirdPartyAudience whose members will be edited.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}:editCustomerMatchMembers", +"request": { +"$ref": "EditCustomerMatchMembersRequest" +}, +"response": { +"$ref": "EditCustomerMatchMembersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a first and third party audience.", +"flatPath": "v2/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}", +"httpMethod": "GET", +"id": "displayvideo.firstAndThirdPartyAudiences.get", +"parameterOrder": [ +"firstAndThirdPartyAudienceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched first and third party audience.", +"format": "int64", +"location": "query", +"type": "string" +}, +"firstAndThirdPartyAudienceId": { +"description": "Required. The ID of the first and third party audience to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched first and third party audience.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}", +"response": { +"$ref": "FirstAndThirdPartyAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists first and third party audiences. The order is defined by the order_by parameter.", +"flatPath": "v2/firstAndThirdPartyAudiences", +"httpMethod": "GET", +"id": "displayvideo.firstAndThirdPartyAudiences.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched first and third party audiences.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by first and third party audience fields. Supported syntax: * Filter expressions for first and third party audiences can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All first and third party audiences for which the display name contains \"Google\": `displayName:\"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `firstAndThirdPartyAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `5000`. If unspecified, this value defaults to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListFirstAndThirdPartyAudiences` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched first and third party audiences.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/firstAndThirdPartyAudiences", +"response": { +"$ref": "ListFirstAndThirdPartyAudiencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing FirstAndThirdPartyAudience. Only supported for the following audience_type: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", +"flatPath": "v2/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}", +"httpMethod": "PATCH", +"id": "displayvideo.firstAndThirdPartyAudiences.patch", +"parameterOrder": [ +"firstAndThirdPartyAudienceId" +], +"parameters": { +"advertiserId": { +"description": "Required. The ID of the owner advertiser of the updated FirstAndThirdPartyAudience.", +"format": "int64", +"location": "query", +"type": "string" +}, +"firstAndThirdPartyAudienceId": { +"description": "Output only. The unique ID of the first and third party audience. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update. Updates are only supported for the following fields: * `displayName` * `description` * `membershipDurationDays`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}", +"request": { +"$ref": "FirstAndThirdPartyAudience" +}, +"response": { +"$ref": "FirstAndThirdPartyAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"floodlightGroups": { +"methods": { +"get": { +"description": "Gets a Floodlight group.", +"flatPath": "v2/floodlightGroups/{floodlightGroupsId}", +"httpMethod": "GET", +"id": "displayvideo.floodlightGroups.get", +"parameterOrder": [ +"floodlightGroupId" +], +"parameters": { +"floodlightGroupId": { +"description": "Required. The ID of the Floodlight group to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The partner context by which the Floodlight group is being accessed.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/floodlightGroups/{+floodlightGroupId}", +"response": { +"$ref": "FloodlightGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing Floodlight group. Returns the updated Floodlight group if successful.", +"flatPath": "v2/floodlightGroups/{floodlightGroupId}", +"httpMethod": "PATCH", +"id": "displayvideo.floodlightGroups.patch", +"parameterOrder": [ +"floodlightGroupId" +], +"parameters": { +"floodlightGroupId": { +"description": "Output only. The unique ID of the Floodlight group. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The partner context by which the Floodlight group is being accessed.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/floodlightGroups/{floodlightGroupId}", +"request": { +"$ref": "FloodlightGroup" +}, +"response": { +"$ref": "FloodlightGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"floodlightActivities": { +"methods": { +"get": { +"description": "Gets a Floodlight activity.", +"flatPath": "v2/floodlightGroups/{floodlightGroupsId}/floodlightActivities/{floodlightActivitiesId}", +"httpMethod": "GET", +"id": "displayvideo.floodlightGroups.floodlightActivities.get", +"parameterOrder": [ +"floodlightGroupId", +"floodlightActivityId" +], +"parameters": { +"floodlightActivityId": { +"description": "Required. The ID of the Floodlight activity to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"floodlightGroupId": { +"description": "Required. The ID of the parent Floodlight group to which the requested Floodlight activity belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner through which the Floodlight activity is being accessed.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/floodlightGroups/{+floodlightGroupId}/floodlightActivities/{+floodlightActivityId}", +"response": { +"$ref": "FloodlightActivity" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists Floodlight activities in a Floodlight group.", +"flatPath": "v2/floodlightGroups/{floodlightGroupsId}/floodlightActivities", +"httpMethod": "GET", +"id": "displayvideo.floodlightGroups.floodlightActivities.list", +"parameterOrder": [ +"floodlightGroupId" +], +"parameters": { +"floodlightGroupId": { +"description": "Required. The ID of the parent Floodlight group to which the requested Floodlight activities belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Optional. Field by which to sort the list. Acceptable values are: * `displayName` (default) * `floodlightActivityId` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListFloodlightActivities` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner through which the Floodlight activities are being accessed.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/floodlightGroups/{+floodlightGroupId}/floodlightActivities", +"response": { +"$ref": "ListFloodlightActivitiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"googleAudiences": { +"methods": { +"get": { +"description": "Gets a Google audience.", +"flatPath": "v2/googleAudiences/{googleAudiencesId}", +"httpMethod": "GET", +"id": "displayvideo.googleAudiences.get", +"parameterOrder": [ +"googleAudienceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched Google audience.", +"format": "int64", +"location": "query", +"type": "string" +}, +"googleAudienceId": { +"description": "Required. The ID of the Google audience to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched Google audience.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/googleAudiences/{+googleAudienceId}", +"response": { +"$ref": "GoogleAudience" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists Google audiences. The order is defined by the order_by parameter.", +"flatPath": "v2/googleAudiences", +"httpMethod": "GET", +"id": "displayvideo.googleAudiences.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the fetched Google audiences.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by Google audience fields. Supported syntax: * Filter expressions for Google audiences can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All Google audiences for which the display name contains \"Google\": `displayName:\"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `googleAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListGoogleAudiences` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the fetched Google audiences.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/googleAudiences", +"response": { +"$ref": "ListGoogleAudiencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"guaranteedOrders": { +"methods": { +"create": { +"description": "Creates a new guaranteed order. Returns the newly created guaranteed order if successful.", +"flatPath": "v2/guaranteedOrders", +"httpMethod": "POST", +"id": "displayvideo.guaranteedOrders.create", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/guaranteedOrders", +"request": { +"$ref": "GuaranteedOrder" +}, +"response": { +"$ref": "GuaranteedOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"editGuaranteedOrderReadAccessors": { +"description": "Edits read advertisers of a guaranteed order.", +"flatPath": "v2/guaranteedOrders/{guaranteedOrdersId}:editGuaranteedOrderReadAccessors", +"httpMethod": "POST", +"id": "displayvideo.guaranteedOrders.editGuaranteedOrderReadAccessors", +"parameterOrder": [ +"guaranteedOrderId" +], +"parameters": { +"guaranteedOrderId": { +"description": "Required. The ID of the guaranteed order to edit. The ID is of the format `{exchange}-{legacy_guaranteed_order_id}`", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/guaranteedOrders/{+guaranteedOrderId}:editGuaranteedOrderReadAccessors", +"request": { +"$ref": "EditGuaranteedOrderReadAccessorsRequest" +}, +"response": { +"$ref": "EditGuaranteedOrderReadAccessorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a guaranteed order.", +"flatPath": "v2/guaranteedOrders/{guaranteedOrdersId}", +"httpMethod": "GET", +"id": "displayvideo.guaranteedOrders.get", +"parameterOrder": [ +"guaranteedOrderId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the guaranteed order.", +"format": "int64", +"location": "query", +"type": "string" +}, +"guaranteedOrderId": { +"description": "Required. The ID of the guaranteed order to fetch. The ID is of the format `{exchange}-{legacy_guaranteed_order_id}`", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the guaranteed order.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/guaranteedOrders/{+guaranteedOrderId}", +"response": { +"$ref": "GuaranteedOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists guaranteed orders that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, guaranteed orders with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v2/guaranteedOrders", +"httpMethod": "GET", +"id": "displayvideo.guaranteedOrders.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the guaranteed order.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by guaranteed order fields. * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `guaranteed_order_id` * `exchange` * `display_name` * `status.entityStatus` Examples: * All active guaranteed orders: `status.entityStatus=\"ENTITY_STATUS_ACTIVE\"` * Guaranteed orders belonging to Google Ad Manager or Rubicon exchanges: `exchange=\"EXCHANGE_GOOGLE_AD_MANAGER\" OR exchange=\"EXCHANGE_RUBICON\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListGuaranteedOrders` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the guaranteed order.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/guaranteedOrders", +"response": { +"$ref": "ListGuaranteedOrdersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing guaranteed order. Returns the updated guaranteed order if successful.", +"flatPath": "v2/guaranteedOrders/{guaranteedOrdersId}", +"httpMethod": "PATCH", +"id": "displayvideo.guaranteedOrders.patch", +"parameterOrder": [ +"guaranteedOrderId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"guaranteedOrderId": { +"description": "Output only. The unique identifier of the guaranteed order. The guaranteed order IDs have the format `{exchange}-{legacy_guaranteed_order_id}`.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/guaranteedOrders/{+guaranteedOrderId}", +"request": { +"$ref": "GuaranteedOrder" +}, +"response": { +"$ref": "GuaranteedOrder" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"inventorySourceGroups": { +"methods": { +"create": { +"description": "Creates a new inventory source group. Returns the newly created inventory source group if successful.", +"flatPath": "v2/inventorySourceGroups", +"httpMethod": "POST", +"id": "displayvideo.inventorySourceGroups.create", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the inventory source group. The parent partner will not have access to this group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the inventory source group. Only this partner will have write access to this group. Only advertisers to which this group is explicitly shared will have read access to this group.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySourceGroups", +"request": { +"$ref": "InventorySourceGroup" +}, +"response": { +"$ref": "InventorySourceGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an inventory source group.", +"flatPath": "v2/inventorySourceGroups/{inventorySourceGroupsId}", +"httpMethod": "DELETE", +"id": "displayvideo.inventorySourceGroups.delete", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySourceGroups/{+inventorySourceGroupId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an inventory source group.", +"flatPath": "v2/inventorySourceGroups/{inventorySourceGroupsId}", +"httpMethod": "GET", +"id": "displayvideo.inventorySourceGroups.get", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the inventory source group. If an inventory source group is partner-owned, only advertisers to which the group is explicitly shared can access the group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the inventory source group. A partner cannot access an advertiser-owned inventory source group.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySourceGroups/{+inventorySourceGroupId}", +"response": { +"$ref": "InventorySourceGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists inventory source groups that are accessible to the current user. The order is defined by the order_by parameter.", +"flatPath": "v2/inventorySourceGroups", +"httpMethod": "GET", +"id": "displayvideo.inventorySourceGroups.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the inventory source group. If an inventory source group is partner-owned, only advertisers to which the group is explicitly shared can access the group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by inventory source group fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `inventorySourceGroupId` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `inventorySourceGroupId` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInventorySources` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the inventory source group. A partner cannot access advertiser-owned inventory source groups.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySourceGroups", +"response": { +"$ref": "ListInventorySourceGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an inventory source group. Returns the updated inventory source group if successful.", +"flatPath": "v2/inventorySourceGroups/{inventorySourceGroupId}", +"httpMethod": "PATCH", +"id": "displayvideo.inventorySourceGroups.patch", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Output only. The unique ID of the inventory source group. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySourceGroups/{inventorySourceGroupId}", +"request": { +"$ref": "InventorySourceGroup" +}, +"response": { +"$ref": "InventorySourceGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"assignedInventorySources": { +"methods": { +"bulkEdit": { +"description": "Bulk edits multiple assignments between inventory sources and a single inventory source group. The operation will delete the assigned inventory sources provided in BulkEditAssignedInventorySourcesRequest.deleted_assigned_inventory_sources and then create the assigned inventory sources provided in BulkEditAssignedInventorySourcesRequest.created_assigned_inventory_sources.", +"flatPath": "v2/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.inventorySourceGroups.assignedInventorySources.bulkEdit", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to which the assignments are assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources:bulkEdit", +"request": { +"$ref": "BulkEditAssignedInventorySourcesRequest" +}, +"response": { +"$ref": "BulkEditAssignedInventorySourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates an assignment between an inventory source and an inventory source group.", +"flatPath": "v2/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources", +"httpMethod": "POST", +"id": "displayvideo.inventorySourceGroups.assignedInventorySources.create", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent inventory source group. The parent partner will not have access to this assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to which the assignment will be assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent inventory source group. Only this partner will have write access to this assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources", +"request": { +"$ref": "AssignedInventorySource" +}, +"response": { +"$ref": "AssignedInventorySource" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes the assignment between an inventory source and an inventory source group.", +"flatPath": "v2/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources/{assignedInventorySourcesId}", +"httpMethod": "DELETE", +"id": "displayvideo.inventorySourceGroups.assignedInventorySources.delete", +"parameterOrder": [ +"inventorySourceGroupId", +"assignedInventorySourceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent inventory source group. The parent partner does not have access to this assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +}, +"assignedInventorySourceId": { +"description": "Required. The ID of the assigned inventory source to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to which this assignment is assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent inventory source group. Only this partner has write access to this assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources/{+assignedInventorySourceId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists inventory sources assigned to an inventory source group.", +"flatPath": "v2/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources", +"httpMethod": "GET", +"id": "displayvideo.inventorySourceGroups.assignedInventorySources.list", +"parameterOrder": [ +"inventorySourceGroupId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the assignment. If the parent inventory source group is partner-owned, only advertisers to which the parent group is explicitly shared can access the assigned inventory source.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by assigned inventory source fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedInventorySourceId` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Required. The ID of the inventory source group to which these assignments are assigned.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedInventorySourceId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `assignedInventorySourceId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAssignedInventorySources` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the assignment. If the parent inventory source group is advertiser-owned, the assignment cannot be accessed via a partner.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources", +"response": { +"$ref": "ListAssignedInventorySourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"inventorySources": { +"methods": { +"create": { +"description": "Creates a new inventory source. Returns the newly created inventory source if successful.", +"flatPath": "v2/inventorySources", +"httpMethod": "POST", +"id": "displayvideo.inventorySources.create", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySources", +"request": { +"$ref": "InventorySource" +}, +"response": { +"$ref": "InventorySource" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"editInventorySourceReadWriteAccessors": { +"description": "Edits read/write accessors of an inventory source. Returns the updated read_write_accessors for the inventory source.", +"flatPath": "v2/inventorySources/{inventorySourcesId}:editInventorySourceReadWriteAccessors", +"httpMethod": "POST", +"id": "displayvideo.inventorySources.editInventorySourceReadWriteAccessors", +"parameterOrder": [ +"inventorySourceId" +], +"parameters": { +"inventorySourceId": { +"description": "Required. The ID of inventory source to update.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/inventorySources/{+inventorySourceId}:editInventorySourceReadWriteAccessors", +"request": { +"$ref": "EditInventorySourceReadWriteAccessorsRequest" +}, +"response": { +"$ref": "InventorySourceAccessors" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an inventory source.", +"flatPath": "v2/inventorySources/{inventorySourcesId}", +"httpMethod": "GET", +"id": "displayvideo.inventorySources.get", +"parameterOrder": [ +"inventorySourceId" +], +"parameters": { +"inventorySourceId": { +"description": "Required. The ID of the inventory source to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the DV360 partner to which the fetched inventory source is permissioned.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySources/{+inventorySourceId}", +"response": { +"$ref": "InventorySource" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists inventory sources that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, inventory sources with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.", +"flatPath": "v2/inventorySources", +"httpMethod": "GET", +"id": "displayvideo.inventorySources.list", +"parameterOrder": [], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that has access to the inventory source.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by inventory source fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `status.entityStatus` * `commitment` * `deliveryMethod` * `rateDetails.rateType` * `exchange` Examples: * All active inventory sources: `status.entityStatus=\"ENTITY_STATUS_ACTIVE\"` * Inventory sources belonging to Google Ad Manager or Rubicon exchanges: `exchange=\"EXCHANGE_GOOGLE_AD_MANAGER\" OR exchange=\"EXCHANGE_RUBICON\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInventorySources` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that has access to the inventory source.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySources", +"response": { +"$ref": "ListInventorySourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates an existing inventory source. Returns the updated inventory source if successful.", +"flatPath": "v2/inventorySources/{inventorySourcesId}", +"httpMethod": "PATCH", +"id": "displayvideo.inventorySources.patch", +"parameterOrder": [ +"inventorySourceId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"inventorySourceId": { +"description": "Output only. The unique ID of the inventory source. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the request is being made within.", +"format": "int64", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/inventorySources/{+inventorySourceId}", +"request": { +"$ref": "InventorySource" +}, +"response": { +"$ref": "InventorySource" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"media": { +"methods": { +"download": { +"description": "Downloads media. Download is supported on the URI `/download/{resource_name=**}?alt=media.` **Note**: Download requests will not be successful without including `alt=media` query string.", +"flatPath": "download/{downloadId}", +"httpMethod": "GET", +"id": "displayvideo.media.download", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Name of the media that is being downloaded. See ReadRequest.resource_name.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "download/{+resourceName}", +"response": { +"$ref": "GoogleBytestreamMedia" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/doubleclickbidmanager" +], +"supportsMediaDownload": true +}, +"upload": { +"description": "Uploads media. Upload is supported on the URI `/upload/media/{resource_name=**}?upload_type=media.` **Note**: Upload requests will not be successful without including `upload_type=media` query string.", +"flatPath": "media/{mediaId}", +"httpMethod": "POST", +"id": "displayvideo.media.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/media/{+resourceName}" +} +} +}, +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Name of the media that is being downloaded. See ReadRequest.resource_name.", +"location": "path", +"pattern": "^.*$", +"required": true, +"type": "string" +} +}, +"path": "media/{+resourceName}", +"request": { +"$ref": "GoogleBytestreamMedia" +}, +"response": { +"$ref": "GoogleBytestreamMedia" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/doubleclickbidmanager" +], +"supportsMediaUpload": true +} +} +}, +"partners": { +"methods": { +"editAssignedTargetingOptions": { +"description": "Edits targeting options under a single partner. The operation will delete the assigned targeting options provided in BulkEditPartnerAssignedTargetingOptionsRequest.deleteRequests and then create the assigned targeting options provided in BulkEditPartnerAssignedTargetingOptionsRequest.createRequests .", +"flatPath": "v2/partners/{partnersId}:editAssignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.partners.editAssignedTargetingOptions", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}:editAssignedTargetingOptions", +"request": { +"$ref": "BulkEditPartnerAssignedTargetingOptionsRequest" +}, +"response": { +"$ref": "BulkEditPartnerAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a partner.", +"flatPath": "v2/partners/{partnersId}", +"httpMethod": "GET", +"id": "displayvideo.partners.get", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the partner to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}", +"response": { +"$ref": "Partner" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists partners that are accessible to the current user. The order is defined by the order_by parameter.", +"flatPath": "v2/partners", +"httpMethod": "GET", +"id": "displayvideo.partners.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Allows filtering by partner fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `entityStatus` Examples: * All active partners: `entityStatus=\"ENTITY_STATUS_ACTIVE\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListPartners` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/partners", +"response": { +"$ref": "ListPartnersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"channels": { +"methods": { +"create": { +"description": "Creates a new channel. Returns the newly created channel if successful.", +"flatPath": "v2/partners/{partnersId}/channels", +"httpMethod": "POST", +"id": "displayvideo.partners.channels.create", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the created channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the created channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}/channels", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a channel for a partner or advertiser.", +"flatPath": "v2/partners/{partnersId}/channels/{channelsId}", +"httpMethod": "GET", +"id": "displayvideo.partners.channels.get", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the fetched channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the channel to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the fetched channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}/channels/{+channelId}", +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists channels for a partner or advertiser.", +"flatPath": "v2/partners/{partnersId}/channels", +"httpMethod": "GET", +"id": "displayvideo.partners.channels.list", +"parameterOrder": [ +"partnerId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the channels.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All channels for which the display name contains \"google\": `displayName : \"google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `channelId` The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListChannels` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the channels.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}/channels", +"response": { +"$ref": "ListChannelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"patch": { +"description": "Updates a channel. Returns the updated channel if successful.", +"flatPath": "v2/partners/{partnersId}/channels/{channelId}", +"httpMethod": "PATCH", +"id": "displayvideo.partners.channels.patch", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the created channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Output only. The unique ID of the channel. Assigned by the system.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the created channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}/channels/{channelId}", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"sites": { +"methods": { +"bulkEdit": { +"description": "Bulk edits sites under a single channel. The operation will delete the sites provided in BulkEditSitesRequest.deleted_sites and then create the sites provided in BulkEditSitesRequest.created_sites.", +"flatPath": "v2/partners/{partnerId}/channels/{channelsId}/sites:bulkEdit", +"httpMethod": "POST", +"id": "displayvideo.partners.channels.sites.bulkEdit", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"channelId": { +"description": "Required. The ID of the parent channel to which the sites belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{partnerId}/channels/{+channelId}/sites:bulkEdit", +"request": { +"$ref": "BulkEditSitesRequest" +}, +"response": { +"$ref": "BulkEditSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"create": { +"description": "Creates a site in a channel.", +"flatPath": "v2/partners/{partnerId}/channels/{channelsId}/sites", +"httpMethod": "POST", +"id": "displayvideo.partners.channels.sites.create", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel in which the site will be created.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{partnerId}/channels/{+channelId}/sites", +"request": { +"$ref": "Site" +}, +"response": { +"$ref": "Site" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes a site from a channel.", +"flatPath": "v2/partners/{partnerId}/channels/{channelsId}/sites/{sitesId}", +"httpMethod": "DELETE", +"id": "displayvideo.partners.channels.sites.delete", +"parameterOrder": [ +"partnerId", +"channelId", +"urlOrAppId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the site belongs.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"urlOrAppId": { +"description": "Required. The URL or app ID of the site to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{partnerId}/channels/{+channelId}/sites/{+urlOrAppId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists sites in a channel.", +"flatPath": "v2/partners/{partnersId}/channels/{channelsId}/sites", +"httpMethod": "GET", +"id": "displayvideo.partners.channels.sites.list", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"location": "query", +"type": "string" +}, +"channelId": { +"description": "Required. The ID of the parent channel to which the requested sites belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"filter": { +"description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site retrieval can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `urlOrAppId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `urlOrAppId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `10000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListSites` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}/channels/{+channelId}/sites", +"response": { +"$ref": "ListSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"replace": { +"description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", +"flatPath": "v2/partners/{partnerId}/channels/{channelsId}/sites:replace", +"httpMethod": "POST", +"id": "displayvideo.partners.channels.sites.replace", +"parameterOrder": [ +"partnerId", +"channelId" +], +"parameters": { +"channelId": { +"description": "Required. The ID of the parent channel whose sites will be replaced.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{partnerId}/channels/{+channelId}/sites:replace", +"request": { +"$ref": "ReplaceSitesRequest" +}, +"response": { +"$ref": "ReplaceSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"create": { +"description": "Assigns a targeting option to a partner. Returns the assigned targeting option if successful.", +"flatPath": "v2/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "POST", +"id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.create", +"parameterOrder": [ +"partnerId", +"targetingType" +], +"parameters": { +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"request": { +"$ref": "AssignedTargetingOption" +}, +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an assigned targeting option from a partner.", +"flatPath": "v2/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "DELETE", +"id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.delete", +"parameterOrder": [ +"partnerId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"assignedTargetingOptionId": { +"description": "Required. The ID of the assigned targeting option to delete.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a single targeting option assigned to a partner.", +"flatPath": "v2/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"partnerId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"assignedTargetingOptionId": { +"description": "Required. An identifier unique to the targeting type in this partner that identifies the assigned targeting option being requested.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to a partner.", +"flatPath": "v2/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"partnerId", +"targetingType" +], +"parameters": { +"filter": { +"description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` Examples: * `AssignedTargetingOption` resource with ID 123456: `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListPartnerAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"partnerId": { +"description": "Required. The ID of the partner.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListPartnerAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"sdfdownloadtasks": { +"methods": { +"create": { +"description": "Creates an SDF Download Task. Returns an Operation. An SDF Download Task is a long-running, asynchronous operation. The metadata type of this operation is SdfDownloadTaskMetadata. If the request is successful, the response type of the operation is SdfDownloadTask. The response will not include the download files, which must be retrieved with media.download. The state of operation can be retrieved with sdfdownloadtask.operations.get. Any errors can be found in the error.message. Note that error.details is expected to be empty.", +"flatPath": "v2/sdfdownloadtasks", +"httpMethod": "POST", +"id": "displayvideo.sdfdownloadtasks.create", +"parameterOrder": [], +"parameters": {}, +"path": "v2/sdfdownloadtasks", +"request": { +"$ref": "CreateSdfDownloadTaskRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of an asynchronous SDF download task operation. Clients should poll this method at intervals of 30 seconds.", +"flatPath": "v2/sdfdownloadtasks/operations/{operationsId}", +"httpMethod": "GET", +"id": "displayvideo.sdfdownloadtasks.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^sdfdownloadtasks/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video", +"https://www.googleapis.com/auth/doubleclickbidmanager" +] +} +} +} +} +}, +"targetingTypes": { +"resources": { +"targetingOptions": { +"methods": { +"get": { +"description": "Gets a single targeting option.", +"flatPath": "v2/targetingTypes/{targetingTypesId}/targetingOptions/{targetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.targetingTypes.targetingOptions.get", +"parameterOrder": [ +"targetingType", +"targetingOptionId" +], +"parameters": { +"advertiserId": { +"description": "Required. The Advertiser this request is being made in the context of.", +"format": "int64", +"location": "query", +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The ID of the of targeting option to retrieve.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"targetingType": { +"description": "Required. The type of targeting option to retrieve. Accepted values are: * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_OMID`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/targetingTypes/{+targetingType}/targetingOptions/{+targetingOptionId}", +"response": { +"$ref": "TargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists targeting options of a given type.", +"flatPath": "v2/targetingTypes/{targetingTypesId}/targetingOptions", +"httpMethod": "GET", +"id": "displayvideo.targetingTypes.targetingOptions.list", +"parameterOrder": [ +"targetingType" +], +"parameters": { +"advertiserId": { +"description": "Required. The Advertiser this request is being made in the context of.", +"format": "int64", +"location": "query", +"type": "string" +}, +"filter": { +"description": "Allows filtering by targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `OR` logical operators. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `carrierAndIspDetails.type` * `geoRegionDetails.geoRegionType` * `targetingOptionId` Examples: * All `GEO REGION` targeting options that belong to sub type `GEO_REGION_TYPE_COUNTRY` or `GEO_REGION_TYPE_STATE`: `geoRegionDetails.geoRegionType=\"GEO_REGION_TYPE_COUNTRY\" OR geoRegionDetails.geoRegionType=\"GEO_REGION_TYPE_STATE\"` * All `CARRIER AND ISP` targeting options that belong to sub type `CARRIER_AND_ISP_TYPE_CARRIER`: `carrierAndIspDetails.type=\"CARRIER_AND_ISP_TYPE_CARRIER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `targetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingOptionId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListTargetingOptions` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +}, +"targetingType": { +"description": "Required. The type of targeting option to be listed. Accepted values are: * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_OMID`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/targetingTypes/{+targetingType}/targetingOptions", +"response": { +"$ref": "ListTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"search": { +"description": "Searches for targeting options of a given type based on the given search terms.", +"flatPath": "v2/targetingTypes/{targetingTypesId}/targetingOptions:search", +"httpMethod": "POST", +"id": "displayvideo.targetingTypes.targetingOptions.search", +"parameterOrder": [ +"targetingType" +], +"parameters": { +"targetingType": { +"description": "Required. The type of targeting options to retrieve. Accepted values are: * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_BUSINESS_CHAIN`", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/targetingTypes/{+targetingType}/targetingOptions:search", +"request": { +"$ref": "SearchTargetingOptionsRequest" +}, +"response": { +"$ref": "SearchTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"users": { +"methods": { +"bulkEditAssignedUserRoles": { +"description": "Bulk edits user roles for a user. The operation will delete the assigned user roles provided in BulkEditAssignedUserRolesRequest.deletedAssignedUserRoles and then assign the user roles provided in BulkEditAssignedUserRolesRequest.createdAssignedUserRoles. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v2/users/{usersId}:bulkEditAssignedUserRoles", +"httpMethod": "POST", +"id": "displayvideo.users.bulkEditAssignedUserRoles", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"description": "Required. The ID of the user to which the assigned user roles belong.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/users/{+userId}:bulkEditAssignedUserRoles", +"request": { +"$ref": "BulkEditAssignedUserRolesRequest" +}, +"response": { +"$ref": "BulkEditAssignedUserRolesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"create": { +"description": "Creates a new user. Returns the newly created user if successful. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v2/users", +"httpMethod": "POST", +"id": "displayvideo.users.create", +"parameterOrder": [], +"parameters": {}, +"path": "v2/users", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"delete": { +"description": "Deletes a user. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v2/users/{usersId}", +"httpMethod": "DELETE", +"id": "displayvideo.users.delete", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"description": "Required. The ID of the user to delete.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/users/{+userId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"get": { +"description": "Gets a user. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v2/users/{usersId}", +"httpMethod": "GET", +"id": "displayvideo.users.get", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"description": "Required. The ID of the user to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/users/{+userId}", +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"list": { +"description": "Lists users that are accessible to the current user. If two users have user roles on the same partner or advertiser, they can access each other. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v2/users", +"httpMethod": "GET", +"id": "displayvideo.users.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Allows filtering by user fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `displayName` and `email` fields must use the `HAS (:)` operator. * The `lastLoginTime` field must use either the `LESS THAN OR EQUAL TO (<=)` or `GREATER THAN OR EQUAL TO (>=)` operator. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `assignedUserRole.advertiserId` * `assignedUserRole.entityType`: This is synthetic field of `AssignedUserRole` used for filtering. Identifies the type of entity to which the user role is assigned. Valid values are `Partner` and `Advertiser`. * `assignedUserRole.parentPartnerId`: This is a synthetic field of `AssignedUserRole` used for filtering. Identifies the parent partner of the entity to which the user role is assigned. * `assignedUserRole.partnerId` * `assignedUserRole.userRole` * `displayName` * `email` * `lastLoginTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * The user with `displayName` containing \"foo\": `displayName:\"foo\"` * The user with `email` containing \"bar\": `email:\"bar\"` * All users with standard user roles: `assignedUserRole.userRole=\"STANDARD\"` * All users with user roles for partner 123: `assignedUserRole.partnerId=\"123\"` * All users with user roles for advertiser 123: `assignedUserRole.advertiserId=\"123\"` * All users with partner level user roles: `entityType=\"PARTNER\"` * All users with user roles for partner 123 and advertisers under partner 123: `parentPartnerId=\"123\"` * All users that last logged in on or after 2023-01-01T00:00:00Z (format of ISO 8601): `lastLoginTime>=\"2023-01-01T00:00:00Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListUsers` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/users", +"response": { +"$ref": "ListUsersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +}, +"patch": { +"description": "Updates an existing user. Returns the updated user if successful. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", +"flatPath": "v2/users/{usersId}", +"httpMethod": "PATCH", +"id": "displayvideo.users.patch", +"parameterOrder": [ +"userId" +], +"parameters": { +"updateMask": { +"description": "Required. The mask to control which fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"userId": { +"description": "Output only. The unique ID of the user. Assigned by the system.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/users/{+userId}", +"request": { +"$ref": "User" +}, +"response": { +"$ref": "User" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video-user-management" +] +} +} +} +}, +"revision": "20241212", +"rootUrl": "https://displayvideo.googleapis.com/", +"schemas": { +"ActivateManualTriggerRequest": { +"description": "Request message for ManualTriggerService.ActivateManualTrigger.", +"id": "ActivateManualTriggerRequest", +"properties": {}, +"type": "object" +}, +"ActiveViewVideoViewabilityMetricConfig": { +"description": "Configuration for custom Active View video viewability metrics.", +"id": "ActiveViewVideoViewabilityMetricConfig", +"properties": { +"displayName": { +"description": "Required. The display name of the custom metric.", +"type": "string" +}, +"minimumDuration": { +"description": "The minimum visible video duration required (in seconds) in order for an impression to be recorded. You must specify minimum_duration, minimum_quartile or both. If both are specified, an impression meets the metric criteria if either requirement is met (whichever happens first).", +"enum": [ +"VIDEO_DURATION_UNSPECIFIED", +"VIDEO_DURATION_SECONDS_NONE", +"VIDEO_DURATION_SECONDS_0", +"VIDEO_DURATION_SECONDS_1", +"VIDEO_DURATION_SECONDS_2", +"VIDEO_DURATION_SECONDS_3", +"VIDEO_DURATION_SECONDS_4", +"VIDEO_DURATION_SECONDS_5", +"VIDEO_DURATION_SECONDS_6", +"VIDEO_DURATION_SECONDS_7", +"VIDEO_DURATION_SECONDS_8", +"VIDEO_DURATION_SECONDS_9", +"VIDEO_DURATION_SECONDS_10", +"VIDEO_DURATION_SECONDS_11", +"VIDEO_DURATION_SECONDS_12", +"VIDEO_DURATION_SECONDS_13", +"VIDEO_DURATION_SECONDS_14", +"VIDEO_DURATION_SECONDS_15", +"VIDEO_DURATION_SECONDS_30", +"VIDEO_DURATION_SECONDS_45", +"VIDEO_DURATION_SECONDS_60" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"No duration value.", +"0 seconds.", +"1 second.", +"2 seconds.", +"3 seconds.", +"4 seconds.", +"5 seconds.", +"6 seconds.", +"7 seconds.", +"8 seconds.", +"9 seconds.", +"10 seconds.", +"11 seconds.", +"12 seconds.", +"13 seconds.", +"14 seconds.", +"15 seconds.", +"30 seconds.", +"45 seconds.", +"60 seconds." +], +"type": "string" +}, +"minimumQuartile": { +"description": "The minimum visible video duration required, based on the video quartiles, in order for an impression to be recorded. You must specify minimum_duration, minimum_quartile or both. If both are specified, an impression meets the metric criteria if either requirement is met (whichever happens first).", +"enum": [ +"VIDEO_DURATION_QUARTILE_UNSPECIFIED", +"VIDEO_DURATION_QUARTILE_NONE", +"VIDEO_DURATION_QUARTILE_FIRST", +"VIDEO_DURATION_QUARTILE_SECOND", +"VIDEO_DURATION_QUARTILE_THIRD", +"VIDEO_DURATION_QUARTILE_FOURTH" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"No quartile value.", +"First quartile.", +"Second quartile (midpoint).", +"Third quartile.", +"Fourth quartile (completion)." +], +"type": "string" +}, +"minimumViewability": { +"description": "Required. The minimum percentage of the video ad's pixels visible on the screen in order for an impression to be recorded.", +"enum": [ +"VIEWABILITY_PERCENT_UNSPECIFIED", +"VIEWABILITY_PERCENT_0", +"VIEWABILITY_PERCENT_25", +"VIEWABILITY_PERCENT_50", +"VIEWABILITY_PERCENT_75", +"VIEWABILITY_PERCENT_100" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"0% viewable.", +"25% viewable.", +"50% viewable.", +"75% viewable.", +"100% viewable." +], +"type": "string" +}, +"minimumVolume": { +"description": "Required. The minimum percentage of the video ad's volume required in order for an impression to be recorded.", +"enum": [ +"VIDEO_VOLUME_PERCENT_UNSPECIFIED", +"VIDEO_VOLUME_PERCENT_0", +"VIDEO_VOLUME_PERCENT_10" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"0% volume.", +"10% volume." +], +"type": "string" +} +}, +"type": "object" +}, +"AdUrl": { +"description": "Additional URLs related to the ad, including beacons.", +"id": "AdUrl", +"properties": { +"type": { +"description": "The type of the Ad URL.", +"enum": [ +"AD_URL_TYPE_UNSPECIFIED", +"AD_URL_TYPE_BEACON_IMPRESSION", +"AD_URL_TYPE_BEACON_EXPANDABLE_DCM_IMPRESSION", +"AD_URL_TYPE_BEACON_CLICK", +"AD_URL_TYPE_BEACON_SKIP" +], +"enumDescriptions": [ +"Unknown or unspecified.", +"A 1x1 tracking pixel to ping when an impression of a creative is delivered.", +"Expandable DCM impression beacon. At serving time, it is expanded to several beacons.", +"Tracking URL to ping when the click event is triggered.", +"Tracking URL to ping when the skip event is triggered." +], +"type": "string" +}, +"url": { +"description": "The URL string value.", +"type": "string" +} +}, +"type": "object" +}, +"Adloox": { +"description": "Details of Adloox brand safety settings.", +"id": "Adloox", +"properties": { +"excludedAdlooxCategories": { +"description": "Adloox categories to exclude.", +"items": { +"enum": [ +"ADLOOX_UNSPECIFIED", +"ADULT_CONTENT_HARD", +"ADULT_CONTENT_SOFT", +"ILLEGAL_CONTENT", +"BORDERLINE_CONTENT", +"DISCRIMINATORY_CONTENT", +"VIOLENT_CONTENT_WEAPONS", +"LOW_VIEWABILITY_DOMAINS", +"FRAUD" +], +"enumDescriptions": [ +"Default value when a Adloox category is not specified or is unknown in this version.", +"Adult content (hard).", +"Adult content (soft).", +"Illegal content.", +"Borderline content.", +"Discriminatory content.", +"Violent content & weapons.", +"Low viewability domains.", +"Fraud." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Advertiser": { +"description": "A single advertiser in Display & Video 360 (DV360).", +"id": "Advertiser", +"properties": { +"adServerConfig": { +"$ref": "AdvertiserAdServerConfig", +"description": "Required. Immutable. Ad server related settings of the advertiser." +}, +"advertiserId": { +"description": "Output only. The unique ID of the advertiser. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"billingConfig": { +"$ref": "AdvertiserBillingConfig", +"description": "Required. Billing related settings of the advertiser." +}, +"creativeConfig": { +"$ref": "AdvertiserCreativeConfig", +"description": "Required. Creative related settings of the advertiser." +}, +"dataAccessConfig": { +"$ref": "AdvertiserDataAccessConfig", +"description": "Settings that control how advertiser data may be accessed." +}, +"displayName": { +"description": "Required. The display name of the advertiser. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Required. Controls whether or not insertion orders and line items of the advertiser can spend their budgets and bid on inventory. * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_PAUSED` and `ENTITY_STATUS_SCHEDULED_FOR_DELETION`. * If set to `ENTITY_STATUS_SCHEDULED_FOR_DELETION`, the advertiser will be deleted 30 days from when it was first scheduled for deletion.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"generalConfig": { +"$ref": "AdvertiserGeneralConfig", +"description": "Required. General settings of the advertiser." +}, +"integrationDetails": { +"$ref": "IntegrationDetails", +"description": "Integration details of the advertiser. Only integrationCode is currently applicable to advertiser. Other fields of IntegrationDetails are not supported and will be ignored if provided." +}, +"name": { +"description": "Output only. The resource name of the advertiser.", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "Required. Immutable. The unique ID of the partner that the advertiser belongs to.", +"format": "int64", +"type": "string" +}, +"prismaEnabled": { +"description": "Whether integration with Mediaocean (Prisma) is enabled. By enabling this, you agree to the following: On behalf of my company, I authorize Mediaocean (Prisma) to send budget segment plans to Google, and I authorize Google to send corresponding reporting and invoices from DV360 to Mediaocean for the purposes of budget planning, billing, and reconciliation for this advertiser.", +"type": "boolean" +}, +"servingConfig": { +"$ref": "AdvertiserTargetingConfig", +"description": "Targeting settings related to ad serving of the advertiser." +}, +"updateTime": { +"description": "Output only. The timestamp when the advertiser was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdvertiserAdServerConfig": { +"description": "Ad server related settings of an advertiser.", +"id": "AdvertiserAdServerConfig", +"properties": { +"cmHybridConfig": { +"$ref": "CmHybridConfig", +"description": "The configuration for advertisers that use both Campaign Manager 360 (CM360) and third-party ad servers." +}, +"thirdPartyOnlyConfig": { +"$ref": "ThirdPartyOnlyConfig", +"description": "The configuration for advertisers that use third-party ad servers only." +} +}, +"type": "object" +}, +"AdvertiserBillingConfig": { +"description": "Billing related settings of an advertiser.", +"id": "AdvertiserBillingConfig", +"properties": { +"billingProfileId": { +"description": "Required. The ID of a billing profile assigned to the advertiser.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AdvertiserCreativeConfig": { +"description": "Creatives related settings of an advertiser.", +"id": "AdvertiserCreativeConfig", +"properties": { +"dynamicCreativeEnabled": { +"description": "Whether or not the advertiser is enabled for dynamic creatives.", +"type": "boolean" +}, +"iasClientId": { +"description": "An ID for configuring campaign monitoring provided by Integral Ad Service (IAS). The DV360 system will append an IAS \"Campaign Monitor\" tag containing this ID to the creative tag.", +"format": "int64", +"type": "string" +}, +"obaComplianceDisabled": { +"description": "Whether or not to disable Google's About this Ad feature that adds badging (to identify the content as an ad) and transparency information (on interaction with About this Ad) to your ads for Online Behavioral Advertising (OBA) and regulatory requirements. About this Ad gives users greater control over the ads they see and helps you explain why they're seeing your ad. [Learn more](//support.google.com/displayvideo/answer/14315795). If you choose to set this field to `true`, note that ads served through Display & Video 360 must comply to the following: * Be Online Behavioral Advertising (OBA) compliant, as per your contract with Google Marketing Platform. * In the European Economic Area (EEA), include transparency information and a mechanism for users to report illegal content in ads. If using an alternative ad badging, transparency, and reporting solution, you must ensure it includes the required transparency information and illegal content flagging mechanism and that you notify Google of any illegal content reports using the appropriate [form](//support.google.com/legal/troubleshooter/1114905?sjid=6787484030557261960-EU#ts=2981967%2C2982031%2C12980091).", +"type": "boolean" +}, +"videoCreativeDataSharingAuthorized": { +"description": "By setting this field to `true`, you, on behalf of your company, authorize Google to use video creatives associated with this Display & Video 360 advertiser to provide reporting and features related to the advertiser's television campaigns. Applicable only when the advertiser has a CM360 hybrid ad server configuration.", +"type": "boolean" +} +}, +"type": "object" +}, +"AdvertiserDataAccessConfig": { +"description": "Settings that control how advertiser related data may be accessed.", +"id": "AdvertiserDataAccessConfig", +"properties": { +"sdfConfig": { +"$ref": "AdvertiserSdfConfig", +"description": "Structured Data Files (SDF) settings for the advertiser. If not specified, the SDF settings of the parent partner are used." +} +}, +"type": "object" +}, +"AdvertiserGeneralConfig": { +"description": "General settings of an advertiser.", +"id": "AdvertiserGeneralConfig", +"properties": { +"currencyCode": { +"description": "Required. Immutable. Advertiser's currency in ISO 4217 format. Accepted codes and the currencies they represent are: Currency Code : Currency Name * `ARS` : Argentine Peso * `AUD` : Australian Dollar * `BRL` : Brazilian Real * `CAD` : Canadian Dollar * `CHF` : Swiss Franc * `CLP` : Chilean Peso * `CNY` : Chinese Yuan * `COP` : Colombian Peso * `CZK` : Czech Koruna * `DKK` : Danish Krone * `EGP` : Egyption Pound * `EUR` : Euro * `GBP` : British Pound * `HKD` : Hong Kong Dollar * `HUF` : Hungarian Forint * `IDR` : Indonesian Rupiah * `ILS` : Israeli Shekel * `INR` : Indian Rupee * `JPY` : Japanese Yen * `KRW` : South Korean Won * `MXN` : Mexican Pesos * `MYR` : Malaysian Ringgit * `NGN` : Nigerian Naira * `NOK` : Norwegian Krone * `NZD` : New Zealand Dollar * `PEN` : Peruvian Nuevo Sol * `PLN` : Polish Zloty * `RON` : New Romanian Leu * `RUB` : Russian Ruble * `SEK` : Swedish Krona * `TRY` : Turkish Lira * `TWD` : New Taiwan Dollar * `USD` : US Dollar * `ZAR` : South African Rand", +"type": "string" +}, +"domainUrl": { +"description": "Required. The domain URL of the advertiser's primary website. The system will send this information to publishers that require website URL to associate a campaign with an advertiser. Provide a URL with no path or query string, beginning with `http:` or `https:`. For example, http://www.example.com", +"type": "string" +}, +"timeZone": { +"description": "Output only. The standard TZ database name of the advertiser's time zone. For example, `America/New_York`. See more at: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones For CM360 hybrid advertisers, the time zone is the same as that of the associated CM360 account; for third-party only advertisers, the time zone is the same as that of the parent partner.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdvertiserSdfConfig": { +"description": "Structured Data Files (SDF) settings of an advertiser.", +"id": "AdvertiserSdfConfig", +"properties": { +"overridePartnerSdfConfig": { +"description": "Whether or not this advertiser overrides the SDF configuration of its parent partner. By default, an advertiser inherits the SDF configuration from the parent partner. To override the partner configuration, set this field to `true` and provide the new configuration in sdfConfig.", +"type": "boolean" +}, +"sdfConfig": { +"$ref": "SdfConfig", +"description": "The SDF configuration for the advertiser. * Required when overridePartnerSdfConfig is `true`. * Output only when overridePartnerSdfConfig is `false`." +} +}, +"type": "object" +}, +"AdvertiserTargetingConfig": { +"description": "Targeting settings related to ad serving of an advertiser.", +"id": "AdvertiserTargetingConfig", +"properties": { +"exemptTvFromViewabilityTargeting": { +"description": "Whether or not connected TV devices are exempt from viewability targeting for all video line items under the advertiser.", +"type": "boolean" +} +}, +"type": "object" +}, +"AgeRangeAssignedTargetingOptionDetails": { +"description": "Represents a targetable age range. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AGE_RANGE`.", +"id": "AgeRangeAssignedTargetingOptionDetails", +"properties": { +"ageRange": { +"description": "Required. The age range of an audience. We only support targeting a continuous age range of an audience. Thus, the age range represented in this field can be 1) targeted solely, or, 2) part of a larger continuous age range. The reach of a continuous age range targeting can be expanded by also targeting an audience of an unknown age.", +"enum": [ +"AGE_RANGE_UNSPECIFIED", +"AGE_RANGE_18_24", +"AGE_RANGE_25_34", +"AGE_RANGE_35_44", +"AGE_RANGE_45_54", +"AGE_RANGE_55_64", +"AGE_RANGE_65_PLUS", +"AGE_RANGE_UNKNOWN", +"AGE_RANGE_18_20", +"AGE_RANGE_21_24", +"AGE_RANGE_25_29", +"AGE_RANGE_30_34", +"AGE_RANGE_35_39", +"AGE_RANGE_40_44", +"AGE_RANGE_45_49", +"AGE_RANGE_50_54", +"AGE_RANGE_55_59", +"AGE_RANGE_60_64" +], +"enumDescriptions": [ +"Default value when age range is not specified in this version. This enum is a placeholder for default value and does not represent a real age range option.", +"The age range of the audience is 18 to 24.", +"The age range of the audience is 25 to 34.", +"The age range of the audience is 35 to 44.", +"The age range of the audience is 45 to 54.", +"The age range of the audience is 55 to 64.", +"The age range of the audience is 65 and up.", +"The age range of the audience is unknown.", +"The age range of the audience is 18 to 20, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 21 to 24, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 25 to 29, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 30 to 34, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 35 to 39, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 40 to 44, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 45 to 49, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 50 to 54, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 55 to 59, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 60 to 64, only supported for the AdGroup of YouTube Programmatic Reservation line item." +], +"type": "string" +} +}, +"type": "object" +}, +"AgeRangeTargetingOptionDetails": { +"description": "Represents a targetable age range. This will be populated in the age_range_details field when targeting_type is `TARGETING_TYPE_AGE_RANGE`.", +"id": "AgeRangeTargetingOptionDetails", +"properties": { +"ageRange": { +"description": "Output only. The age range of an audience.", +"enum": [ +"AGE_RANGE_UNSPECIFIED", +"AGE_RANGE_18_24", +"AGE_RANGE_25_34", +"AGE_RANGE_35_44", +"AGE_RANGE_45_54", +"AGE_RANGE_55_64", +"AGE_RANGE_65_PLUS", +"AGE_RANGE_UNKNOWN", +"AGE_RANGE_18_20", +"AGE_RANGE_21_24", +"AGE_RANGE_25_29", +"AGE_RANGE_30_34", +"AGE_RANGE_35_39", +"AGE_RANGE_40_44", +"AGE_RANGE_45_49", +"AGE_RANGE_50_54", +"AGE_RANGE_55_59", +"AGE_RANGE_60_64" +], +"enumDescriptions": [ +"Default value when age range is not specified in this version. This enum is a placeholder for default value and does not represent a real age range option.", +"The age range of the audience is 18 to 24.", +"The age range of the audience is 25 to 34.", +"The age range of the audience is 35 to 44.", +"The age range of the audience is 45 to 54.", +"The age range of the audience is 55 to 64.", +"The age range of the audience is 65 and up.", +"The age range of the audience is unknown.", +"The age range of the audience is 18 to 20, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 21 to 24, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 25 to 29, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 30 to 34, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 35 to 39, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 40 to 44, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 45 to 49, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 50 to 54, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 55 to 59, only supported for the AdGroup of YouTube Programmatic Reservation line item.", +"The age range of the audience is 60 to 64, only supported for the AdGroup of YouTube Programmatic Reservation line item." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AppAssignedTargetingOptionDetails": { +"description": "Details for assigned app targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_APP`.", +"id": "AppAssignedTargetingOptionDetails", +"properties": { +"appId": { +"description": "Required. The ID of the app. Android's Play store app uses bundle ID, for example `com.google.android.gm`. Apple's App store app ID uses 9 digit string, for example `422689480`.", +"type": "string" +}, +"appPlatform": { +"description": "Indicates the platform of the targeted app. If this field is not specified, the app platform will be assumed to be mobile (i.e., Android or iOS), and we will derive the appropriate mobile platform from the app ID.", +"enum": [ +"APP_PLATFORM_UNSPECIFIED", +"APP_PLATFORM_IOS", +"APP_PLATFORM_ANDROID", +"APP_PLATFORM_ROKU", +"APP_PLATFORM_AMAZON_FIRETV", +"APP_PLATFORM_PLAYSTATION", +"APP_PLATFORM_APPLE_TV", +"APP_PLATFORM_XBOX", +"APP_PLATFORM_SAMSUNG_TV", +"APP_PLATFORM_ANDROID_TV", +"APP_PLATFORM_GENERIC_CTV", +"APP_PLATFORM_LG_TV", +"APP_PLATFORM_VIZIO_TV" +], +"enumDescriptions": [ +"Default value when app platform is not specified in this version. This enum is a placeholder for default value and does not represent a real platform option.", +"The app platform is iOS.", +"The app platform is Android.", +"The app platform is Roku.", +"The app platform is Amazon FireTV.", +"The app platform is Playstation.", +"The app platform is Apple TV.", +"The app platform is Xbox.", +"The app platform is Samsung TV.", +"The app platform is Android TV.", +"The app platform is a CTV platform that is not explicitly listed elsewhere.", +"The app platform is LG TV.", +"The app platform is VIZIO TV." +], +"type": "string" +}, +"displayName": { +"description": "Output only. The display name of the app.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +} +}, +"type": "object" +}, +"AppCategoryAssignedTargetingOptionDetails": { +"description": "Details for assigned app category targeting option. This will be populated in the app_category_details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.", +"id": "AppCategoryAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the app category.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.", +"type": "string" +} +}, +"type": "object" +}, +"AppCategoryTargetingOptionDetails": { +"description": "Represents a targetable collection of apps. A collection lets you target dynamic groups of related apps that are maintained by the platform, for example `All Apps/Google Play/Games`. This will be populated in the app_category_details field when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.", +"id": "AppCategoryTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The name of the app collection.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Asset": { +"description": "A single asset.", +"id": "Asset", +"properties": { +"content": { +"description": "The asset content. For uploaded assets, the content is the serving path.", +"type": "string" +}, +"mediaId": { +"description": "Media ID of the uploaded asset. This is a unique identifier for the asset. This ID can be passed to other API calls, e.g. CreateCreative to associate the asset with a creative. The Media ID space updated on **April 5, 2023**. Update media IDs cached before **April 5, 2023** by retrieving the new media ID from associated creative resources or re-uploading the asset.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AssetAssociation": { +"description": "Asset association for the creative.", +"id": "AssetAssociation", +"properties": { +"asset": { +"$ref": "Asset", +"description": "The associated asset." +}, +"role": { +"description": "The role of this asset for the creative.", +"enum": [ +"ASSET_ROLE_UNSPECIFIED", +"ASSET_ROLE_MAIN", +"ASSET_ROLE_BACKUP", +"ASSET_ROLE_POLITE_LOAD", +"ASSET_ROLE_HEADLINE", +"ASSET_ROLE_LONG_HEADLINE", +"ASSET_ROLE_BODY", +"ASSET_ROLE_LONG_BODY", +"ASSET_ROLE_CAPTION_URL", +"ASSET_ROLE_CALL_TO_ACTION", +"ASSET_ROLE_ADVERTISER_NAME", +"ASSET_ROLE_PRICE", +"ASSET_ROLE_ANDROID_APP_ID", +"ASSET_ROLE_IOS_APP_ID", +"ASSET_ROLE_RATING", +"ASSET_ROLE_ICON", +"ASSET_ROLE_COVER_IMAGE", +"ASSET_ROLE_BACKGROUND_COLOR", +"ASSET_ROLE_ACCENT_COLOR", +"ASSET_ROLE_REQUIRE_LOGO", +"ASSET_ROLE_REQUIRE_IMAGE", +"ASSET_ROLE_ENABLE_ASSET_ENHANCEMENTS" +], +"enumDescriptions": [ +"Asset role is not specified or is unknown in this version.", +"The asset is the main asset of the creative.", +"The asset is a backup asset of the creative.", +"The asset is a polite load asset of the creative.", +"Headline of a native creative. The content must be UTF-8 encoded with a length of no more than 25 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"Long headline of a native creative. The content must be UTF-8 encoded with a length of no more than 50 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"Body text of a native creative. The content must be UTF-8 encoded with a length of no more than 90 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"Long body text of a native creative. The content must be UTF-8 encoded with a length of no more than 150 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"A short, friendly version of the landing page URL to show in the creative. This URL gives people an idea of where they'll arrive after they click on the creative. The content must be UTF-8 encoded with a length of no more than 30 characters. For example, if the landing page URL is 'http://www.example.com/page', the caption URL can be 'example.com'. The protocol (http://) is optional, but the URL can't contain spaces or special characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"The text to use on the call-to-action button of a native creative. The content must be UTF-8 encoded with a length of no more than 15 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"The text that identifies the advertiser or brand name. The content must be UTF-8 encoded with a length of no more than 25 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"The purchase price of your app in the Google play store or iOS app store (for example, $5.99). Note that this value is not automatically synced with the actual value listed in the store. It will always be the one provided when save the creative. The content must be UTF-8 encoded with a length of no more than 15 characters. Assets of this role are read-only.", +"The ID of an Android app in the Google play store. You can find this ID in the App\u2019s Google Play Store URL after \u2018id\u2019. For example, in https://play.google.com/store/apps/details?id=com.company.appname the identifier is com.company.appname. Assets of this role are read-only.", +"The ID of an iOS app in the Apple app store. This ID number can be found in the Apple App Store URL as the string of numbers directly after \"id\". For example, in https://apps.apple.com/us/app/gmail-email-by-google/id422689480 the ID is 422689480. Assets of this role are read-only.", +"The rating of an app in the Google play store or iOS app store. Note that this value is not automatically synced with the actual rating in the store. It will always be the one provided when save the creative. Assets of this role are read-only.", +"The icon of a creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE`", +"The cover image of a native video creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_VIDEO`", +"The main color to use in a creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_ASSET_BASED_CREATIVE`", +"The accent color to use in a creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_ASSET_BASED_CREATIVE`", +"Whether the creative must use a logo asset. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_ASSET_BASED_CREATIVE`", +"Whether the creative must use an image asset. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_ASSET_BASED_CREATIVE`", +"Whether asset enhancements can be applied to the creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_ASSET_BASED_CREATIVE`" +], +"type": "string" +} +}, +"type": "object" +}, +"AssignedInventorySource": { +"description": "An assignment between a targetable inventory source and an inventory source group.", +"id": "AssignedInventorySource", +"properties": { +"assignedInventorySourceId": { +"description": "Output only. The unique ID of the assigned inventory source. The ID is only unique within a given inventory source group. It may be reused in other contexts.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"inventorySourceId": { +"description": "Required. The ID of the inventory source entity being targeted.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the assigned inventory source.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AssignedLocation": { +"description": "An assignment between a location list and a relevant targeting option.", +"id": "AssignedLocation", +"properties": { +"assignedLocationId": { +"description": "Output only. The unique ID of the assigned location. The ID is only unique within a location list. It may be reused in other contexts.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the assigned location.", +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The ID of the targeting option assigned to the location list.", +"type": "string" +} +}, +"type": "object" +}, +"AssignedTargetingOption": { +"description": "A single assigned targeting option, which defines the state of a targeting option for an entity with targeting settings.", +"id": "AssignedTargetingOption", +"properties": { +"ageRangeDetails": { +"$ref": "AgeRangeAssignedTargetingOptionDetails", +"description": "Age range details. This field will be populated when the targeting_type is `TARGETING_TYPE_AGE_RANGE`." +}, +"appCategoryDetails": { +"$ref": "AppCategoryAssignedTargetingOptionDetails", +"description": "App category details. This field will be populated when the targeting_type is `TARGETING_TYPE_APP_CATEGORY`." +}, +"appDetails": { +"$ref": "AppAssignedTargetingOptionDetails", +"description": "App details. This field will be populated when the targeting_type is `TARGETING_TYPE_APP`." +}, +"assignedTargetingOptionId": { +"description": "Output only. The unique ID of the assigned targeting option. The ID is only unique within a given resource and targeting type. It may be reused in other contexts.", +"readOnly": true, +"type": "string" +}, +"assignedTargetingOptionIdAlias": { +"description": "Output only. An alias for the assigned_targeting_option_id. This value can be used in place of `assignedTargetingOptionId` when retrieving or deleting existing targeting. This field will only be supported for all assigned targeting options of the following targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` This field is also supported for line item assigned targeting options of the following targeting types: * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`", +"readOnly": true, +"type": "string" +}, +"audienceGroupDetails": { +"$ref": "AudienceGroupAssignedTargetingOptionDetails", +"description": "Audience targeting details. This field will be populated when the targeting_type is `TARGETING_TYPE_AUDIENCE_GROUP`. You can only target one audience group option per resource." +}, +"audioContentTypeDetails": { +"$ref": "AudioContentTypeAssignedTargetingOptionDetails", +"description": "Audio content type details. This field will be populated when the targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`." +}, +"authorizedSellerStatusDetails": { +"$ref": "AuthorizedSellerStatusAssignedTargetingOptionDetails", +"description": "Authorized seller status details. This field will be populated when the targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. You can only target one authorized seller status option per resource. If a resource doesn't have an authorized seller status option, all authorized sellers indicated as DIRECT or RESELLER in the ads.txt file are targeted by default." +}, +"browserDetails": { +"$ref": "BrowserAssignedTargetingOptionDetails", +"description": "Browser details. This field will be populated when the targeting_type is `TARGETING_TYPE_BROWSER`." +}, +"businessChainDetails": { +"$ref": "BusinessChainAssignedTargetingOptionDetails", +"description": "Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`." +}, +"carrierAndIspDetails": { +"$ref": "CarrierAndIspAssignedTargetingOptionDetails", +"description": "Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`." +}, +"categoryDetails": { +"$ref": "CategoryAssignedTargetingOptionDetails", +"description": "Category details. This field will be populated when the targeting_type is `TARGETING_TYPE_CATEGORY`. Targeting a category will also target its subcategories. If a category is excluded from targeting and a subcategory is included, the exclusion will take precedence." +}, +"channelDetails": { +"$ref": "ChannelAssignedTargetingOptionDetails", +"description": "Channel details. This field will be populated when the targeting_type is `TARGETING_TYPE_CHANNEL`." +}, +"contentDurationDetails": { +"$ref": "ContentDurationAssignedTargetingOptionDetails", +"description": "Content duration details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_DURATION`." +}, +"contentGenreDetails": { +"$ref": "ContentGenreAssignedTargetingOptionDetails", +"description": "Content genre details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_GENRE`." +}, +"contentInstreamPositionDetails": { +"$ref": "ContentInstreamPositionAssignedTargetingOptionDetails", +"description": "Content instream position details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`." +}, +"contentOutstreamPositionDetails": { +"$ref": "ContentOutstreamPositionAssignedTargetingOptionDetails", +"description": "Content outstream position details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`." +}, +"contentStreamTypeDetails": { +"$ref": "ContentStreamTypeAssignedTargetingOptionDetails", +"description": "Content duration details. This field will be populated when the TargetingType is `TARGETING_TYPE_CONTENT_STREAM_TYPE`." +}, +"dayAndTimeDetails": { +"$ref": "DayAndTimeAssignedTargetingOptionDetails", +"description": "Day and time details. This field will be populated when the targeting_type is `TARGETING_TYPE_DAY_AND_TIME`." +}, +"deviceMakeModelDetails": { +"$ref": "DeviceMakeModelAssignedTargetingOptionDetails", +"description": "Device make and model details. This field will be populated when the targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`." +}, +"deviceTypeDetails": { +"$ref": "DeviceTypeAssignedTargetingOptionDetails", +"description": "Device Type details. This field will be populated when the targeting_type is `TARGETING_TYPE_DEVICE_TYPE`." +}, +"digitalContentLabelExclusionDetails": { +"$ref": "DigitalContentLabelAssignedTargetingOptionDetails", +"description": "Digital content label details. This field will be populated when the targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. Digital content labels are targeting exclusions. Advertiser level digital content label exclusions, if set, are always applied in serving (even though they aren't visible in resource settings). Resource settings can exclude content labels in addition to advertiser exclusions, but can't override them. A line item won't serve if all the digital content labels are excluded." +}, +"environmentDetails": { +"$ref": "EnvironmentAssignedTargetingOptionDetails", +"description": "Environment details. This field will be populated when the targeting_type is `TARGETING_TYPE_ENVIRONMENT`." +}, +"exchangeDetails": { +"$ref": "ExchangeAssignedTargetingOptionDetails", +"description": "Exchange details. This field will be populated when the targeting_type is `TARGETING_TYPE_EXCHANGE`." +}, +"genderDetails": { +"$ref": "GenderAssignedTargetingOptionDetails", +"description": "Gender details. This field will be populated when the targeting_type is `TARGETING_TYPE_GENDER`." +}, +"geoRegionDetails": { +"$ref": "GeoRegionAssignedTargetingOptionDetails", +"description": "Geographic region details. This field will be populated when the targeting_type is `TARGETING_TYPE_GEO_REGION`." +}, +"householdIncomeDetails": { +"$ref": "HouseholdIncomeAssignedTargetingOptionDetails", +"description": "Household income details. This field will be populated when the targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`." +}, +"inheritance": { +"description": "Output only. The inheritance status of the assigned targeting option.", +"enum": [ +"INHERITANCE_UNSPECIFIED", +"NOT_INHERITED", +"INHERITED_FROM_PARTNER", +"INHERITED_FROM_ADVERTISER" +], +"enumDescriptions": [ +"The inheritance is unspecified or unknown.", +"The assigned targeting option is not inherited from higher level entity.", +"The assigned targeting option is inherited from partner targeting settings.", +"The assigned targeting option is inherited from advertiser targeting settings." +], +"readOnly": true, +"type": "string" +}, +"inventorySourceDetails": { +"$ref": "InventorySourceAssignedTargetingOptionDetails", +"description": "Inventory source details. This field will be populated when the targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE`." +}, +"inventorySourceGroupDetails": { +"$ref": "InventorySourceGroupAssignedTargetingOptionDetails", +"description": "Inventory source group details. This field will be populated when the targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`." +}, +"keywordDetails": { +"$ref": "KeywordAssignedTargetingOptionDetails", +"description": "Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_KEYWORD`. A maximum of 5000 direct negative keywords can be assigned to a resource. No limit on number of positive keywords that can be assigned." +}, +"languageDetails": { +"$ref": "LanguageAssignedTargetingOptionDetails", +"description": "Language details. This field will be populated when the targeting_type is `TARGETING_TYPE_LANGUAGE`." +}, +"name": { +"description": "Output only. The resource name for this assigned targeting option.", +"readOnly": true, +"type": "string" +}, +"nativeContentPositionDetails": { +"$ref": "NativeContentPositionAssignedTargetingOptionDetails", +"description": "Native content position details. This field will be populated when the targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`." +}, +"negativeKeywordListDetails": { +"$ref": "NegativeKeywordListAssignedTargetingOptionDetails", +"description": "Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource." +}, +"omidDetails": { +"$ref": "OmidAssignedTargetingOptionDetails", +"description": "Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`." +}, +"onScreenPositionDetails": { +"$ref": "OnScreenPositionAssignedTargetingOptionDetails", +"description": "On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`." +}, +"operatingSystemDetails": { +"$ref": "OperatingSystemAssignedTargetingOptionDetails", +"description": "Operating system details. This field will be populated when the targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`." +}, +"parentalStatusDetails": { +"$ref": "ParentalStatusAssignedTargetingOptionDetails", +"description": "Parental status details. This field will be populated when the targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`." +}, +"poiDetails": { +"$ref": "PoiAssignedTargetingOptionDetails", +"description": "POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`." +}, +"proximityLocationListDetails": { +"$ref": "ProximityLocationListAssignedTargetingOptionDetails", +"description": "Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`." +}, +"regionalLocationListDetails": { +"$ref": "RegionalLocationListAssignedTargetingOptionDetails", +"description": "Regional location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_REGIONAL_LOCATION_LIST`." +}, +"sensitiveCategoryExclusionDetails": { +"$ref": "SensitiveCategoryAssignedTargetingOptionDetails", +"description": "Sensitive category details. This field will be populated when the targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. Sensitive categories are targeting exclusions. Advertiser level sensitive category exclusions, if set, are always applied in serving (even though they aren't visible in resource settings). Resource settings can exclude sensitive categories in addition to advertiser exclusions, but can't override them." +}, +"sessionPositionDetails": { +"$ref": "SessionPositionAssignedTargetingOptionDetails", +"description": "Session position details. This field will be populated when the targeting_type is `TARGETING_TYPE_SESSION_POSITION`." +}, +"subExchangeDetails": { +"$ref": "SubExchangeAssignedTargetingOptionDetails", +"description": "Sub-exchange details. This field will be populated when the targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`." +}, +"targetingType": { +"description": "Output only. Identifies the type of this assigned targeting option.", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"readOnly": true, +"type": "string" +}, +"thirdPartyVerifierDetails": { +"$ref": "ThirdPartyVerifierAssignedTargetingOptionDetails", +"description": "Third party verification details. This field will be populated when the targeting_type is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`." +}, +"urlDetails": { +"$ref": "UrlAssignedTargetingOptionDetails", +"description": "URL details. This field will be populated when the targeting_type is `TARGETING_TYPE_URL`." +}, +"userRewardedContentDetails": { +"$ref": "UserRewardedContentAssignedTargetingOptionDetails", +"description": "User rewarded content details. This field will be populated when the targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`." +}, +"videoPlayerSizeDetails": { +"$ref": "VideoPlayerSizeAssignedTargetingOptionDetails", +"description": "Video player size details. This field will be populated when the targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`." +}, +"viewabilityDetails": { +"$ref": "ViewabilityAssignedTargetingOptionDetails", +"description": "Viewability details. This field will be populated when the targeting_type is `TARGETING_TYPE_VIEWABILITY`. You can only target one viewability option per resource." +}, +"youtubeChannelDetails": { +"$ref": "YoutubeChannelAssignedTargetingOptionDetails", +"description": "YouTube channel details. This field will be populated when the targeting_type is `TARGETING_TYPE_YOUTUBE_CHANNEL`." +}, +"youtubeVideoDetails": { +"$ref": "YoutubeVideoAssignedTargetingOptionDetails", +"description": "YouTube video details. This field will be populated when the targeting_type is `TARGETING_TYPE_YOUTUBE_VIDEO`." +} +}, +"type": "object" +}, +"AssignedUserRole": { +"description": "A single assigned user role, which defines a user's authorized interaction with a specified partner or advertiser.", +"id": "AssignedUserRole", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that the assigend user role applies to.", +"format": "int64", +"type": "string" +}, +"assignedUserRoleId": { +"description": "Output only. The ID of the assigned user role.", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that the assigned user role applies to.", +"format": "int64", +"type": "string" +}, +"userRole": { +"description": "Required. The user role to assign to a user for the entity.", +"enum": [ +"USER_ROLE_UNSPECIFIED", +"ADMIN", +"ADMIN_PARTNER_CLIENT", +"STANDARD", +"STANDARD_PLANNER", +"STANDARD_PLANNER_LIMITED", +"STANDARD_PARTNER_CLIENT", +"READ_ONLY", +"REPORTING_ONLY", +"LIMITED_REPORTING_ONLY", +"CREATIVE", +"CREATIVE_ADMIN" +], +"enumDescriptions": [ +"Default value when the user role is not specified or is unknown in this version.", +"The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They can view and edit billing information, create or modify users, and enable or disable exchanges. This role can only be assigned for a partner entity.", +"The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They can create and modify other `ADMIN_PARTNER_CLIENT` users and view billing information. They cannot view revenue models, markups, or any other reseller-sensitive fields. This role can only be assigned for a partner entity.", +"The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They cannot create and modify users or view billing information.", +"The user can view all campaigns, creatives, insertion orders, line items, and reports for the entity, including all cost data. They can create and modify planning-related features, including plans and inventory.", +"The user can view all campaigns, creatives, insertion orders, line items, and reports for the entity. They can create or modify planning-related features, including plans and inventory. They have no access to cost data and cannot start, accept, or negotiate deals.", +"The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They cannot create or modify other users or view billing information. They cannot view revenue models, markups, or any other reseller-sensitive fields. This role can only be assigned for an advertiser entity.", +"The user can only build reports and view data for the entity.", +"The user can only create and manage reports.", +"The user can only create and manage the following client-safe reports: General, Audience Performance, Cross-Partner, Keyword, Order ID, Category, and Third-Party Data Provider.", +"The user can view media plan information they need to collaborate, but can't view cost-related data or Marketplace.", +"The user can view media plan information they need to collaborate, but can't view cost-related data or Marketplace. In addition, they can add other creative admins or creative users to the entity." +], +"type": "string" +} +}, +"type": "object" +}, +"AudienceGroupAssignedTargetingOptionDetails": { +"description": "Assigned audience group targeting option details. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AUDIENCE_GROUP`. The relation between each group is UNION, except for excluded_first_and_third_party_audience_group and excluded_google_audience_group, of which COMPLEMENT is used as an INTERSECTION with other groups.", +"id": "AudienceGroupAssignedTargetingOptionDetails", +"properties": { +"excludedFirstAndThirdPartyAudienceGroup": { +"$ref": "FirstAndThirdPartyAudienceGroup", +"description": "The first and third party audience ids and recencies of the excluded first and third party audience group. Used for negative targeting. The COMPLEMENT of the UNION of this group and other excluded audience groups is used as an INTERSECTION to any positive audience targeting. All items are logically \u2018OR\u2019 of each other." +}, +"excludedGoogleAudienceGroup": { +"$ref": "GoogleAudienceGroup", +"description": "The Google audience ids of the excluded Google audience group. Used for negative targeting. The COMPLEMENT of the UNION of this group and other excluded audience groups is used as an INTERSECTION to any positive audience targeting. Only contains Affinity, In-market and Installed-apps type Google audiences. All items are logically \u2018OR\u2019 of each other." +}, +"includedCombinedAudienceGroup": { +"$ref": "CombinedAudienceGroup", +"description": "The combined audience ids of the included combined audience group. Contains combined audience ids only." +}, +"includedCustomListGroup": { +"$ref": "CustomListGroup", +"description": "The custom list ids of the included custom list group. Contains custom list ids only." +}, +"includedFirstAndThirdPartyAudienceGroups": { +"description": "The first and third party audience ids and recencies of included first and third party audience groups. Each first and third party audience group contains first and third party audience ids only. The relation between each first and third party audience group is INTERSECTION, and the result is UNION'ed with other audience groups. Repeated groups with same settings will be ignored.", +"items": { +"$ref": "FirstAndThirdPartyAudienceGroup" +}, +"type": "array" +}, +"includedGoogleAudienceGroup": { +"$ref": "GoogleAudienceGroup", +"description": "The Google audience ids of the included Google audience group. Contains Google audience ids only." +} +}, +"type": "object" +}, +"AudioAd": { +"description": "Details for an audio ad.", +"id": "AudioAd", +"properties": { +"displayUrl": { +"description": "The webpage address that appears with the ad.", +"type": "string" +}, +"finalUrl": { +"description": "The URL address of the webpage that people reach after they click the ad.", +"type": "string" +}, +"trackingUrl": { +"description": "The URL address loaded in the background for tracking purposes.", +"type": "string" +}, +"video": { +"$ref": "YoutubeVideoDetails", +"description": "The YouTube video of the ad." +} +}, +"type": "object" +}, +"AudioContentTypeAssignedTargetingOptionDetails": { +"description": "Details for audio content type assigned targeting option. This will be populated in the audio_content_type_details field when targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`. Explicitly targeting all options is not supported. Remove all audio content type targeting options to achieve this effect.", +"id": "AudioContentTypeAssignedTargetingOptionDetails", +"properties": { +"audioContentType": { +"description": "Required. The audio content type.", +"enum": [ +"AUDIO_CONTENT_TYPE_UNSPECIFIED", +"AUDIO_CONTENT_TYPE_UNKNOWN", +"AUDIO_CONTENT_TYPE_MUSIC", +"AUDIO_CONTENT_TYPE_BROADCAST", +"AUDIO_CONTENT_TYPE_PODCAST" +], +"enumDescriptions": [ +"Audio content type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", +"The audio content type is unknown.", +"The audio content type is music.", +"The audio content type is broadcast.", +"The audio content type is podcast." +], +"type": "string" +} +}, +"type": "object" +}, +"AudioContentTypeTargetingOptionDetails": { +"description": "Represents a targetable audio content type. This will be populated in the audio_content_type_details field when targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`.", +"id": "AudioContentTypeTargetingOptionDetails", +"properties": { +"audioContentType": { +"description": "Output only. The audio content type.", +"enum": [ +"AUDIO_CONTENT_TYPE_UNSPECIFIED", +"AUDIO_CONTENT_TYPE_UNKNOWN", +"AUDIO_CONTENT_TYPE_MUSIC", +"AUDIO_CONTENT_TYPE_BROADCAST", +"AUDIO_CONTENT_TYPE_PODCAST" +], +"enumDescriptions": [ +"Audio content type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", +"The audio content type is unknown.", +"The audio content type is music.", +"The audio content type is broadcast.", +"The audio content type is podcast." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AudioVideoOffset": { +"description": "The length an audio or a video has been played.", +"id": "AudioVideoOffset", +"properties": { +"percentage": { +"description": "The offset in percentage of the audio or video duration.", +"format": "int64", +"type": "string" +}, +"seconds": { +"description": "The offset in seconds from the start of the audio or video.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AuditAdvertiserResponse": { +"description": "Response message for AdvertiserService.AuditAdvertiser.", +"id": "AuditAdvertiserResponse", +"properties": { +"adGroupCriteriaCount": { +"description": "The number of individual targeting options from the following targeting types that are assigned to a line item under this advertiser. These individual targeting options count towards the limit of 4500000 ad group targeting options per advertiser. Qualifying Targeting types: * Channels, URLs, apps, and collections * Demographic * Google Audiences, including Affinity, Custom Affinity, and In-market audiences * Inventory source * Keyword * Mobile app category * User lists * Video targeting * Viewability", +"format": "int64", +"type": "string" +}, +"campaignCriteriaCount": { +"description": "The number of individual targeting options from the following targeting types that are assigned to a line item under this advertiser. These individual targeting options count towards the limit of 900000 campaign targeting options per advertiser. Qualifying Targeting types: * Position * Browser * Connection speed * Day and time * Device and operating system * Digital content label * Sensitive categories * Environment * Geography, including business chains and proximity * ISP * Language * Third-party verification", +"format": "int64", +"type": "string" +}, +"channelsCount": { +"description": "The number of channels created under this advertiser. These channels count towards the limit of 1000 channels per advertiser.", +"format": "int64", +"type": "string" +}, +"negativeKeywordListsCount": { +"description": "The number of negative keyword lists created under this advertiser. These negative keyword lists count towards the limit of 20 negative keyword lists per advertiser.", +"format": "int64", +"type": "string" +}, +"negativelyTargetedChannelsCount": { +"description": "The number of negatively targeted channels created under this advertiser. These negatively targeted channels count towards the limit of 5 negatively targeted channels per advertiser.", +"format": "int64", +"type": "string" +}, +"usedCampaignsCount": { +"description": "The number of ACTIVE and PAUSED campaigns under this advertiser. These campaigns count towards the limit of 9999 campaigns per advertiser.", +"format": "int64", +"type": "string" +}, +"usedInsertionOrdersCount": { +"description": "The number of ACTIVE, PAUSED and DRAFT insertion orders under this advertiser. These insertion orders count towards the limit of 9999 insertion orders per advertiser.", +"format": "int64", +"type": "string" +}, +"usedLineItemsCount": { +"description": "The number of ACTIVE, PAUSED, and DRAFT line items under this advertiser. These line items count towards the limit of 9999 line items per advertiser.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AuthorizedSellerStatusAssignedTargetingOptionDetails": { +"description": "Represents an assigned authorized seller status. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. If a resource does not have an `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` assigned targeting option, it is using the \"Authorized Direct Sellers and Resellers\" option.", +"id": "AuthorizedSellerStatusAssignedTargetingOptionDetails", +"properties": { +"authorizedSellerStatus": { +"description": "Output only. The authorized seller status to target.", +"enum": [ +"AUTHORIZED_SELLER_STATUS_UNSPECIFIED", +"AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY", +"AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS" +], +"enumDescriptions": [ +"Default value when authorized seller status is not specified in this version. This enum is a placeholder for the default value, or \"Authorized Direct Sellers and Resellers\" in the UI.", +"Only authorized sellers that directly own the inventory being monetized, as indicated by a DIRECT declaration in the ads.txt file. This value is equivalent to \"Authorized Direct Sellers\" in the UI.", +"All authorized sellers, including publishers that have not posted an ads.txt file. Display & Video 360 automatically disallows unauthorized sellers. This value is equivalent to \"Authorized and Non-Participating Publishers\" in the UI." +], +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.", +"type": "string" +} +}, +"type": "object" +}, +"AuthorizedSellerStatusTargetingOptionDetails": { +"description": "Represents a targetable authorized seller status. This will be populated in the authorized_seller_status_details field when targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.", +"id": "AuthorizedSellerStatusTargetingOptionDetails", +"properties": { +"authorizedSellerStatus": { +"description": "Output only. The authorized seller status.", +"enum": [ +"AUTHORIZED_SELLER_STATUS_UNSPECIFIED", +"AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY", +"AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS" +], +"enumDescriptions": [ +"Default value when authorized seller status is not specified in this version. This enum is a placeholder for the default value, or \"Authorized Direct Sellers and Resellers\" in the UI.", +"Only authorized sellers that directly own the inventory being monetized, as indicated by a DIRECT declaration in the ads.txt file. This value is equivalent to \"Authorized Direct Sellers\" in the UI.", +"All authorized sellers, including publishers that have not posted an ads.txt file. Display & Video 360 automatically disallows unauthorized sellers. This value is equivalent to \"Authorized and Non-Participating Publishers\" in the UI." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BiddingStrategy": { +"description": "Settings that control the bid strategy. Bid strategy determines the bid price.", +"id": "BiddingStrategy", +"properties": { +"fixedBid": { +"$ref": "FixedBidStrategy", +"description": "A strategy that uses a fixed bid price." +}, +"maximizeSpendAutoBid": { +"$ref": "MaximizeSpendBidStrategy", +"description": "A strategy that automatically adjusts the bid to optimize to your performance goal while spending the full budget. At insertion order level, the markup_type of line items cannot be set to `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`. In addition, when performance_goal_type is one of: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED` , the line_item_type of the insertion order line items must be either: * `LINE_ITEM_TYPE_DISPLAY_DEFAULT` * `LINE_ITEM_TYPE_VIDEO_DEFAULT` , and when performance_goal_type is either: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN` the line_item_type of the insertion order line items must be `LINE_ITEM_TYPE_VIDEO_DEFAULT`." +}, +"performanceGoalAutoBid": { +"$ref": "PerformanceGoalBidStrategy", +"description": "A strategy that automatically adjusts the bid to meet or beat a specified performance goal. It is to be used only for a line item entity." +} +}, +"type": "object" +}, +"BrowserAssignedTargetingOptionDetails": { +"description": "Details for assigned browser targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BROWSER`.", +"id": "BrowserAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the browser.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`.", +"type": "string" +} +}, +"type": "object" +}, +"BrowserTargetingOptionDetails": { +"description": "Represents a targetable browser. This will be populated in the browser_details field when targeting_type is `TARGETING_TYPE_BROWSER`.", +"id": "BrowserTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the browser.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BudgetSummary": { +"description": "Summarized information of an individual campaign budget.", +"id": "BudgetSummary", +"properties": { +"externalBudgetId": { +"description": "Corresponds to the external_budget_id of a campaign budget. If the value is not set in the campaign budget, this field will be empty.", +"type": "string" +}, +"preTaxAmountMicros": { +"description": "The sum of charges made under this budget before taxes, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"prismaCpeCode": { +"$ref": "PrismaCpeCode", +"description": "Relevant client, product, and estimate codes from the Mediaocean Prisma tool. Only applicable for campaign budgets with an external_budget_source of EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN." +}, +"taxAmountMicros": { +"description": "The amount of tax applied to charges under this budget, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"totalAmountMicros": { +"description": "The total sum of charges made under this budget, including tax, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BulkEditAdvertiserAssignedTargetingOptionsRequest": { +"description": "Request message for BulkEditAdvertiserAssignedTargetingOptions.", +"id": "BulkEditAdvertiserAssignedTargetingOptionsRequest", +"properties": { +"createRequests": { +"description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_KEYWORD`", +"items": { +"$ref": "CreateAssignedTargetingOptionsRequest" +}, +"type": "array" +}, +"deleteRequests": { +"description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_KEYWORD`", +"items": { +"$ref": "DeleteAssignedTargetingOptionsRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAdvertiserAssignedTargetingOptionsResponse": { +"id": "BulkEditAdvertiserAssignedTargetingOptionsResponse", +"properties": { +"createdAssignedTargetingOptions": { +"description": "The list of assigned targeting options that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedInventorySourcesRequest": { +"description": "Request message for AssignedInventorySourceService.BulkEdit.", +"id": "BulkEditAssignedInventorySourcesRequest", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent inventory source group. The parent partner does not have access to these assigned inventory sources.", +"format": "int64", +"type": "string" +}, +"createdAssignedInventorySources": { +"description": "The assigned inventory sources to create in bulk, specified as a list of AssignedInventorySources.", +"items": { +"$ref": "AssignedInventorySource" +}, +"type": "array" +}, +"deletedAssignedInventorySources": { +"description": "The IDs of the assigned inventory sources to delete in bulk, specified as a list of assigned_inventory_source_ids.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"partnerId": { +"description": "The ID of the partner that owns the inventory source group. Only this partner has write access to these assigned inventory sources.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BulkEditAssignedInventorySourcesResponse": { +"description": "Response message for AssignedInventorySourceService.BulkEdit.", +"id": "BulkEditAssignedInventorySourcesResponse", +"properties": { +"assignedInventorySources": { +"description": "The list of assigned inventory sources that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedInventorySource" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedLocationsRequest": { +"description": "Request message for AssignedLocationService.BulkEditAssignedLocations.", +"id": "BulkEditAssignedLocationsRequest", +"properties": { +"createdAssignedLocations": { +"description": "The assigned locations to create in bulk, specified as a list of AssignedLocation resources.", +"items": { +"$ref": "AssignedLocation" +}, +"type": "array" +}, +"deletedAssignedLocations": { +"description": "The IDs of the assigned locations to delete in bulk, specified as a list of assignedLocationId values.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedLocationsResponse": { +"id": "BulkEditAssignedLocationsResponse", +"properties": { +"assignedLocations": { +"description": "The list of assigned locations that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedLocation" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedTargetingOptionsRequest": { +"description": "Request message for BulkEditLineItemsAssignedTargetingOptions.", +"id": "BulkEditAssignedTargetingOptionsRequest", +"properties": { +"createRequests": { +"description": "The assigned targeting options to create in batch, specified as a list of CreateAssignedTargetingOptionsRequest. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"items": { +"$ref": "CreateAssignedTargetingOptionsRequest" +}, +"type": "array" +}, +"deleteRequests": { +"description": "The assigned targeting options to delete in batch, specified as a list of DeleteAssignedTargetingOptionsRequest. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", +"items": { +"$ref": "DeleteAssignedTargetingOptionsRequest" +}, +"type": "array" +}, +"lineItemIds": { +"description": "Required. The ID of the line items whose targeting is being updated.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedTargetingOptionsResponse": { +"id": "BulkEditAssignedTargetingOptionsResponse", +"properties": { +"errors": { +"description": "The error information for each line item that failed to update.", +"items": { +"$ref": "Status" +}, +"type": "array" +}, +"failedLineItemIds": { +"description": "Output only. The IDs of the line items which failed.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"updatedLineItemIds": { +"description": "Output only. The IDs of the line items which successfully updated.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedUserRolesRequest": { +"description": "Request message for BulkEditAssignedUserRoles.", +"id": "BulkEditAssignedUserRolesRequest", +"properties": { +"createdAssignedUserRoles": { +"description": "The assigned user roles to create in batch, specified as a list of AssignedUserRoles.", +"items": { +"$ref": "AssignedUserRole" +}, +"type": "array" +}, +"deletedAssignedUserRoles": { +"description": "The assigned user roles to delete in batch, specified as a list of assigned_user_role_ids. The format of assigned_user_role_id is `entityType-entityid`, for example `partner-123`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditAssignedUserRolesResponse": { +"id": "BulkEditAssignedUserRolesResponse", +"properties": { +"createdAssignedUserRoles": { +"description": "The list of assigned user roles that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedUserRole" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditNegativeKeywordsRequest": { +"description": "Request message for NegativeKeywordService.BulkEditNegativeKeywords.", +"id": "BulkEditNegativeKeywordsRequest", +"properties": { +"createdNegativeKeywords": { +"description": "The negative keywords to create in batch, specified as a list of NegativeKeywords.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +}, +"deletedNegativeKeywords": { +"description": "The negative keywords to delete in batch, specified as a list of keyword_values.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditNegativeKeywordsResponse": { +"description": "Response message for NegativeKeywordService.BulkEditNegativeKeywords.", +"id": "BulkEditNegativeKeywordsResponse", +"properties": { +"negativeKeywords": { +"description": "The list of negative keywords that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditPartnerAssignedTargetingOptionsRequest": { +"description": "Request message for BulkEditPartnerAssignedTargetingOptions.", +"id": "BulkEditPartnerAssignedTargetingOptionsRequest", +"properties": { +"createRequests": { +"description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"items": { +"$ref": "CreateAssignedTargetingOptionsRequest" +}, +"type": "array" +}, +"deleteRequests": { +"description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", +"items": { +"$ref": "DeleteAssignedTargetingOptionsRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditPartnerAssignedTargetingOptionsResponse": { +"id": "BulkEditPartnerAssignedTargetingOptionsResponse", +"properties": { +"createdAssignedTargetingOptions": { +"description": "The list of assigned targeting options that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkEditSitesRequest": { +"description": "Request message for SiteService.BulkEditSites.", +"id": "BulkEditSitesRequest", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"type": "string" +}, +"createdSites": { +"description": "The sites to create in batch, specified as a list of Sites.", +"items": { +"$ref": "Site" +}, +"type": "array" +}, +"deletedSites": { +"description": "The sites to delete in batch, specified as a list of site url_or_app_ids.", +"items": { +"type": "string" +}, +"type": "array" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BulkEditSitesResponse": { +"description": "Response message for SiteService.BulkEditSites.", +"id": "BulkEditSitesResponse", +"properties": { +"sites": { +"description": "The list of sites that have been successfully created. This list will be absent if empty.", +"items": { +"$ref": "Site" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkListAdGroupAssignedTargetingOptionsResponse": { +"id": "BulkListAdGroupAssignedTargetingOptionsResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent call to `BulkListAdGroupAssignedTargetingOptions` to fetch the next page of results. This token will be absent if there are no more AdGroupAssignedTargetingOption resources to return.", +"type": "string" +}, +"youtubeAdGroupAssignedTargetingOptions": { +"description": "The list of wrapper objects, each providing an assigned targeting option and the youtube ad group it is assigned to. This list will be absent if empty.", +"items": { +"$ref": "YoutubeAdGroupAssignedTargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"BulkListAdvertiserAssignedTargetingOptionsResponse": { +"id": "BulkListAdvertiserAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListAdvertiserAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"BulkListAssignedTargetingOptionsResponse": { +"id": "BulkListAssignedTargetingOptionsResponse", +"properties": { +"lineItemAssignedTargetingOptions": { +"description": "The list of wrapper objects, each providing an assigned targeting option and the line item it is assigned to. This list will be absent if empty.", +"items": { +"$ref": "LineItemAssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent call to `BulkListAssignedTargetingOptions` to fetch the next page of results. This token will be absent if there are no more line_item_assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"BulkListCampaignAssignedTargetingOptionsResponse": { +"id": "BulkListCampaignAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListCampaignAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"BulkListInsertionOrderAssignedTargetingOptionsResponse": { +"id": "BulkListInsertionOrderAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListInsertionOrderAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"BulkUpdateLineItemsRequest": { +"description": "Request message for LineItemService.BulkUpdateLineItems.", +"id": "BulkUpdateLineItemsRequest", +"properties": { +"lineItemIds": { +"description": "Required. IDs of line items to update.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"targetLineItem": { +"$ref": "LineItem", +"description": "Required. A line item object containing the fields to be updated and the new values to assign to all line items specified in line_item_ids.\"" +}, +"updateMask": { +"description": "Required. A field mask identifying which fields to update. Only the following fields are currently supported: * entityStatus", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"BulkUpdateLineItemsResponse": { +"description": "Response message for LineItemService.BulkUpdateLineItems.", +"id": "BulkUpdateLineItemsResponse", +"properties": { +"errors": { +"description": "Errors returned by line items that failed to update.", +"items": { +"$ref": "Status" +}, +"type": "array" +}, +"failedLineItemIds": { +"description": "The IDs of line items that failed to update.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"skippedLineItemIds": { +"description": "The IDs of line items that are skipped for updates. For example, unnecessary mutates that will result in effectively no changes to line items will be skipped and corresponding line item IDs can be tracked here.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"updatedLineItemIds": { +"description": "The IDs of successfully updated line items.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BumperAd": { +"description": "Details for a bumper ad.", +"id": "BumperAd", +"properties": { +"commonInStreamAttribute": { +"$ref": "CommonInStreamAttribute", +"description": "Common ad attributes." +} +}, +"type": "object" +}, +"BusinessChainAssignedTargetingOptionDetails": { +"description": "Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`.", +"id": "BusinessChainAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of a business chain, e.g. \"KFC\", \"Chase Bank\".", +"readOnly": true, +"type": "string" +}, +"proximityRadiusAmount": { +"description": "Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6.", +"format": "double", +"type": "number" +}, +"proximityRadiusUnit": { +"description": "Required. The unit of distance by which the targeting radius is measured.", +"enum": [ +"DISTANCE_UNIT_UNSPECIFIED", +"DISTANCE_UNIT_MILES", +"DISTANCE_UNIT_KILOMETERS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Miles.", +"Kilometers." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. Accepted business chain targeting option IDs can be retrieved using SearchTargetingOptions.", +"type": "string" +} +}, +"type": "object" +}, +"BusinessChainSearchTerms": { +"description": "Search terms for Business Chain targeting options. At least one of the field should be populated.", +"id": "BusinessChainSearchTerms", +"properties": { +"businessChainQuery": { +"description": "The search query for the desired business chain. The query must be the full name of the business, e.g. \"KFC\", \"mercedes-benz\".", +"type": "string" +}, +"regionQuery": { +"description": "The search query for the desired geo region, e.g. \"Seattle\", \"United State\".", +"type": "string" +} +}, +"type": "object" +}, +"BusinessChainTargetingOptionDetails": { +"description": "Represents a targetable business chain within a geo region. This will be populated in the business_chain_details field when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`.", +"id": "BusinessChainTargetingOptionDetails", +"properties": { +"businessChain": { +"description": "Output only. The display name of the business chain, e.g. \"KFC\", \"Chase Bank\".", +"readOnly": true, +"type": "string" +}, +"geoRegion": { +"description": "Output only. The display name of the geographic region, e.g. \"Ontario, Canada\".", +"readOnly": true, +"type": "string" +}, +"geoRegionType": { +"description": "Output only. The type of the geographic region.", +"enum": [ +"GEO_REGION_TYPE_UNKNOWN", +"GEO_REGION_TYPE_OTHER", +"GEO_REGION_TYPE_COUNTRY", +"GEO_REGION_TYPE_REGION", +"GEO_REGION_TYPE_TERRITORY", +"GEO_REGION_TYPE_PROVINCE", +"GEO_REGION_TYPE_STATE", +"GEO_REGION_TYPE_PREFECTURE", +"GEO_REGION_TYPE_GOVERNORATE", +"GEO_REGION_TYPE_CANTON", +"GEO_REGION_TYPE_UNION_TERRITORY", +"GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", +"GEO_REGION_TYPE_DMA_REGION", +"GEO_REGION_TYPE_METRO", +"GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", +"GEO_REGION_TYPE_COUNTY", +"GEO_REGION_TYPE_MUNICIPALITY", +"GEO_REGION_TYPE_CITY", +"GEO_REGION_TYPE_POSTAL_CODE", +"GEO_REGION_TYPE_DEPARTMENT", +"GEO_REGION_TYPE_AIRPORT", +"GEO_REGION_TYPE_TV_REGION", +"GEO_REGION_TYPE_OKRUG", +"GEO_REGION_TYPE_BOROUGH", +"GEO_REGION_TYPE_CITY_REGION", +"GEO_REGION_TYPE_ARRONDISSEMENT", +"GEO_REGION_TYPE_NEIGHBORHOOD", +"GEO_REGION_TYPE_UNIVERSITY", +"GEO_REGION_TYPE_DISTRICT" +], +"enumDescriptions": [ +"The geographic region type is unknown.", +"The geographic region type is other.", +"The geographic region is a country.", +"The geographic region type is region.", +"The geographic region is a territory.", +"The geographic region is a province.", +"The geographic region is a state.", +"The geographic region is a prefecture.", +"The geographic region is a governorate.", +"The geographic region is a canton.", +"The geographic region is a union territory.", +"The geographic region is an autonomous community.", +"The geographic region is a designated market area (DMA) region.", +"The geographic region type is metro.", +"The geographic region is a congressional district.", +"The geographic region is a county.", +"The geographic region is a municipality.", +"The geographic region is a city.", +"The geographic region targeting type is postal code.", +"The geographic region targeting type is department.", +"The geographic region is an airport.", +"The geographic region is a TV region.", +"The geographic region is an okrug.", +"The geographic region is a borough.", +"The geographic region is a city region.", +"The geographic region is an arrondissement.", +"The geographic region is a neighborhood.", +"The geographic region is a university.", +"The geographic region is a district." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Campaign": { +"description": "A single campaign.", +"id": "Campaign", +"properties": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the campaign belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"campaignBudgets": { +"description": "The list of budgets available to this campaign. If this field is not set, the campaign uses an unlimited budget.", +"items": { +"$ref": "CampaignBudget" +}, +"type": "array" +}, +"campaignFlight": { +"$ref": "CampaignFlight", +"description": "Required. The planned spend and duration of the campaign." +}, +"campaignGoal": { +"$ref": "CampaignGoal", +"description": "Required. The goal of the campaign." +}, +"campaignId": { +"description": "Output only. The unique ID of the campaign. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the campaign. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Required. Controls whether or not the insertion orders under this campaign can spend their budgets and bid on inventory. * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. * For CreateCampaign method, `ENTITY_STATUS_ARCHIVED` is not allowed.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"frequencyCap": { +"$ref": "FrequencyCap", +"description": "Required. The frequency cap setting of the campaign." +}, +"name": { +"description": "Output only. The resource name of the campaign.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the campaign was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CampaignBudget": { +"description": "Settings that control how the campaign budget is allocated.", +"id": "CampaignBudget", +"properties": { +"budgetAmountMicros": { +"description": "Required. The total amount the linked insertion order segments can budget. The amount is in micros. Must be greater than 0. For example, 500000000 represents 500 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"budgetId": { +"description": "The unique ID of the campaign budget. Assigned by the system. Do not set for new budgets. Must be included when updating or adding budgets to campaign_budgets. Otherwise, a new ID will be generated and assigned.", +"format": "int64", +"type": "string" +}, +"budgetUnit": { +"description": "Required. Immutable. Specifies whether the budget is measured in currency or impressions.", +"enum": [ +"BUDGET_UNIT_UNSPECIFIED", +"BUDGET_UNIT_CURRENCY", +"BUDGET_UNIT_IMPRESSIONS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Budgeting in currency amounts.", +"Budgeting in impression amounts." +], +"type": "string" +}, +"dateRange": { +"$ref": "DateRange", +"description": "Required. The date range for the campaign budget. Linked budget segments may have a different date range. They are resolved relative to the parent advertiser's time zone. Both `start_date` and `end_date` must be before the year 2037." +}, +"displayName": { +"description": "Required. The display name of the budget. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"externalBudgetId": { +"description": "Immutable. The ID identifying this budget to the external source. If this field is set and the invoice detail level of the corresponding billing profile is set to \"Budget level PO\", all impressions served against this budget will include this ID on the invoice. Must be unique under the campaign.", +"type": "string" +}, +"externalBudgetSource": { +"description": "Required. The external source of the budget.", +"enum": [ +"EXTERNAL_BUDGET_SOURCE_UNSPECIFIED", +"EXTERNAL_BUDGET_SOURCE_NONE", +"EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN" +], +"enumDescriptions": [ +"External budget source value is not specified or unknown in this version.", +"Budget has no external source.", +"Budget source is Mediaocean." +], +"type": "string" +}, +"invoiceGroupingId": { +"description": "Immutable. The ID used to group budgets to be included the same invoice. If this field is set and the invoice level of the corresponding billing profile is set to \"Budget invoice grouping ID\", all external_budget_id sharing the same invoice_grouping_id will be grouped in the same invoice.", +"type": "string" +}, +"prismaConfig": { +"$ref": "PrismaConfig", +"description": "Additional metadata for use by the Mediaocean Prisma tool. Required for Mediaocean budgets. Only applicable to prisma_enabled advertisers." +} +}, +"type": "object" +}, +"CampaignFlight": { +"description": "Settings that track the planned spend and duration of a campaign.", +"id": "CampaignFlight", +"properties": { +"plannedDates": { +"$ref": "DateRange", +"description": "Required. The dates that the campaign is expected to run. They are resolved relative to the parent advertiser's time zone. * The dates specified here will not affect serving. They are used to generate alerts and warnings. For example, if the flight date of any child insertion order is outside the range of these dates, the user interface will show a warning. * `start_date` is required and must be the current date or later. * `end_date` is optional. If specified, it must be the `start_date` or later. * Any specified date must be before the year 2037." +}, +"plannedSpendAmountMicros": { +"description": "The amount the campaign is expected to spend for its given planned_dates. This will not limit serving, but will be used for tracking spend in the DV360 UI. The amount is in micros. Must be greater than or equal to 0. For example, 500000000 represents 500 standard units of the currency.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CampaignGoal": { +"description": "Settings that control the goal of a campaign.", +"id": "CampaignGoal", +"properties": { +"campaignGoalType": { +"description": "Required. The type of the campaign goal.", +"enum": [ +"CAMPAIGN_GOAL_TYPE_UNSPECIFIED", +"CAMPAIGN_GOAL_TYPE_APP_INSTALL", +"CAMPAIGN_GOAL_TYPE_BRAND_AWARENESS", +"CAMPAIGN_GOAL_TYPE_OFFLINE_ACTION", +"CAMPAIGN_GOAL_TYPE_ONLINE_ACTION" +], +"enumDescriptions": [ +"Goal value is not specified or unknown in this version.", +"Drive app installs or engagements.", +"Raise awareness of a brand or product.", +"Drive offline or in-store sales.", +"Drive online action or visits." +], +"type": "string" +}, +"performanceGoal": { +"$ref": "PerformanceGoal", +"description": "Required. The performance goal of the campaign. Acceptable values for performance_goal_type are: * `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` * `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` * `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` * `PERFORMANCE_GOAL_TYPE_OTHER`" +} +}, +"type": "object" +}, +"CarrierAndIspAssignedTargetingOptionDetails": { +"description": "Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`.", +"id": "CarrierAndIspAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the carrier or ISP.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_CARRIER_AND_ISP`.", +"type": "string" +} +}, +"type": "object" +}, +"CarrierAndIspTargetingOptionDetails": { +"description": "Represents a targetable carrier or ISP. This will be populated in the carrier_and_isp_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`.", +"id": "CarrierAndIspTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the carrier or ISP.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type indicating if it's carrier or ISP.", +"enum": [ +"CARRIER_AND_ISP_TYPE_UNSPECIFIED", +"CARRIER_AND_ISP_TYPE_ISP", +"CARRIER_AND_ISP_TYPE_CARRIER" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Indicates this targeting resource refers to an ISP.", +"Indicates this targeting resource refers to a mobile carrier." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CategoryAssignedTargetingOptionDetails": { +"description": "Assigned category targeting option details. This will be populated in the category_details field when targeting_type is `TARGETING_TYPE_CATEGORY`.", +"id": "CategoryAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the category.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CATEGORY`.", +"type": "string" +} +}, +"type": "object" +}, +"CategoryTargetingOptionDetails": { +"description": "Represents a targetable category. This will be populated in the category_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_CATEGORY`.", +"id": "CategoryTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the category.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Channel": { +"description": "A single channel. Channels are custom groups of related websites and apps.", +"id": "Channel", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that owns the channel.", +"format": "int64", +"type": "string" +}, +"channelId": { +"description": "Output only. The unique ID of the channel. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the channel. Must be UTF-8 encoded with a maximum length of 240 bytes.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the channel.", +"readOnly": true, +"type": "string" +}, +"negativelyTargetedLineItemCount": { +"description": "Output only. Number of line items that are directly targeting this channel negatively.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the channel.", +"format": "int64", +"type": "string" +}, +"positivelyTargetedLineItemCount": { +"description": "Output only. Number of line items that are directly targeting this channel positively.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ChannelAssignedTargetingOptionDetails": { +"description": "Details for assigned channel targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CHANNEL`.", +"id": "ChannelAssignedTargetingOptionDetails", +"properties": { +"channelId": { +"description": "Required. ID of the channel. Should refer to the channel ID field on a [Partner-owned channel](partners.channels#Channel.FIELDS.channel_id) or [advertiser-owned channel](advertisers.channels#Channel.FIELDS.channel_id) resource.", +"format": "int64", +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted. For advertiser level assigned targeting option, this field must be true.", +"type": "boolean" +} +}, +"type": "object" +}, +"CmHybridConfig": { +"description": "Settings for advertisers that use both Campaign Manager 360 (CM360) and third-party ad servers.", +"id": "CmHybridConfig", +"properties": { +"cmAccountId": { +"description": "Required. Immutable. Account ID of the CM360 Floodlight configuration linked with the DV360 advertiser.", +"format": "int64", +"type": "string" +}, +"cmAdvertiserIds": { +"description": "Output only. The set of CM360 Advertiser IDs sharing the CM360 Floodlight configuration.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"cmFloodlightConfigId": { +"description": "Required. Immutable. ID of the CM360 Floodlight configuration linked with the DV360 advertiser.", +"format": "int64", +"type": "string" +}, +"cmFloodlightLinkingAuthorized": { +"description": "Required. Immutable. By setting this field to `true`, you, on behalf of your company, authorize the sharing of information from the given Floodlight configuration to this Display & Video 360 advertiser.", +"type": "boolean" +}, +"cmSyncableSiteIds": { +"description": "A list of CM360 sites whose placements will be synced to DV360 as creatives. If absent or empty in CreateAdvertiser method, the system will automatically create a CM360 site. Removing sites from this list may cause DV360 creatives synced from CM360 to be deleted. At least one site must be specified.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"dv360ToCmCostReportingEnabled": { +"description": "Whether or not to report DV360 cost to CM360.", +"type": "boolean" +}, +"dv360ToCmDataSharingEnabled": { +"description": "Whether or not to include DV360 data in CM360 data transfer reports.", +"type": "boolean" +} +}, +"type": "object" +}, +"CmTrackingAd": { +"description": "A Campaign Manager 360 tracking ad.", +"id": "CmTrackingAd", +"properties": { +"cmAdId": { +"description": "The ad ID of the campaign manager 360 tracking Ad.", +"format": "int64", +"type": "string" +}, +"cmCreativeId": { +"description": "The creative ID of the campaign manager 360 tracking Ad.", +"format": "int64", +"type": "string" +}, +"cmPlacementId": { +"description": "The placement ID of the campaign manager 360 tracking Ad.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CombinedAudience": { +"description": "Describes a combined audience resource.", +"id": "CombinedAudience", +"properties": { +"combinedAudienceId": { +"description": "Output only. The unique ID of the combined audience. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The display name of the combined audience. .", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the combined audience.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CombinedAudienceGroup": { +"description": "Details of combined audience group. All combined audience targeting settings are logically \u2018OR\u2019 of each other.", +"id": "CombinedAudienceGroup", +"properties": { +"settings": { +"description": "Required. All combined audience targeting settings in combined audience group. Repeated settings with same id will be ignored. The number of combined audience settings should be no more than five, error will be thrown otherwise.", +"items": { +"$ref": "CombinedAudienceTargetingSetting" +}, +"type": "array" +} +}, +"type": "object" +}, +"CombinedAudienceTargetingSetting": { +"description": "Details of combined audience targeting setting.", +"id": "CombinedAudienceTargetingSetting", +"properties": { +"combinedAudienceId": { +"description": "Required. Combined audience id of combined audience targeting setting. This id is combined_audience_id.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CommonInStreamAttribute": { +"description": "Common attributes for in-stream, non-skippable and bumper ads.", +"id": "CommonInStreamAttribute", +"properties": { +"actionButtonLabel": { +"description": "The text on the call-to-action button.", +"type": "string" +}, +"actionHeadline": { +"description": "The headline of the call-to-action banner.", +"type": "string" +}, +"companionBanner": { +"$ref": "ImageAsset", +"description": "The image which shows next to the video ad." +}, +"displayUrl": { +"description": "The webpage address that appears with the ad.", +"type": "string" +}, +"finalUrl": { +"description": "The URL address of the webpage that people reach after they click the ad.", +"type": "string" +}, +"trackingUrl": { +"description": "The URL address loaded in the background for tracking purposes.", +"type": "string" +}, +"video": { +"$ref": "YoutubeVideoDetails", +"description": "The YouTube video of the ad." +} +}, +"type": "object" +}, +"Consent": { +"description": "User consent status.", +"id": "Consent", +"properties": { +"adPersonalization": { +"description": "Represents consent for ad personalization.", +"enum": [ +"CONSENT_STATUS_UNSPECIFIED", +"CONSENT_STATUS_GRANTED", +"CONSENT_STATUS_DENIED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Consent is granted.", +"Consent is denied." +], +"type": "string" +}, +"adUserData": { +"description": "Represents consent for ad user data.", +"enum": [ +"CONSENT_STATUS_UNSPECIFIED", +"CONSENT_STATUS_GRANTED", +"CONSENT_STATUS_DENIED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Consent is granted.", +"Consent is denied." +], +"type": "string" +} +}, +"type": "object" +}, +"ContactInfo": { +"description": "Contact information defining a Customer Match audience member.", +"id": "ContactInfo", +"properties": { +"countryCode": { +"description": "Country code of the member. Must also be set with the following fields: * hashed_first_name * hashed_last_name * zip_codes", +"type": "string" +}, +"hashedEmails": { +"description": "A list of SHA256 hashed email of the member. Before hashing, remove all whitespace and make sure the string is all lowercase.", +"items": { +"type": "string" +}, +"type": "array" +}, +"hashedFirstName": { +"description": "SHA256 hashed first name of the member. Before hashing, remove all whitespace and make sure the string is all lowercase. Must also be set with the following fields: * country_code * hashed_last_name * zip_codes", +"type": "string" +}, +"hashedLastName": { +"description": "SHA256 hashed last name of the member. Before hashing, remove all whitespace and make sure the string is all lowercase. Must also be set with the following fields: * country_code * hashed_first_name * zip_codes", +"type": "string" +}, +"hashedPhoneNumbers": { +"description": "A list of SHA256 hashed phone numbers of the member. Before hashing, all phone numbers must be formatted using the [E.164 format](//en.wikipedia.org/wiki/E.164) and include the country calling code.", +"items": { +"type": "string" +}, +"type": "array" +}, +"zipCodes": { +"description": "A list of zip codes of the member. Must also be set with the following fields: * country_code * hashed_first_name * hashed_last_name", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContactInfoList": { +"description": "Wrapper message for a list of contact information defining Customer Match audience members.", +"id": "ContactInfoList", +"properties": { +"consent": { +"$ref": "Consent", +"description": "Input only. The consent setting for the users in contact_infos. Leaving this field unset indicates that consent is not specified. If ad_user_data or ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request will return an error." +}, +"contactInfos": { +"description": "A list of ContactInfo objects defining Customer Match audience members. The size of members after splitting the contact_infos mustn't be greater than 500,000.", +"items": { +"$ref": "ContactInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContentDurationAssignedTargetingOptionDetails": { +"description": "Details for content duration assigned targeting option. This will be populated in the content_duration_details field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`. Explicitly targeting all options is not supported. Remove all content duration targeting options to achieve this effect.", +"id": "ContentDurationAssignedTargetingOptionDetails", +"properties": { +"contentDuration": { +"description": "Output only. The content duration.", +"enum": [ +"CONTENT_DURATION_UNSPECIFIED", +"CONTENT_DURATION_UNKNOWN", +"CONTENT_DURATION_0_TO_1_MIN", +"CONTENT_DURATION_1_TO_5_MIN", +"CONTENT_DURATION_5_TO_15_MIN", +"CONTENT_DURATION_15_TO_30_MIN", +"CONTENT_DURATION_30_TO_60_MIN", +"CONTENT_DURATION_OVER_60_MIN" +], +"enumDescriptions": [ +"Content duration is not specified in this version. This enum is a place holder for a default value and does not represent a real content duration.", +"The content duration is unknown.", +"Content is 0-1 minute long.", +"Content is 1-5 minutes long.", +"Content is 5-15 minutes long.", +"Content is 15-30 minutes long.", +"Content is 30-60 minutes long.", +"Content is over 60 minutes long." +], +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`.", +"type": "string" +} +}, +"type": "object" +}, +"ContentDurationTargetingOptionDetails": { +"description": "Represents a targetable content duration. This will be populated in the content_duration_details field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`.", +"id": "ContentDurationTargetingOptionDetails", +"properties": { +"contentDuration": { +"description": "Output only. The content duration.", +"enum": [ +"CONTENT_DURATION_UNSPECIFIED", +"CONTENT_DURATION_UNKNOWN", +"CONTENT_DURATION_0_TO_1_MIN", +"CONTENT_DURATION_1_TO_5_MIN", +"CONTENT_DURATION_5_TO_15_MIN", +"CONTENT_DURATION_15_TO_30_MIN", +"CONTENT_DURATION_30_TO_60_MIN", +"CONTENT_DURATION_OVER_60_MIN" +], +"enumDescriptions": [ +"Content duration is not specified in this version. This enum is a place holder for a default value and does not represent a real content duration.", +"The content duration is unknown.", +"Content is 0-1 minute long.", +"Content is 1-5 minutes long.", +"Content is 5-15 minutes long.", +"Content is 15-30 minutes long.", +"Content is 30-60 minutes long.", +"Content is over 60 minutes long." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContentGenreAssignedTargetingOptionDetails": { +"description": "Details for content genre assigned targeting option. This will be populated in the content_genre_details field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`. Explicitly targeting all options is not supported. Remove all content genre targeting options to achieve this effect.", +"id": "ContentGenreAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the content genre.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`.", +"type": "string" +} +}, +"type": "object" +}, +"ContentGenreTargetingOptionDetails": { +"description": "Represents a targetable content genre. This will be populated in the content_genre_details field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`.", +"id": "ContentGenreTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the content genre", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContentInstreamPositionAssignedTargetingOptionDetails": { +"description": "Assigned content instream position targeting option details. This will be populated in the content_instream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.", +"id": "ContentInstreamPositionAssignedTargetingOptionDetails", +"properties": { +"adType": { +"description": "Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. * `AD_TYPE_AUDIO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_AUDIO_DEFAULT`.", +"enum": [ +"AD_TYPE_UNSPECIFIED", +"AD_TYPE_DISPLAY", +"AD_TYPE_VIDEO", +"AD_TYPE_AUDIO" +], +"enumDescriptions": [ +"Ad type is not specified or is unknown in this version.", +"Display creatives, e.g. image and HTML5.", +"Video creatives, e.g. video ads that play during streaming content in video players.", +"Audio creatives, e.g. audio ads that play during audio content." +], +"readOnly": true, +"type": "string" +}, +"contentInstreamPosition": { +"description": "Required. The content instream position for video or audio ads.", +"enum": [ +"CONTENT_INSTREAM_POSITION_UNSPECIFIED", +"CONTENT_INSTREAM_POSITION_PRE_ROLL", +"CONTENT_INSTREAM_POSITION_MID_ROLL", +"CONTENT_INSTREAM_POSITION_POST_ROLL", +"CONTENT_INSTREAM_POSITION_UNKNOWN" +], +"enumDescriptions": [ +"Content instream position is not specified in this version. This enum is a place holder for a default value and does not represent a real in stream ad position.", +"Ads that play before streaming content.", +"Ads that play between the beginning and end of streaming content.", +"Ads that play at the end of streaming content.", +"Ads instream position is unknown." +], +"type": "string" +} +}, +"type": "object" +}, +"ContentInstreamPositionTargetingOptionDetails": { +"description": "Represents a targetable content instream position, which could be used by video and audio ads. This will be populated in the content_instream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.", +"id": "ContentInstreamPositionTargetingOptionDetails", +"properties": { +"contentInstreamPosition": { +"description": "Output only. The content instream position.", +"enum": [ +"CONTENT_INSTREAM_POSITION_UNSPECIFIED", +"CONTENT_INSTREAM_POSITION_PRE_ROLL", +"CONTENT_INSTREAM_POSITION_MID_ROLL", +"CONTENT_INSTREAM_POSITION_POST_ROLL", +"CONTENT_INSTREAM_POSITION_UNKNOWN" +], +"enumDescriptions": [ +"Content instream position is not specified in this version. This enum is a place holder for a default value and does not represent a real in stream ad position.", +"Ads that play before streaming content.", +"Ads that play between the beginning and end of streaming content.", +"Ads that play at the end of streaming content.", +"Ads instream position is unknown." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContentOutstreamPositionAssignedTargetingOptionDetails": { +"description": "Assigned content outstream position targeting option details. This will be populated in the content_outstream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.", +"id": "ContentOutstreamPositionAssignedTargetingOptionDetails", +"properties": { +"adType": { +"description": "Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.", +"enum": [ +"AD_TYPE_UNSPECIFIED", +"AD_TYPE_DISPLAY", +"AD_TYPE_VIDEO", +"AD_TYPE_AUDIO" +], +"enumDescriptions": [ +"Ad type is not specified or is unknown in this version.", +"Display creatives, e.g. image and HTML5.", +"Video creatives, e.g. video ads that play during streaming content in video players.", +"Audio creatives, e.g. audio ads that play during audio content." +], +"readOnly": true, +"type": "string" +}, +"contentOutstreamPosition": { +"description": "Required. The content outstream position.", +"enum": [ +"CONTENT_OUTSTREAM_POSITION_UNSPECIFIED", +"CONTENT_OUTSTREAM_POSITION_UNKNOWN", +"CONTENT_OUTSTREAM_POSITION_IN_ARTICLE", +"CONTENT_OUTSTREAM_POSITION_IN_BANNER", +"CONTENT_OUTSTREAM_POSITION_IN_FEED", +"CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" +], +"enumDescriptions": [ +"Content outstream position is not specified in this version. This enum is a place holder for a default value and does not represent a real content outstream position.", +"The ad position is unknown in the content outstream.", +"Ads that appear between the paragraphs of your pages.", +"Ads that display on the top and the sides of a page.", +"Ads that appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", +"Ads shown before or between content loads." +], +"type": "string" +} +}, +"type": "object" +}, +"ContentOutstreamPositionTargetingOptionDetails": { +"description": "Represents a targetable content outstream position, which could be used by display and video ads. This will be populated in the content_outstream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.", +"id": "ContentOutstreamPositionTargetingOptionDetails", +"properties": { +"contentOutstreamPosition": { +"description": "Output only. The content outstream position.", +"enum": [ +"CONTENT_OUTSTREAM_POSITION_UNSPECIFIED", +"CONTENT_OUTSTREAM_POSITION_UNKNOWN", +"CONTENT_OUTSTREAM_POSITION_IN_ARTICLE", +"CONTENT_OUTSTREAM_POSITION_IN_BANNER", +"CONTENT_OUTSTREAM_POSITION_IN_FEED", +"CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" +], +"enumDescriptions": [ +"Content outstream position is not specified in this version. This enum is a place holder for a default value and does not represent a real content outstream position.", +"The ad position is unknown in the content outstream.", +"Ads that appear between the paragraphs of your pages.", +"Ads that display on the top and the sides of a page.", +"Ads that appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", +"Ads shown before or between content loads." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContentStreamTypeAssignedTargetingOptionDetails": { +"description": "Details for content stream type assigned targeting option. This will be populated in the content_stream_type_details field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`. Explicitly targeting all options is not supported. Remove all content stream type targeting options to achieve this effect.", +"id": "ContentStreamTypeAssignedTargetingOptionDetails", +"properties": { +"contentStreamType": { +"description": "Output only. The content stream type.", +"enum": [ +"CONTENT_STREAM_TYPE_UNSPECIFIED", +"CONTENT_LIVE_STREAM", +"CONTENT_ON_DEMAND" +], +"enumDescriptions": [ +"Content stream type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", +"The content is being live-streamed.", +"The content is viewed on-demand." +], +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`.", +"type": "string" +} +}, +"type": "object" +}, +"ContentStreamTypeTargetingOptionDetails": { +"description": "Represents a targetable content stream type. This will be populated in the content_stream_type_details field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`.", +"id": "ContentStreamTypeTargetingOptionDetails", +"properties": { +"contentStreamType": { +"description": "Output only. The content stream type.", +"enum": [ +"CONTENT_STREAM_TYPE_UNSPECIFIED", +"CONTENT_LIVE_STREAM", +"CONTENT_ON_DEMAND" +], +"enumDescriptions": [ +"Content stream type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", +"The content is being live-streamed.", +"The content is viewed on-demand." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConversionCountingConfig": { +"description": "Settings that control how conversions are counted. All post-click conversions will be counted. A percentage value can be set for post-view conversions counting.", +"id": "ConversionCountingConfig", +"properties": { +"floodlightActivityConfigs": { +"description": "The Floodlight activity configs used to track conversions. The number of conversions counted is the sum of all of the conversions counted by all of the Floodlight activity IDs specified in this field.", +"items": { +"$ref": "TrackingFloodlightActivityConfig" +}, +"type": "array" +}, +"postViewCountPercentageMillis": { +"description": "The percentage of post-view conversions to count, in millis (1/1000 of a percent). Must be between 0 and 100000 inclusive. For example, to track 50% of the post-click conversions, set a value of 50000.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CounterEvent": { +"description": "Counter event of the creative.", +"id": "CounterEvent", +"properties": { +"name": { +"description": "Required. The name of the counter event.", +"type": "string" +}, +"reportingName": { +"description": "Required. The name used to identify this counter event in reports.", +"type": "string" +} +}, +"type": "object" +}, +"CreateAssetRequest": { +"description": "A request message for CreateAsset.", +"id": "CreateAssetRequest", +"properties": { +"filename": { +"description": "Required. The filename of the asset, including the file extension. The filename must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"CreateAssetResponse": { +"description": "A response message for CreateAsset.", +"id": "CreateAssetResponse", +"properties": { +"asset": { +"$ref": "Asset", +"description": "The uploaded asset, if successful." +} +}, +"type": "object" +}, +"CreateAssignedTargetingOptionsRequest": { +"description": "A request listing which assigned targeting options of a given targeting type should be created and added.", +"id": "CreateAssignedTargetingOptionsRequest", +"properties": { +"assignedTargetingOptions": { +"description": "Required. The assigned targeting options to create and add.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option.", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"type": "string" +} +}, +"type": "object" +}, +"CreateSdfDownloadTaskRequest": { +"description": "Request message for [SdfDownloadTaskService.CreateSdfDownloadTask].", +"id": "CreateSdfDownloadTaskRequest", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser to download SDF for.", +"format": "int64", +"type": "string" +}, +"idFilter": { +"$ref": "IdFilter", +"description": "Filters on entities by their entity IDs." +}, +"inventorySourceFilter": { +"$ref": "InventorySourceFilter", +"description": "Filters on Inventory Sources by their IDs." +}, +"parentEntityFilter": { +"$ref": "ParentEntityFilter", +"description": "Filters on selected file types. The entities in each file are filtered by a chosen set of filter entities. The filter entities must be the same type as, or a parent type of, the selected file types." +}, +"partnerId": { +"description": "The ID of the partner to download SDF for.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "Required. The SDF version of the downloaded file. If set to `SDF_VERSION_UNSPECIFIED`, this will default to the version specified by the advertiser or partner identified by `root_id`. An advertiser inherits its SDF version from its partner unless configured otherwise.", +"enum": [ +"SDF_VERSION_UNSPECIFIED", +"SDF_VERSION_3_1", +"SDF_VERSION_4", +"SDF_VERSION_4_1", +"SDF_VERSION_4_2", +"SDF_VERSION_5", +"SDF_VERSION_5_1", +"SDF_VERSION_5_2", +"SDF_VERSION_5_3", +"SDF_VERSION_5_4", +"SDF_VERSION_5_5", +"SDF_VERSION_6", +"SDF_VERSION_7", +"SDF_VERSION_7_1", +"SDF_VERSION_8" +], +"enumDeprecated": [ +false, +true, +true, +true, +true, +true, +true, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"SDF version value is not specified or is unknown in this version.", +"SDF version 3.1", +"SDF version 4", +"SDF version 4.1", +"SDF version 4.2", +"SDF version 5.", +"SDF version 5.1", +"SDF version 5.2", +"SDF version 5.3", +"SDF version 5.4", +"SDF version 5.5", +"SDF version 6", +"SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", +"SDF version 7.1. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", +"SDF version 8. Read the [v8 migration guide](/display-video/api/structured-data-file/v8-migration-guide) before migrating to this version." +], +"type": "string" +} +}, +"type": "object" +}, +"Creative": { +"description": "A single Creative.", +"id": "Creative", +"properties": { +"additionalDimensions": { +"description": "Additional dimensions. Applicable when creative_type is one of: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_LIGHTBOX` * `CREATIVE_TYPE_PUBLISHER_HOSTED` If this field is specified, width_pixels and height_pixels are both required and must be greater than or equal to 0.", +"items": { +"$ref": "Dimensions" +}, +"type": "array" +}, +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the creative belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"appendedTag": { +"description": "Third-party HTML tracking tag to be appended to the creative tag.", +"type": "string" +}, +"assets": { +"description": "Required. Assets associated to this creative.", +"items": { +"$ref": "AssetAssociation" +}, +"type": "array" +}, +"cmPlacementId": { +"description": "Output only. The unique ID of the Campaign Manager 360 placement associated with the creative. This field is only applicable for creatives that are synced from Campaign Manager.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"cmTrackingAd": { +"$ref": "CmTrackingAd", +"description": "The Campaign Manager 360 tracking ad associated with the creative. Optional for the following creative_type when created by an advertiser that uses both Campaign Manager 360 and third-party ad serving: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` Output only for other cases." +}, +"companionCreativeIds": { +"description": "The IDs of companion creatives for a video creative. You can assign existing display creatives (with image or HTML5 assets) to serve surrounding the publisher's video player. Companions display around the video player while the video is playing and remain after the video has completed. Creatives contain additional dimensions can not be companion creatives. This field is only supported for following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"counterEvents": { +"description": "Counter events for a rich media creative. Counters track the number of times that a user interacts with any part of a rich media creative in a specified way (mouse-overs, mouse-outs, clicks, taps, data loading, keyboard entries, etc.). Any event that can be captured in the creative can be recorded as a counter. Leave it empty or unset for creatives containing image assets only.", +"items": { +"$ref": "CounterEvent" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The timestamp when the creative was created. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"creativeAttributes": { +"description": "Output only. A list of attributes of the creative that is generated by the system.", +"items": { +"enum": [ +"CREATIVE_ATTRIBUTE_UNSPECIFIED", +"CREATIVE_ATTRIBUTE_VAST", +"CREATIVE_ATTRIBUTE_VPAID_LINEAR", +"CREATIVE_ATTRIBUTE_VPAID_NON_LINEAR" +], +"enumDescriptions": [ +"The creative attribute is not specified or is unknown in this version.", +"The creative is a VAST creative.", +"The creative is a linear VPAID creative.", +"The creative is a non-linear VPAID creative." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"creativeId": { +"description": "Output only. The unique ID of the creative. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"creativeType": { +"description": "Required. Immutable. The type of the creative.", +"enum": [ +"CREATIVE_TYPE_UNSPECIFIED", +"CREATIVE_TYPE_STANDARD", +"CREATIVE_TYPE_EXPANDABLE", +"CREATIVE_TYPE_VIDEO", +"CREATIVE_TYPE_NATIVE", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL", +"CREATIVE_TYPE_NATIVE_SITE_SQUARE", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL", +"CREATIVE_TYPE_LIGHTBOX", +"CREATIVE_TYPE_NATIVE_APP_INSTALL", +"CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE", +"CREATIVE_TYPE_AUDIO", +"CREATIVE_TYPE_PUBLISHER_HOSTED", +"CREATIVE_TYPE_NATIVE_VIDEO", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO", +"CREATIVE_TYPE_ASSET_BASED_CREATIVE" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Standard display creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", +"Expandable creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_THIRD_PARTY`", +"Video creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", +"Native creative rendered by publishers with assets from advertiser. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Templated app install mobile creative (banner). Create and update methods are **not** supported for this creative type.", +"Square native creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Interstitial creative including both display and video. Create and update methods are **not** supported for this creative type.", +"Responsive and expandable Lightbox creative. Create and update methods are **not** supported for this creative type.", +"Native app install creative. Create and update methods are **not** supported for this creative type.", +"Square native app install creative. Create and update methods are **not** supported for this creative type.", +"Audio creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Publisher hosted creative. Create and update methods are **not** supported for this creative type.", +"Native video creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Templated app install mobile video creative. Create and update methods are **not** supported for this creative type.", +"Asset based creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`." +], +"type": "string" +}, +"dimensions": { +"$ref": "Dimensions", +"description": "Required. Primary dimensions of the creative. Applicable to all creative types. The value of width_pixels and height_pixels defaults to `0` when creative_type is one of: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO`" +}, +"displayName": { +"description": "Required. The display name of the creative. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"dynamic": { +"description": "Output only. Indicates whether the creative is dynamic.", +"readOnly": true, +"type": "boolean" +}, +"entityStatus": { +"description": "Required. Controls whether or not the creative can serve. Accepted values are: * `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED` * `ENTITY_STATUS_PAUSED`", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"exitEvents": { +"description": "Required. Exit events for this creative. An exit (also known as a click tag) is any area in your creative that someone can click or tap to open an advertiser's landing page. Every creative must include at least one exit. You can add an exit to your creative in any of the following ways: * Use Google Web Designer's tap area. * Define a JavaScript variable called \"clickTag\". * Use the Enabler (Enabler.exit()) to track exits in rich media formats.", +"items": { +"$ref": "ExitEvent" +}, +"type": "array" +}, +"expandOnHover": { +"description": "Optional. Indicates the creative will automatically expand on hover. Optional and only valid for third-party expandable creatives. Third-party expandable creatives are creatives with following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`", +"type": "boolean" +}, +"expandingDirection": { +"description": "Optional. Specifies the expanding direction of the creative. Required and only valid for third-party expandable creatives. Third-party expandable creatives are creatives with following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`", +"enum": [ +"EXPANDING_DIRECTION_UNSPECIFIED", +"EXPANDING_DIRECTION_NONE", +"EXPANDING_DIRECTION_UP", +"EXPANDING_DIRECTION_DOWN", +"EXPANDING_DIRECTION_LEFT", +"EXPANDING_DIRECTION_RIGHT", +"EXPANDING_DIRECTION_UP_AND_LEFT", +"EXPANDING_DIRECTION_UP_AND_RIGHT", +"EXPANDING_DIRECTION_DOWN_AND_LEFT", +"EXPANDING_DIRECTION_DOWN_AND_RIGHT", +"EXPANDING_DIRECTION_UP_OR_DOWN", +"EXPANDING_DIRECTION_LEFT_OR_RIGHT", +"EXPANDING_DIRECTION_ANY_DIAGONAL" +], +"enumDescriptions": [ +"The expanding direction is not specified.", +"Does not expand in any direction.", +"Expands up.", +"Expands down.", +"Expands left.", +"Expands right.", +"Expands up and to the left side.", +"Expands up and to the right side.", +"Expands down and to the left side.", +"Expands down and to the right side.", +"Expands either up or down.", +"Expands to either the left or the right side.", +"Can expand in any diagonal direction." +], +"type": "string" +}, +"hostingSource": { +"description": "Required. Indicates where the creative is hosted.", +"enum": [ +"HOSTING_SOURCE_UNSPECIFIED", +"HOSTING_SOURCE_CM", +"HOSTING_SOURCE_THIRD_PARTY", +"HOSTING_SOURCE_HOSTED", +"HOSTING_SOURCE_RICH_MEDIA" +], +"enumDescriptions": [ +"Hosting source is not specified or is unknown in this version.", +"A creative synced from Campaign Manager 360. Create and update methods are **not** supported for this hosting type.", +"A creative hosted by a third-party ad server (3PAS). Create and update methods are supported for this hosting type if the creative_type is one of the following: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`", +"A creative created in DV360 and hosted by Campaign Manager 360. Create and update methods are supported for this hosting type if the creative_type is one of the following: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`", +"A rich media creative created in Studio and hosted by Campaign Manager 360. Create and update methods are **not** supported for this hosting type." +], +"type": "string" +}, +"html5Video": { +"description": "Output only. Indicates the third-party VAST tag creative requires HTML5 Video support. Output only and only valid for third-party VAST tag creatives. Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_VIDEO`", +"readOnly": true, +"type": "boolean" +}, +"iasCampaignMonitoring": { +"description": "Indicates whether Integral Ad Science (IAS) campaign monitoring is enabled. To enable this for the creative, make sure the Advertiser.creative_config.ias_client_id has been set to your IAS client ID.", +"type": "boolean" +}, +"integrationCode": { +"description": "ID information used to link this creative to an external system. Must be UTF-8 encoded with a length of no more than 10,000 characters.", +"type": "string" +}, +"jsTrackerUrl": { +"description": "JavaScript measurement URL from supported third-party verification providers (ComScore, DoubleVerify, IAS, Moat). HTML script tags are not supported. This field is only writeable in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"type": "string" +}, +"lineItemIds": { +"description": "Output only. The IDs of the line items this creative is associated with. To associate a creative to a line item, use LineItem.creative_ids instead.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"mediaDuration": { +"description": "Output only. Media duration of the creative. Applicable when creative_type is one of: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_PUBLISHER_HOSTED`", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"mp3Audio": { +"description": "Output only. Indicates the third-party audio creative supports MP3. Output only and only valid for third-party audio creatives. Third-party audio creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO`", +"readOnly": true, +"type": "boolean" +}, +"name": { +"description": "Output only. The resource name of the creative.", +"readOnly": true, +"type": "string" +}, +"notes": { +"description": "User notes for this creative. Must be UTF-8 encoded with a length of no more than 20,000 characters.", +"type": "string" +}, +"obaIcon": { +"$ref": "ObaIcon", +"description": "Specifies the OBA icon for a video creative. This field is only supported in following creative_type: * `CREATIVE_TYPE_VIDEO`" +}, +"oggAudio": { +"description": "Output only. Indicates the third-party audio creative supports OGG. Output only and only valid for third-party audio creatives. Third-party audio creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO`", +"readOnly": true, +"type": "boolean" +}, +"progressOffset": { +"$ref": "AudioVideoOffset", +"description": "Amount of time to play the video before counting a view. This field is required when skippable is true. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" +}, +"requireHtml5": { +"description": "Optional. Indicates that the creative relies on HTML5 to render properly. Optional and only valid for third-party tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE`", +"type": "boolean" +}, +"requireMraid": { +"description": "Optional. Indicates that the creative requires MRAID (Mobile Rich Media Ad Interface Definitions system). Set this if the creative relies on mobile gestures for interactivity, such as swiping or tapping. Optional and only valid for third-party tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE`", +"type": "boolean" +}, +"requirePingForAttribution": { +"description": "Optional. Indicates that the creative will wait for a return ping for attribution. Only valid when using a Campaign Manager 360 tracking ad with a third-party ad server parameter and the ${DC_DBM_TOKEN} macro. Optional and only valid for third-party tag creatives or third-party VAST tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`", +"type": "boolean" +}, +"reviewStatus": { +"$ref": "ReviewStatusInfo", +"description": "Output only. The current status of the creative review process.", +"readOnly": true +}, +"skipOffset": { +"$ref": "AudioVideoOffset", +"description": "Amount of time to play the video before the skip button appears. This field is required when skippable is true. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" +}, +"skippable": { +"description": "Whether the user can choose to skip a video creative. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`", +"type": "boolean" +}, +"thirdPartyTag": { +"description": "Optional. The original third-party tag used for the creative. Required and only valid for third-party tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE`", +"type": "string" +}, +"thirdPartyUrls": { +"description": "Tracking URLs from third parties to track interactions with a video creative. This field is only supported for the following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"items": { +"$ref": "ThirdPartyUrl" +}, +"type": "array" +}, +"timerEvents": { +"description": "Timer custom events for a rich media creative. Timers track the time during which a user views and interacts with a specified part of a rich media creative. A creative can have multiple timer events, each timed independently. Leave it empty or unset for creatives containing image assets only.", +"items": { +"$ref": "TimerEvent" +}, +"type": "array" +}, +"trackerUrls": { +"description": "Tracking URLs for analytics providers or third-party ad technology vendors. The URLs must start with https (except on inventory that doesn't require SSL compliance). If using macros in your URL, use only macros supported by Display & Video 360. Standard URLs only, no IMG or SCRIPT tags. This field is only writeable in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", +"items": { +"type": "string" +}, +"type": "array" +}, +"transcodes": { +"description": "Output only. Audio/Video transcodes. Display & Video 360 transcodes the main asset into a number of alternative versions that use different file formats or have different properties (resolution, audio bit rate, and video bit rate), each designed for specific video players or bandwidths. These transcodes give a publisher's system more options to choose from for each impression on your video and ensures that the appropriate file serves based on the viewer\u2019s connection and screen size. This field is only supported in following creative_type: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_AUDIO`", +"items": { +"$ref": "Transcode" +}, +"readOnly": true, +"type": "array" +}, +"universalAdId": { +"$ref": "UniversalAdId", +"description": "Optional. An optional creative identifier provided by a registry that is unique across all platforms. Universal Ad ID is part of the VAST 4.0 standard. It can be modified after the creative is created. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" +}, +"updateTime": { +"description": "Output only. The timestamp when the creative was last updated, either by the user or system (e.g. creative review). Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vastTagUrl": { +"description": "Optional. The URL of the VAST tag for a third-party VAST tag creative. Required and only valid for third-party VAST tag creatives. Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`", +"type": "string" +}, +"vpaid": { +"description": "Output only. Indicates the third-party VAST tag creative requires VPAID (Digital Video Player-Ad Interface). Output only and only valid for third-party VAST tag creatives. Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_VIDEO`", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"CreativeConfig": { +"description": "Creative requirements configuration for the inventory source.", +"id": "CreativeConfig", +"properties": { +"creativeType": { +"description": "The type of creative that can be assigned to the inventory source. Only the following types are supported: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`", +"enum": [ +"CREATIVE_TYPE_UNSPECIFIED", +"CREATIVE_TYPE_STANDARD", +"CREATIVE_TYPE_EXPANDABLE", +"CREATIVE_TYPE_VIDEO", +"CREATIVE_TYPE_NATIVE", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL", +"CREATIVE_TYPE_NATIVE_SITE_SQUARE", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL", +"CREATIVE_TYPE_LIGHTBOX", +"CREATIVE_TYPE_NATIVE_APP_INSTALL", +"CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE", +"CREATIVE_TYPE_AUDIO", +"CREATIVE_TYPE_PUBLISHER_HOSTED", +"CREATIVE_TYPE_NATIVE_VIDEO", +"CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO", +"CREATIVE_TYPE_ASSET_BASED_CREATIVE" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Standard display creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", +"Expandable creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_THIRD_PARTY`", +"Video creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", +"Native creative rendered by publishers with assets from advertiser. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Templated app install mobile creative (banner). Create and update methods are **not** supported for this creative type.", +"Square native creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Interstitial creative including both display and video. Create and update methods are **not** supported for this creative type.", +"Responsive and expandable Lightbox creative. Create and update methods are **not** supported for this creative type.", +"Native app install creative. Create and update methods are **not** supported for this creative type.", +"Square native app install creative. Create and update methods are **not** supported for this creative type.", +"Audio creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Publisher hosted creative. Create and update methods are **not** supported for this creative type.", +"Native video creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", +"Templated app install mobile video creative. Create and update methods are **not** supported for this creative type.", +"Asset based creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`." +], +"type": "string" +}, +"displayCreativeConfig": { +"$ref": "InventorySourceDisplayCreativeConfig", +"description": "The configuration for display creatives. Applicable when creative_type is `CREATIVE_TYPE_STANDARD`." +}, +"videoCreativeConfig": { +"$ref": "InventorySourceVideoCreativeConfig", +"description": "The configuration for video creatives. Applicable when creative_type is `CREATIVE_TYPE_VIDEO`." +} +}, +"type": "object" +}, +"CustomBiddingAlgorithm": { +"description": "A single custom bidding algorithm.", +"id": "CustomBiddingAlgorithm", +"properties": { +"advertiserId": { +"description": "Immutable. The unique ID of the advertiser that owns the custom bidding algorithm.", +"format": "int64", +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Output only. The unique ID of the custom bidding algorithm. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"customBiddingAlgorithmType": { +"description": "Required. Immutable. The type of custom bidding algorithm.", +"enum": [ +"CUSTOM_BIDDING_ALGORITHM_TYPE_UNSPECIFIED", +"SCRIPT_BASED", +"ADS_DATA_HUB_BASED", +"GOAL_BUILDER_BASED" +], +"enumDescriptions": [ +"Algorithm type is not specified or is unknown in this version.", +"Algorithm generated through customer-uploaded custom bidding script files.", +"Algorithm created through Ads Data Hub product.", +"Algorithm created through goal builder in DV3 UI." +], +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the custom bidding algorithm. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Controls whether or not the custom bidding algorithm can be used as a bidding strategy. Accepted values are: * `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED`", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"modelDetails": { +"description": "Output only. The details of custom bidding models for each advertiser who has access. This field may only include the details of the queried advertiser if the algorithm [`owner`](/display-video/api/reference/rest/v1/customBiddingAlgorithms#CustomBiddingAlgorithm.FIELDS.oneof_owner) is a partner and is being retrieved using an advertiser [`accessor`](/display-video/api/reference/rest/v1/customBiddingAlgorithms/list#body.QUERY_PARAMETERS.oneof_accessor).", +"items": { +"$ref": "CustomBiddingModelDetails" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The resource name of the custom bidding algorithm.", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "Immutable. The unique ID of the partner that owns the custom bidding algorithm.", +"format": "int64", +"type": "string" +}, +"sharedAdvertiserIds": { +"description": "The IDs of the advertisers who have access to this algorithm. If advertiser_id is set, this field will only consist of that value. This field will not be set if the algorithm [`owner`](/display-video/api/reference/rest/v1/customBiddingAlgorithms#CustomBiddingAlgorithm.FIELDS.oneof_owner) is a partner and is being retrieved using an advertiser [`accessor`](/display-video/api/reference/rest/v1/customBiddingAlgorithms/list#body.QUERY_PARAMETERS.oneof_accessor).", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomBiddingModelDetails": { +"description": "The details of a custom bidding algorithm model for a single shared advertiser.", +"id": "CustomBiddingModelDetails", +"properties": { +"advertiserId": { +"description": "The unique ID of the relevant advertiser.", +"format": "int64", +"type": "string" +}, +"readinessState": { +"description": "The readiness state of custom bidding model.", +"enum": [ +"READINESS_STATE_UNSPECIFIED", +"READINESS_STATE_ACTIVE", +"READINESS_STATE_INSUFFICIENT_DATA", +"READINESS_STATE_TRAINING", +"READINESS_STATE_NO_VALID_SCRIPT" +], +"enumDescriptions": [ +"State is not specified or is unknown in this version.", +"The model is trained and ready for serving.", +"There is not enough data to train the serving model.", +"The model is training and not ready for serving.", +"A valid custom bidding script has not been provided with which to train the model. This state will only be applied to algorithms whose `custom_bidding_algorithm_type` is `SCRIPT_BASED`." +], +"type": "string" +}, +"suspensionState": { +"description": "Output only. The suspension state of custom bidding model.", +"enum": [ +"SUSPENSION_STATE_UNSPECIFIED", +"SUSPENSION_STATE_ENABLED", +"SUSPENSION_STATE_DORMANT", +"SUSPENSION_STATE_SUSPENDED" +], +"enumDescriptions": [ +"State is not specified or is unknown in this version.", +"Model is enabled, either recently used, currently used or scheduled to be used. The algorithm is actively scoring impressions for this advertiser.", +"Model has not been used recently. Although the model still acts as `ENABLED`, it will eventually be suspended if not used.", +"Model is suspended from scoring impressions and cannot serve. If the algorithm is assigned to a line item under this advertiser or otherwise updated, it will switch back to the `ENABLED` state and require time to prepare the serving model again." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomBiddingScript": { +"description": "A single custom bidding script.", +"id": "CustomBiddingScript", +"properties": { +"active": { +"description": "Output only. Whether the script is currently being used for scoring by the parent algorithm.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time when the script was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Output only. The unique ID of the custom bidding algorithm the script belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"customBiddingScriptId": { +"description": "Output only. The unique ID of the custom bidding script.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"errors": { +"description": "Output only. Error details of a rejected custom bidding script. This field will only be populated when state is REJECTED.", +"items": { +"$ref": "ScriptError" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The resource name of the custom bidding script.", +"readOnly": true, +"type": "string" +}, +"script": { +"$ref": "CustomBiddingScriptRef", +"description": "The reference to the uploaded script file." +}, +"state": { +"description": "Output only. The state of the custom bidding script.", +"enum": [ +"STATE_UNSPECIFIED", +"ACCEPTED", +"REJECTED", +"PENDING" +], +"enumDescriptions": [ +"The script state is not specified or is unknown in this version.", +"The script has been accepted for scoring impressions.", +"The script has been rejected by backend pipelines. It may have errors.", +"The script is being processed for backend pipelines." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomBiddingScriptRef": { +"description": "The reference to the uploaded custom bidding script file.", +"id": "CustomBiddingScriptRef", +"properties": { +"resourceName": { +"description": "A resource name to be used in media.download to Download the script files. Or media.upload to Upload the script files. Resource names have the format `customBiddingAlgorithms/{custom_bidding_algorithm_id}/scriptRef/{ref_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"CustomLabel": { +"description": "The key and value of a custom label.", +"id": "CustomLabel", +"properties": { +"key": { +"description": "The key of the label.", +"enum": [ +"CUSTOM_LABEL_KEY_UNSPECIFIED", +"CUSTOM_LABEL_KEY_0", +"CUSTOM_LABEL_KEY_1", +"CUSTOM_LABEL_KEY_2", +"CUSTOM_LABEL_KEY_3", +"CUSTOM_LABEL_KEY_4" +], +"enumDescriptions": [ +"Not specified or unknown.", +"Key index 0.", +"Key index 1.", +"Key index 2.", +"Key index 3.", +"Key index 4." +], +"type": "string" +}, +"value": { +"description": "The value of the label.", +"type": "string" +} +}, +"type": "object" +}, +"CustomList": { +"description": "Describes a custom list entity, such as a custom affinity or custom intent audience list.", +"id": "CustomList", +"properties": { +"customListId": { +"description": "Output only. The unique ID of the custom list. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Output only. The display name of the custom list. .", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the custom list.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomListGroup": { +"description": "Details of custom list group. All custom list targeting settings are logically \u2018OR\u2019 of each other.", +"id": "CustomListGroup", +"properties": { +"settings": { +"description": "Required. All custom list targeting settings in custom list group. Repeated settings with same id will be ignored.", +"items": { +"$ref": "CustomListTargetingSetting" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomListTargetingSetting": { +"description": "Details of custom list targeting setting.", +"id": "CustomListTargetingSetting", +"properties": { +"customListId": { +"description": "Required. Custom id of custom list targeting setting. This id is custom_list_id.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DateRange": { +"description": "A date range.", +"id": "DateRange", +"properties": { +"endDate": { +"$ref": "Date", +"description": "The upper bound of the date range, inclusive. Must specify a positive value for `year`, `month`, and `day`." +}, +"startDate": { +"$ref": "Date", +"description": "The lower bound of the date range, inclusive. Must specify a positive value for `year`, `month`, and `day`." +} +}, +"type": "object" +}, +"DayAndTimeAssignedTargetingOptionDetails": { +"description": "Representation of a segment of time defined on a specific day of the week and with a start and end time. The time represented by `start_hour` must be before the time represented by `end_hour`.", +"id": "DayAndTimeAssignedTargetingOptionDetails", +"properties": { +"dayOfWeek": { +"description": "Required. The day of the week for this day and time targeting setting.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"endHour": { +"description": "Required. The end hour for day and time targeting. Must be between 1 (1 hour after start of day) and 24 (end of day).", +"format": "int32", +"type": "integer" +}, +"startHour": { +"description": "Required. The start hour for day and time targeting. Must be between 0 (start of day) and 23 (1 hour before end of day).", +"format": "int32", +"type": "integer" +}, +"timeZoneResolution": { +"description": "Required. The mechanism used to determine which timezone to use for this day and time targeting setting.", +"enum": [ +"TIME_ZONE_RESOLUTION_UNSPECIFIED", +"TIME_ZONE_RESOLUTION_END_USER", +"TIME_ZONE_RESOLUTION_ADVERTISER" +], +"enumDescriptions": [ +"Time zone resolution is either unspecific or unknown.", +"Times are resolved in the time zone of the user that saw the ad.", +"Times are resolved in the time zone of the advertiser that served the ad." +], +"type": "string" +} +}, +"type": "object" +}, +"DeactivateManualTriggerRequest": { +"description": "Request message for ManualTriggerService.DeactivateManualTrigger.", +"id": "DeactivateManualTriggerRequest", +"properties": {}, +"type": "object" +}, +"DeleteAssignedTargetingOptionsRequest": { +"description": "A request listing which assigned targeting options of a given targeting type should be deleted.", +"id": "DeleteAssignedTargetingOptionsRequest", +"properties": { +"assignedTargetingOptionIds": { +"description": "Required. The assigned targeting option IDs to delete.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetingType": { +"description": "Required. Identifies the type of this assigned targeting option.", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"type": "string" +} +}, +"type": "object" +}, +"DeviceMakeModelAssignedTargetingOptionDetails": { +"description": "Assigned device make and model targeting option details. This will be populated in the device_make_model_details field when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.", +"id": "DeviceMakeModelAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the device make and model.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.", +"type": "string" +} +}, +"type": "object" +}, +"DeviceMakeModelTargetingOptionDetails": { +"description": "Represents a targetable device make and model. This will be populated in the device_make_model_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.", +"id": "DeviceMakeModelTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the device make and model.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DeviceTypeAssignedTargetingOptionDetails": { +"description": "Targeting details for device type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.", +"id": "DeviceTypeAssignedTargetingOptionDetails", +"properties": { +"deviceType": { +"description": "Required. The display name of the device type.", +"enum": [ +"DEVICE_TYPE_UNSPECIFIED", +"DEVICE_TYPE_COMPUTER", +"DEVICE_TYPE_CONNECTED_TV", +"DEVICE_TYPE_SMART_PHONE", +"DEVICE_TYPE_TABLET", +"DEVICE_TYPE_CONNECTED_DEVICE" +], +"enumDescriptions": [ +"Default value when device type is not specified in this version. This enum is a placeholder for default value and does not represent a real device type option.", +"Computer.", +"Connected TV.", +"Smart phone.", +"Tablet.", +"Connected device." +], +"type": "string" +}, +"youtubeAndPartnersBidMultiplier": { +"description": "Output only. Bid multiplier allows you to show your ads more or less frequently based on the device type. It will apply a multiplier on the original bid price. When this field is 0, it indicates this field is not applicable instead of multiplying 0 on the original bid price. For example, if the bid price without multiplier is $10.0 and the multiplier is 1.5 for Tablet, the resulting bid price for Tablet will be $15.0. Only applicable to YouTube and Partners line items.", +"format": "double", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"DeviceTypeTargetingOptionDetails": { +"description": "Represents a targetable device type. This will be populated in the device_type_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.", +"id": "DeviceTypeTargetingOptionDetails", +"properties": { +"deviceType": { +"description": "Output only. The device type that is used to be targeted.", +"enum": [ +"DEVICE_TYPE_UNSPECIFIED", +"DEVICE_TYPE_COMPUTER", +"DEVICE_TYPE_CONNECTED_TV", +"DEVICE_TYPE_SMART_PHONE", +"DEVICE_TYPE_TABLET", +"DEVICE_TYPE_CONNECTED_DEVICE" +], +"enumDescriptions": [ +"Default value when device type is not specified in this version. This enum is a placeholder for default value and does not represent a real device type option.", +"Computer.", +"Connected TV.", +"Smart phone.", +"Tablet.", +"Connected device." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DigitalContentLabelAssignedTargetingOptionDetails": { +"description": "Targeting details for digital content label. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.", +"id": "DigitalContentLabelAssignedTargetingOptionDetails", +"properties": { +"excludedContentRatingTier": { +"description": "Required. The display name of the digital content label rating tier to be EXCLUDED.", +"enum": [ +"CONTENT_RATING_TIER_UNSPECIFIED", +"CONTENT_RATING_TIER_UNRATED", +"CONTENT_RATING_TIER_GENERAL", +"CONTENT_RATING_TIER_PARENTAL_GUIDANCE", +"CONTENT_RATING_TIER_TEENS", +"CONTENT_RATING_TIER_MATURE", +"CONTENT_RATING_TIER_FAMILIES" +], +"enumDescriptions": [ +"Content label is not specified in this version. This enum is a place holder for a default value and does not represent a real content rating.", +"Content that has not been labeled.", +"Content suitable for general audiences.", +"Content suitable for most audiences with parental guidance.", +"Content suitable for teen and older audiences.", +"Content suitable only for mature audiences.", +"Content suitable for family audiences. It is a subset of CONTENT_RATING_TIER_GENERAL. Only applicable to YouTube and Partners line items." +], +"type": "string" +} +}, +"type": "object" +}, +"DigitalContentLabelTargetingOptionDetails": { +"description": "Represents a targetable digital content label rating tier. This will be populated in the digital_content_label_details field of the TargetingOption when targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.", +"id": "DigitalContentLabelTargetingOptionDetails", +"properties": { +"contentRatingTier": { +"description": "Output only. An enum for the content label brand safety tiers.", +"enum": [ +"CONTENT_RATING_TIER_UNSPECIFIED", +"CONTENT_RATING_TIER_UNRATED", +"CONTENT_RATING_TIER_GENERAL", +"CONTENT_RATING_TIER_PARENTAL_GUIDANCE", +"CONTENT_RATING_TIER_TEENS", +"CONTENT_RATING_TIER_MATURE", +"CONTENT_RATING_TIER_FAMILIES" +], +"enumDescriptions": [ +"Content label is not specified in this version. This enum is a place holder for a default value and does not represent a real content rating.", +"Content that has not been labeled.", +"Content suitable for general audiences.", +"Content suitable for most audiences with parental guidance.", +"Content suitable for teen and older audiences.", +"Content suitable only for mature audiences.", +"Content suitable for family audiences. It is a subset of CONTENT_RATING_TIER_GENERAL. Only applicable to YouTube and Partners line items." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Dimensions": { +"description": "Dimensions.", +"id": "Dimensions", +"properties": { +"heightPixels": { +"description": "The height in pixels.", +"format": "int32", +"type": "integer" +}, +"widthPixels": { +"description": "The width in pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DisplayVideoSourceAd": { +"description": "The ad sourced from a DV360 creative.", +"id": "DisplayVideoSourceAd", +"properties": { +"creativeId": { +"description": "The ID of the source creative.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"DoubleVerify": { +"description": "Details of DoubleVerify settings.", +"id": "DoubleVerify", +"properties": { +"appStarRating": { +"$ref": "DoubleVerifyAppStarRating", +"description": "Avoid bidding on apps with the star ratings." +}, +"avoidedAgeRatings": { +"description": "Avoid bidding on apps with the age rating.", +"items": { +"enum": [ +"AGE_RATING_UNSPECIFIED", +"APP_AGE_RATE_UNKNOWN", +"APP_AGE_RATE_4_PLUS", +"APP_AGE_RATE_9_PLUS", +"APP_AGE_RATE_12_PLUS", +"APP_AGE_RATE_17_PLUS", +"APP_AGE_RATE_18_PLUS" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any age rating options.", +"Apps with unknown age rating.", +"Apps rated for Everyone (4+).", +"Apps rated for Everyone (9+).", +"Apps rated for Teens (12+).", +"Apps rated for Mature (17+).", +"Apps rated for Adults Only (18+)." +], +"type": "string" +}, +"type": "array" +}, +"brandSafetyCategories": { +"$ref": "DoubleVerifyBrandSafetyCategories", +"description": "DV Brand Safety Controls." +}, +"customSegmentId": { +"description": "The custom segment ID provided by DoubleVerify. The ID must start with \"51\" and consist of eight digits. Custom segment ID cannot be specified along with any of the following fields: * brand_safety_categories * avoided_age_ratings * app_star_rating * fraud_invalid_traffic", +"format": "int64", +"type": "string" +}, +"displayViewability": { +"$ref": "DoubleVerifyDisplayViewability", +"description": "Display viewability settings (applicable to display line items only)." +}, +"fraudInvalidTraffic": { +"$ref": "DoubleVerifyFraudInvalidTraffic", +"description": "Avoid Sites and Apps with historical Fraud & IVT Rates." +}, +"videoViewability": { +"$ref": "DoubleVerifyVideoViewability", +"description": "Video viewability settings (applicable to video line items only)." +} +}, +"type": "object" +}, +"DoubleVerifyAppStarRating": { +"description": "Details of DoubleVerify star ratings settings.", +"id": "DoubleVerifyAppStarRating", +"properties": { +"avoidInsufficientStarRating": { +"description": "Avoid bidding on apps with insufficient star ratings.", +"type": "boolean" +}, +"avoidedStarRating": { +"description": "Avoid bidding on apps with the star ratings.", +"enum": [ +"APP_STAR_RATE_UNSPECIFIED", +"APP_STAR_RATE_1_POINT_5_LESS", +"APP_STAR_RATE_2_LESS", +"APP_STAR_RATE_2_POINT_5_LESS", +"APP_STAR_RATE_3_LESS", +"APP_STAR_RATE_3_POINT_5_LESS", +"APP_STAR_RATE_4_LESS", +"APP_STAR_RATE_4_POINT_5_LESS" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any app star rating options.", +"Official Apps with rating < 1.5 Stars.", +"Official Apps with rating < 2 Stars.", +"Official Apps with rating < 2.5 Stars.", +"Official Apps with rating < 3 Stars.", +"Official Apps with rating < 3.5 Stars.", +"Official Apps with rating < 4 Stars.", +"Official Apps with rating < 4.5 Stars." +], +"type": "string" +} +}, +"type": "object" +}, +"DoubleVerifyBrandSafetyCategories": { +"description": "Settings for brand safety controls.", +"id": "DoubleVerifyBrandSafetyCategories", +"properties": { +"avoidUnknownBrandSafetyCategory": { +"description": "Unknown or unrateable.", +"type": "boolean" +}, +"avoidedHighSeverityCategories": { +"description": "Brand safety high severity avoidance categories.", +"items": { +"enum": [ +"HIGHER_SEVERITY_UNSPECIFIED", +"ADULT_CONTENT_PORNOGRAPHY", +"COPYRIGHT_INFRINGEMENT", +"SUBSTANCE_ABUSE", +"GRAPHIC_VIOLENCE_WEAPONS", +"HATE_PROFANITY", +"CRIMINAL_SKILLS", +"NUISANCE_INCENTIVIZED_MALWARE_CLUTTER" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any high severity categories.", +"Adult Content: Pornography, Mature Topics & Nudity.", +"Copyright Infringement.", +"Drugs/Alcohol/Controlled Substances: Substance Abuse.", +"Extreme Graphic/Explicit Violence/Weapons.", +"Hate/Profanity.", +"Illegal Activities: Criminal Skills.", +"Incentivized/Malware/Clutter." +], +"type": "string" +}, +"type": "array" +}, +"avoidedMediumSeverityCategories": { +"description": "Brand safety medium severity avoidance categories.", +"items": { +"enum": [ +"MEDIUM_SEVERITY_UNSPECIFIED", +"AD_SERVERS", +"ADULT_CONTENT_SWIMSUIT", +"ALTERNATIVE_LIFESTYLES", +"CELEBRITY_GOSSIP", +"GAMBLING", +"OCCULT", +"SEX_EDUCATION", +"DISASTER_AVIATION", +"DISASTER_MAN_MADE", +"DISASTER_NATURAL", +"DISASTER_TERRORIST_EVENTS", +"DISASTER_VEHICLE", +"ALCOHOL", +"SMOKING", +"NEGATIVE_NEWS_FINANCIAL", +"NON_ENGLISH", +"PARKING_PAGE", +"UNMODERATED_UGC", +"INFLAMMATORY_POLITICS_AND_NEWS", +"NEGATIVE_NEWS_PHARMACEUTICAL" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any medium severity categories.", +"Ad Servers.", +"Adult Content: Swimsuit.", +"Controversial Subjects: Alternative Lifestyles.", +"Controversial Subjects: Celebrity Gossip.", +"Controversial Subjects: Gambling.", +"Controversial Subjects: Occult.", +"Controversial Subjects: Sex Education.", +"Disaster: Aviation.", +"Disaster: Man-made.", +"Disaster: Natural.", +"Disaster: Terrorist Events.", +"Disaster: Vehicle.", +"Drugs/Alcohol/Controlled Substances: Alcohol.", +"Drugs/Alcohol/Controlled Substances: Smoking.", +"Negative News: Financial.", +"Non-Std Content: Non-English.", +"Non-Std Content: Parking Page.", +"Unmoderated UGC: Forums, Images & Video.", +"Controversial Subjects: Inflammatory Politics and News.", +"Negative News: Pharmaceutical." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DoubleVerifyDisplayViewability": { +"description": "Details of DoubleVerify display viewability settings.", +"id": "DoubleVerifyDisplayViewability", +"properties": { +"iab": { +"description": "Target web and app inventory to maximize IAB viewable rate.", +"enum": [ +"IAB_VIEWED_RATE_UNSPECIFIED", +"IAB_VIEWED_RATE_80_PERCENT_HIGHER", +"IAB_VIEWED_RATE_75_PERCENT_HIGHER", +"IAB_VIEWED_RATE_70_PERCENT_HIGHER", +"IAB_VIEWED_RATE_65_PERCENT_HIGHER", +"IAB_VIEWED_RATE_60_PERCENT_HIGHER", +"IAB_VIEWED_RATE_55_PERCENT_HIGHER", +"IAB_VIEWED_RATE_50_PERCENT_HIGHER", +"IAB_VIEWED_RATE_40_PERCENT_HIGHER", +"IAB_VIEWED_RATE_30_PERCENT_HIGHER" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any IAB viewed rate options.", +"Target web and app inventory to maximize IAB viewable rate 80% or higher.", +"Target web and app inventory to maximize IAB viewable rate 75% or higher.", +"Target web and app inventory to maximize IAB viewable rate 70% or higher.", +"Target web and app inventory to maximize IAB viewable rate 65% or higher.", +"Target web and app inventory to maximize IAB viewable rate 60% or higher.", +"Target web and app inventory to maximize IAB viewable rate 55% or higher.", +"Target web and app inventory to maximize IAB viewable rate 50% or higher.", +"Target web and app inventory to maximize IAB viewable rate 40% or higher.", +"Target web and app inventory to maximize IAB viewable rate 30% or higher." +], +"type": "string" +}, +"viewableDuring": { +"description": "Target web and app inventory to maximize 100% viewable duration.", +"enum": [ +"AVERAGE_VIEW_DURATION_UNSPECIFIED", +"AVERAGE_VIEW_DURATION_5_SEC", +"AVERAGE_VIEW_DURATION_10_SEC", +"AVERAGE_VIEW_DURATION_15_SEC" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any average view duration options.", +"Target web and app inventory to maximize 100% viewable duration 5 seconds or more.", +"Target web and app inventory to maximize 100% viewable duration 10 seconds or more.", +"Target web and app inventory to maximize 100% viewable duration 15 seconds or more." +], +"type": "string" +} +}, +"type": "object" +}, +"DoubleVerifyFraudInvalidTraffic": { +"description": "DoubleVerify Fraud & Invalid Traffic settings.", +"id": "DoubleVerifyFraudInvalidTraffic", +"properties": { +"avoidInsufficientOption": { +"description": "Insufficient Historical Fraud & IVT Stats.", +"type": "boolean" +}, +"avoidedFraudOption": { +"description": "Avoid Sites and Apps with historical Fraud & IVT.", +"enum": [ +"FRAUD_UNSPECIFIED", +"AD_IMPRESSION_FRAUD_100", +"AD_IMPRESSION_FRAUD_50", +"AD_IMPRESSION_FRAUD_25", +"AD_IMPRESSION_FRAUD_10", +"AD_IMPRESSION_FRAUD_8", +"AD_IMPRESSION_FRAUD_6", +"AD_IMPRESSION_FRAUD_4", +"AD_IMPRESSION_FRAUD_2" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any fraud and invalid traffic options.", +"100% Fraud & IVT.", +"50% or Higher Fraud & IVT.", +"25% or Higher Fraud & IVT.", +"10% or Higher Fraud & IVT.", +"8% or Higher Fraud & IVT.", +"6% or Higher Fraud & IVT.", +"4% or Higher Fraud & IVT.", +"2% or Higher Fraud & IVT." +], +"type": "string" +} +}, +"type": "object" +}, +"DoubleVerifyVideoViewability": { +"description": "Details of DoubleVerify video viewability settings.", +"id": "DoubleVerifyVideoViewability", +"properties": { +"playerImpressionRate": { +"description": "Target inventory to maximize impressions with 400x300 or greater player size.", +"enum": [ +"PLAYER_SIZE_400X300_UNSPECIFIED", +"PLAYER_SIZE_400X300_95", +"PLAYER_SIZE_400X300_70", +"PLAYER_SIZE_400X300_25", +"PLAYER_SIZE_400X300_5" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any impressions options.", +"Sites with 95%+ of impressions.", +"Sites with 70%+ of impressions.", +"Sites with 25%+ of impressions.", +"Sites with 5%+ of impressions." +], +"type": "string" +}, +"videoIab": { +"description": "Target web inventory to maximize IAB viewable rate.", +"enum": [ +"VIDEO_IAB_UNSPECIFIED", +"IAB_VIEWABILITY_80_PERCENT_HIGHER", +"IAB_VIEWABILITY_75_PERCENT_HIGHER", +"IAB_VIEWABILITY_70_PERCENT_HIGHER", +"IAB_VIEWABILITY_65_PERCENT_HIHGER", +"IAB_VIEWABILITY_60_PERCENT_HIGHER", +"IAB_VIEWABILITY_55_PERCENT_HIHGER", +"IAB_VIEWABILITY_50_PERCENT_HIGHER", +"IAB_VIEWABILITY_40_PERCENT_HIHGER", +"IAB_VIEWABILITY_30_PERCENT_HIHGER" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any video IAB viewable rate options.", +"Target web and app inventory to maximize IAB viewable rate 80% or higher.", +"Target web and app inventory to maximize IAB viewable rate 75% or higher.", +"Target web and app inventory to maximize IAB viewable rate 70% or higher.", +"Target web and app inventory to maximize IAB viewable rate 65% or higher.", +"Target web and app inventory to maximize IAB viewable rate 60% or higher.", +"Target web and app inventory to maximize IAB viewable rate 55% or higher.", +"Target web and app inventory to maximize IAB viewable rate 50% or higher.", +"Target web and app inventory to maximize IAB viewable rate 40% or higher.", +"Target web and app inventory to maximize IAB viewable rate 30% or higher." +], +"type": "string" +}, +"videoViewableRate": { +"description": "Target web inventory to maximize fully viewable rate.", +"enum": [ +"VIDEO_VIEWABLE_RATE_UNSPECIFIED", +"VIEWED_PERFORMANCE_40_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_35_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_30_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_25_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_20_PERCENT_HIGHER", +"VIEWED_PERFORMANCE_10_PERCENT_HIGHER" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any video viewable rate options.", +"Target web inventory to maximize fully viewable rate 40% or higher.", +"Target web inventory to maximize fully viewable rate 35% or higher.", +"Target web inventory to maximize fully viewable rate 30% or higher.", +"Target web inventory to maximize fully viewable rate 25% or higher.", +"Target web inventory to maximize fully viewable rate 20% or higher.", +"Target web inventory to maximize fully viewable rate 10% or higher." +], +"type": "string" +} +}, +"type": "object" +}, +"DuplicateLineItemRequest": { +"description": "Request message for LineItemService.DuplicateLineItem.", +"id": "DuplicateLineItemRequest", +"properties": { +"targetDisplayName": { +"description": "The display name of the new line item. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"DuplicateLineItemResponse": { +"id": "DuplicateLineItemResponse", +"properties": { +"duplicateLineItemId": { +"description": "The ID of the created line item.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EditCustomerMatchMembersRequest": { +"description": "Request message for FirstAndThirdPartyAudienceService.EditCustomerMatchMembers.", +"id": "EditCustomerMatchMembersRequest", +"properties": { +"addedContactInfoList": { +"$ref": "ContactInfoList", +"description": "Input only. A list of contact information to define the members to be added." +}, +"addedMobileDeviceIdList": { +"$ref": "MobileDeviceIdList", +"description": "Input only. A list of mobile device IDs to define the members to be added." +}, +"advertiserId": { +"description": "Required. The ID of the owner advertiser of the updated Customer Match FirstAndThirdPartyAudience.", +"format": "int64", +"type": "string" +}, +"removedContactInfoList": { +"$ref": "ContactInfoList", +"description": "Input only. A list of contact information to define the members to be removed." +}, +"removedMobileDeviceIdList": { +"$ref": "MobileDeviceIdList", +"description": "Input only. A list of mobile device IDs to define the members to be removed." +} +}, +"type": "object" +}, +"EditCustomerMatchMembersResponse": { +"description": "The response of FirstAndThirdPartyAudienceService.EditCustomerMatchMembers.", +"id": "EditCustomerMatchMembersResponse", +"properties": { +"firstAndThirdPartyAudienceId": { +"description": "Required. The ID of the updated Customer Match FirstAndThirdPartyAudience.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EditGuaranteedOrderReadAccessorsRequest": { +"description": "Request message for GuaranteedOrderService.EditGuaranteedOrderReadAccessors.", +"id": "EditGuaranteedOrderReadAccessorsRequest", +"properties": { +"addedAdvertisers": { +"description": "The advertisers to add as read accessors to the guaranteed order.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"partnerId": { +"description": "Required. The partner context in which the change is being made.", +"format": "int64", +"type": "string" +}, +"readAccessInherited": { +"description": "Whether to give all advertisers of the read/write accessor partner read access to the guaranteed order. Only applicable if read_write_partner_id is set in the guaranteed order.", +"type": "boolean" +}, +"removedAdvertisers": { +"description": "The advertisers to remove as read accessors to the guaranteed order.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EditGuaranteedOrderReadAccessorsResponse": { +"id": "EditGuaranteedOrderReadAccessorsResponse", +"properties": { +"readAccessInherited": { +"description": "Whether all advertisers of read_write_partner_id have read access to the guaranteed order.", +"type": "boolean" +}, +"readAdvertiserIds": { +"description": "The IDs of advertisers with read access to the guaranteed order.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EditInventorySourceReadWriteAccessorsRequest": { +"description": "Request message for InventorySourceService.EditInventorySourceReadWriteAccessors.", +"id": "EditInventorySourceReadWriteAccessorsRequest", +"properties": { +"advertisersUpdate": { +"$ref": "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate", +"description": "The advertisers to add or remove from the list of advertisers that have read/write access to the inventory source. This change will remove an existing partner read/write accessor." +}, +"assignPartner": { +"description": "Set the partner context as read/write accessor of the inventory source. This will remove all other current read/write advertiser accessors.", +"type": "boolean" +}, +"partnerId": { +"description": "Required. The partner context by which the accessors change is being made.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate": { +"description": "Update to the list of advertisers with read/write access to the inventory source.", +"id": "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate", +"properties": { +"addedAdvertisers": { +"description": "The advertisers to add.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"removedAdvertisers": { +"description": "The advertisers to remove.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EnvironmentAssignedTargetingOptionDetails": { +"description": "Assigned environment targeting option details. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_ENVIRONMENT`.", +"id": "EnvironmentAssignedTargetingOptionDetails", +"properties": { +"environment": { +"description": "Required. The serving environment.", +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"ENVIRONMENT_WEB_OPTIMIZED", +"ENVIRONMENT_WEB_NOT_OPTIMIZED", +"ENVIRONMENT_APP" +], +"enumDescriptions": [ +"Default value when environment is not specified in this version. This enum is a placeholder for default value and does not represent a real environment option.", +"Target inventory displayed in browsers. This includes inventory that was designed for the device it was viewed on, such as mobile websites viewed on a mobile device. ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior to the deletion of this targeting option.", +"Target inventory displayed in browsers. This includes inventory that was not designed for the device but viewed on it, such as websites optimized for desktop but viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be targeted prior to the addition of this targeting option.", +"Target inventory displayed in apps." +], +"type": "string" +} +}, +"type": "object" +}, +"EnvironmentTargetingOptionDetails": { +"description": "Represents a targetable environment. This will be populated in the environment_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_ENVIRONMENT`.", +"id": "EnvironmentTargetingOptionDetails", +"properties": { +"environment": { +"description": "Output only. The serving environment.", +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"ENVIRONMENT_WEB_OPTIMIZED", +"ENVIRONMENT_WEB_NOT_OPTIMIZED", +"ENVIRONMENT_APP" +], +"enumDescriptions": [ +"Default value when environment is not specified in this version. This enum is a placeholder for default value and does not represent a real environment option.", +"Target inventory displayed in browsers. This includes inventory that was designed for the device it was viewed on, such as mobile websites viewed on a mobile device. ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior to the deletion of this targeting option.", +"Target inventory displayed in browsers. This includes inventory that was not designed for the device but viewed on it, such as websites optimized for desktop but viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be targeted prior to the addition of this targeting option.", +"Target inventory displayed in apps." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExchangeAssignedTargetingOptionDetails": { +"description": "Details for assigned exchange targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_EXCHANGE`.", +"id": "ExchangeAssignedTargetingOptionDetails", +"properties": { +"exchange": { +"description": "Required. The enum value for the exchange.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK", +"EXCHANGE_DRAX", +"EXCHANGE_APPLOVIN_GBID", +"EXCHANGE_FYBER_GBID", +"EXCHANGE_UNITY_GBID", +"EXCHANGE_CHARTBOOST_GBID", +"EXCHANGE_ADMOST_GBID", +"EXCHANGE_TOPON_GBID", +"EXCHANGE_NETFLIX", +"EXCHANGE_CORE", +"EXCHANGE_TUBI" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack.", +"Drax.", +"AppLovin MAX.", +"DT Fairbid.", +"Unity LevelPlay.", +"Chartboost Mediation.", +"AdMost.", +"TopOn.", +"Netflix.", +"Core.", +"Tubi." +], +"type": "string" +} +}, +"type": "object" +}, +"ExchangeConfig": { +"description": "Settings that control which exchanges are enabled for a partner.", +"id": "ExchangeConfig", +"properties": { +"enabledExchanges": { +"description": "All enabled exchanges in the partner. Duplicate enabled exchanges will be ignored.", +"items": { +"$ref": "ExchangeConfigEnabledExchange" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExchangeConfigEnabledExchange": { +"description": "An enabled exchange in the partner.", +"id": "ExchangeConfigEnabledExchange", +"properties": { +"exchange": { +"description": "The enabled exchange.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK", +"EXCHANGE_DRAX", +"EXCHANGE_APPLOVIN_GBID", +"EXCHANGE_FYBER_GBID", +"EXCHANGE_UNITY_GBID", +"EXCHANGE_CHARTBOOST_GBID", +"EXCHANGE_ADMOST_GBID", +"EXCHANGE_TOPON_GBID", +"EXCHANGE_NETFLIX", +"EXCHANGE_CORE", +"EXCHANGE_TUBI" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack.", +"Drax.", +"AppLovin MAX.", +"DT Fairbid.", +"Unity LevelPlay.", +"Chartboost Mediation.", +"AdMost.", +"TopOn.", +"Netflix.", +"Core.", +"Tubi." +], +"type": "string" +}, +"googleAdManagerAgencyId": { +"description": "Output only. Agency ID of Google Ad Manager. The field is only relevant when Google Ad Manager is the enabled exchange.", +"readOnly": true, +"type": "string" +}, +"googleAdManagerBuyerNetworkId": { +"description": "Output only. Network ID of Google Ad Manager. The field is only relevant when Google Ad Manager is the enabled exchange.", +"readOnly": true, +"type": "string" +}, +"seatId": { +"description": "Output only. Seat ID of the enabled exchange.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExchangeReviewStatus": { +"description": "Exchange review status for the creative.", +"id": "ExchangeReviewStatus", +"properties": { +"exchange": { +"description": "The exchange reviewing the creative.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK", +"EXCHANGE_DRAX", +"EXCHANGE_APPLOVIN_GBID", +"EXCHANGE_FYBER_GBID", +"EXCHANGE_UNITY_GBID", +"EXCHANGE_CHARTBOOST_GBID", +"EXCHANGE_ADMOST_GBID", +"EXCHANGE_TOPON_GBID", +"EXCHANGE_NETFLIX", +"EXCHANGE_CORE", +"EXCHANGE_TUBI" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack.", +"Drax.", +"AppLovin MAX.", +"DT Fairbid.", +"Unity LevelPlay.", +"Chartboost Mediation.", +"AdMost.", +"TopOn.", +"Netflix.", +"Core.", +"Tubi." +], +"type": "string" +}, +"status": { +"description": "Status of the exchange review.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"REVIEW_STATUS_APPROVED", +"REVIEW_STATUS_REJECTED", +"REVIEW_STATUS_PENDING" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is approved.", +"The creative is rejected.", +"The creative is pending review." +], +"type": "string" +} +}, +"type": "object" +}, +"ExchangeTargetingOptionDetails": { +"description": "Represents a targetable exchange. This will be populated in the exchange_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_EXCHANGE`.", +"id": "ExchangeTargetingOptionDetails", +"properties": { +"exchange": { +"description": "Output only. The type of exchange.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK", +"EXCHANGE_DRAX", +"EXCHANGE_APPLOVIN_GBID", +"EXCHANGE_FYBER_GBID", +"EXCHANGE_UNITY_GBID", +"EXCHANGE_CHARTBOOST_GBID", +"EXCHANGE_ADMOST_GBID", +"EXCHANGE_TOPON_GBID", +"EXCHANGE_NETFLIX", +"EXCHANGE_CORE", +"EXCHANGE_TUBI" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack.", +"Drax.", +"AppLovin MAX.", +"DT Fairbid.", +"Unity LevelPlay.", +"Chartboost Mediation.", +"AdMost.", +"TopOn.", +"Netflix.", +"Core.", +"Tubi." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExitEvent": { +"description": "Exit event of the creative.", +"id": "ExitEvent", +"properties": { +"name": { +"description": "The name of the click tag of the exit event. The name must be unique within one creative. Leave it empty or unset for creatives containing image assets only.", +"type": "string" +}, +"reportingName": { +"description": "The name used to identify this event in reports. Leave it empty or unset for creatives containing image assets only.", +"type": "string" +}, +"type": { +"description": "Required. The type of the exit event.", +"enum": [ +"EXIT_EVENT_TYPE_UNSPECIFIED", +"EXIT_EVENT_TYPE_DEFAULT", +"EXIT_EVENT_TYPE_BACKUP" +], +"enumDescriptions": [ +"Exit event type is not specified or is unknown in this version.", +"The exit event is the default one.", +"The exit event is a backup exit event. There could be multiple backup exit events in a creative." +], +"type": "string" +}, +"url": { +"description": "Required. The click through URL of the exit event. This is required when type is: * `EXIT_EVENT_TYPE_DEFAULT` * `EXIT_EVENT_TYPE_BACKUP`", +"type": "string" +} +}, +"type": "object" +}, +"FirstAndThirdPartyAudience": { +"description": "Describes a first or third party audience list used for targeting. First party audiences are created via usage of client data. Third party audiences are provided by Third Party data providers and can only be licensed to customers.", +"id": "FirstAndThirdPartyAudience", +"properties": { +"activeDisplayAudienceSize": { +"description": "Output only. The estimated audience size for the Display network in the past month. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"appId": { +"description": "The app_id matches with the type of the mobile_device_ids being uploaded. Only applicable to audience_type `CUSTOMER_MATCH_DEVICE_ID`", +"type": "string" +}, +"audienceSource": { +"description": "Output only. The source of the audience.", +"enum": [ +"AUDIENCE_SOURCE_UNSPECIFIED", +"DISPLAY_VIDEO_360", +"CAMPAIGN_MANAGER", +"AD_MANAGER", +"SEARCH_ADS_360", +"YOUTUBE", +"ADS_DATA_HUB" +], +"enumDescriptions": [ +"Default value when audience source is not specified or is unknown.", +"Originated from Display & Video 360.", +"Originated from Campaign Manager 360.", +"Originated from Google Ad Manager.", +"Originated from Search Ads 360.", +"Originated from Youtube.", +"Originated from Ads Data Hub." +], +"readOnly": true, +"type": "string" +}, +"audienceType": { +"description": "The type of the audience.", +"enum": [ +"AUDIENCE_TYPE_UNSPECIFIED", +"CUSTOMER_MATCH_CONTACT_INFO", +"CUSTOMER_MATCH_DEVICE_ID", +"CUSTOMER_MATCH_USER_ID", +"ACTIVITY_BASED", +"FREQUENCY_CAP", +"TAG_BASED", +"YOUTUBE_USERS", +"LICENSED" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +true, +false, +false, +false +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown.", +"Audience was generated through matching customers to known contact information.", +"Audience was generated through matching customers to known Mobile device IDs.", +"Audience was generated through matching customers to known User IDs.", +"Audience was created based on campaign activity.", +"Audience was created based on excluding the number of impressions they were served.", +"Audience was created based on custom variables attached to pixel.", +"Audience was created based on past interactions with videos, YouTube ads, or YouTube channel.", +"Subtype of third party audience type." +], +"type": "string" +}, +"contactInfoList": { +"$ref": "ContactInfoList", +"description": "Input only. A list of contact information to define the initial audience members. Only applicable to audience_type `CUSTOMER_MATCH_CONTACT_INFO`" +}, +"description": { +"description": "The user-provided description of the audience. Only applicable to first party audiences.", +"type": "string" +}, +"displayAudienceSize": { +"description": "Output only. The estimated audience size for the Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayDesktopAudienceSize": { +"description": "Output only. The estimated desktop audience size in Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayMobileAppAudienceSize": { +"description": "Output only. The estimated mobile app audience size in Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayMobileWebAudienceSize": { +"description": "Output only. The estimated mobile web audience size in Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The display name of the first and third party audience.", +"type": "string" +}, +"firstAndThirdPartyAudienceId": { +"description": "Output only. The unique ID of the first and third party audience. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"firstAndThirdPartyAudienceType": { +"description": "Whether the audience is a first or third party audience.", +"enum": [ +"FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_UNSPECIFIED", +"FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY", +"FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_THIRD_PARTY" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown.", +"Audience that is created via usage of client data.", +"Audience that is provided by Third Party data providers." +], +"type": "string" +}, +"gmailAudienceSize": { +"description": "Output only. The estimated audience size for Gmail network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"membershipDurationDays": { +"description": "The duration in days that an entry remains in the audience after the qualifying event. If the audience has no expiration, set the value of this field to 10000. Otherwise, the set value must be greater than 0 and less than or equal to 540. Only applicable to first party audiences. This field is required if one of the following audience_type is used: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", +"format": "int64", +"type": "string" +}, +"mobileDeviceIdList": { +"$ref": "MobileDeviceIdList", +"description": "Input only. A list of mobile device IDs to define the initial audience members. Only applicable to audience_type `CUSTOMER_MATCH_DEVICE_ID`" +}, +"name": { +"description": "Output only. The resource name of the first and third party audience.", +"readOnly": true, +"type": "string" +}, +"youtubeAudienceSize": { +"description": "Output only. The estimated audience size for YouTube network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"FirstAndThirdPartyAudienceGroup": { +"description": "Details of first and third party audience group. All first and third party audience targeting settings are logically \u2018OR\u2019 of each other.", +"id": "FirstAndThirdPartyAudienceGroup", +"properties": { +"settings": { +"description": "Required. All first and third party audience targeting settings in first and third party audience group. Repeated settings with same id are not allowed.", +"items": { +"$ref": "FirstAndThirdPartyAudienceTargetingSetting" +}, +"type": "array" +} +}, +"type": "object" +}, +"FirstAndThirdPartyAudienceTargetingSetting": { +"description": "Details of first and third party audience targeting setting.", +"id": "FirstAndThirdPartyAudienceTargetingSetting", +"properties": { +"firstAndThirdPartyAudienceId": { +"description": "Required. First and third party audience id of the first and third party audience targeting setting. This id is first_and_third_party_audience_id.", +"format": "int64", +"type": "string" +}, +"recency": { +"description": "The recency of the first and third party audience targeting setting. Only applicable to first party audiences, otherwise will be ignored. For more info, refer to https://support.google.com/displayvideo/answer/2949947#recency When unspecified, no recency limit will be used.", +"enum": [ +"RECENCY_NO_LIMIT", +"RECENCY_1_MINUTE", +"RECENCY_5_MINUTES", +"RECENCY_10_MINUTES", +"RECENCY_15_MINUTES", +"RECENCY_30_MINUTES", +"RECENCY_1_HOUR", +"RECENCY_2_HOURS", +"RECENCY_3_HOURS", +"RECENCY_6_HOURS", +"RECENCY_12_HOURS", +"RECENCY_1_DAY", +"RECENCY_2_DAYS", +"RECENCY_3_DAYS", +"RECENCY_5_DAYS", +"RECENCY_7_DAYS", +"RECENCY_10_DAYS", +"RECENCY_14_DAYS", +"RECENCY_15_DAYS", +"RECENCY_21_DAYS", +"RECENCY_28_DAYS", +"RECENCY_30_DAYS", +"RECENCY_40_DAYS", +"RECENCY_45_DAYS", +"RECENCY_60_DAYS", +"RECENCY_90_DAYS", +"RECENCY_120_DAYS", +"RECENCY_180_DAYS", +"RECENCY_270_DAYS", +"RECENCY_365_DAYS" +], +"enumDescriptions": [ +"No limit of recency.", +"Recency is 1 minute.", +"Recency is 5 minutes.", +"Recency is 10 minutes.", +"Recency is 15 minutes.", +"Recency is 30 minutes.", +"Recency is 1 hour.", +"Recency is 2 hours.", +"Recency is 3 hours.", +"Recency is 6 hours.", +"Recency is 12 hours.", +"Recency is 1 day.", +"Recency is 2 days.", +"Recency is 3 days.", +"Recency is 5 days.", +"Recency is 7 days.", +"Recency is 10 days.", +"Recency is 14 days.", +"Recency is 15 days.", +"Recency is 21 days.", +"Recency is 28 days.", +"Recency is 30 days.", +"Recency is 40 days.", +"Recency is 45 days.", +"Recency is 60 days.", +"Recency is 90 days.", +"Recency is 120 days.", +"Recency is 180 days.", +"Recency is 270 days.", +"Recency is 365 days." +], +"type": "string" +} +}, +"type": "object" +}, +"FixedBidStrategy": { +"description": "A strategy that uses a fixed bidding price.", +"id": "FixedBidStrategy", +"properties": { +"bidAmountMicros": { +"description": "The fixed bid amount, in micros of the advertiser's currency. For insertion order entity, bid_amount_micros should be set as 0. For line item entity, bid_amount_micros must be greater than or equal to billable unit of the given currency and smaller than or equal to the upper limit 1000000000. For example, 1500000 represents 1.5 standard units of the currency.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"FloodlightActivity": { +"description": "A single Floodlight activity.", +"id": "FloodlightActivity", +"properties": { +"advertiserIds": { +"description": "Output only. IDs of the advertisers that have access to the parent Floodlight group. Only advertisers under the provided partner ID will be listed in this field.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"displayName": { +"description": "Required. The display name of the Floodlight activity.", +"type": "string" +}, +"floodlightActivityId": { +"description": "Output only. The unique ID of the Floodlight activity. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"floodlightGroupId": { +"description": "Required. Immutable. The ID of the parent Floodlight group.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the Floodlight activity.", +"readOnly": true, +"type": "string" +}, +"remarketingConfigs": { +"description": "Output only. A list of configuration objects designating whether remarketing for this Floodlight Activity is enabled and available for a specifc advertiser. If enabled, this Floodlight Activity generates a remarketing user list that is able to be used in targeting under the advertiser.", +"items": { +"$ref": "RemarketingConfig" +}, +"readOnly": true, +"type": "array" +}, +"servingStatus": { +"description": "Optional. Whether the Floodlight activity is served.", +"enum": [ +"FLOODLIGHT_ACTIVITY_SERVING_STATUS_UNSPECIFIED", +"FLOODLIGHT_ACTIVITY_SERVING_STATUS_ENABLED", +"FLOODLIGHT_ACTIVITY_SERVING_STATUS_DISABLED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Enabled.", +"Disabled." +], +"type": "string" +}, +"sslRequired": { +"description": "Output only. Whether tags are required to be compliant.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"FloodlightGroup": { +"description": "A single Floodlight group.", +"id": "FloodlightGroup", +"properties": { +"activeViewConfig": { +"$ref": "ActiveViewVideoViewabilityMetricConfig", +"description": "The Active View video viewability metric configuration for the Floodlight group." +}, +"customVariables": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "User-defined custom variables owned by the Floodlight group. Use custom Floodlight variables to create reporting data that is tailored to your unique business needs. Custom Floodlight variables use the keys `U1=`, `U2=`, and so on, and can take any values that you choose to pass to them. You can use them to track virtually any type of data that you collect about your customers, such as the genre of movie that a customer purchases, the country to which the item is shipped, and so on. Custom Floodlight variables may not be used to pass any data that could be used or recognized as personally identifiable information (PII). Example: `custom_variables { fields { \"U1\": value { number_value: 123.4 }, \"U2\": value { string_value: \"MyVariable2\" }, \"U3\": value { string_value: \"MyVariable3\" } } }` Acceptable values for keys are \"U1\" through \"U100\", inclusive. String values must be less than 64 characters long, and cannot contain the following characters: `\"<>`.", +"type": "object" +}, +"displayName": { +"description": "Required. The display name of the Floodlight group.", +"type": "string" +}, +"floodlightGroupId": { +"description": "Output only. The unique ID of the Floodlight group. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"lookbackWindow": { +"$ref": "LookbackWindow", +"description": "Required. The lookback window for the Floodlight group. Both click_days and impression_days are required. Acceptable values for both are `0` to `90`, inclusive." +}, +"name": { +"description": "Output only. The resource name of the Floodlight group.", +"readOnly": true, +"type": "string" +}, +"webTagType": { +"description": "Required. The web tag type enabled for the Floodlight group.", +"enum": [ +"WEB_TAG_TYPE_UNSPECIFIED", +"WEB_TAG_TYPE_NONE", +"WEB_TAG_TYPE_IMAGE", +"WEB_TAG_TYPE_DYNAMIC" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"No tag type.", +"Image tag.", +"Dynamic tag." +], +"type": "string" +} +}, +"type": "object" +}, +"FrequencyCap": { +"description": "Settings that control the number of times a user may be shown with the same ad during a given time period.", +"id": "FrequencyCap", +"properties": { +"maxImpressions": { +"description": "The maximum number of times a user may be shown the same ad during this period. Must be greater than 0. Required when unlimited is `false` and max_views is not set.", +"format": "int32", +"type": "integer" +}, +"maxViews": { +"description": "Optional. The maximum number of times a user may click-through or fully view an ad during this period until it is no longer served to them. Must be greater than 0. Only applicable to YouTube and Partners resources. Required when unlimited is `false` and max_impressions is not set.", +"format": "int32", +"type": "integer" +}, +"timeUnit": { +"description": "The time unit in which the frequency cap will be applied. Required when unlimited is `false`.", +"enum": [ +"TIME_UNIT_UNSPECIFIED", +"TIME_UNIT_LIFETIME", +"TIME_UNIT_MONTHS", +"TIME_UNIT_WEEKS", +"TIME_UNIT_DAYS", +"TIME_UNIT_HOURS", +"TIME_UNIT_MINUTES" +], +"enumDescriptions": [ +"Time unit value is not specified or is unknown in this version.", +"The frequency cap will be applied to the whole life time of the line item.", +"The frequency cap will be applied to a number of months.", +"The frequency cap will be applied to a number of weeks.", +"The frequency cap will be applied to a number of days.", +"The frequency cap will be applied to a number of hours.", +"The frequency cap will be applied to a number of minutes." +], +"type": "string" +}, +"timeUnitCount": { +"description": "The number of time_unit the frequency cap will last. Required when unlimited is `false`. The following restrictions apply based on the value of time_unit: * `TIME_UNIT_LIFETIME` - this field is output only and will default to 1 * `TIME_UNIT_MONTHS` - must be between 1 and 2 * `TIME_UNIT_WEEKS` - must be between 1 and 4 * `TIME_UNIT_DAYS` - must be between 1 and 6 * `TIME_UNIT_HOURS` - must be between 1 and 23 * `TIME_UNIT_MINUTES` - must be between 1 and 59", +"format": "int32", +"type": "integer" +}, +"unlimited": { +"description": "Whether unlimited frequency capping is applied. When this field is set to `true`, the remaining frequency cap fields are not applicable.", +"type": "boolean" +} +}, +"type": "object" +}, +"GenderAssignedTargetingOptionDetails": { +"description": "Details for assigned gender targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_GENDER`.", +"id": "GenderAssignedTargetingOptionDetails", +"properties": { +"gender": { +"description": "Required. The gender of the audience.", +"enum": [ +"GENDER_UNSPECIFIED", +"GENDER_MALE", +"GENDER_FEMALE", +"GENDER_UNKNOWN" +], +"enumDescriptions": [ +"Default value when gender is not specified in this version. This enum is a place holder for default value and does not represent a real gender option.", +"The audience gender is male.", +"The audience gender is female.", +"The audience gender is unknown." +], +"type": "string" +} +}, +"type": "object" +}, +"GenderTargetingOptionDetails": { +"description": "Represents a targetable gender. This will be populated in the gender_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_GENDER`.", +"id": "GenderTargetingOptionDetails", +"properties": { +"gender": { +"description": "Output only. The gender of an audience.", +"enum": [ +"GENDER_UNSPECIFIED", +"GENDER_MALE", +"GENDER_FEMALE", +"GENDER_UNKNOWN" +], +"enumDescriptions": [ +"Default value when gender is not specified in this version. This enum is a place holder for default value and does not represent a real gender option.", +"The audience gender is male.", +"The audience gender is female.", +"The audience gender is unknown." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GenerateDefaultLineItemRequest": { +"description": "Request message for LineItemService.GenerateDefaultLineItem.", +"id": "GenerateDefaultLineItemRequest", +"properties": { +"displayName": { +"description": "Required. The display name of the line item. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"insertionOrderId": { +"description": "Required. The unique ID of the insertion order that the line item belongs to.", +"format": "int64", +"type": "string" +}, +"lineItemType": { +"description": "Required. The type of the line item.", +"enum": [ +"LINE_ITEM_TYPE_UNSPECIFIED", +"LINE_ITEM_TYPE_DISPLAY_DEFAULT", +"LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL", +"LINE_ITEM_TYPE_VIDEO_DEFAULT", +"LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL", +"LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY", +"LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY", +"LINE_ITEM_TYPE_AUDIO_DEFAULT", +"LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_ACTION", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_NON_SKIPPABLE", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_AUDIO", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_REACH", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_SIMPLE", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_NON_SKIPPABLE_OVER_THE_TOP", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_REACH_OVER_THE_TOP", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_SIMPLE_OVER_THE_TOP", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_TARGET_FREQUENCY", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIEW", +"LINE_ITEM_TYPE_DISPLAY_OUT_OF_HOME", +"LINE_ITEM_TYPE_VIDEO_OUT_OF_HOME" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version. Line items of this type and their targeting cannot be created or updated using the API.", +"Image, HTML5, native, or rich media ads.", +"Display ads that drive installs of an app.", +"Video ads sold on a CPM basis for a variety of environments.", +"Video ads that drive installs of an app.", +"Display ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"Video ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"RTB Audio ads sold for a variety of environments.", +"Over-the-top ads present in OTT insertion orders. This type is only applicable to line items with an insertion order of insertion_order_type `OVER_THE_TOP`.", +"YouTube video ads that promote conversions. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube video ads (up to 15 seconds) that cannot be skipped. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube video ads that show a story in a particular sequence using a mix of formats. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube audio ads. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube video ads that optimize reaching more unique users at lower cost. May include bumper ads, skippable in-stream ads, or a mix of types. Line items of this type and their targeting cannot be created or updated using the API.", +"Default YouTube video ads. Line items of this type and their targeting cannot be created or updated using the API.", +"Connected TV youTube video ads (up to 15 seconds) that cannot be skipped. Line items of this type and their targeting cannot be created or updated using the API.", +"Connected TV youTube video ads that optimize reaching more unique users at lower cost. May include bumper ads, skippable in-stream ads, or a mix of types. Line items of this type and their targeting cannot be created or updated using the API.", +"Connected TV default YouTube video ads. Only include in-stream ad-format. Line items of this type and their targeting cannot be created or updated using the API.", +"The goal of this line item type is to show the YouTube ads target number of times to the same person in a certain period of time. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube video ads that aim to get more views with a variety of ad formats. Line items of this type and their targeting cannot be created or updated using the API.", +"Display ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"Video ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API." +], +"type": "string" +}, +"mobileApp": { +"$ref": "MobileApp", +"description": "The mobile app promoted by the line item. This is applicable only when line_item_type is either `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`." +} +}, +"type": "object" +}, +"GeoRegionAssignedTargetingOptionDetails": { +"description": "Details for assigned geographic region targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_GEO_REGION`.", +"id": "GeoRegionAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the geographic region (e.g., \"Ontario, Canada\").", +"readOnly": true, +"type": "string" +}, +"geoRegionType": { +"description": "Output only. The type of geographic region targeting.", +"enum": [ +"GEO_REGION_TYPE_UNKNOWN", +"GEO_REGION_TYPE_OTHER", +"GEO_REGION_TYPE_COUNTRY", +"GEO_REGION_TYPE_REGION", +"GEO_REGION_TYPE_TERRITORY", +"GEO_REGION_TYPE_PROVINCE", +"GEO_REGION_TYPE_STATE", +"GEO_REGION_TYPE_PREFECTURE", +"GEO_REGION_TYPE_GOVERNORATE", +"GEO_REGION_TYPE_CANTON", +"GEO_REGION_TYPE_UNION_TERRITORY", +"GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", +"GEO_REGION_TYPE_DMA_REGION", +"GEO_REGION_TYPE_METRO", +"GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", +"GEO_REGION_TYPE_COUNTY", +"GEO_REGION_TYPE_MUNICIPALITY", +"GEO_REGION_TYPE_CITY", +"GEO_REGION_TYPE_POSTAL_CODE", +"GEO_REGION_TYPE_DEPARTMENT", +"GEO_REGION_TYPE_AIRPORT", +"GEO_REGION_TYPE_TV_REGION", +"GEO_REGION_TYPE_OKRUG", +"GEO_REGION_TYPE_BOROUGH", +"GEO_REGION_TYPE_CITY_REGION", +"GEO_REGION_TYPE_ARRONDISSEMENT", +"GEO_REGION_TYPE_NEIGHBORHOOD", +"GEO_REGION_TYPE_UNIVERSITY", +"GEO_REGION_TYPE_DISTRICT" +], +"enumDescriptions": [ +"The geographic region type is unknown.", +"The geographic region type is other.", +"The geographic region is a country.", +"The geographic region type is region.", +"The geographic region is a territory.", +"The geographic region is a province.", +"The geographic region is a state.", +"The geographic region is a prefecture.", +"The geographic region is a governorate.", +"The geographic region is a canton.", +"The geographic region is a union territory.", +"The geographic region is an autonomous community.", +"The geographic region is a designated market area (DMA) region.", +"The geographic region type is metro.", +"The geographic region is a congressional district.", +"The geographic region is a county.", +"The geographic region is a municipality.", +"The geographic region is a city.", +"The geographic region targeting type is postal code.", +"The geographic region targeting type is department.", +"The geographic region is an airport.", +"The geographic region is a TV region.", +"The geographic region is an okrug.", +"The geographic region is a borough.", +"The geographic region is a city region.", +"The geographic region is an arrondissement.", +"The geographic region is a neighborhood.", +"The geographic region is a university.", +"The geographic region is a district." +], +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_GEO_REGION`.", +"type": "string" +} +}, +"type": "object" +}, +"GeoRegionSearchTerms": { +"description": "Search terms for geo region targeting options.", +"id": "GeoRegionSearchTerms", +"properties": { +"geoRegionQuery": { +"description": "The search query for the desired geo region. The query can be a prefix, e.g. \"New Yor\", \"Seattle\", \"USA\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"GeoRegionTargetingOptionDetails": { +"description": "Represents a targetable geographic region. This will be populated in the geo_region_details field when targeting_type is `TARGETING_TYPE_GEO_REGION`.", +"id": "GeoRegionTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the geographic region (e.g., \"Ontario, Canada\").", +"readOnly": true, +"type": "string" +}, +"geoRegionType": { +"description": "Output only. The type of geographic region targeting.", +"enum": [ +"GEO_REGION_TYPE_UNKNOWN", +"GEO_REGION_TYPE_OTHER", +"GEO_REGION_TYPE_COUNTRY", +"GEO_REGION_TYPE_REGION", +"GEO_REGION_TYPE_TERRITORY", +"GEO_REGION_TYPE_PROVINCE", +"GEO_REGION_TYPE_STATE", +"GEO_REGION_TYPE_PREFECTURE", +"GEO_REGION_TYPE_GOVERNORATE", +"GEO_REGION_TYPE_CANTON", +"GEO_REGION_TYPE_UNION_TERRITORY", +"GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", +"GEO_REGION_TYPE_DMA_REGION", +"GEO_REGION_TYPE_METRO", +"GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", +"GEO_REGION_TYPE_COUNTY", +"GEO_REGION_TYPE_MUNICIPALITY", +"GEO_REGION_TYPE_CITY", +"GEO_REGION_TYPE_POSTAL_CODE", +"GEO_REGION_TYPE_DEPARTMENT", +"GEO_REGION_TYPE_AIRPORT", +"GEO_REGION_TYPE_TV_REGION", +"GEO_REGION_TYPE_OKRUG", +"GEO_REGION_TYPE_BOROUGH", +"GEO_REGION_TYPE_CITY_REGION", +"GEO_REGION_TYPE_ARRONDISSEMENT", +"GEO_REGION_TYPE_NEIGHBORHOOD", +"GEO_REGION_TYPE_UNIVERSITY", +"GEO_REGION_TYPE_DISTRICT" +], +"enumDescriptions": [ +"The geographic region type is unknown.", +"The geographic region type is other.", +"The geographic region is a country.", +"The geographic region type is region.", +"The geographic region is a territory.", +"The geographic region is a province.", +"The geographic region is a state.", +"The geographic region is a prefecture.", +"The geographic region is a governorate.", +"The geographic region is a canton.", +"The geographic region is a union territory.", +"The geographic region is an autonomous community.", +"The geographic region is a designated market area (DMA) region.", +"The geographic region type is metro.", +"The geographic region is a congressional district.", +"The geographic region is a county.", +"The geographic region is a municipality.", +"The geographic region is a city.", +"The geographic region targeting type is postal code.", +"The geographic region targeting type is department.", +"The geographic region is an airport.", +"The geographic region is a TV region.", +"The geographic region is an okrug.", +"The geographic region is a borough.", +"The geographic region is a city region.", +"The geographic region is an arrondissement.", +"The geographic region is a neighborhood.", +"The geographic region is a university.", +"The geographic region is a district." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAudience": { +"description": "Describes a Google audience resource. Includes Google audience lists.", +"id": "GoogleAudience", +"properties": { +"displayName": { +"description": "Output only. The display name of the Google audience. .", +"readOnly": true, +"type": "string" +}, +"googleAudienceId": { +"description": "Output only. The unique ID of the Google audience. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"googleAudienceType": { +"description": "Output only. The type of Google audience. .", +"enum": [ +"GOOGLE_AUDIENCE_TYPE_UNSPECIFIED", +"GOOGLE_AUDIENCE_TYPE_AFFINITY", +"GOOGLE_AUDIENCE_TYPE_IN_MARKET", +"GOOGLE_AUDIENCE_TYPE_INSTALLED_APPS", +"GOOGLE_AUDIENCE_TYPE_NEW_MOBILE_DEVICES", +"GOOGLE_AUDIENCE_TYPE_LIFE_EVENT", +"GOOGLE_AUDIENCE_TYPE_EXTENDED_DEMOGRAPHIC" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +false, +false +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown.", +"Affinity type Google audience.", +"In-Market type Google audience.", +"Installed-Apps type Google audience.", +"New-Mobile-Devices type Google audience.", +"Life-Event type Google audience.", +"Extended-Demographic type Google audience." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the google audience.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAudienceGroup": { +"description": "Details of Google audience group. All Google audience targeting settings are logically \u2018OR\u2019 of each other.", +"id": "GoogleAudienceGroup", +"properties": { +"settings": { +"description": "Required. All Google audience targeting settings in Google audience group. Repeated settings with same id will be ignored.", +"items": { +"$ref": "GoogleAudienceTargetingSetting" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAudienceTargetingSetting": { +"description": "Details of Google audience targeting setting.", +"id": "GoogleAudienceTargetingSetting", +"properties": { +"googleAudienceId": { +"description": "Required. Google audience id of the Google audience targeting setting. This id is google_audience_id.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleBytestreamMedia": { +"description": "Media resource.", +"id": "GoogleBytestreamMedia", +"properties": { +"resourceName": { +"description": "Name of the media resource.", +"type": "string" +} +}, +"type": "object" +}, +"GuaranteedOrder": { +"description": "A guaranteed order. Guaranteed orders are parent entity of guaranteed inventory sources. When creating a guaranteed inventory source, a guaranteed order ID must be assigned to the inventory source.", +"id": "GuaranteedOrder", +"properties": { +"defaultAdvertiserId": { +"description": "Output only. The ID of default advertiser of the guaranteed order. The default advertiser is either the read_write_advertiser_id or, if that is not set, the first advertiser listed in read_advertiser_ids. Otherwise, there is no default advertiser.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"defaultCampaignId": { +"description": "The ID of the default campaign that is assigned to the guaranteed order. The default campaign must belong to the default advertiser.", +"format": "int64", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the guaranteed order. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"exchange": { +"description": "Required. Immutable. The exchange where the guaranteed order originated.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK", +"EXCHANGE_DRAX", +"EXCHANGE_APPLOVIN_GBID", +"EXCHANGE_FYBER_GBID", +"EXCHANGE_UNITY_GBID", +"EXCHANGE_CHARTBOOST_GBID", +"EXCHANGE_ADMOST_GBID", +"EXCHANGE_TOPON_GBID", +"EXCHANGE_NETFLIX", +"EXCHANGE_CORE", +"EXCHANGE_TUBI" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack.", +"Drax.", +"AppLovin MAX.", +"DT Fairbid.", +"Unity LevelPlay.", +"Chartboost Mediation.", +"AdMost.", +"TopOn.", +"Netflix.", +"Core.", +"Tubi." +], +"type": "string" +}, +"guaranteedOrderId": { +"description": "Output only. The unique identifier of the guaranteed order. The guaranteed order IDs have the format `{exchange}-{legacy_guaranteed_order_id}`.", +"readOnly": true, +"type": "string" +}, +"legacyGuaranteedOrderId": { +"description": "Output only. The legacy ID of the guaranteed order. Assigned by the original exchange. The legacy ID is unique within one exchange, but is not guaranteed to be unique across all guaranteed orders. This ID is used in SDF and UI.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the guaranteed order.", +"readOnly": true, +"type": "string" +}, +"publisherName": { +"description": "Required. The publisher name of the guaranteed order. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"readAccessInherited": { +"description": "Whether all advertisers of read_write_partner_id have read access to the guaranteed order. Only applicable if read_write_partner_id is set. If True, overrides read_advertiser_ids.", +"type": "boolean" +}, +"readAdvertiserIds": { +"description": "The IDs of advertisers with read access to the guaranteed order. This field must not include the advertiser assigned to read_write_advertiser_id if it is set. All advertisers in this field must belong to read_write_partner_id or the same partner as read_write_advertiser_id.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"readWriteAdvertiserId": { +"description": "The advertiser with read/write access to the guaranteed order. This is also the default advertiser of the guaranteed order.", +"format": "int64", +"type": "string" +}, +"readWritePartnerId": { +"description": "The partner with read/write access to the guaranteed order.", +"format": "int64", +"type": "string" +}, +"status": { +"$ref": "GuaranteedOrderStatus", +"description": "The status settings of the guaranteed order." +}, +"updateTime": { +"description": "Output only. The timestamp when the guaranteed order was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GuaranteedOrderStatus": { +"description": "The status settings of the guaranteed order.", +"id": "GuaranteedOrderStatus", +"properties": { +"configStatus": { +"description": "Output only. The configuration status of the guaranteed order. Acceptable values are `PENDING` and `COMPLETED`. A guaranteed order must be configured (fill in the required fields, choose creatives, and select a default campaign) before it can serve. Currently the configuration action can only be performed via UI.", +"enum": [ +"GUARANTEED_ORDER_CONFIG_STATUS_UNSPECIFIED", +"PENDING", +"COMPLETED" +], +"enumDescriptions": [ +"The approval status is not specified or is unknown in this version.", +"The beginning state of a guaranteed order. The guaranteed order in this state needs to be configured before it can serve.", +"The state after the buyer configures a guaranteed order." +], +"readOnly": true, +"type": "string" +}, +"entityPauseReason": { +"description": "The user-provided reason for pausing this guaranteed order. Must be UTF-8 encoded with a maximum length of 100 bytes. Only applicable when entity_status is set to `ENTITY_STATUS_PAUSED`.", +"type": "string" +}, +"entityStatus": { +"description": "Whether or not the guaranteed order is servable. Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value is `ENTITY_STATUS_ACTIVE`.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +} +}, +"type": "object" +}, +"HouseholdIncomeAssignedTargetingOptionDetails": { +"description": "Details for assigned household income targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`.", +"id": "HouseholdIncomeAssignedTargetingOptionDetails", +"properties": { +"householdIncome": { +"description": "Required. The household income of the audience.", +"enum": [ +"HOUSEHOLD_INCOME_UNSPECIFIED", +"HOUSEHOLD_INCOME_UNKNOWN", +"HOUSEHOLD_INCOME_LOWER_50_PERCENT", +"HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT", +"HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT", +"HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT", +"HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT", +"HOUSEHOLD_INCOME_TOP_10_PERCENT" +], +"enumDescriptions": [ +"Default value when household income is not specified in this version. This enum is a placeholder for default value and does not represent a real household income option.", +"The household income of the audience is unknown.", +"The audience is in the lower 50% of U.S. household incomes.", +"The audience is in the top 41-50% of U.S. household incomes.", +"The audience is in the top 31-40% of U.S. household incomes.", +"The audience is in the top 21-30% of U.S. household incomes.", +"The audience is in the top 11-20% of U.S. household incomes.", +"The audience is in the top 10% of U.S. household incomes." +], +"type": "string" +} +}, +"type": "object" +}, +"HouseholdIncomeTargetingOptionDetails": { +"description": "Represents a targetable household income. This will be populated in the household_income_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`.", +"id": "HouseholdIncomeTargetingOptionDetails", +"properties": { +"householdIncome": { +"description": "Output only. The household income of an audience.", +"enum": [ +"HOUSEHOLD_INCOME_UNSPECIFIED", +"HOUSEHOLD_INCOME_UNKNOWN", +"HOUSEHOLD_INCOME_LOWER_50_PERCENT", +"HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT", +"HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT", +"HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT", +"HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT", +"HOUSEHOLD_INCOME_TOP_10_PERCENT" +], +"enumDescriptions": [ +"Default value when household income is not specified in this version. This enum is a placeholder for default value and does not represent a real household income option.", +"The household income of the audience is unknown.", +"The audience is in the lower 50% of U.S. household incomes.", +"The audience is in the top 41-50% of U.S. household incomes.", +"The audience is in the top 31-40% of U.S. household incomes.", +"The audience is in the top 21-30% of U.S. household incomes.", +"The audience is in the top 11-20% of U.S. household incomes.", +"The audience is in the top 10% of U.S. household incomes." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"IdFilter": { +"description": "A filtering option that filters entities by their entity IDs.", +"id": "IdFilter", +"properties": { +"adGroupAdIds": { +"description": "YouTube Ads to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"adGroupIds": { +"description": "YouTube Ad Groups to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"campaignIds": { +"description": "Campaigns to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"insertionOrderIds": { +"description": "Insertion Orders to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"lineItemIds": { +"description": "Line Items to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"mediaProductIds": { +"description": "Media Products to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ImageAsset": { +"description": "Meta data of an image asset.", +"id": "ImageAsset", +"properties": { +"fileSize": { +"description": "File size of the image asset in bytes.", +"format": "int64", +"type": "string" +}, +"fullSize": { +"$ref": "Dimensions", +"description": "Metadata for this image at its original size." +}, +"mimeType": { +"description": "MIME type of the image asset.", +"type": "string" +} +}, +"type": "object" +}, +"InStreamAd": { +"description": "Details for an in-stream ad.", +"id": "InStreamAd", +"properties": { +"commonInStreamAttribute": { +"$ref": "CommonInStreamAttribute", +"description": "Common ad attributes." +}, +"customParameters": { +"additionalProperties": { +"type": "string" +}, +"description": "The custom parameters to pass custom values to tracking URL template.", +"type": "object" +} +}, +"type": "object" +}, +"InsertionOrder": { +"description": "A single insertion order.", +"id": "InsertionOrder", +"properties": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the insertion order belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"bidStrategy": { +"$ref": "BiddingStrategy", +"description": "The bidding strategy of the insertion order. By default, fixed_bid is set." +}, +"billableOutcome": { +"description": "Immutable. The billable outcome of the insertion order. Outcome based buying is deprecated. `BILLABLE_OUTCOME_PAY_PER_IMPRESSION` is the only valid value.", +"enum": [ +"BILLABLE_OUTCOME_UNSPECIFIED", +"BILLABLE_OUTCOME_PAY_PER_IMPRESSION", +"BILLABLE_OUTCOME_PAY_PER_CLICK", +"BILLABLE_OUTCOME_PAY_PER_VIEWABLE_IMPRESSION" +], +"enumDeprecated": [ +false, +false, +true, +true +], +"enumDescriptions": [ +"Unspecified billable outcome.", +"Pay per impressions.", +"Pay per click.", +"Pay per active view." +], +"type": "string" +}, +"budget": { +"$ref": "InsertionOrderBudget", +"description": "Required. The budget allocation settings of the insertion order." +}, +"campaignId": { +"description": "Required. Immutable. The unique ID of the campaign that the insertion order belongs to.", +"format": "int64", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the insertion order. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Required. Controls whether or not the insertion order can spend its budget and bid on inventory. * For CreateInsertionOrder method, only `ENTITY_STATUS_DRAFT` is allowed. To activate an insertion order, use UpdateInsertionOrder method and update the status to `ENTITY_STATUS_ACTIVE` after creation. * An insertion order cannot be changed back to `ENTITY_STATUS_DRAFT` status from any other status. * An insertion order cannot be set to `ENTITY_STATUS_ACTIVE` if its parent campaign is not active.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"frequencyCap": { +"$ref": "FrequencyCap", +"description": "Required. The frequency capping setting of the insertion order." +}, +"insertionOrderId": { +"description": "Output only. The unique ID of the insertion order. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"insertionOrderType": { +"description": "The type of insertion order. If this field is unspecified in creation, the value defaults to `RTB`.", +"enum": [ +"INSERTION_ORDER_TYPE_UNSPECIFIED", +"RTB", +"OVER_THE_TOP" +], +"enumDescriptions": [ +"Insertion order type is not specified or is unknown.", +"Real-time bidding.", +"Over-the-top." +], +"type": "string" +}, +"integrationDetails": { +"$ref": "IntegrationDetails", +"description": "Additional integration details of the insertion order." +}, +"name": { +"description": "Output only. The resource name of the insertion order.", +"readOnly": true, +"type": "string" +}, +"pacing": { +"$ref": "Pacing", +"description": "Required. The budget spending speed setting of the insertion order. pacing_type `PACING_TYPE_ASAP` is not compatible with pacing_period `PACING_PERIOD_FLIGHT`." +}, +"partnerCosts": { +"description": "The partner costs associated with the insertion order. If absent or empty in CreateInsertionOrder method, the newly created insertion order will inherit partner costs from the partner settings.", +"items": { +"$ref": "PartnerCost" +}, +"type": "array" +}, +"performanceGoal": { +"$ref": "PerformanceGoal", +"description": "Required. Performance goal of the insertion order." +}, +"reservationType": { +"description": "Output only. The reservation type of the insertion order.", +"enum": [ +"RESERVATION_TYPE_UNSPECIFIED", +"RESERVATION_TYPE_NOT_GUARANTEED", +"RESERVATION_TYPE_PROGRAMMATIC_GUARANTEED", +"RESERVATION_TYPE_TAG_GUARANTEED", +"RESERVATION_TYPE_PETRA_VIRAL", +"RESERVATION_TYPE_INSTANT_RESERVE" +], +"enumDescriptions": [ +"Reservation type value is not specified or is unknown in this version.", +"Not created through a guaranteed inventory source.", +"Created through a programmatic guaranteed inventory source.", +"Created through a tag guaranteed inventory source.", +"Created through a Petra inventory source. Only applicable to YouTube and Partners line items.", +"Created with an instant quote. Only applicable to YouTube and partners line items." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the insertion order was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InsertionOrderBudget": { +"description": "Settings that control how insertion order budget is allocated.", +"id": "InsertionOrderBudget", +"properties": { +"automationType": { +"description": "The type of automation used to manage bid and budget for the insertion order. If this field is unspecified in creation, the value defaults to `INSERTION_ORDER_AUTOMATION_TYPE_NONE`.", +"enum": [ +"INSERTION_ORDER_AUTOMATION_TYPE_UNSPECIFIED", +"INSERTION_ORDER_AUTOMATION_TYPE_BUDGET", +"INSERTION_ORDER_AUTOMATION_TYPE_NONE", +"INSERTION_ORDER_AUTOMATION_TYPE_BID_BUDGET" +], +"enumDescriptions": [ +"Insertion order automation option is not specified or is unknown in this version.", +"Automatic budget allocation. Allow the system to automatically shift budget to owning line items to optimize performance defined by kpi. No automation on bid settings.", +"No automation of bid or budget on insertion order level. Bid and budget must be manually configured at the line item level.", +"Allow the system to automatically adjust bids and shift budget to owning line items to optimize performance defined by kpi." +], +"type": "string" +}, +"budgetSegments": { +"description": "Required. The list of budget segments. Use a budget segment to specify a specific budget for a given period of time an insertion order is running.", +"items": { +"$ref": "InsertionOrderBudgetSegment" +}, +"type": "array" +}, +"budgetUnit": { +"description": "Required. Immutable. The budget unit specifies whether the budget is currency based or impression based.", +"enum": [ +"BUDGET_UNIT_UNSPECIFIED", +"BUDGET_UNIT_CURRENCY", +"BUDGET_UNIT_IMPRESSIONS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Budgeting in currency amounts.", +"Budgeting in impression amounts." +], +"type": "string" +} +}, +"type": "object" +}, +"InsertionOrderBudgetSegment": { +"description": "Settings that control the budget of a single budget segment.", +"id": "InsertionOrderBudgetSegment", +"properties": { +"budgetAmountMicros": { +"description": "Required. The budget amount the insertion order will spend for the given date_range. The amount is in micros. Must be greater than 0. For example, 500000000 represents 500 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"campaignBudgetId": { +"description": "The budget_id of the campaign budget that this insertion order budget segment is a part of.", +"format": "int64", +"type": "string" +}, +"dateRange": { +"$ref": "DateRange", +"description": "Required. The start and end date settings of the budget segment. They are resolved relative to the parent advertiser's time zone. * When creating a new budget segment, both `start_date` and `end_date` must be in the future. * An existing budget segment with a `start_date` in the past has a mutable `end_date` but an immutable `start_date`. * `end_date` must be the `start_date` or later, both before the year 2037." +}, +"description": { +"description": "The budget segment description. It can be used to enter Purchase Order information for each budget segment and have that information printed on the invoices. Must be UTF-8 encoded.", +"type": "string" +} +}, +"type": "object" +}, +"IntegralAdScience": { +"description": "Details of Integral Ad Science settings.", +"id": "IntegralAdScience", +"properties": { +"customSegmentId": { +"description": "The custom segment ID provided by Integral Ad Science. The ID must be between `1000001` and `1999999`, inclusive.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"displayViewability": { +"description": "Display Viewability section (applicable to display line items only).", +"enum": [ +"PERFORMANCE_VIEWABILITY_UNSPECIFIED", +"PERFORMANCE_VIEWABILITY_40", +"PERFORMANCE_VIEWABILITY_50", +"PERFORMANCE_VIEWABILITY_60", +"PERFORMANCE_VIEWABILITY_70" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any display viewability options.", +"Target 40% Viewability or Higher.", +"Target 50% Viewability or Higher.", +"Target 60% Viewability or Higher.", +"Target 70% Viewability or Higher." +], +"type": "string" +}, +"excludeUnrateable": { +"description": "Brand Safety - **Unrateable**.", +"type": "boolean" +}, +"excludedAdFraudRisk": { +"description": "Ad Fraud settings.", +"enum": [ +"SUSPICIOUS_ACTIVITY_UNSPECIFIED", +"SUSPICIOUS_ACTIVITY_HR", +"SUSPICIOUS_ACTIVITY_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any ad fraud prevention options.", +"Ad Fraud - Exclude High Risk.", +"Ad Fraud - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedAdultRisk": { +"description": "Brand Safety - **Adult content**.", +"enum": [ +"ADULT_UNSPECIFIED", +"ADULT_HR", +"ADULT_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any adult options.", +"Adult - Exclude High Risk.", +"Adult - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedAlcoholRisk": { +"description": "Brand Safety - **Alcohol**.", +"enum": [ +"ALCOHOL_UNSPECIFIED", +"ALCOHOL_HR", +"ALCOHOL_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any alcohol options.", +"Alcohol - Exclude High Risk.", +"Alcohol - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedDrugsRisk": { +"description": "Brand Safety - **Drugs**.", +"enum": [ +"DRUGS_UNSPECIFIED", +"DRUGS_HR", +"DRUGS_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any drugs options.", +"Drugs - Exclude High Risk.", +"Drugs - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedGamblingRisk": { +"description": "Brand Safety - **Gambling**.", +"enum": [ +"GAMBLING_UNSPECIFIED", +"GAMBLING_HR", +"GAMBLING_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any gambling options.", +"Gambling - Exclude High Risk.", +"Gambling - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedHateSpeechRisk": { +"description": "Brand Safety - **Hate speech**.", +"enum": [ +"HATE_SPEECH_UNSPECIFIED", +"HATE_SPEECH_HR", +"HATE_SPEECH_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any hate speech options.", +"Hate Speech - Exclude High Risk.", +"Hate Speech - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedIllegalDownloadsRisk": { +"description": "Brand Safety - **Illegal downloads**.", +"enum": [ +"ILLEGAL_DOWNLOADS_UNSPECIFIED", +"ILLEGAL_DOWNLOADS_HR", +"ILLEGAL_DOWNLOADS_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any illegal downloads options.", +"Illegal Downloads - Exclude High Risk.", +"Illegal Downloads - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedOffensiveLanguageRisk": { +"description": "Brand Safety - **Offensive language**.", +"enum": [ +"OFFENSIVE_LANGUAGE_UNSPECIFIED", +"OFFENSIVE_LANGUAGE_HR", +"OFFENSIVE_LANGUAGE_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any language options.", +"Offensive Language - Exclude High Risk.", +"Offensive Language - Exclude High and Moderate Risk." +], +"type": "string" +}, +"excludedViolenceRisk": { +"description": "Brand Safety - **Violence**.", +"enum": [ +"VIOLENCE_UNSPECIFIED", +"VIOLENCE_HR", +"VIOLENCE_HMR" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any violence options.", +"Violence - Exclude High Risk.", +"Violence - Exclude High and Moderate Risk." +], +"type": "string" +}, +"traqScoreOption": { +"description": "True advertising quality (applicable to Display line items only).", +"enum": [ +"TRAQ_UNSPECIFIED", +"TRAQ_250", +"TRAQ_500", +"TRAQ_600", +"TRAQ_700", +"TRAQ_750", +"TRAQ_875", +"TRAQ_1000" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any true advertising quality scores.", +"TRAQ score 250-1000.", +"TRAQ score 500-1000.", +"TRAQ score 600-1000.", +"TRAQ score 700-1000.", +"TRAQ score 750-1000.", +"TRAQ score 875-1000.", +"TRAQ score 1000." +], +"type": "string" +}, +"videoViewability": { +"description": "Video Viewability Section (applicable to video line items only).", +"enum": [ +"VIDEO_VIEWABILITY_UNSPECIFIED", +"VIDEO_VIEWABILITY_40", +"VIDEO_VIEWABILITY_50", +"VIDEO_VIEWABILITY_60", +"VIDEO_VIEWABILITY_70" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any video viewability options.", +"40%+ in view (IAB video viewability standard).", +"50%+ in view (IAB video viewability standard).", +"60%+ in view (IAB video viewability standard).", +"70%+ in view (IAB video viewability standard)." +], +"type": "string" +} +}, +"type": "object" +}, +"IntegrationDetails": { +"description": "Integration details of an entry.", +"id": "IntegrationDetails", +"properties": { +"details": { +"description": "Additional details of the entry in string format. Must be UTF-8 encoded with a length of no more than 1000 characters.", +"type": "string" +}, +"integrationCode": { +"description": "An external identifier to be associated with the entry. The integration code will show up together with the entry in many places in the system, for example, reporting. Must be UTF-8 encoded with a length of no more than 500 characters.", +"type": "string" +} +}, +"type": "object" +}, +"InventorySource": { +"description": "An inventory source.", +"id": "InventorySource", +"properties": { +"commitment": { +"description": "Whether the inventory source has a guaranteed or non-guaranteed delivery.", +"enum": [ +"INVENTORY_SOURCE_COMMITMENT_UNSPECIFIED", +"INVENTORY_SOURCE_COMMITMENT_GUARANTEED", +"INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED" +], +"enumDescriptions": [ +"The commitment is not specified or is unknown in this version.", +"The commitment is guaranteed delivery.", +"The commitment is non-guaranteed delivery." +], +"type": "string" +}, +"creativeConfigs": { +"description": "The creative requirements of the inventory source. Not applicable for auction packages.", +"items": { +"$ref": "CreativeConfig" +}, +"type": "array" +}, +"dealId": { +"description": "The ID in the exchange space that uniquely identifies the inventory source. Must be unique across buyers within each exchange but not necessarily unique across exchanges.", +"type": "string" +}, +"deliveryMethod": { +"description": "The delivery method of the inventory source. * For non-guaranteed inventory sources, the only acceptable value is `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. * For guaranteed inventory sources, acceptable values are `INVENTORY_SOURCE_DELIVERY_METHOD_TAG` and `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`.", +"enum": [ +"INVENTORY_SOURCE_DELIVERY_METHOD_UNSPECIFIED", +"INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC", +"INVENTORY_SOURCE_DELIVERY_METHOD_TAG" +], +"enumDescriptions": [ +"The delivery method is not specified or is unknown in this version.", +"The delivery method is programmatic.", +"The delivery method is tag." +], +"type": "string" +}, +"displayName": { +"description": "The display name of the inventory source. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"exchange": { +"description": "The exchange to which the inventory source belongs.", +"enum": [ +"EXCHANGE_UNSPECIFIED", +"EXCHANGE_GOOGLE_AD_MANAGER", +"EXCHANGE_APPNEXUS", +"EXCHANGE_BRIGHTROLL", +"EXCHANGE_ADFORM", +"EXCHANGE_ADMETA", +"EXCHANGE_ADMIXER", +"EXCHANGE_ADSMOGO", +"EXCHANGE_ADSWIZZ", +"EXCHANGE_BIDSWITCH", +"EXCHANGE_BRIGHTROLL_DISPLAY", +"EXCHANGE_CADREON", +"EXCHANGE_DAILYMOTION", +"EXCHANGE_FIVE", +"EXCHANGE_FLUCT", +"EXCHANGE_FREEWHEEL", +"EXCHANGE_GENIEE", +"EXCHANGE_GUMGUM", +"EXCHANGE_IMOBILE", +"EXCHANGE_IBILLBOARD", +"EXCHANGE_IMPROVE_DIGITAL", +"EXCHANGE_INDEX", +"EXCHANGE_KARGO", +"EXCHANGE_MICROAD", +"EXCHANGE_MOPUB", +"EXCHANGE_NEND", +"EXCHANGE_ONE_BY_AOL_DISPLAY", +"EXCHANGE_ONE_BY_AOL_MOBILE", +"EXCHANGE_ONE_BY_AOL_VIDEO", +"EXCHANGE_OOYALA", +"EXCHANGE_OPENX", +"EXCHANGE_PERMODO", +"EXCHANGE_PLATFORMONE", +"EXCHANGE_PLATFORMID", +"EXCHANGE_PUBMATIC", +"EXCHANGE_PULSEPOINT", +"EXCHANGE_REVENUEMAX", +"EXCHANGE_RUBICON", +"EXCHANGE_SMARTCLIP", +"EXCHANGE_SMARTRTB", +"EXCHANGE_SMARTSTREAMTV", +"EXCHANGE_SOVRN", +"EXCHANGE_SPOTXCHANGE", +"EXCHANGE_STROER", +"EXCHANGE_TEADSTV", +"EXCHANGE_TELARIA", +"EXCHANGE_TVN", +"EXCHANGE_UNITED", +"EXCHANGE_YIELDLAB", +"EXCHANGE_YIELDMO", +"EXCHANGE_UNRULYX", +"EXCHANGE_OPEN8", +"EXCHANGE_TRITON", +"EXCHANGE_TRIPLELIFT", +"EXCHANGE_TABOOLA", +"EXCHANGE_INMOBI", +"EXCHANGE_SMAATO", +"EXCHANGE_AJA", +"EXCHANGE_SUPERSHIP", +"EXCHANGE_NEXSTAR_DIGITAL", +"EXCHANGE_WAZE", +"EXCHANGE_SOUNDCAST", +"EXCHANGE_SHARETHROUGH", +"EXCHANGE_FYBER", +"EXCHANGE_RED_FOR_PUBLISHERS", +"EXCHANGE_MEDIANET", +"EXCHANGE_TAPJOY", +"EXCHANGE_VISTAR", +"EXCHANGE_DAX", +"EXCHANGE_JCD", +"EXCHANGE_PLACE_EXCHANGE", +"EXCHANGE_APPLOVIN", +"EXCHANGE_CONNATIX", +"EXCHANGE_RESET_DIGITAL", +"EXCHANGE_HIVESTACK", +"EXCHANGE_DRAX", +"EXCHANGE_APPLOVIN_GBID", +"EXCHANGE_FYBER_GBID", +"EXCHANGE_UNITY_GBID", +"EXCHANGE_CHARTBOOST_GBID", +"EXCHANGE_ADMOST_GBID", +"EXCHANGE_TOPON_GBID", +"EXCHANGE_NETFLIX", +"EXCHANGE_CORE", +"EXCHANGE_TUBI" +], +"enumDescriptions": [ +"Exchange is not specified or is unknown in this version.", +"Google Ad Manager.", +"AppNexus.", +"BrightRoll Exchange for Video from Yahoo!.", +"Adform.", +"Admeta.", +"Admixer.", +"AdsMogo.", +"AdsWizz.", +"BidSwitch.", +"BrightRoll Exchange for Display from Yahoo!.", +"Cadreon.", +"Dailymotion.", +"Five.", +"Fluct.", +"FreeWheel SSP.", +"Geniee.", +"GumGum.", +"i-mobile.", +"iBILLBOARD.", +"Improve Digital.", +"Index Exchange.", +"Kargo.", +"MicroAd.", +"MoPub.", +"Nend.", +"ONE by AOL: Display Market Place.", +"ONE by AOL: Mobile.", +"ONE by AOL: Video.", +"Ooyala.", +"OpenX.", +"Permodo.", +"Platform One.", +"PlatformId.", +"PubMatic.", +"PulsePoint.", +"RevenueMax.", +"Rubicon.", +"SmartClip.", +"SmartRTB+.", +"SmartstreamTv.", +"Sovrn.", +"SpotXchange.", +"Str\u00f6er SSP.", +"TeadsTv.", +"Telaria.", +"TVN.", +"United.", +"Yieldlab.", +"Yieldmo.", +"UnrulyX.", +"Open8.", +"Triton.", +"TripleLift.", +"Taboola.", +"InMobi.", +"Smaato.", +"Aja.", +"Supership.", +"Nexstar Digital.", +"Waze.", +"SoundCast.", +"Sharethrough.", +"Fyber.", +"Red For Publishers.", +"Media.net.", +"Tapjoy.", +"Vistar.", +"DAX.", +"JCD.", +"Place Exchange.", +"AppLovin.", +"Connatix.", +"Reset Digital.", +"Hivestack.", +"Drax.", +"AppLovin MAX.", +"DT Fairbid.", +"Unity LevelPlay.", +"Chartboost Mediation.", +"AdMost.", +"TopOn.", +"Netflix.", +"Core.", +"Tubi." +], +"type": "string" +}, +"guaranteedOrderId": { +"description": "Immutable. The ID of the guaranteed order that this inventory source belongs to. Only applicable when commitment is `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`.", +"type": "string" +}, +"inventorySourceId": { +"description": "Output only. The unique ID of the inventory source. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"inventorySourceProductType": { +"description": "Output only. The product type of the inventory source, denoting the way through which it sells inventory.", +"enum": [ +"INVENTORY_SOURCE_PRODUCT_TYPE_UNSPECIFIED", +"PREFERRED_DEAL", +"PRIVATE_AUCTION", +"PROGRAMMATIC_GUARANTEED", +"TAG_GUARANTEED", +"YOUTUBE_RESERVE", +"INSTANT_RESERVE", +"GUARANTEED_PACKAGE", +"PROGRAMMATIC_TV", +"AUCTION_PACKAGE" +], +"enumDescriptions": [ +"The product type is not specified or is unknown in this version. Modifying inventory sources of this product type are not supported via API.", +"The inventory source sells inventory through Preferred Deal.", +"The inventory source sells inventory through Private Auction.", +"The inventory source sells inventory through Programmatic Guaranteed.", +"The inventory source sells inventory through Tag Guaranteed.", +"The inventory source sells inventory through YouTube Reserve.", +"The inventory source sells inventory through Instant Reserve. Modifying inventory sources of this product type are not supported via API.", +"The inventory source sells inventory through Guaranteed Package. Modifying inventory sources of this product type are not supported via API.", +"The inventory source sells inventory through Programmtic TV. Modifying inventory sources of this product type are not supported via API.", +"The inventory source sells inventory through Auction Package. Modifying inventory sources of this product type are not supported via API." +], +"readOnly": true, +"type": "string" +}, +"inventorySourceType": { +"description": "Denotes the type of the inventory source.", +"enum": [ +"INVENTORY_SOURCE_TYPE_UNSPECIFIED", +"INVENTORY_SOURCE_TYPE_PRIVATE", +"INVENTORY_SOURCE_TYPE_AUCTION_PACKAGE" +], +"enumDescriptions": [ +"The inventory source type is not specified or is unknown in this version.", +"Private inventory source.", +"Auction package." +], +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the inventory source.", +"readOnly": true, +"type": "string" +}, +"publisherName": { +"description": "The publisher/seller name of the inventory source.", +"type": "string" +}, +"rateDetails": { +"$ref": "RateDetails", +"description": "Required. The rate details of the inventory source." +}, +"readAdvertiserIds": { +"description": "Output only. The IDs of advertisers with read-only access to the inventory source.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"readPartnerIds": { +"description": "Output only. The IDs of partners with read-only access to the inventory source. All advertisers of partners in this field inherit read-only access to the inventory source.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"readWriteAccessors": { +"$ref": "InventorySourceAccessors", +"description": "The partner or advertisers that have read/write access to the inventory source. Output only when commitment is `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`, in which case the read/write accessors are inherited from the parent guaranteed order. Required when commitment is `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED`. If commitment is `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED` and a partner is set in this field, all advertisers under this partner will automatically have read-only access to the inventory source. These advertisers will not be included in read_advertiser_ids." +}, +"status": { +"$ref": "InventorySourceStatus", +"description": "The status settings of the inventory source." +}, +"timeRange": { +"$ref": "TimeRange", +"description": "The time range when this inventory source starts and stops serving." +}, +"updateTime": { +"description": "Output only. The timestamp when the inventory source was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceAccessors": { +"description": "The partner or advertisers with access to the inventory source.", +"id": "InventorySourceAccessors", +"properties": { +"advertisers": { +"$ref": "InventorySourceAccessorsAdvertiserAccessors", +"description": "The advertisers with access to the inventory source. All advertisers must belong to the same partner." +}, +"partner": { +"$ref": "InventorySourceAccessorsPartnerAccessor", +"description": "The partner with access to the inventory source." +} +}, +"type": "object" +}, +"InventorySourceAccessorsAdvertiserAccessors": { +"description": "The advertisers with access to the inventory source.", +"id": "InventorySourceAccessorsAdvertiserAccessors", +"properties": { +"advertiserIds": { +"description": "The IDs of the advertisers.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"InventorySourceAccessorsPartnerAccessor": { +"description": "The partner with access to the inventory source.", +"id": "InventorySourceAccessorsPartnerAccessor", +"properties": { +"partnerId": { +"description": "The ID of the partner.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceAssignedTargetingOptionDetails": { +"description": "Targeting details for inventory source. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE`.", +"id": "InventorySourceAssignedTargetingOptionDetails", +"properties": { +"inventorySourceId": { +"description": "Required. ID of the inventory source. Should refer to the inventory_source_id field of an InventorySource resource.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceDisplayCreativeConfig": { +"description": "The configuration for display creatives.", +"id": "InventorySourceDisplayCreativeConfig", +"properties": { +"creativeSize": { +"$ref": "Dimensions", +"description": "The size requirements for display creatives that can be assigned to the inventory source." +} +}, +"type": "object" +}, +"InventorySourceFilter": { +"description": "A filtering option for filtering on Inventory Source entities.", +"id": "InventorySourceFilter", +"properties": { +"inventorySourceIds": { +"description": "Inventory Sources to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Leave empty to download all Inventory Sources for the selected Advertiser or Partner.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"InventorySourceGroup": { +"description": "A collection of targetable inventory sources.", +"id": "InventorySourceGroup", +"properties": { +"displayName": { +"description": "Required. The display name of the inventory source group. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"inventorySourceGroupId": { +"description": "Output only. The unique ID of the inventory source group. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the inventory source group.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceGroupAssignedTargetingOptionDetails": { +"description": "Targeting details for inventory source group. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.", +"id": "InventorySourceGroupAssignedTargetingOptionDetails", +"properties": { +"inventorySourceGroupId": { +"description": "Required. ID of the inventory source group. Should refer to the inventory_source_group_id field of an InventorySourceGroup resource.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceStatus": { +"description": "The status related settings of the inventory source.", +"id": "InventorySourceStatus", +"properties": { +"configStatus": { +"description": "Output only. The configuration status of the inventory source. Only applicable for guaranteed inventory sources. Acceptable values are `INVENTORY_SOURCE_CONFIG_STATUS_PENDING` and `INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED`. An inventory source must be configured (fill in the required fields, choose creatives, and select a default campaign) before it can serve.", +"enum": [ +"INVENTORY_SOURCE_CONFIG_STATUS_UNSPECIFIED", +"INVENTORY_SOURCE_CONFIG_STATUS_PENDING", +"INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED" +], +"enumDescriptions": [ +"The approval status is not specified or is unknown in this version.", +"The beginning state of a guaranteed inventory source. The inventory source in this state needs to be configured.", +"The state after the buyer configures a guaranteed inventory source." +], +"readOnly": true, +"type": "string" +}, +"entityPauseReason": { +"description": "The user-provided reason for pausing this inventory source. Must not exceed 100 characters. Only applicable when entity_status is set to `ENTITY_STATUS_PAUSED`.", +"type": "string" +}, +"entityStatus": { +"description": "Whether or not the inventory source is servable. Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value is `ENTITY_STATUS_ACTIVE`.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"sellerPauseReason": { +"description": "Output only. The seller-provided reason for pausing this inventory source. Only applicable for inventory sources synced directly from the publishers and when seller_status is set to `ENTITY_STATUS_PAUSED`.", +"readOnly": true, +"type": "string" +}, +"sellerStatus": { +"description": "Output only. The status set by the seller for the inventory source. Only applicable for inventory sources synced directly from the publishers. Acceptable values are `ENTITY_STATUS_ACTIVE` and `ENTITY_STATUS_PAUSED`.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InventorySourceVideoCreativeConfig": { +"description": "The configuration for video creatives.", +"id": "InventorySourceVideoCreativeConfig", +"properties": { +"duration": { +"description": "The duration requirements for the video creatives that can be assigned to the inventory source.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Invoice": { +"description": "A single invoice.", +"id": "Invoice", +"properties": { +"budgetInvoiceGroupingId": { +"description": "The budget grouping ID for this invoice. This field will only be set if the invoice level of the corresponding billing profile was set to \"Budget invoice grouping ID\".", +"type": "string" +}, +"budgetSummaries": { +"description": "The list of summarized information for each budget associated with this invoice. This field will only be set if the invoice detail level of the corresponding billing profile was set to \"Budget level PO\".", +"items": { +"$ref": "BudgetSummary" +}, +"type": "array" +}, +"correctedInvoiceId": { +"description": "The ID of the original invoice being adjusted by this invoice, if applicable. May appear on the invoice PDF as `Reference invoice number`. If replaced_invoice_ids is set, this field will be empty.", +"type": "string" +}, +"currencyCode": { +"description": "The currency used in the invoice in ISO 4217 format.", +"type": "string" +}, +"displayName": { +"description": "The display name of the invoice.", +"type": "string" +}, +"dueDate": { +"$ref": "Date", +"description": "The date when the invoice is due." +}, +"invoiceId": { +"description": "The unique ID of the invoice.", +"type": "string" +}, +"invoiceType": { +"description": "The type of invoice document.", +"enum": [ +"INVOICE_TYPE_UNSPECIFIED", +"INVOICE_TYPE_CREDIT", +"INVOICE_TYPE_INVOICE" +], +"enumDescriptions": [ +"Not specified or is unknown in this version.", +"The invoice has a negative amount.", +"The invoice has a positive amount." +], +"type": "string" +}, +"issueDate": { +"$ref": "Date", +"description": "The date when the invoice was issued." +}, +"name": { +"description": "The resource name of the invoice.", +"type": "string" +}, +"nonBudgetMicros": { +"description": "The total amount of costs or adjustments not tied to a particular budget, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"paymentsAccountId": { +"description": "The ID of the payments account the invoice belongs to. Appears on the invoice PDF as `Billing Account Number`.", +"type": "string" +}, +"paymentsProfileId": { +"description": "The ID of the payments profile the invoice belongs to. Appears on the invoice PDF as `Billing ID`.", +"type": "string" +}, +"pdfUrl": { +"description": "The URL to download a PDF copy of the invoice. This URL is user specific and requires a valid OAuth 2.0 access token to access. The access token must be provided in an `Authorization: Bearer` HTTP header and be authorized for one of the following scopes: * `https://www.googleapis.com/auth/display-video-mediaplanning` * `https://www.googleapis.com/auth/display-video` The URL will be valid for 7 days after retrieval of this invoice object or until this invoice is retrieved again.", +"type": "string" +}, +"purchaseOrderNumber": { +"description": "Purchase order number associated with the invoice.", +"type": "string" +}, +"replacedInvoiceIds": { +"description": "The ID(s) of any originally issued invoice that is being cancelled by this invoice, if applicable. Multiple invoices may be listed if those invoices are being consolidated into a single invoice. May appear on invoice PDF as `Replaced invoice numbers`. If corrected_invoice_id is set, this field will be empty.", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceDateRange": { +"$ref": "DateRange", +"description": "The service start and end dates which are covered by this invoice." +}, +"subtotalAmountMicros": { +"description": "The pre-tax subtotal amount, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"totalAmountMicros": { +"description": "The invoice total amount, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +}, +"totalTaxAmountMicros": { +"description": "The sum of all taxes in invoice, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"KeywordAssignedTargetingOptionDetails": { +"description": "Details for assigned keyword targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_KEYWORD`.", +"id": "KeywordAssignedTargetingOptionDetails", +"properties": { +"keyword": { +"description": "Required. The keyword, for example `car insurance`. Positive keyword cannot be offensive word. Must be UTF-8 encoded with a maximum size of 255 bytes. Maximum number of characters is 80. Maximum number of words is 10.", +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +} +}, +"type": "object" +}, +"LanguageAssignedTargetingOptionDetails": { +"description": "Details for assigned language targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_LANGUAGE`.", +"id": "LanguageAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the language (e.g., \"French\").", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted. All assigned language targeting options on the same resource must have the same value for this field.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_LANGUAGE`.", +"type": "string" +} +}, +"type": "object" +}, +"LanguageTargetingOptionDetails": { +"description": "Represents a targetable language. This will be populated in the language_details field when targeting_type is `TARGETING_TYPE_LANGUAGE`.", +"id": "LanguageTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the language (e.g., \"French\").", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"LineItem": { +"description": "A single line item.", +"id": "LineItem", +"properties": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the line item belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"bidStrategy": { +"$ref": "BiddingStrategy", +"description": "Required. The bidding strategy of the line item." +}, +"budget": { +"$ref": "LineItemBudget", +"description": "Required. The budget allocation setting of the line item." +}, +"campaignId": { +"description": "Output only. The unique ID of the campaign that the line item belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"conversionCounting": { +"$ref": "ConversionCountingConfig", +"description": "The conversion tracking setting of the line item." +}, +"creativeIds": { +"description": "The IDs of the creatives associated with the line item.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The display name of the line item. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Required. Controls whether or not the line item can spend its budget and bid on inventory. * For CreateLineItem method, only `ENTITY_STATUS_DRAFT` is allowed. To activate a line item, use UpdateLineItem method and update the status to `ENTITY_STATUS_ACTIVE` after creation. * A line item cannot be changed back to `ENTITY_STATUS_DRAFT` status from any other status. * If the line item's parent insertion order is not active, the line item can't spend its budget even if its own status is `ENTITY_STATUS_ACTIVE`.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"excludeNewExchanges": { +"description": "Whether to exclude new exchanges from automatically being targeted by the line item. This field is false by default.", +"type": "boolean" +}, +"flight": { +"$ref": "LineItemFlight", +"description": "Required. The start and end time of the line item's flight." +}, +"frequencyCap": { +"$ref": "FrequencyCap", +"description": "Required. The impression frequency cap settings of the line item. The max_impressions field in this settings object must be used if assigning a limited cap." +}, +"insertionOrderId": { +"description": "Required. Immutable. The unique ID of the insertion order that the line item belongs to.", +"format": "int64", +"type": "string" +}, +"integrationDetails": { +"$ref": "IntegrationDetails", +"description": "Integration details of the line item." +}, +"lineItemId": { +"description": "Output only. The unique ID of the line item. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"lineItemType": { +"description": "Required. Immutable. The type of the line item.", +"enum": [ +"LINE_ITEM_TYPE_UNSPECIFIED", +"LINE_ITEM_TYPE_DISPLAY_DEFAULT", +"LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL", +"LINE_ITEM_TYPE_VIDEO_DEFAULT", +"LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL", +"LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY", +"LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY", +"LINE_ITEM_TYPE_AUDIO_DEFAULT", +"LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_ACTION", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_NON_SKIPPABLE", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_AUDIO", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_REACH", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_SIMPLE", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_NON_SKIPPABLE_OVER_THE_TOP", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_REACH_OVER_THE_TOP", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_SIMPLE_OVER_THE_TOP", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_TARGET_FREQUENCY", +"LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIEW", +"LINE_ITEM_TYPE_DISPLAY_OUT_OF_HOME", +"LINE_ITEM_TYPE_VIDEO_OUT_OF_HOME" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version. Line items of this type and their targeting cannot be created or updated using the API.", +"Image, HTML5, native, or rich media ads.", +"Display ads that drive installs of an app.", +"Video ads sold on a CPM basis for a variety of environments.", +"Video ads that drive installs of an app.", +"Display ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"Video ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"RTB Audio ads sold for a variety of environments.", +"Over-the-top ads present in OTT insertion orders. This type is only applicable to line items with an insertion order of insertion_order_type `OVER_THE_TOP`.", +"YouTube video ads that promote conversions. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube video ads (up to 15 seconds) that cannot be skipped. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube video ads that show a story in a particular sequence using a mix of formats. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube audio ads. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube video ads that optimize reaching more unique users at lower cost. May include bumper ads, skippable in-stream ads, or a mix of types. Line items of this type and their targeting cannot be created or updated using the API.", +"Default YouTube video ads. Line items of this type and their targeting cannot be created or updated using the API.", +"Connected TV youTube video ads (up to 15 seconds) that cannot be skipped. Line items of this type and their targeting cannot be created or updated using the API.", +"Connected TV youTube video ads that optimize reaching more unique users at lower cost. May include bumper ads, skippable in-stream ads, or a mix of types. Line items of this type and their targeting cannot be created or updated using the API.", +"Connected TV default YouTube video ads. Only include in-stream ad-format. Line items of this type and their targeting cannot be created or updated using the API.", +"The goal of this line item type is to show the YouTube ads target number of times to the same person in a certain period of time. Line items of this type and their targeting cannot be created or updated using the API.", +"YouTube video ads that aim to get more views with a variety of ad formats. Line items of this type and their targeting cannot be created or updated using the API.", +"Display ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API.", +"Video ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API." +], +"type": "string" +}, +"mobileApp": { +"$ref": "MobileApp", +"description": "The mobile app promoted by the line item. This is applicable only when line_item_type is either `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`." +}, +"name": { +"description": "Output only. The resource name of the line item.", +"readOnly": true, +"type": "string" +}, +"pacing": { +"$ref": "Pacing", +"description": "Required. The budget spending speed setting of the line item." +}, +"partnerCosts": { +"description": "The partner costs associated with the line item. If absent or empty in CreateLineItem method, the newly created line item will inherit partner costs from its parent insertion order.", +"items": { +"$ref": "PartnerCost" +}, +"type": "array" +}, +"partnerRevenueModel": { +"$ref": "PartnerRevenueModel", +"description": "Required. The partner revenue model setting of the line item." +}, +"reservationType": { +"description": "Output only. The reservation type of the line item.", +"enum": [ +"RESERVATION_TYPE_UNSPECIFIED", +"RESERVATION_TYPE_NOT_GUARANTEED", +"RESERVATION_TYPE_PROGRAMMATIC_GUARANTEED", +"RESERVATION_TYPE_TAG_GUARANTEED", +"RESERVATION_TYPE_PETRA_VIRAL", +"RESERVATION_TYPE_INSTANT_RESERVE" +], +"enumDescriptions": [ +"Reservation type value is not specified or is unknown in this version.", +"Not created through a guaranteed inventory source.", +"Created through a programmatic guaranteed inventory source.", +"Created through a tag guaranteed inventory source.", +"Created through a Petra inventory source. Only applicable to YouTube and Partners line items.", +"Created with an instant quote. Only applicable to YouTube and partners line items." +], +"readOnly": true, +"type": "string" +}, +"targetingExpansion": { +"$ref": "TargetingExpansionConfig", +"description": "The [optimized targeting](//support.google.com/displayvideo/answer/12060859) settings of the line item. This config is only applicable for display, video, or audio line items that use automated bidding and positively target eligible audience lists." +}, +"updateTime": { +"description": "Output only. The timestamp when the line item was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"warningMessages": { +"description": "Output only. The warning messages generated by the line item. These warnings do not block saving the line item, but some may block the line item from running.", +"items": { +"enum": [ +"LINE_ITEM_WARNING_MESSAGE_UNSPECIFIED", +"INVALID_FLIGHT_DATES", +"EXPIRED", +"PENDING_FLIGHT", +"ALL_PARTNER_ENABLED_EXCHANGES_NEGATIVELY_TARGETED", +"INVALID_INVENTORY_SOURCE", +"APP_INVENTORY_INVALID_SITE_TARGETING", +"APP_INVENTORY_INVALID_AUDIENCE_LISTS", +"NO_VALID_CREATIVE", +"PARENT_INSERTION_ORDER_PAUSED", +"PARENT_INSERTION_ORDER_EXPIRED", +"DEPRECATED_FIRST_PARTY_AUDIENCE_EXCLUSION" +], +"enumDescriptions": [ +"Not specified or is unknown.", +"This line item has invalid flight dates. The line item will not run.", +"This line item's end date is in the past.", +"This line item will begin running in the future.", +"All partner enabled exchanges are negatively targeted. The line item will not run.", +"No active inventory sources are being targeted. The line item will not run.", +"This line item's Apps & URLs targeting doesn't include any mobile apps. This line item's type requires you to include mobile apps in your channel, sitelist, or apps targeting. The line item will not run.", +"This line item isn't targeting any mobile users. This line item's type requires you to target a user list with mobile users. The line item will not run.", +"This line item does not contain any valid creative. The line item will not run.", +"The insertion order of this line item is paused. The line item will not run.", +"The insertion order of this line item has its end date set in the past. The line item will not run.", +"This line item uses the exclude_first_party_audience setting, which is deprecated and scheduled to sunset after **March 25, 2023**. Update your API integration to directly exclude any first-party audiences using audience targeting before **March 25, 2023** to account for the sunset of the exclude_first_party_audience field." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"youtubeAndPartnersSettings": { +"$ref": "YoutubeAndPartnersSettings", +"description": "Output only. Settings specific to YouTube and Partners line items.", +"readOnly": true +} +}, +"type": "object" +}, +"LineItemAssignedTargetingOption": { +"description": "Wrapper object associating an assigned_targeting_option resource and the line item it is assigned to.", +"id": "LineItemAssignedTargetingOption", +"properties": { +"assignedTargetingOption": { +"$ref": "AssignedTargetingOption", +"description": "The assigned targeting option resource." +}, +"lineItemId": { +"description": "The ID of the line item the assigned targeting option is assigned to.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"LineItemBudget": { +"description": "Settings that control how budget is allocated.", +"id": "LineItemBudget", +"properties": { +"budgetAllocationType": { +"description": "Required. The type of the budget allocation. `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC` is only applicable when automatic budget allocation is enabled for the parent insertion order.", +"enum": [ +"LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNSPECIFIED", +"LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC", +"LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED", +"LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Automatic budget allocation is enabled for the line item.", +"A fixed max budget amount is allocated for the line item.", +"No budget limit is applied to the line item." +], +"type": "string" +}, +"budgetUnit": { +"description": "Output only. The budget unit specifies whether the budget is currency based or impression based. This value is inherited from the parent insertion order.", +"enum": [ +"BUDGET_UNIT_UNSPECIFIED", +"BUDGET_UNIT_CURRENCY", +"BUDGET_UNIT_IMPRESSIONS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Budgeting in currency amounts.", +"Budgeting in impression amounts." +], +"readOnly": true, +"type": "string" +}, +"maxAmount": { +"description": "The maximum budget amount the line item will spend. Must be greater than 0. When budget_allocation_type is: * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC`, this field is immutable and is set by the system. * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED`, if budget_unit is: - `BUDGET_UNIT_CURRENCY`, this field represents maximum budget amount to spend, in micros of the advertiser's currency. For example, 1500000 represents 1.5 standard units of the currency. - `BUDGET_UNIT_IMPRESSIONS`, this field represents the maximum number of impressions to serve. * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED`, this field is not applicable and will be ignored by the system.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"LineItemFlight": { +"description": "Settings that control the active duration of a line item.", +"id": "LineItemFlight", +"properties": { +"dateRange": { +"$ref": "DateRange", +"description": "The flight start and end dates of the line item. They are resolved relative to the parent advertiser's time zone. * Required when flight_date_type is `LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM`. Output only otherwise. * When creating a new flight, both `start_date` and `end_date` must be in the future. * An existing flight with a `start_date` in the past has a mutable `end_date` but an immutable `start_date`. * `end_date` must be the `start_date` or later, both before the year 2037." +}, +"flightDateType": { +"description": "Required. The type of the line item's flight dates.", +"enum": [ +"LINE_ITEM_FLIGHT_DATE_TYPE_UNSPECIFIED", +"LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED", +"LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The line item's flight dates are inherited from its parent insertion order.", +"The line item uses its own custom flight dates." +], +"type": "string" +} +}, +"type": "object" +}, +"ListAdvertiserAssignedTargetingOptionsResponse": { +"description": "Response message for ListAdvertiserAssignedTargetingOptions.", +"id": "ListAdvertiserAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListAdvertiserAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdvertisersResponse": { +"id": "ListAdvertisersResponse", +"properties": { +"advertisers": { +"description": "The list of advertisers. This list will be absent if empty.", +"items": { +"$ref": "Advertiser" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListAdvertisers` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListAssignedInventorySourcesResponse": { +"description": "Response message for AssignedInventorySourceService.ListAssignedInventorySources.", +"id": "ListAssignedInventorySourcesResponse", +"properties": { +"assignedInventorySources": { +"description": "The list of assigned inventory sources. This list will be absent if empty.", +"items": { +"$ref": "AssignedInventorySource" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListAssignedInventorySources` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListAssignedLocationsResponse": { +"description": "Response message for AssignedLocationService.ListAssignedLocations.", +"id": "ListAssignedLocationsResponse", +"properties": { +"assignedLocations": { +"description": "The list of assigned locations. This list will be absent if empty.", +"items": { +"$ref": "AssignedLocation" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListAssignedLocations` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListCampaignAssignedTargetingOptionsResponse": { +"description": "Response message for ListCampaignAssignedTargetingOptions.", +"id": "ListCampaignAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListCampaignAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListCampaignsResponse": { +"id": "ListCampaignsResponse", +"properties": { +"campaigns": { +"description": "The list of campaigns. This list will be absent if empty.", +"items": { +"$ref": "Campaign" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCampaigns` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListChannelsResponse": { +"id": "ListChannelsResponse", +"properties": { +"channels": { +"description": "The list of channels. This list will be absent if empty.", +"items": { +"$ref": "Channel" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListChannels` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListCombinedAudiencesResponse": { +"id": "ListCombinedAudiencesResponse", +"properties": { +"combinedAudiences": { +"description": "The list of combined audiences. This list will be absent if empty.", +"items": { +"$ref": "CombinedAudience" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCombinedAudiences` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListCreativesResponse": { +"id": "ListCreativesResponse", +"properties": { +"creatives": { +"description": "The list of creatives. This list will be absent if empty.", +"items": { +"$ref": "Creative" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCreativesRequest` method to retrieve the next page of results. If this field is null, it means this is the last page.", +"type": "string" +} +}, +"type": "object" +}, +"ListCustomBiddingAlgorithmsResponse": { +"id": "ListCustomBiddingAlgorithmsResponse", +"properties": { +"customBiddingAlgorithms": { +"description": "The list of custom bidding algorithms. This list will be absent if empty.", +"items": { +"$ref": "CustomBiddingAlgorithm" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCustomBiddingAlgorithmsRequest` method to retrieve the next page of results. If this field is null, it means this is the last page.", +"type": "string" +} +}, +"type": "object" +}, +"ListCustomBiddingScriptsResponse": { +"id": "ListCustomBiddingScriptsResponse", +"properties": { +"customBiddingScripts": { +"description": "The list of custom bidding scripts. This list will be absent if empty.", +"items": { +"$ref": "CustomBiddingScript" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCustomBiddingScriptsRequest` method to retrieve the next page of results. If this field is null, it means this is the last page.", +"type": "string" +} +}, +"type": "object" +}, +"ListCustomListsResponse": { +"id": "ListCustomListsResponse", +"properties": { +"customLists": { +"description": "The list of custom lists. This list will be absent if empty.", +"items": { +"$ref": "CustomList" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCustomLists` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListFirstAndThirdPartyAudiencesResponse": { +"id": "ListFirstAndThirdPartyAudiencesResponse", +"properties": { +"firstAndThirdPartyAudiences": { +"description": "The list of first and third party audiences. Audience size properties will not be included. This list will be absent if empty.", +"items": { +"$ref": "FirstAndThirdPartyAudience" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListFirstAndThirdPartyAudiences` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListFloodlightActivitiesResponse": { +"id": "ListFloodlightActivitiesResponse", +"properties": { +"floodlightActivities": { +"description": "The list of Floodlight activities. This list will be absent if empty.", +"items": { +"$ref": "FloodlightActivity" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListFloodlightActivities` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListGoogleAudiencesResponse": { +"id": "ListGoogleAudiencesResponse", +"properties": { +"googleAudiences": { +"description": "The list of Google audiences. This list will be absent if empty.", +"items": { +"$ref": "GoogleAudience" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListGoogleAudiences` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListGuaranteedOrdersResponse": { +"id": "ListGuaranteedOrdersResponse", +"properties": { +"guaranteedOrders": { +"description": "The list of guaranteed orders. This list will be absent if empty.", +"items": { +"$ref": "GuaranteedOrder" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListGuaranteedOrders` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListInsertionOrderAssignedTargetingOptionsResponse": { +"id": "ListInsertionOrderAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListInsertionOrderAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListInsertionOrdersResponse": { +"id": "ListInsertionOrdersResponse", +"properties": { +"insertionOrders": { +"description": "The list of insertion orders. This list will be absent if empty.", +"items": { +"$ref": "InsertionOrder" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInsertionOrders` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListInventorySourceGroupsResponse": { +"description": "Response message for InventorySourceGroupService.ListInventorySourceGroups.", +"id": "ListInventorySourceGroupsResponse", +"properties": { +"inventorySourceGroups": { +"description": "The list of inventory source groups. This list will be absent if empty.", +"items": { +"$ref": "InventorySourceGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInventorySourceGroups` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListInventorySourcesResponse": { +"id": "ListInventorySourcesResponse", +"properties": { +"inventorySources": { +"description": "The list of inventory sources. This list will be absent if empty.", +"items": { +"$ref": "InventorySource" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInventorySources` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListInvoicesResponse": { +"id": "ListInvoicesResponse", +"properties": { +"invoices": { +"description": "The list of invoices. This list will be absent if empty.", +"items": { +"$ref": "Invoice" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInvoices` method to retrieve the next page of results. This token will be absent if there are no more invoices to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLineItemAssignedTargetingOptionsResponse": { +"description": "Response message for ListLineItemAssignedTargetingOptions.", +"id": "ListLineItemAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListLineItemAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListLineItemsResponse": { +"id": "ListLineItemsResponse", +"properties": { +"lineItems": { +"description": "The list of line items. This list will be absent if empty.", +"items": { +"$ref": "LineItem" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListLineItems` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationListsResponse": { +"id": "ListLocationListsResponse", +"properties": { +"locationLists": { +"description": "The list of location lists. This list will be absent if empty.", +"items": { +"$ref": "LocationList" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListLocationLists` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListManualTriggersResponse": { +"id": "ListManualTriggersResponse", +"properties": { +"manualTriggers": { +"description": "The list of manual triggers. This list will be absent if empty.", +"items": { +"$ref": "ManualTrigger" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListManualTriggers` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListNegativeKeywordListsResponse": { +"description": "Response message for NegativeKeywordListService.ListNegativeKeywordLists.", +"id": "ListNegativeKeywordListsResponse", +"properties": { +"negativeKeywordLists": { +"description": "The list of negative keyword lists. This list will be absent if empty.", +"items": { +"$ref": "NegativeKeywordList" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListNegativeKeywordLists` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListNegativeKeywordsResponse": { +"description": "Response message for NegativeKeywordService.ListNegativeKeywords.", +"id": "ListNegativeKeywordsResponse", +"properties": { +"negativeKeywords": { +"description": "The list of negative keywords. This list will be absent if empty.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListNegativeKeywords` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListPartnerAssignedTargetingOptionsResponse": { +"id": "ListPartnerAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListPartnerAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListPartnersResponse": { +"id": "ListPartnersResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListPartners` method to retrieve the next page of results.", +"type": "string" +}, +"partners": { +"description": "The list of partners. This list will be absent if empty.", +"items": { +"$ref": "Partner" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSitesResponse": { +"description": "Response message for SiteService.ListSites.", +"id": "ListSitesResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListSites` method to retrieve the next page of results.", +"type": "string" +}, +"sites": { +"description": "The list of sites. This list will be absent if empty.", +"items": { +"$ref": "Site" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTargetingOptionsResponse": { +"description": "Response message for ListTargetingOptions.", +"id": "ListTargetingOptionsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListTargetingOptions` method to retrieve the next page of results.", +"type": "string" +}, +"targetingOptions": { +"description": "The list of targeting options. This list will be absent if empty.", +"items": { +"$ref": "TargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUsersResponse": { +"id": "ListUsersResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListUsers` method to retrieve the next page of results. This token will be absent if there are no more results to return.", +"type": "string" +}, +"users": { +"description": "The list of users. This list will be absent if empty.", +"items": { +"$ref": "User" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListYoutubeAdGroupAdsResponse": { +"id": "ListYoutubeAdGroupAdsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListYoutubeAdGroupAds` method to retrieve the next page of results.", +"type": "string" +}, +"youtubeAdGroupAds": { +"description": "The list of ad group ads. This list will be absent if empty.", +"items": { +"$ref": "YoutubeAdGroupAd" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListYoutubeAdGroupAssignedTargetingOptionsResponse": { +"description": "Response message for ListYoutubeAdGroupAssignedTargetingOptions.", +"id": "ListYoutubeAdGroupAssignedTargetingOptionsResponse", +"properties": { +"assignedTargetingOptions": { +"description": "The list of assigned targeting options. This list will be absent if empty.", +"items": { +"$ref": "AssignedTargetingOption" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListYoutubeAdGroupAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListYoutubeAdGroupsResponse": { +"id": "ListYoutubeAdGroupsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListYoutubeAdGroups` method to retrieve the next page of results.", +"type": "string" +}, +"youtubeAdGroups": { +"description": "The list of ad groups. This list will be absent if empty.", +"items": { +"$ref": "YoutubeAdGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"LocationList": { +"description": "A list of locations used for targeting.", +"id": "LocationList", +"properties": { +"advertiserId": { +"description": "Required. Immutable. The unique ID of the advertiser the location list belongs to.", +"format": "int64", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the location list. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"locationListId": { +"description": "Output only. The unique ID of the location list. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"locationType": { +"description": "Required. Immutable. The type of location. All locations in the list will share this type.", +"enum": [ +"TARGETING_LOCATION_TYPE_UNSPECIFIED", +"TARGETING_LOCATION_TYPE_PROXIMITY", +"TARGETING_LOCATION_TYPE_REGIONAL" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown.", +"The type for proximity geo location.", +"The type for regional geo location." +], +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the location list.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"LookbackWindow": { +"description": "Specifies how many days into the past to look when determining whether to record a conversion.", +"id": "LookbackWindow", +"properties": { +"clickDays": { +"description": "Lookback window, in days, from the last time a given user clicked on one of your ads.", +"format": "int32", +"type": "integer" +}, +"impressionDays": { +"description": "Lookback window, in days, from the last time a given user viewed one of your ads.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"LookupInvoiceCurrencyResponse": { +"id": "LookupInvoiceCurrencyResponse", +"properties": { +"currencyCode": { +"description": "Currency used by the advertiser in ISO 4217 format.", +"type": "string" +} +}, +"type": "object" +}, +"ManualTrigger": { +"description": "A single manual trigger in Display & Video 360. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This resource will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", +"id": "ManualTrigger", +"properties": { +"activationDurationMinutes": { +"description": "Required. The maximum duration of each activation in minutes. Must be between 1 and 360 inclusive. After this duration, the trigger will be automatically deactivated.", +"format": "int64", +"type": "string" +}, +"advertiserId": { +"description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.", +"format": "int64", +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the manual trigger. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"latestActivationTime": { +"description": "Output only. The timestamp of the trigger's latest activation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the manual trigger.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the manual trigger. Will be set to the `INACTIVE` state upon creation.", +"enum": [ +"STATE_UNSPECIFIED", +"INACTIVE", +"ACTIVE" +], +"enumDescriptions": [ +"Default value when state is not specified or is unknown in this version.", +"The trigger is currently inactive and ready to be activated.", +"The trigger is currently active (activated)." +], +"readOnly": true, +"type": "string" +}, +"triggerId": { +"description": "Output only. The unique ID of the manual trigger.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MastheadAd": { +"description": "Details for a Masthead Ad.", +"id": "MastheadAd", +"properties": { +"autoplayVideoDuration": { +"description": "The duration of time the video will autoplay.", +"format": "google-duration", +"type": "string" +}, +"autoplayVideoStartMillisecond": { +"description": "The amount of time in milliseconds after which the video will start to play.", +"format": "int64", +"type": "string" +}, +"callToActionButtonLabel": { +"description": "The text on the call-to-action button.", +"type": "string" +}, +"callToActionFinalUrl": { +"description": "The destination URL for the call-to-action button.", +"type": "string" +}, +"callToActionTrackingUrl": { +"description": "The tracking URL for the call-to-action button.", +"type": "string" +}, +"companionYoutubeVideos": { +"description": "The videos that appear next to the Masthead Ad on desktop. Can be no more than two.", +"items": { +"$ref": "YoutubeVideoDetails" +}, +"type": "array" +}, +"description": { +"description": "The description of the ad.", +"type": "string" +}, +"headline": { +"description": "The headline of the ad.", +"type": "string" +}, +"showChannelArt": { +"description": "Whether to show a background or banner that appears at the top of a YouTube page.", +"type": "boolean" +}, +"video": { +"$ref": "YoutubeVideoDetails", +"description": "The YouTube video used by the ad." +}, +"videoAspectRatio": { +"description": "The aspect ratio of the autoplaying YouTube video on the Masthead.", +"enum": [ +"VIDEO_ASPECT_RATIO_UNSPECIFIED", +"VIDEO_ASPECT_RATIO_WIDESCREEN", +"VIDEO_ASPECT_RATIO_FIXED_16_9" +], +"enumDescriptions": [ +"Not specified or unknown.", +"The video is stretched and the top and bottom are cropped.", +"The video uses a fixed 16:9 aspect ratio." +], +"type": "string" +} +}, +"type": "object" +}, +"MaximizeSpendBidStrategy": { +"description": "A strategy that automatically adjusts the bid to optimize a specified performance goal while spending the full budget.", +"id": "MaximizeSpendBidStrategy", +"properties": { +"customBiddingAlgorithmId": { +"description": "The ID of the Custom Bidding Algorithm used by this strategy. Only applicable when performance_goal_type is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.", +"format": "int64", +"type": "string" +}, +"maxAverageCpmBidAmountMicros": { +"description": "The maximum average CPM that may be bid, in micros of the advertiser's currency. Must be greater than or equal to a billable unit of the given currency. For example, 1500000 represents 1.5 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"performanceGoalType": { +"description": "Required. The type of the performance goal that the bidding strategy tries to minimize while spending the full budget. `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` is not supported for this strategy.", +"enum": [ +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Cost per action.", +"Cost per click.", +"Viewable CPM.", +"Custom bidding algorithm.", +"Completed inview and audible views.", +"Inview time over 10 secs views.", +"Viewable impressions." +], +"type": "string" +}, +"raiseBidForDeals": { +"description": "Whether the strategy takes deal floor prices into account.", +"type": "boolean" +} +}, +"type": "object" +}, +"MeasurementConfig": { +"description": "Measurement settings of a partner.", +"id": "MeasurementConfig", +"properties": { +"dv360ToCmCostReportingEnabled": { +"description": "Whether or not to report DV360 cost to CM360.", +"type": "boolean" +}, +"dv360ToCmDataSharingEnabled": { +"description": "Whether or not to include DV360 data in CM360 data transfer reports.", +"type": "boolean" +} +}, +"type": "object" +}, +"MobileApp": { +"description": "A mobile app promoted by a mobile app install line item.", +"id": "MobileApp", +"properties": { +"appId": { +"description": "Required. The ID of the app provided by the platform store. Android apps are identified by the bundle ID used by Android's Play store, such as `com.google.android.gm`. iOS apps are identified by a nine-digit app ID used by Apple's App store, such as `422689480`.", +"type": "string" +}, +"displayName": { +"description": "Output only. The app name.", +"readOnly": true, +"type": "string" +}, +"platform": { +"description": "Output only. The app platform.", +"enum": [ +"PLATFORM_UNSPECIFIED", +"IOS", +"ANDROID" +], +"enumDescriptions": [ +"Platform is not specified.", +"iOS platform.", +"Android platform." +], +"readOnly": true, +"type": "string" +}, +"publisher": { +"description": "Output only. The app publisher.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MobileDeviceIdList": { +"description": "Wrapper message for a list of mobile device IDs defining Customer Match audience members.", +"id": "MobileDeviceIdList", +"properties": { +"consent": { +"$ref": "Consent", +"description": "Input only. The consent setting for the users in mobile_device_ids. Leaving this field unset indicates that consent is not specified. If ad_user_data or ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request will return an error." +}, +"mobileDeviceIds": { +"description": "A list of mobile device IDs defining Customer Match audience members. The size of mobile_device_ids mustn't be greater than 500,000.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Money": { +"description": "Represents an amount of money with its currency type.", +"id": "Money", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"NativeContentPositionAssignedTargetingOptionDetails": { +"description": "Details for native content position assigned targeting option. This will be populated in the native_content_position_details field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. Explicitly targeting all options is not supported. Remove all native content position targeting options to achieve this effect.", +"id": "NativeContentPositionAssignedTargetingOptionDetails", +"properties": { +"contentPosition": { +"description": "Required. The content position.", +"enum": [ +"NATIVE_CONTENT_POSITION_UNSPECIFIED", +"NATIVE_CONTENT_POSITION_UNKNOWN", +"NATIVE_CONTENT_POSITION_IN_ARTICLE", +"NATIVE_CONTENT_POSITION_IN_FEED", +"NATIVE_CONTENT_POSITION_PERIPHERAL", +"NATIVE_CONTENT_POSITION_RECOMMENDATION" +], +"enumDescriptions": [ +"Native content position is not specified in this version. This enum is a place holder for a default value and does not represent a real native content position.", +"The native content position is unknown.", +"Native content position is in-article, i.e., ads appear between the paragraphs of pages.", +"Native content position is in-feed, i.e., ads appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", +"Native content position is peripheral, i.e., ads appear outside of core content on pages, such as the right- or left-hand side of the page.", +"Native content position is recommendation, i.e., ads appear in sections for recommended content." +], +"type": "string" +} +}, +"type": "object" +}, +"NativeContentPositionTargetingOptionDetails": { +"description": "Represents a targetable native content position. This will be populated in the native_content_position_details field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`.", +"id": "NativeContentPositionTargetingOptionDetails", +"properties": { +"contentPosition": { +"description": "Output only. The content position.", +"enum": [ +"NATIVE_CONTENT_POSITION_UNSPECIFIED", +"NATIVE_CONTENT_POSITION_UNKNOWN", +"NATIVE_CONTENT_POSITION_IN_ARTICLE", +"NATIVE_CONTENT_POSITION_IN_FEED", +"NATIVE_CONTENT_POSITION_PERIPHERAL", +"NATIVE_CONTENT_POSITION_RECOMMENDATION" +], +"enumDescriptions": [ +"Native content position is not specified in this version. This enum is a place holder for a default value and does not represent a real native content position.", +"The native content position is unknown.", +"Native content position is in-article, i.e., ads appear between the paragraphs of pages.", +"Native content position is in-feed, i.e., ads appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", +"Native content position is peripheral, i.e., ads appear outside of core content on pages, such as the right- or left-hand side of the page.", +"Native content position is recommendation, i.e., ads appear in sections for recommended content." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NegativeKeyword": { +"description": "A negatively targeted keyword that belongs to a negative keyword list.", +"id": "NegativeKeyword", +"properties": { +"keywordValue": { +"description": "Required. Immutable. The negatively targeted keyword, for example `car insurance`. Must be UTF-8 encoded with a maximum size of 255 bytes. Maximum number of characters is 80. Maximum number of words is 10. Valid characters are restricted to ASCII characters only. The only URL-escaping permitted is for representing whitespace between words. Leading or trailing whitespace is ignored.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the negative keyword.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NegativeKeywordList": { +"description": "A list of negative keywords used for targeting.", +"id": "NegativeKeywordList", +"properties": { +"advertiserId": { +"description": "Output only. The unique ID of the advertiser the negative keyword list belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the negative keyword list. Must be UTF-8 encoded with a maximum size of 255 bytes.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the negative keyword list.", +"readOnly": true, +"type": "string" +}, +"negativeKeywordListId": { +"description": "Output only. The unique ID of the negative keyword list. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"targetedLineItemCount": { +"description": "Output only. Number of line items that are directly targeting this negative keyword list.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NegativeKeywordListAssignedTargetingOptionDetails": { +"description": "Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`.", +"id": "NegativeKeywordListAssignedTargetingOptionDetails", +"properties": { +"negativeKeywordListId": { +"description": "Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"NonSkippableAd": { +"description": "Details for a non-skippable ad.", +"id": "NonSkippableAd", +"properties": { +"commonInStreamAttribute": { +"$ref": "CommonInStreamAttribute", +"description": "Common ad attributes." +}, +"customParameters": { +"additionalProperties": { +"type": "string" +}, +"description": "The custom parameters to pass custom values to tracking URL template.", +"type": "object" +} +}, +"type": "object" +}, +"ObaIcon": { +"description": "OBA Icon for a Creative", +"id": "ObaIcon", +"properties": { +"clickTrackingUrl": { +"description": "Required. The click tracking URL of the OBA icon. Only URLs of the following domains are allowed: * https://info.evidon.com * https://l.betrad.com", +"type": "string" +}, +"dimensions": { +"$ref": "Dimensions", +"description": "The dimensions of the OBA icon." +}, +"landingPageUrl": { +"description": "Required. The landing page URL of the OBA icon. Only URLs of the following domains are allowed: * https://info.evidon.com * https://l.betrad.com", +"type": "string" +}, +"position": { +"description": "The position of the OBA icon on the creative.", +"enum": [ +"OBA_ICON_POSITION_UNSPECIFIED", +"OBA_ICON_POSITION_UPPER_RIGHT", +"OBA_ICON_POSITION_UPPER_LEFT", +"OBA_ICON_POSITION_LOWER_RIGHT", +"OBA_ICON_POSITION_LOWER_LEFT" +], +"enumDescriptions": [ +"The OBA icon position is not specified.", +"At the upper right side of the creative.", +"At the upper left side of the creative.", +"At the lower right side of the creative.", +"At the lower left side of the creative." +], +"type": "string" +}, +"program": { +"description": "The program of the OBA icon. For example: \u201cAdChoices\u201d.", +"type": "string" +}, +"resourceMimeType": { +"description": "The MIME type of the OBA icon resource.", +"type": "string" +}, +"resourceUrl": { +"description": "The URL of the OBA icon resource.", +"type": "string" +}, +"viewTrackingUrl": { +"description": "Required. The view tracking URL of the OBA icon. Only URLs of the following domains are allowed: * https://info.evidon.com * https://l.betrad.com", +"type": "string" +} +}, +"type": "object" +}, +"OmidAssignedTargetingOptionDetails": { +"description": "Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`.", +"id": "OmidAssignedTargetingOptionDetails", +"properties": { +"omid": { +"description": "Required. The type of Open Measurement enabled inventory.", +"enum": [ +"OMID_UNSPECIFIED", +"OMID_FOR_MOBILE_DISPLAY_ADS" +], +"enumDescriptions": [ +"Default value when omid targeting is not specified in this version.", +"Open Measurement enabled mobile display inventory." +], +"type": "string" +} +}, +"type": "object" +}, +"OmidTargetingOptionDetails": { +"description": "Represents a targetable Open Measurement enabled inventory type. This will be populated in the omid_details field when targeting_type is `TARGETING_TYPE_OMID`.", +"id": "OmidTargetingOptionDetails", +"properties": { +"omid": { +"description": "Output only. The type of Open Measurement enabled inventory.", +"enum": [ +"OMID_UNSPECIFIED", +"OMID_FOR_MOBILE_DISPLAY_ADS" +], +"enumDescriptions": [ +"Default value when omid targeting is not specified in this version.", +"Open Measurement enabled mobile display inventory." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OnScreenPositionAssignedTargetingOptionDetails": { +"description": "On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", +"id": "OnScreenPositionAssignedTargetingOptionDetails", +"properties": { +"adType": { +"description": "Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.", +"enum": [ +"AD_TYPE_UNSPECIFIED", +"AD_TYPE_DISPLAY", +"AD_TYPE_VIDEO", +"AD_TYPE_AUDIO" +], +"enumDescriptions": [ +"Ad type is not specified or is unknown in this version.", +"Display creatives, e.g. image and HTML5.", +"Video creatives, e.g. video ads that play during streaming content in video players.", +"Audio creatives, e.g. audio ads that play during audio content." +], +"readOnly": true, +"type": "string" +}, +"onScreenPosition": { +"description": "Output only. The on screen position.", +"enum": [ +"ON_SCREEN_POSITION_UNSPECIFIED", +"ON_SCREEN_POSITION_UNKNOWN", +"ON_SCREEN_POSITION_ABOVE_THE_FOLD", +"ON_SCREEN_POSITION_BELOW_THE_FOLD" +], +"enumDescriptions": [ +"On screen position is not specified in this version. This enum is a place holder for a default value and does not represent a real on screen position.", +"The ad position is unknown on the screen.", +"The ad is located above the fold.", +"The ad is located below the fold." +], +"readOnly": true, +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", +"type": "string" +} +}, +"type": "object" +}, +"OnScreenPositionTargetingOptionDetails": { +"description": "Represents a targetable on screen position, which could be used by display and video ads. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", +"id": "OnScreenPositionTargetingOptionDetails", +"properties": { +"onScreenPosition": { +"description": "Output only. The on screen position.", +"enum": [ +"ON_SCREEN_POSITION_UNSPECIFIED", +"ON_SCREEN_POSITION_UNKNOWN", +"ON_SCREEN_POSITION_ABOVE_THE_FOLD", +"ON_SCREEN_POSITION_BELOW_THE_FOLD" +], +"enumDescriptions": [ +"On screen position is not specified in this version. This enum is a place holder for a default value and does not represent a real on screen position.", +"The ad position is unknown on the screen.", +"The ad is located above the fold.", +"The ad is located below the fold." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OperatingSystemAssignedTargetingOptionDetails": { +"description": "Assigned operating system targeting option details. This will be populated in the operating_system_details field when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.", +"id": "OperatingSystemAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the operating system.", +"readOnly": true, +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"targetingOptionId": { +"description": "Required. The targeting option ID populated in targeting_option_id field when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.", +"type": "string" +} +}, +"type": "object" +}, +"OperatingSystemTargetingOptionDetails": { +"description": "Represents a targetable operating system. This will be populated in the operating_system_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.", +"id": "OperatingSystemTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the operating system.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"Pacing": { +"description": "Settings that control the rate at which a budget is spent.", +"id": "Pacing", +"properties": { +"dailyMaxImpressions": { +"description": "Maximum number of impressions to serve every day. Applicable when the budget is impression based. Must be greater than 0.", +"format": "int64", +"type": "string" +}, +"dailyMaxMicros": { +"description": "Maximum currency amount to spend every day in micros of advertiser's currency. Applicable when the budget is currency based. Must be greater than 0. For example, for 1.5 standard unit of the currency, set this field to 1500000. The value assigned will be rounded to whole billable units for the relevant currency by the following rules: any positive value less than a single billable unit will be rounded up to one billable unit and any value larger than a single billable unit will be rounded down to the nearest billable value. For example, if the currency's billable unit is 0.01, and this field is set to 10257770, it will round down to 10250000, a value of 10.25. If set to 505, it will round up to 10000, a value of 0.01.", +"format": "int64", +"type": "string" +}, +"pacingPeriod": { +"description": "Required. The time period in which the pacing budget will be spent. When automatic budget allocation is enabled at the insertion order via automationType, this field is output only and defaults to `PACING_PERIOD_FLIGHT`.", +"enum": [ +"PACING_PERIOD_UNSPECIFIED", +"PACING_PERIOD_DAILY", +"PACING_PERIOD_FLIGHT" +], +"enumDescriptions": [ +"Period value is not specified or is unknown in this version.", +"The pacing setting will be applied on daily basis.", +"The pacing setting will be applied to the whole flight duration." +], +"type": "string" +}, +"pacingType": { +"description": "Required. The type of pacing that defines how the budget amount will be spent across the pacing_period. `PACING_TYPE_ASAP` is not compatible with pacing_period `PACING_PERIOD_FLIGHT` for insertion orders.", +"enum": [ +"PACING_TYPE_UNSPECIFIED", +"PACING_TYPE_AHEAD", +"PACING_TYPE_ASAP", +"PACING_TYPE_EVEN" +], +"enumDescriptions": [ +"Pacing mode value is not specified or is unknown in this version.", +"Only applicable to `PACING_PERIOD_FLIGHT` pacing period. Ahead pacing attempts to spend faster than evenly, to make sure the entire budget is spent by the end of the flight.", +"Spend all of pacing budget amount as quick as possible.", +"Spend a consistent budget amount every period of time." +], +"type": "string" +} +}, +"type": "object" +}, +"ParentEntityFilter": { +"description": "A filtering option that filters on selected file types belonging to a chosen set of filter entities.", +"id": "ParentEntityFilter", +"properties": { +"fileType": { +"description": "Required. File types that will be returned.", +"items": { +"enum": [ +"FILE_TYPE_UNSPECIFIED", +"FILE_TYPE_CAMPAIGN", +"FILE_TYPE_MEDIA_PRODUCT", +"FILE_TYPE_INSERTION_ORDER", +"FILE_TYPE_LINE_ITEM", +"FILE_TYPE_AD_GROUP", +"FILE_TYPE_AD" +], +"enumDescriptions": [ +"Default value when type is unspecified or is unknown in this version.", +"Campaign.", +"Media Product.", +"Insertion Order.", +"Line Item.", +"YouTube Ad Group.", +"YouTube Ad." +], +"type": "string" +}, +"type": "array" +}, +"filterIds": { +"description": "The IDs of the specified filter type. This is used to filter entities to fetch. If filter type is not `FILTER_TYPE_NONE`, at least one ID must be specified.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"filterType": { +"description": "Required. Filter type used to filter fetched entities.", +"enum": [ +"FILTER_TYPE_UNSPECIFIED", +"FILTER_TYPE_NONE", +"FILTER_TYPE_ADVERTISER_ID", +"FILTER_TYPE_CAMPAIGN_ID", +"FILTER_TYPE_MEDIA_PRODUCT_ID", +"FILTER_TYPE_INSERTION_ORDER_ID", +"FILTER_TYPE_LINE_ITEM_ID" +], +"enumDescriptions": [ +"Default value when type is unspecified or is unknown in this version.", +"If selected, no filter will be applied to the download. Can only be used if an Advertiser is specified in CreateSdfDownloadTaskRequest.", +"Advertiser ID. If selected, all filter IDs must be Advertiser IDs that belong to the Partner specified in CreateSdfDownloadTaskRequest.", +"Campaign ID. If selected, all filter IDs must be Campaign IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", +"Media Product ID. If selected, all filter IDs must be Media Product IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can only be used for downloading `FILE_TYPE_MEDIA_PRODUCT`.", +"Insertion Order ID. If selected, all filter IDs must be Insertion Order IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can only be used for downloading `FILE_TYPE_INSERTION_ORDER`, `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_LINE_ITEM_QA`, `FILE_TYPE_AD_GROUP`, `FILE_TYPE_AD_GROUP_QA`, and `FILE_TYPE_AD`.", +"Line Item ID. If selected, all filter IDs must be Line Item IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can only be used for downloading `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_LINE_ITEM_QA`,`FILE_TYPE_AD_GROUP`, `FILE_TYPE_AD_GROUP_QA`, and `FILE_TYPE_AD`." +], +"type": "string" +} +}, +"type": "object" +}, +"ParentalStatusAssignedTargetingOptionDetails": { +"description": "Details for assigned parental status targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`.", +"id": "ParentalStatusAssignedTargetingOptionDetails", +"properties": { +"parentalStatus": { +"description": "Required. The parental status of the audience.", +"enum": [ +"PARENTAL_STATUS_UNSPECIFIED", +"PARENTAL_STATUS_PARENT", +"PARENTAL_STATUS_NOT_A_PARENT", +"PARENTAL_STATUS_UNKNOWN" +], +"enumDescriptions": [ +"Default value when parental status is not specified in this version. This enum is a place holder for default value and does not represent a real parental status option.", +"The audience is a parent.", +"The audience is not a parent.", +"The parental status of the audience is unknown." +], +"type": "string" +} +}, +"type": "object" +}, +"ParentalStatusTargetingOptionDetails": { +"description": "Represents a targetable parental status. This will be populated in the parental_status_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`.", +"id": "ParentalStatusTargetingOptionDetails", +"properties": { +"parentalStatus": { +"description": "Output only. The parental status of an audience.", +"enum": [ +"PARENTAL_STATUS_UNSPECIFIED", +"PARENTAL_STATUS_PARENT", +"PARENTAL_STATUS_NOT_A_PARENT", +"PARENTAL_STATUS_UNKNOWN" +], +"enumDescriptions": [ +"Default value when parental status is not specified in this version. This enum is a place holder for default value and does not represent a real parental status option.", +"The audience is a parent.", +"The audience is not a parent.", +"The parental status of the audience is unknown." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Partner": { +"description": "A single partner in Display & Video 360 (DV360).", +"id": "Partner", +"properties": { +"adServerConfig": { +"$ref": "PartnerAdServerConfig", +"description": "Ad server related settings of the partner." +}, +"dataAccessConfig": { +"$ref": "PartnerDataAccessConfig", +"description": "Settings that control how partner data may be accessed." +}, +"displayName": { +"description": "The display name of the partner. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Output only. The status of the partner.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"readOnly": true, +"type": "string" +}, +"exchangeConfig": { +"$ref": "ExchangeConfig", +"description": "Settings that control which exchanges are enabled for the partner." +}, +"generalConfig": { +"$ref": "PartnerGeneralConfig", +"description": "General settings of the partner." +}, +"name": { +"description": "Output only. The resource name of the partner.", +"readOnly": true, +"type": "string" +}, +"partnerId": { +"description": "Output only. The unique ID of the partner. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the partner was last updated. Assigned by the system.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PartnerAdServerConfig": { +"description": "Ad server related settings of a partner.", +"id": "PartnerAdServerConfig", +"properties": { +"measurementConfig": { +"$ref": "MeasurementConfig", +"description": "Measurement settings of a partner." +} +}, +"type": "object" +}, +"PartnerCost": { +"description": "Settings that control a partner cost. A partner cost is any type of expense involved in running a campaign, other than the costs of purchasing impressions (which is called the media cost) and using third-party audience segment data (data fee). Some examples of partner costs include the fees for using DV360, a third-party ad server, or a third-party ad serving verification service.", +"id": "PartnerCost", +"properties": { +"costType": { +"description": "Required. The type of the partner cost.", +"enum": [ +"PARTNER_COST_TYPE_UNSPECIFIED", +"PARTNER_COST_TYPE_ADLOOX", +"PARTNER_COST_TYPE_ADLOOX_PREBID", +"PARTNER_COST_TYPE_ADSAFE", +"PARTNER_COST_TYPE_ADXPOSE", +"PARTNER_COST_TYPE_AGGREGATE_KNOWLEDGE", +"PARTNER_COST_TYPE_AGENCY_TRADING_DESK", +"PARTNER_COST_TYPE_DV360_FEE", +"PARTNER_COST_TYPE_COMSCORE_VCE", +"PARTNER_COST_TYPE_DATA_MANAGEMENT_PLATFORM", +"PARTNER_COST_TYPE_DEFAULT", +"PARTNER_COST_TYPE_DOUBLE_VERIFY", +"PARTNER_COST_TYPE_DOUBLE_VERIFY_PREBID", +"PARTNER_COST_TYPE_EVIDON", +"PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO", +"PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_PREBID", +"PARTNER_COST_TYPE_MEDIA_COST_DATA", +"PARTNER_COST_TYPE_MOAT_VIDEO", +"PARTNER_COST_TYPE_NIELSEN_DAR", +"PARTNER_COST_TYPE_SHOP_LOCAL", +"PARTNER_COST_TYPE_TERACENT", +"PARTNER_COST_TYPE_THIRD_PARTY_AD_SERVER", +"PARTNER_COST_TYPE_TRUST_METRICS", +"PARTNER_COST_TYPE_VIZU", +"PARTNER_COST_TYPE_ADLINGO_FEE", +"PARTNER_COST_TYPE_CUSTOM_FEE_1", +"PARTNER_COST_TYPE_CUSTOM_FEE_2", +"PARTNER_COST_TYPE_CUSTOM_FEE_3", +"PARTNER_COST_TYPE_CUSTOM_FEE_4", +"PARTNER_COST_TYPE_CUSTOM_FEE_5", +"PARTNER_COST_TYPE_SCIBIDS_FEE" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The cost is charged for using Adloox. Billed by the partner.", +"The cost is charged for using Adloox Pre-Bid. Billed through DV360.", +"The cost is charged for using AdSafe. Billed by the partner.", +"The cost is charged for using AdExpose. Billed by the partner.", +"The cost is charged for using Aggregate Knowledge. Billed by the partner.", +"The cost is charged for using an Agency Trading Desk. Billed by the partner.", +"The cost is charged for using DV360. Billed through DV360.", +"The cost is charged for using comScore vCE. Billed through DV360.", +"The cost is charged for using a Data Management Platform. Billed by the partner.", +"The default cost type. Billed by the partner.", +"The cost is charged for using DoubleVerify. Billed by the partner.", +"The cost is charged for using DoubleVerify Pre-Bid. Billed through DV360.", +"The cost is charged for using Evidon. Billed by the partner.", +"The cost is charged for using Integral Ad Science Video. Billed by the partner.", +"The cost is charged for using Integral Ad Science Pre-Bid. Billed through DV360.", +"The cost is charged for using media cost data. Billed by the partner.", +"The cost is charged for using MOAT Video. Billed by the partner.", +"The cost is charged for using Nielsen Digital Ad Ratings. Billed through DV360.", +"The cost is charged for using ShopLocal. Billed by the partner.", +"The cost is charged for using Teracent. Billed by the partner.", +"The cost is charged for using a third-party ad server. Billed by the partner.", +"The cost is charged for using TrustMetrics. Billed by the partner.", +"The cost is charged for using Vizu. Billed by the partner.", +"The cost is charged for using AdLingo. Billed through DV360.", +"The cost is charged as custom fee 1. Billed by the partner.", +"The cost is charged as custom fee 2. Billed by the partner.", +"The cost is charged as custom fee 3. Billed by the partner.", +"The cost is charged as custom fee 4. Billed by the partner.", +"The cost is charged as custom fee 5. Billed by the partner.", +"The cost is charged for using Scibids. Billed through DV360. This type is currently only available to certain customers. Other customers attempting to use this type will receive an error." +], +"type": "string" +}, +"feeAmount": { +"description": "The CPM fee amount in micros of advertiser's currency. Applicable when the fee_type is `PARTNER_FEE_TYPE_CPM_FEE`. Must be greater than or equal to 0. For example, for 1.5 standard unit of the advertiser's currency, set this field to 1500000.", +"format": "int64", +"type": "string" +}, +"feePercentageMillis": { +"description": "The media fee percentage in millis (1/1000 of a percent). Applicable when the fee_type is `PARTNER_FEE_TYPE_MEDIA_FEE`. Must be greater than or equal to 0. For example: 100 represents 0.1%.", +"format": "int64", +"type": "string" +}, +"feeType": { +"description": "Required. The fee type for this partner cost.", +"enum": [ +"PARTNER_COST_FEE_TYPE_UNSPECIFIED", +"PARTNER_COST_FEE_TYPE_CPM_FEE", +"PARTNER_COST_FEE_TYPE_MEDIA_FEE" +], +"enumDescriptions": [ +"Value is not specified or is unknown in this version.", +"The partner cost is a fixed CPM fee. Not applicable when the partner cost cost_type is one of: * `PARTNER_COST_TYPE_MEDIA_COST_DATA` * `PARTNER_COST_TYPE_DV360_FEE`.", +"The partner cost is a percentage surcharge based on the media cost. Not applicable when the partner cost_type is one of: * `PARTNER_COST_TYPE_SHOP_LOCAL` * `PARTNER_COST_TYPE_TRUST_METRICS` * `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO` * `PARTNER_COST_TYPE_MOAT_VIDEO`." +], +"type": "string" +}, +"invoiceType": { +"description": "The invoice type for this partner cost. * Required when cost_type is one of: - `PARTNER_COST_TYPE_ADLOOX` - `PARTNER_COST_TYPE_DOUBLE_VERIFY` - `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE`. * Output only for other types.", +"enum": [ +"PARTNER_COST_INVOICE_TYPE_UNSPECIFIED", +"PARTNER_COST_INVOICE_TYPE_DV360", +"PARTNER_COST_INVOICE_TYPE_PARTNER" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Partner cost is billed through DV360.", +"Partner cost is billed by the partner." +], +"type": "string" +} +}, +"type": "object" +}, +"PartnerDataAccessConfig": { +"description": "Settings that control how partner related data may be accessed.", +"id": "PartnerDataAccessConfig", +"properties": { +"sdfConfig": { +"$ref": "SdfConfig", +"description": "Structured Data Files (SDF) settings for the partner. The SDF configuration for the partner." +} +}, +"type": "object" +}, +"PartnerGeneralConfig": { +"description": "General settings of a partner.", +"id": "PartnerGeneralConfig", +"properties": { +"currencyCode": { +"description": "Immutable. Partner's currency in ISO 4217 format.", +"type": "string" +}, +"timeZone": { +"description": "Immutable. The standard TZ database name of the partner's time zone. For example, `America/New_York`. See more at: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones", +"type": "string" +} +}, +"type": "object" +}, +"PartnerRevenueModel": { +"description": "Settings that control how partner revenue is calculated.", +"id": "PartnerRevenueModel", +"properties": { +"markupAmount": { +"description": "Required. The markup amount of the partner revenue model. Must be greater than or equal to 0. * When the markup_type is set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`, this field represents the CPM markup in micros of advertiser's currency. For example, 1500000 represents 1.5 standard units of the currency. * When the markup_type is set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP`, this field represents the media cost percent markup in millis. For example, 100 represents 0.1% (decimal 0.001). * When the markup_type is set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP`, this field represents the total media cost percent markup in millis. For example, 100 represents 0.1% (decimal 0.001).", +"format": "int64", +"type": "string" +}, +"markupType": { +"description": "Required. The markup type of the partner revenue model.", +"enum": [ +"PARTNER_REVENUE_MODEL_MARKUP_TYPE_UNSPECIFIED", +"PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM", +"PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP", +"PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Calculate the partner revenue based on a fixed CPM.", +"Calculate the partner revenue based on a percentage surcharge of its media cost.", +"Calculate the partner revenue based on a percentage surcharge of its total media cost, which includes all partner costs and data costs." +], +"type": "string" +} +}, +"type": "object" +}, +"PerformanceGoal": { +"description": "Settings that control the performance goal of a campaign.", +"id": "PerformanceGoal", +"properties": { +"performanceGoalAmountMicros": { +"description": "The goal amount, in micros of the advertiser's currency. Applicable when performance_goal_type is one of: * `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` * `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` * `PERFORMANCE_GOAL_TYPE_VCPM` For example 1500000 represents 1.5 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"performanceGoalPercentageMicros": { +"description": "The decimal representation of the goal percentage in micros. Applicable when performance_goal_type is one of: * `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` * `PERFORMANCE_GOAL_TYPE_CLICK_CVR` * `PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR` * `PERFORMANCE_GOAL_TYPE_VTR` * `PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE` * `PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE` For example, 70000 represents 7% (decimal 0.07).", +"format": "int64", +"type": "string" +}, +"performanceGoalString": { +"description": "A key performance indicator (KPI) string, which can be empty. Must be UTF-8 encoded with a length of no more than 100 characters. Applicable when performance_goal_type is set to `PERFORMANCE_GOAL_TYPE_OTHER`.", +"type": "string" +}, +"performanceGoalType": { +"description": "Required. The type of the performance goal.", +"enum": [ +"PERFORMANCE_GOAL_TYPE_UNSPECIFIED", +"PERFORMANCE_GOAL_TYPE_CPM", +"PERFORMANCE_GOAL_TYPE_CPC", +"PERFORMANCE_GOAL_TYPE_CPA", +"PERFORMANCE_GOAL_TYPE_CTR", +"PERFORMANCE_GOAL_TYPE_VIEWABILITY", +"PERFORMANCE_GOAL_TYPE_CPIAVC", +"PERFORMANCE_GOAL_TYPE_CPE", +"PERFORMANCE_GOAL_TYPE_CPV", +"PERFORMANCE_GOAL_TYPE_CLICK_CVR", +"PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR", +"PERFORMANCE_GOAL_TYPE_VCPM", +"PERFORMANCE_GOAL_TYPE_VTR", +"PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE", +"PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE", +"PERFORMANCE_GOAL_TYPE_OTHER" +], +"enumDescriptions": [ +"Performance goal type is not specified or is unknown in this version.", +"The performance goal is set in CPM (cost per mille).", +"The performance goal is set in CPC (cost per click).", +"The performance goal is set in CPA (cost per action).", +"The performance goal is set in CTR (click-through rate) percentage.", +"The performance goal is set in Viewability percentage.", +"The performance goal is set as CPIAVC (cost per impression audible and visible at completion).", +"The performance goal is set in CPE (cost per engagement).", +"The performance goal is set in CPV (cost per view).", +"The performance goal is set in click conversion rate (conversions per click) percentage.", +"The performance goal is set in impression conversion rate (conversions per impression) percentage.", +"The performance goal is set in VCPM (cost per thousand viewable impressions).", +"The performance goal is set in YouTube view rate (YouTube views per impression) percentage.", +"The performance goal is set in audio completion rate (complete audio listens per impression) percentage.", +"The performance goal is set in video completion rate (complete video views per impression) percentage.", +"The performance goal is set to Other." +], +"type": "string" +} +}, +"type": "object" +}, +"PerformanceGoalBidStrategy": { +"description": "A strategy that automatically adjusts the bid to meet or beat a specified performance goal.", +"id": "PerformanceGoalBidStrategy", +"properties": { +"customBiddingAlgorithmId": { +"description": "The ID of the Custom Bidding Algorithm used by this strategy. Only applicable when performance_goal_type is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.", +"format": "int64", +"type": "string" +}, +"maxAverageCpmBidAmountMicros": { +"description": "The maximum average CPM that may be bid, in micros of the advertiser's currency. Must be greater than or equal to a billable unit of the given currency. Not applicable when performance_goal_type is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`. For example, 1500000 represents 1.5 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"performanceGoalAmountMicros": { +"description": "Required. The performance goal the bidding strategy will attempt to meet or beat, in micros of the advertiser's currency or in micro of the ROAS (Return On Advertising Spend) value which is also based on advertiser's currency. Must be greater than or equal to a billable unit of the given currency and smaller or equal to upper bounds. Each performance_goal_type has its upper bound: * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA`, upper bound is 10000.00 USD. * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC`, upper bound is 1000.00 USD. * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, upper bound is 1000.00 USD. * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`, upper bound is 1000.00 and lower bound is 0.01. Example: If set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, the bid price will be based on the probability that each available impression will be viewable. For example, if viewable CPM target is $2 and an impression is 40% likely to be viewable, the bid price will be $0.80 CPM (40% of $2). For example, 1500000 represents 1.5 standard units of the currency or ROAS value.", +"format": "int64", +"type": "string" +}, +"performanceGoalType": { +"description": "Required. The type of the performance goal that the bidding strategy will try to meet or beat. For line item level usage, the value must be one of: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.", +"enum": [ +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN", +"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Cost per action.", +"Cost per click.", +"Viewable CPM.", +"Custom bidding algorithm.", +"Completed inview and audible views.", +"Inview time over 10 secs views.", +"Viewable impressions." +], +"type": "string" +} +}, +"type": "object" +}, +"PoiAssignedTargetingOptionDetails": { +"description": "Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`.", +"id": "PoiAssignedTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of a POI, e.g. \"Times Square\", \"Space Needle\", followed by its full address if available.", +"readOnly": true, +"type": "string" +}, +"latitude": { +"description": "Output only. Latitude of the POI rounding to 6th decimal place.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"longitude": { +"description": "Output only. Longitude of the POI rounding to 6th decimal place.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"proximityRadiusAmount": { +"description": "Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`.", +"format": "double", +"type": "number" +}, +"proximityRadiusUnit": { +"description": "Required. The unit of distance by which the targeting radius is measured.", +"enum": [ +"DISTANCE_UNIT_UNSPECIFIED", +"DISTANCE_UNIT_MILES", +"DISTANCE_UNIT_KILOMETERS" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Miles.", +"Kilometers." +], +"type": "string" +}, +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. Accepted POI targeting option IDs can be retrieved using `targetingTypes.targetingOptions.search`. If targeting a specific latitude/longitude coordinate removed from an address or POI name, you can generate the necessary targeting option ID by rounding the desired coordinate values to the 6th decimal place, removing the decimals, and concatenating the string values separated by a semicolon. For example, you can target the latitude/longitude pair of 40.7414691, -74.003387 using the targeting option ID \"40741469;-74003387\". **Upon** **creation, this field value will be updated to append a semicolon and** **alphanumerical hash value if only latitude/longitude coordinates are** **provided.**", +"type": "string" +} +}, +"type": "object" +}, +"PoiSearchTerms": { +"description": "Search terms for POI targeting options.", +"id": "PoiSearchTerms", +"properties": { +"poiQuery": { +"description": "The search query for the desired POI name, street address, or coordinate of the desired POI. The query can be a prefix, e.g. \"Times squar\", \"40.7505045,-73.99562\", \"315 W 44th St\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"PoiTargetingOptionDetails": { +"description": "Represents a targetable point of interest(POI). This will be populated in the poi_details field when targeting_type is `TARGETING_TYPE_POI`.", +"id": "PoiTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of a POI(e.g. \"Times Square\", \"Space Needle\"), followed by its full address if available.", +"readOnly": true, +"type": "string" +}, +"latitude": { +"description": "Output only. Latitude of the POI rounding to 6th decimal place.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"longitude": { +"description": "Output only. Longitude of the POI rounding to 6th decimal place.", +"format": "double", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"PrismaConfig": { +"description": "Settings specific to the Mediaocean Prisma tool.", +"id": "PrismaConfig", +"properties": { +"prismaCpeCode": { +"$ref": "PrismaCpeCode", +"description": "Required. Relevant client, product, and estimate codes from the Mediaocean Prisma tool." +}, +"prismaType": { +"description": "Required. The Prisma type.", +"enum": [ +"PRISMA_TYPE_UNSPECIFIED", +"PRISMA_TYPE_DISPLAY", +"PRISMA_TYPE_SEARCH", +"PRISMA_TYPE_VIDEO", +"PRISMA_TYPE_AUDIO", +"PRISMA_TYPE_SOCIAL", +"PRISMA_TYPE_FEE" +], +"enumDescriptions": [ +"Type is not specified or unknown in this version.", +"Display type.", +"Search type.", +"Video type.", +"Audio type.", +"Social type.", +"Fee type." +], +"type": "string" +}, +"supplier": { +"description": "Required. The entity allocated this budget (DSP, site, etc.).", +"type": "string" +} +}, +"type": "object" +}, +"PrismaCpeCode": { +"description": "Google Payments Center supports searching and filtering on the component fields of this code.", +"id": "PrismaCpeCode", +"properties": { +"prismaClientCode": { +"description": "The Prisma client code.", +"type": "string" +}, +"prismaEstimateCode": { +"description": "The Prisma estimate code.", +"type": "string" +}, +"prismaProductCode": { +"description": "The Prisma product code.", +"type": "string" +} +}, +"type": "object" +}, +"ProductFeedData": { +"description": "The details of product feed.", +"id": "ProductFeedData", +"properties": { +"isFeedDisabled": { +"description": "Whether the product feed has opted-out of showing products.", +"type": "boolean" +}, +"productMatchDimensions": { +"description": "A list of dimensions used to match products.", +"items": { +"$ref": "ProductMatchDimension" +}, +"type": "array" +}, +"productMatchType": { +"description": "How products are selected by the product feed.", +"enum": [ +"PRODUCT_MATCH_TYPE_UNSPECIFIED", +"PRODUCT_MATCH_TYPE_ALL_PRODUCTS", +"PRODUCT_MATCH_TYPE_SPECIFIC_PRODUCTS", +"PRODUCT_MATCH_TYPE_CUSTOM_LABEL" +], +"enumDescriptions": [ +"Not specified or unknown.", +"All the products are matched.", +"Specific products are selected.", +"Match products by their custom labels." +], +"type": "string" +} +}, +"type": "object" +}, +"ProductMatchDimension": { +"description": "A dimension used to match products.", +"id": "ProductMatchDimension", +"properties": { +"customLabel": { +"$ref": "CustomLabel", +"description": "The custom label to match all the products with the label." +}, +"productOfferId": { +"description": "The ID of the product offer to match with a product with the same offer ID.", +"type": "string" +} +}, +"type": "object" +}, +"ProximityLocationListAssignedTargetingOptionDetails": { +"description": "Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.", +"id": "ProximityLocationListAssignedTargetingOptionDetails", +"properties": { +"proximityLocationListId": { +"description": "Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`.", +"format": "int64", +"type": "string" +}, +"proximityRadius": { +"description": "Required. Radius expressed in the distance units set in proximity_radius_unit. This represents the size of the area around a chosen location that will be targeted. Radius should be between 1 and 500 miles or 800 kilometers.", +"format": "double", +"type": "number" +}, +"proximityRadiusUnit": { +"description": "Required. Radius distance units.", +"enum": [ +"PROXIMITY_RADIUS_UNIT_UNSPECIFIED", +"PROXIMITY_RADIUS_UNIT_MILES", +"PROXIMITY_RADIUS_UNIT_KILOMETERS" +], +"enumDescriptions": [ +"Default value when distance units is not specified in this version. This enum is a place holder for default value and does not represent a real distance unit.", +"Radius distance unit in miles.", +"Radius distance unit in kilometeres" +], +"type": "string" +} +}, +"type": "object" +}, +"PublisherReviewStatus": { +"description": "Publisher review status for the creative.", +"id": "PublisherReviewStatus", +"properties": { +"publisherName": { +"description": "The publisher reviewing the creative.", +"type": "string" +}, +"status": { +"description": "Status of the publisher review.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"REVIEW_STATUS_APPROVED", +"REVIEW_STATUS_REJECTED", +"REVIEW_STATUS_PENDING" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is approved.", +"The creative is rejected.", +"The creative is pending review." +], +"type": "string" +} +}, +"type": "object" +}, +"RateDetails": { +"description": "The rate related settings of the inventory source.", +"id": "RateDetails", +"properties": { +"inventorySourceRateType": { +"description": "The rate type. Acceptable values are `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`, `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and `INVENTORY_SOURCE_RATE_TYPE_CPD`.", +"enum": [ +"INVENTORY_SOURCE_RATE_TYPE_UNSPECIFIED", +"INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED", +"INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR", +"INVENTORY_SOURCE_RATE_TYPE_CPD", +"INVENTORY_SOURCE_RATE_TYPE_FLAT" +], +"enumDescriptions": [ +"The rate type is not specified or is unknown in this version.", +"The rate type is CPM (Fixed).", +"The rate type is CPM (Floor).", +"The rate type is Cost per Day.", +"The rate type is Flat." +], +"type": "string" +}, +"minimumSpend": { +"$ref": "Money", +"description": "Output only. The amount that the buyer has committed to spending on the inventory source up front. Only applicable for guaranteed inventory sources.", +"readOnly": true +}, +"rate": { +"$ref": "Money", +"description": "The rate for the inventory source." +}, +"unitsPurchased": { +"description": "Required for guaranteed inventory sources. The number of impressions guaranteed by the seller.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"RegionalLocationListAssignedTargetingOptionDetails": { +"description": "Targeting details for regional location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.", +"id": "RegionalLocationListAssignedTargetingOptionDetails", +"properties": { +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"regionalLocationListId": { +"description": "Required. ID of the regional location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_REGIONAL`.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"RemarketingConfig": { +"description": "Settings that control the whether remarketing is enabled for the given identified advertiser.", +"id": "RemarketingConfig", +"properties": { +"advertiserId": { +"description": "Output only. The ID of the advertiser.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"remarketingEnabled": { +"description": "Output only. Whether the Floodlight activity remarketing user list is available to the identified advertiser.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"ReplaceNegativeKeywordsRequest": { +"description": "Request message for NegativeKeywordService.ReplaceNegativeKeywords.", +"id": "ReplaceNegativeKeywordsRequest", +"properties": { +"newNegativeKeywords": { +"description": "The negative keywords that will replace the existing keywords in the negative keyword list, specified as a list of NegativeKeywords.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReplaceNegativeKeywordsResponse": { +"description": "Response message for NegativeKeywordService.ReplaceNegativeKeywords.", +"id": "ReplaceNegativeKeywordsResponse", +"properties": { +"negativeKeywords": { +"description": "The full list of negative keywords now present in the negative keyword list.", +"items": { +"$ref": "NegativeKeyword" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReplaceSitesRequest": { +"description": "Request message for SiteService.ReplaceSites.", +"id": "ReplaceSitesRequest", +"properties": { +"advertiserId": { +"description": "The ID of the advertiser that owns the parent channel.", +"format": "int64", +"type": "string" +}, +"newSites": { +"description": "The sites that will replace the existing sites assigned to the channel, specified as a list of Sites.", +"items": { +"$ref": "Site" +}, +"type": "array" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent channel.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ReplaceSitesResponse": { +"description": "Response message for SiteService.ReplaceSites.", +"id": "ReplaceSitesResponse", +"properties": { +"sites": { +"description": "The list of sites in the channel after replacing.", +"items": { +"$ref": "Site" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReviewStatusInfo": { +"description": "Review statuses for the creative.", +"id": "ReviewStatusInfo", +"properties": { +"approvalStatus": { +"description": "Represents the basic approval needed for a creative to begin serving. Summary of creative_and_landing_page_review_status and content_and_policy_review_status.", +"enum": [ +"APPROVAL_STATUS_UNSPECIFIED", +"APPROVAL_STATUS_PENDING_NOT_SERVABLE", +"APPROVAL_STATUS_PENDING_SERVABLE", +"APPROVAL_STATUS_APPROVED_SERVABLE", +"APPROVAL_STATUS_REJECTED_NOT_SERVABLE" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is still under review and not servable.", +"The creative has passed creative & landing page review and is servable, but is awaiting additional content & policy review.", +"Both creative & landing page review and content & policy review are approved. The creative is servable.", +"There is an issue with the creative that must be fixed before it can serve." +], +"type": "string" +}, +"contentAndPolicyReviewStatus": { +"description": "Content and policy review status for the creative.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"REVIEW_STATUS_APPROVED", +"REVIEW_STATUS_REJECTED", +"REVIEW_STATUS_PENDING" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is approved.", +"The creative is rejected.", +"The creative is pending review." +], +"type": "string" +}, +"creativeAndLandingPageReviewStatus": { +"description": "Creative and landing page review status for the creative.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"REVIEW_STATUS_APPROVED", +"REVIEW_STATUS_REJECTED", +"REVIEW_STATUS_PENDING" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"The creative is approved.", +"The creative is rejected.", +"The creative is pending review." +], +"type": "string" +}, +"exchangeReviewStatuses": { +"description": "Exchange review statuses for the creative.", +"items": { +"$ref": "ExchangeReviewStatus" +}, +"type": "array" +}, +"publisherReviewStatuses": { +"deprecated": true, +"description": "Publisher review statuses for the creative.", +"items": { +"$ref": "PublisherReviewStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"ScriptError": { +"description": "An error message for a custom bidding script.", +"id": "ScriptError", +"properties": { +"column": { +"description": "The column number in the script where the error was thrown.", +"format": "int64", +"type": "string" +}, +"errorCode": { +"description": "The type of error.", +"enum": [ +"ERROR_CODE_UNSPECIFIED", +"SYNTAX_ERROR", +"DEPRECATED_SYNTAX", +"INTERNAL_ERROR" +], +"enumDescriptions": [ +"The script error is not specified or is unknown in this version.", +"The script has a syntax error.", +"The script uses deprecated syntax.", +"Internal errors were thrown while processing the script." +], +"type": "string" +}, +"errorMessage": { +"description": "The detailed error message.", +"type": "string" +}, +"line": { +"description": "The line number in the script where the error was thrown.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SdfConfig": { +"description": "Structured Data File (SDF) related settings.", +"id": "SdfConfig", +"properties": { +"adminEmail": { +"description": "An administrator email address to which the SDF processing status reports will be sent.", +"type": "string" +}, +"version": { +"description": "Required. The version of SDF being used.", +"enum": [ +"SDF_VERSION_UNSPECIFIED", +"SDF_VERSION_3_1", +"SDF_VERSION_4", +"SDF_VERSION_4_1", +"SDF_VERSION_4_2", +"SDF_VERSION_5", +"SDF_VERSION_5_1", +"SDF_VERSION_5_2", +"SDF_VERSION_5_3", +"SDF_VERSION_5_4", +"SDF_VERSION_5_5", +"SDF_VERSION_6", +"SDF_VERSION_7", +"SDF_VERSION_7_1", +"SDF_VERSION_8" +], +"enumDeprecated": [ +false, +true, +true, +true, +true, +true, +true, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"SDF version value is not specified or is unknown in this version.", +"SDF version 3.1", +"SDF version 4", +"SDF version 4.1", +"SDF version 4.2", +"SDF version 5.", +"SDF version 5.1", +"SDF version 5.2", +"SDF version 5.3", +"SDF version 5.4", +"SDF version 5.5", +"SDF version 6", +"SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", +"SDF version 7.1. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", +"SDF version 8. Read the [v8 migration guide](/display-video/api/structured-data-file/v8-migration-guide) before migrating to this version." +], +"type": "string" +} +}, +"type": "object" +}, +"SdfDownloadTask": { +"description": "Type for the response returned by [SdfDownloadTaskService.CreateSdfDownloadTask].", +"id": "SdfDownloadTask", +"properties": { +"resourceName": { +"description": "A resource name to be used in media.download to Download the prepared files. Resource names have the format `download/sdfdownloadtasks/media/{media_id}`. `media_id` will be made available by the long running operation service once the task status is done.", +"type": "string" +} +}, +"type": "object" +}, +"SdfDownloadTaskMetadata": { +"description": "Type for the metadata returned by [SdfDownloadTaskService.CreateSdfDownloadTask].", +"id": "SdfDownloadTaskMetadata", +"properties": { +"createTime": { +"description": "The time when the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "The time when execution was completed.", +"format": "google-datetime", +"type": "string" +}, +"version": { +"description": "The SDF version used to execute this download task.", +"enum": [ +"SDF_VERSION_UNSPECIFIED", +"SDF_VERSION_3_1", +"SDF_VERSION_4", +"SDF_VERSION_4_1", +"SDF_VERSION_4_2", +"SDF_VERSION_5", +"SDF_VERSION_5_1", +"SDF_VERSION_5_2", +"SDF_VERSION_5_3", +"SDF_VERSION_5_4", +"SDF_VERSION_5_5", +"SDF_VERSION_6", +"SDF_VERSION_7", +"SDF_VERSION_7_1", +"SDF_VERSION_8" +], +"enumDeprecated": [ +false, +true, +true, +true, +true, +true, +true, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"SDF version value is not specified or is unknown in this version.", +"SDF version 3.1", +"SDF version 4", +"SDF version 4.1", +"SDF version 4.2", +"SDF version 5.", +"SDF version 5.1", +"SDF version 5.2", +"SDF version 5.3", +"SDF version 5.4", +"SDF version 5.5", +"SDF version 6", +"SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", +"SDF version 7.1. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", +"SDF version 8. Read the [v8 migration guide](/display-video/api/structured-data-file/v8-migration-guide) before migrating to this version." +], +"type": "string" +} +}, +"type": "object" +}, +"SearchTargetingOptionsRequest": { +"description": "Request message for SearchTargetingOptions.", +"id": "SearchTargetingOptionsRequest", +"properties": { +"advertiserId": { +"description": "Required. The Advertiser this request is being made in the context of.", +"format": "int64", +"type": "string" +}, +"businessChainSearchTerms": { +"$ref": "BusinessChainSearchTerms", +"description": "Search terms for Business Chain targeting options. Can only be used when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`." +}, +"geoRegionSearchTerms": { +"$ref": "GeoRegionSearchTerms", +"description": "Search terms for geo region targeting options. Can only be used when targeting_type is `TARGETING_TYPE_GEO_REGION`." +}, +"pageSize": { +"description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `SearchTargetingOptions` method. If not specified, the first page of results will be returned.", +"type": "string" +}, +"poiSearchTerms": { +"$ref": "PoiSearchTerms", +"description": "Search terms for POI targeting options. Can only be used when targeting_type is `TARGETING_TYPE_POI`." +} +}, +"type": "object" +}, +"SearchTargetingOptionsResponse": { +"description": "Response message for SearchTargetingOptions.", +"id": "SearchTargetingOptionsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `SearchTargetingOptions` method to retrieve the next page of results.", +"type": "string" +}, +"targetingOptions": { +"description": "The list of targeting options that match the search criteria. This list will be absent if empty.", +"items": { +"$ref": "TargetingOption" +}, +"type": "array" +} +}, +"type": "object" +}, +"SensitiveCategoryAssignedTargetingOptionDetails": { +"description": "Targeting details for sensitive category. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.", +"id": "SensitiveCategoryAssignedTargetingOptionDetails", +"properties": { +"excludedSensitiveCategory": { +"description": "Required. An enum for the DV360 Sensitive category content classified to be EXCLUDED.", +"enum": [ +"SENSITIVE_CATEGORY_UNSPECIFIED", +"SENSITIVE_CATEGORY_ADULT", +"SENSITIVE_CATEGORY_DEROGATORY", +"SENSITIVE_CATEGORY_DOWNLOADS_SHARING", +"SENSITIVE_CATEGORY_WEAPONS", +"SENSITIVE_CATEGORY_GAMBLING", +"SENSITIVE_CATEGORY_VIOLENCE", +"SENSITIVE_CATEGORY_SUGGESTIVE", +"SENSITIVE_CATEGORY_PROFANITY", +"SENSITIVE_CATEGORY_ALCOHOL", +"SENSITIVE_CATEGORY_DRUGS", +"SENSITIVE_CATEGORY_TOBACCO", +"SENSITIVE_CATEGORY_POLITICS", +"SENSITIVE_CATEGORY_RELIGION", +"SENSITIVE_CATEGORY_TRAGEDY", +"SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS", +"SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES", +"SENSITIVE_CATEGORY_SHOCKING", +"SENSITIVE_CATEGORY_EMBEDDED_VIDEO", +"SENSITIVE_CATEGORY_LIVE_STREAMING_VIDEO" +], +"enumDescriptions": [ +"This enum is only a placeholder and doesn't specify a DV360 sensitive category.", +"Adult or pornographic text, image, or video content.", +"Content that may be construed as biased against individuals, groups, or organizations based on criteria such as race, religion, disability, sex, age, veteran status, sexual orientation, gender identity, or political affiliation. May also indicate discussion of such content, for instance, in an academic or journalistic context.", +"Content related to audio, video, or software downloads.", +"Contains content related to personal weapons, including knives, guns, small firearms, and ammunition. Selecting either \"weapons\" or \"sensitive social issues\" will result in selecting both.", +"Contains content related to betting or wagering in a real-world or online setting.", +"Content which may be considered graphically violent, gory, gruesome, or shocking, such as street fighting videos, accident photos, descriptions of torture, etc.", +"Adult content, as well as suggestive content that's not explicitly pornographic. This category includes all pages categorized as adult.", +"Prominent use of words considered indecent, such as curse words and sexual slang. Pages with only very occasional usage, such as news sites that might include such words in a quotation, are not included.", +"Contains content related to alcoholic beverages, alcohol brands, recipes, etc.", +"Contains content related to the recreational use of legal or illegal drugs, as well as to drug paraphernalia or cultivation.", +"Contains content related to tobacco and tobacco accessories, including lighters, humidors, ashtrays, etc.", +"Political news and media, including discussions of social, governmental, and public policy.", +"Content related to religious thought or beliefs.", +"Content related to death, disasters, accidents, war, etc.", +"Content related to motor vehicle, aviation or other transportation accidents.", +"Issues that evoke strong, opposing views and spark debate. These include issues that are controversial in most countries and markets (such as abortion), as well as those that are controversial in specific countries and markets (such as immigration reform in the United States).", +"Content which may be considered shocking or disturbing, such as violent news stories, stunts, or toilet humor.", +"YouTube videos embedded on websites outside of YouTube.com.", +"Video of live events streamed over the internet." +], +"type": "string" +} +}, +"type": "object" +}, +"SensitiveCategoryTargetingOptionDetails": { +"description": "Represents a targetable sensitive category. This will be populated in the sensitive_category_details field of the TargetingOption when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.", +"id": "SensitiveCategoryTargetingOptionDetails", +"properties": { +"sensitiveCategory": { +"description": "Output only. An enum for the DV360 Sensitive category content classifier.", +"enum": [ +"SENSITIVE_CATEGORY_UNSPECIFIED", +"SENSITIVE_CATEGORY_ADULT", +"SENSITIVE_CATEGORY_DEROGATORY", +"SENSITIVE_CATEGORY_DOWNLOADS_SHARING", +"SENSITIVE_CATEGORY_WEAPONS", +"SENSITIVE_CATEGORY_GAMBLING", +"SENSITIVE_CATEGORY_VIOLENCE", +"SENSITIVE_CATEGORY_SUGGESTIVE", +"SENSITIVE_CATEGORY_PROFANITY", +"SENSITIVE_CATEGORY_ALCOHOL", +"SENSITIVE_CATEGORY_DRUGS", +"SENSITIVE_CATEGORY_TOBACCO", +"SENSITIVE_CATEGORY_POLITICS", +"SENSITIVE_CATEGORY_RELIGION", +"SENSITIVE_CATEGORY_TRAGEDY", +"SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS", +"SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES", +"SENSITIVE_CATEGORY_SHOCKING", +"SENSITIVE_CATEGORY_EMBEDDED_VIDEO", +"SENSITIVE_CATEGORY_LIVE_STREAMING_VIDEO" +], +"enumDescriptions": [ +"This enum is only a placeholder and doesn't specify a DV360 sensitive category.", +"Adult or pornographic text, image, or video content.", +"Content that may be construed as biased against individuals, groups, or organizations based on criteria such as race, religion, disability, sex, age, veteran status, sexual orientation, gender identity, or political affiliation. May also indicate discussion of such content, for instance, in an academic or journalistic context.", +"Content related to audio, video, or software downloads.", +"Contains content related to personal weapons, including knives, guns, small firearms, and ammunition. Selecting either \"weapons\" or \"sensitive social issues\" will result in selecting both.", +"Contains content related to betting or wagering in a real-world or online setting.", +"Content which may be considered graphically violent, gory, gruesome, or shocking, such as street fighting videos, accident photos, descriptions of torture, etc.", +"Adult content, as well as suggestive content that's not explicitly pornographic. This category includes all pages categorized as adult.", +"Prominent use of words considered indecent, such as curse words and sexual slang. Pages with only very occasional usage, such as news sites that might include such words in a quotation, are not included.", +"Contains content related to alcoholic beverages, alcohol brands, recipes, etc.", +"Contains content related to the recreational use of legal or illegal drugs, as well as to drug paraphernalia or cultivation.", +"Contains content related to tobacco and tobacco accessories, including lighters, humidors, ashtrays, etc.", +"Political news and media, including discussions of social, governmental, and public policy.", +"Content related to religious thought or beliefs.", +"Content related to death, disasters, accidents, war, etc.", +"Content related to motor vehicle, aviation or other transportation accidents.", +"Issues that evoke strong, opposing views and spark debate. These include issues that are controversial in most countries and markets (such as abortion), as well as those that are controversial in specific countries and markets (such as immigration reform in the United States).", +"Content which may be considered shocking or disturbing, such as violent news stories, stunts, or toilet humor.", +"YouTube videos embedded on websites outside of YouTube.com.", +"Video of live events streamed over the internet." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SessionPositionAssignedTargetingOptionDetails": { +"description": "Details for session position assigned targeting option. This will be populated in the session_position_details field when targeting_type is `TARGETING_TYPE_SESSION_POSITION`.", +"id": "SessionPositionAssignedTargetingOptionDetails", +"properties": { +"sessionPosition": { +"description": "The position where the ad will show in a session.", +"enum": [ +"SESSION_POSITION_UNSPECIFIED", +"SESSION_POSITION_FIRST_IMPRESSION" +], +"enumDescriptions": [ +"This is a placeholder, does not indicate any positions.", +"The first impression of the session." +], +"type": "string" +} +}, +"type": "object" +}, +"Site": { +"description": "A single site. Sites are apps or websites belonging to a channel.", +"id": "Site", +"properties": { +"name": { +"description": "Output only. The resource name of the site.", +"readOnly": true, +"type": "string" +}, +"urlOrAppId": { +"description": "Required. The app ID or URL of the site. Must be UTF-8 encoded with a maximum length of 240 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"SubExchangeAssignedTargetingOptionDetails": { +"description": "Details for assigned sub-exchange targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`.", +"id": "SubExchangeAssignedTargetingOptionDetails", +"properties": { +"targetingOptionId": { +"description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_SUB_EXCHANGE`.", +"type": "string" +} +}, +"type": "object" +}, +"SubExchangeTargetingOptionDetails": { +"description": "Represents a targetable sub-exchange. This will be populated in the sub_exchange_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`.", +"id": "SubExchangeTargetingOptionDetails", +"properties": { +"displayName": { +"description": "Output only. The display name of the sub-exchange.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TargetFrequency": { +"description": "Setting that controls the average number of times the ads will show to the same person over a certain period of time.", +"id": "TargetFrequency", +"properties": { +"targetCount": { +"description": "The target number of times, on average, the ads will be shown to the same person in the timespan dictated by time_unit and time_unit_count.", +"format": "int64", +"type": "string" +}, +"timeUnit": { +"description": "The unit of time in which the target frequency will be applied. The following time unit is applicable: * `TIME_UNIT_WEEKS`", +"enum": [ +"TIME_UNIT_UNSPECIFIED", +"TIME_UNIT_LIFETIME", +"TIME_UNIT_MONTHS", +"TIME_UNIT_WEEKS", +"TIME_UNIT_DAYS", +"TIME_UNIT_HOURS", +"TIME_UNIT_MINUTES" +], +"enumDescriptions": [ +"Time unit value is not specified or is unknown in this version.", +"The frequency cap will be applied to the whole life time of the line item.", +"The frequency cap will be applied to a number of months.", +"The frequency cap will be applied to a number of weeks.", +"The frequency cap will be applied to a number of days.", +"The frequency cap will be applied to a number of hours.", +"The frequency cap will be applied to a number of minutes." +], +"type": "string" +}, +"timeUnitCount": { +"description": "The number of time_unit the target frequency will last. The following restrictions apply based on the value of time_unit: * `TIME_UNIT_WEEKS` - must be 1", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TargetingExpansionConfig": { +"description": "Settings that control the [optimized targeting](//support.google.com/displayvideo/answer/12060859) settings of the line item.", +"id": "TargetingExpansionConfig", +"properties": { +"excludeFirstPartyAudience": { +"deprecated": true, +"description": "Whether to exclude first-party audiences from use in targeting expansion. This field was deprecated with the launch of [optimized targeting](//support.google.com/displayvideo/answer/12060859). This field will be set to `false`. If this field is set to `true` when deprecated, all positive first-party audience targeting assigned to this line item will be replaced with negative targeting of the same first-party audiences to ensure the continued exclusion of those audiences.", +"type": "boolean" +}, +"targetingExpansionLevel": { +"description": "Required. Whether optimized targeting is turned on. This field supports the following values: * `NO_EXPANSION`: optimized targeting is turned off * `LEAST_EXPANSION`: optimized targeting is turned on If this field is set to any other value, it will automatically be set to `LEAST_EXPANSION`. `NO_EXPANSION` will be the default value for the field and will be automatically assigned if you do not set the field.", +"enum": [ +"TARGETING_EXPANSION_LEVEL_UNSPECIFIED", +"NO_EXPANSION", +"LEAST_EXPANSION", +"SOME_EXPANSION", +"BALANCED_EXPANSION", +"MORE_EXPANSION", +"MOST_EXPANSION" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +true, +true +], +"enumDescriptions": [ +"The optimized targeting setting is not specified or is unknown in this version.", +"Optimized targeting is off.", +"Optimized targeting is on.", +"If used, will automatically be set to `LEAST_EXPANSION`.", +"If used, will automatically be set to `LEAST_EXPANSION`.", +"If used, will automatically be set to `LEAST_EXPANSION`.", +"If used, will automatically be set to `LEAST_EXPANSION`." +], +"type": "string" +} +}, +"type": "object" +}, +"TargetingOption": { +"description": "Represents a single targeting option, which is a targetable concept in DV360.", +"id": "TargetingOption", +"properties": { +"ageRangeDetails": { +"$ref": "AgeRangeTargetingOptionDetails", +"description": "Age range details." +}, +"appCategoryDetails": { +"$ref": "AppCategoryTargetingOptionDetails", +"description": "App category details." +}, +"audioContentTypeDetails": { +"$ref": "AudioContentTypeTargetingOptionDetails", +"description": "Audio content type details." +}, +"authorizedSellerStatusDetails": { +"$ref": "AuthorizedSellerStatusTargetingOptionDetails", +"description": "Authorized seller status resource details." +}, +"browserDetails": { +"$ref": "BrowserTargetingOptionDetails", +"description": "Browser details." +}, +"businessChainDetails": { +"$ref": "BusinessChainTargetingOptionDetails", +"description": "Business chain resource details." +}, +"carrierAndIspDetails": { +"$ref": "CarrierAndIspTargetingOptionDetails", +"description": "Carrier and ISP details." +}, +"categoryDetails": { +"$ref": "CategoryTargetingOptionDetails", +"description": "Category resource details." +}, +"contentDurationDetails": { +"$ref": "ContentDurationTargetingOptionDetails", +"description": "Content duration resource details." +}, +"contentGenreDetails": { +"$ref": "ContentGenreTargetingOptionDetails", +"description": "Content genre resource details." +}, +"contentInstreamPositionDetails": { +"$ref": "ContentInstreamPositionTargetingOptionDetails", +"description": "Content instream position details." +}, +"contentOutstreamPositionDetails": { +"$ref": "ContentOutstreamPositionTargetingOptionDetails", +"description": "Content outstream position details." +}, +"contentStreamTypeDetails": { +"$ref": "ContentStreamTypeTargetingOptionDetails", +"description": "Content stream type resource details." +}, +"deviceMakeModelDetails": { +"$ref": "DeviceMakeModelTargetingOptionDetails", +"description": "Device make and model resource details." +}, +"deviceTypeDetails": { +"$ref": "DeviceTypeTargetingOptionDetails", +"description": "Device type details." +}, +"digitalContentLabelDetails": { +"$ref": "DigitalContentLabelTargetingOptionDetails", +"description": "Digital content label details." +}, +"environmentDetails": { +"$ref": "EnvironmentTargetingOptionDetails", +"description": "Environment details." +}, +"exchangeDetails": { +"$ref": "ExchangeTargetingOptionDetails", +"description": "Exchange details." +}, +"genderDetails": { +"$ref": "GenderTargetingOptionDetails", +"description": "Gender details." +}, +"geoRegionDetails": { +"$ref": "GeoRegionTargetingOptionDetails", +"description": "Geographic region resource details." +}, +"householdIncomeDetails": { +"$ref": "HouseholdIncomeTargetingOptionDetails", +"description": "Household income details." +}, +"languageDetails": { +"$ref": "LanguageTargetingOptionDetails", +"description": "Language resource details." +}, +"name": { +"description": "Output only. The resource name for this targeting option.", +"readOnly": true, +"type": "string" +}, +"nativeContentPositionDetails": { +"$ref": "NativeContentPositionTargetingOptionDetails", +"description": "Native content position details." +}, +"omidDetails": { +"$ref": "OmidTargetingOptionDetails", +"description": "Open Measurement enabled inventory details." +}, +"onScreenPositionDetails": { +"$ref": "OnScreenPositionTargetingOptionDetails", +"description": "On screen position details." +}, +"operatingSystemDetails": { +"$ref": "OperatingSystemTargetingOptionDetails", +"description": "Operating system resources details." +}, +"parentalStatusDetails": { +"$ref": "ParentalStatusTargetingOptionDetails", +"description": "Parental status details." +}, +"poiDetails": { +"$ref": "PoiTargetingOptionDetails", +"description": "POI resource details." +}, +"sensitiveCategoryDetails": { +"$ref": "SensitiveCategoryTargetingOptionDetails", +"description": "Sensitive Category details." +}, +"subExchangeDetails": { +"$ref": "SubExchangeTargetingOptionDetails", +"description": "Sub-exchange details." +}, +"targetingOptionId": { +"description": "Output only. A unique identifier for this targeting option. The tuple {`targeting_type`, `targeting_option_id`} will be unique.", +"readOnly": true, +"type": "string" +}, +"targetingType": { +"description": "Output only. The type of this targeting option.", +"enum": [ +"TARGETING_TYPE_UNSPECIFIED", +"TARGETING_TYPE_CHANNEL", +"TARGETING_TYPE_APP_CATEGORY", +"TARGETING_TYPE_APP", +"TARGETING_TYPE_URL", +"TARGETING_TYPE_DAY_AND_TIME", +"TARGETING_TYPE_AGE_RANGE", +"TARGETING_TYPE_REGIONAL_LOCATION_LIST", +"TARGETING_TYPE_PROXIMITY_LOCATION_LIST", +"TARGETING_TYPE_GENDER", +"TARGETING_TYPE_VIDEO_PLAYER_SIZE", +"TARGETING_TYPE_USER_REWARDED_CONTENT", +"TARGETING_TYPE_PARENTAL_STATUS", +"TARGETING_TYPE_CONTENT_INSTREAM_POSITION", +"TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", +"TARGETING_TYPE_DEVICE_TYPE", +"TARGETING_TYPE_AUDIENCE_GROUP", +"TARGETING_TYPE_BROWSER", +"TARGETING_TYPE_HOUSEHOLD_INCOME", +"TARGETING_TYPE_ON_SCREEN_POSITION", +"TARGETING_TYPE_THIRD_PARTY_VERIFIER", +"TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", +"TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", +"TARGETING_TYPE_ENVIRONMENT", +"TARGETING_TYPE_CARRIER_AND_ISP", +"TARGETING_TYPE_OPERATING_SYSTEM", +"TARGETING_TYPE_DEVICE_MAKE_MODEL", +"TARGETING_TYPE_KEYWORD", +"TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", +"TARGETING_TYPE_VIEWABILITY", +"TARGETING_TYPE_CATEGORY", +"TARGETING_TYPE_INVENTORY_SOURCE", +"TARGETING_TYPE_LANGUAGE", +"TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", +"TARGETING_TYPE_GEO_REGION", +"TARGETING_TYPE_INVENTORY_SOURCE_GROUP", +"TARGETING_TYPE_EXCHANGE", +"TARGETING_TYPE_SUB_EXCHANGE", +"TARGETING_TYPE_POI", +"TARGETING_TYPE_BUSINESS_CHAIN", +"TARGETING_TYPE_CONTENT_DURATION", +"TARGETING_TYPE_CONTENT_STREAM_TYPE", +"TARGETING_TYPE_NATIVE_CONTENT_POSITION", +"TARGETING_TYPE_OMID", +"TARGETING_TYPE_AUDIO_CONTENT_TYPE", +"TARGETING_TYPE_CONTENT_GENRE", +"TARGETING_TYPE_YOUTUBE_VIDEO", +"TARGETING_TYPE_YOUTUBE_CHANNEL", +"TARGETING_TYPE_SESSION_POSITION" +], +"enumDescriptions": [ +"Default value when type is not specified or is unknown in this version.", +"Target a channel (a custom group of related websites or apps).", +"Target an app category (for example, education or puzzle games).", +"Target a specific app (for example, Angry Birds).", +"Target a specific url (for example, quora.com).", +"Target ads during a chosen time period on a specific day.", +"Target ads to a specific age range (for example, 18-24).", +"Target ads to the specified regions on a regional location list.", +"Target ads to the specified points of interest on a proximity location list.", +"Target ads to a specific gender (for example, female or male).", +"Target a specific video player size for video ads.", +"Target user rewarded content for video ads.", +"Target ads to a specific parental status (for example, parent or not a parent).", +"Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", +"Target ads in a specific content outstream position.", +"Target ads to a specific device type (for example, tablet or connected TV).", +"Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", +"Target ads to specific web browsers (for example, Chrome).", +"Target ads to a specific household income range (for example, top 10%).", +"Target ads in a specific on screen position.", +"Filter web sites through third party verification (for example, IAS or DoubleVerify).", +"Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", +"Filter website content by sensitive categories (for example, adult).", +"Target ads to a specific environment (for example, web or app).", +"Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", +"Target ads to a specific operating system (for example, macOS).", +"Target ads to a specific device make or model (for example, Roku or Samsung).", +"Target ads to a specific keyword (for example, dog or retriever).", +"Target ads to a specific negative keyword list.", +"Target ads to a specific viewability (for example, 80% viewable).", +"Target ads to a specific content category (for example, arts & entertainment).", +"Purchase impressions from specific deals and auction packages.", +"Target ads to a specific language (for example, English or Japanese).", +"Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", +"Target ads to a specific regional location (for example, a city or state).", +"Purchase impressions from a group of deals and auction packages.", +"Purchase impressions from specific exchanges.", +"Purchase impressions from specific sub-exchanges.", +"Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", +"Target ads around locations of a business chain within a specific geo region.", +"Target ads to a specific video content duration.", +"Target ads to a specific video content stream type.", +"Target ads to a specific native content position.", +"Target ads in an Open Measurement enabled inventory.", +"Target ads to a specific audio content type.", +"Target ads to a specific content genre.", +"Target ads to a specific YouTube video. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a specific YouTube channel. Targeting of this type cannot be created or updated using the API. Although this targeting is inherited by child resources, **inherited targeting of this type will not be retrieveable**.", +"Target ads to a serve it in a certain position of a session. Only supported for Ad Group resources under YouTube Programmatic Reservation line items. Targeting of this type cannot be created or updated using the API." +], +"readOnly": true, +"type": "string" +}, +"userRewardedContentDetails": { +"$ref": "UserRewardedContentTargetingOptionDetails", +"description": "User rewarded content details." +}, +"videoPlayerSizeDetails": { +"$ref": "VideoPlayerSizeTargetingOptionDetails", +"description": "Video player size details." +}, +"viewabilityDetails": { +"$ref": "ViewabilityTargetingOptionDetails", +"description": "Viewability resource details." +} +}, +"type": "object" +}, +"ThirdPartyOnlyConfig": { +"description": "Settings for advertisers that use third-party ad servers only.", +"id": "ThirdPartyOnlyConfig", +"properties": { +"pixelOrderIdReportingEnabled": { +"description": "Whether or not order ID reporting for pixels is enabled. This value cannot be changed once set to `true`.", +"type": "boolean" +} +}, +"type": "object" +}, +"ThirdPartyUrl": { +"description": "Tracking URLs from third parties to track interactions with an audio or a video creative.", +"id": "ThirdPartyUrl", +"properties": { +"type": { +"description": "The type of interaction needs to be tracked by the tracking URL", +"enum": [ +"THIRD_PARTY_URL_TYPE_UNSPECIFIED", +"THIRD_PARTY_URL_TYPE_IMPRESSION", +"THIRD_PARTY_URL_TYPE_CLICK_TRACKING", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_START", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FIRST_QUARTILE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MIDPOINT", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_THIRD_QUARTILE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_COMPLETE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MUTE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PAUSE", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_REWIND", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FULLSCREEN", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_STOP", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_CUSTOM", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_SKIP", +"THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PROGRESS" +], +"enumDescriptions": [ +"The type of third-party URL is unspecified or is unknown in this version.", +"Used to count impressions of the creative after the audio or video buffering is complete.", +"Used to track user clicks on the audio or video.", +"Used to track the number of times a user starts the audio or video.", +"Used to track the number of times the audio or video plays to 25% of its length.", +"Used to track the number of times the audio or video plays to 50% of its length.", +"Used to track the number of times the audio or video plays to 75% of its length.", +"Used to track the number of times the audio or video plays to the end.", +"Used to track the number of times a user mutes the audio or video.", +"Used to track the number of times a user pauses the audio or video.", +"Used to track the number of times a user replays the audio or video.", +"Used to track the number of times a user expands the player to full-screen size.", +"Used to track the number of times a user stops the audio or video.", +"Used to track the number of times a user performs a custom click, such as clicking on a video hot spot.", +"Used to track the number of times the audio or video was skipped.", +"Used to track the number of times the audio or video plays to an offset determined by the progress_offset." +], +"type": "string" +}, +"url": { +"description": "Tracking URL used to track the interaction. Provide a URL with optional path or query string, beginning with `https:`. For example, https://www.example.com/path", +"type": "string" +} +}, +"type": "object" +}, +"ThirdPartyVendorConfig": { +"description": "Settings that control how third-party measurement vendors are configured.", +"id": "ThirdPartyVendorConfig", +"properties": { +"placementId": { +"description": "The ID used by the platform of the third-party vendor to identify the line item.", +"type": "string" +}, +"vendor": { +"description": "The third-party measurement vendor.", +"enum": [ +"THIRD_PARTY_VENDOR_UNSPECIFIED", +"THIRD_PARTY_VENDOR_MOAT", +"THIRD_PARTY_VENDOR_DOUBLE_VERIFY", +"THIRD_PARTY_VENDOR_INTEGRAL_AD_SCIENCE", +"THIRD_PARTY_VENDOR_COMSCORE", +"THIRD_PARTY_VENDOR_TELEMETRY", +"THIRD_PARTY_VENDOR_MEETRICS", +"THIRD_PARTY_VENDOR_ZEFR", +"THIRD_PARTY_VENDOR_NIELSEN", +"THIRD_PARTY_VENDOR_KANTAR", +"THIRD_PARTY_VENDOR_DYNATA" +], +"enumDescriptions": [ +"Unknown third-party vendor.", +"Moat.", +"DoubleVerify.", +"Integral Ad Science.", +"Comscore.", +"Telemetry.", +"Meetrics.", +"ZEFR.", +"Nielsen.", +"Kantar.", +"Dynata." +], +"type": "string" +} +}, +"type": "object" +}, +"ThirdPartyVerifierAssignedTargetingOptionDetails": { +"description": "Assigned third party verifier targeting option details. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.", +"id": "ThirdPartyVerifierAssignedTargetingOptionDetails", +"properties": { +"adloox": { +"$ref": "Adloox", +"description": "Third party brand verifier -- Adloox." +}, +"doubleVerify": { +"$ref": "DoubleVerify", +"description": "Third party brand verifier -- DoubleVerify." +}, +"integralAdScience": { +"$ref": "IntegralAdScience", +"description": "Third party brand verifier -- Integral Ad Science." +} +}, +"type": "object" +}, +"TimeRange": { +"description": "A time range.", +"id": "TimeRange", +"properties": { +"endTime": { +"description": "Required. The upper bound of a time range, inclusive.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Required. The lower bound of a time range, inclusive.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"TimerEvent": { +"description": "Timer event of the creative.", +"id": "TimerEvent", +"properties": { +"name": { +"description": "Required. The name of the timer event.", +"type": "string" +}, +"reportingName": { +"description": "Required. The name used to identify this timer event in reports.", +"type": "string" +} +}, +"type": "object" +}, +"TrackingFloodlightActivityConfig": { +"description": "Settings that control the behavior of a single Floodlight activity config.", +"id": "TrackingFloodlightActivityConfig", +"properties": { +"floodlightActivityId": { +"description": "Required. The ID of the Floodlight activity.", +"format": "int64", +"type": "string" +}, +"postClickLookbackWindowDays": { +"description": "Required. The number of days after an ad has been clicked in which a conversion may be counted. Must be between 0 and 90 inclusive.", +"format": "int32", +"type": "integer" +}, +"postViewLookbackWindowDays": { +"description": "Required. The number of days after an ad has been viewed in which a conversion may be counted. Must be between 0 and 90 inclusive.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Transcode": { +"description": "Represents information about the transcoded audio or video file.", +"id": "Transcode", +"properties": { +"audioBitRateKbps": { +"description": "The bit rate for the audio stream of the transcoded video, or the bit rate for the transcoded audio, in kilobits per second.", +"format": "int64", +"type": "string" +}, +"audioSampleRateHz": { +"description": "The sample rate for the audio stream of the transcoded video, or the sample rate for the transcoded audio, in hertz.", +"format": "int64", +"type": "string" +}, +"bitRateKbps": { +"description": "The transcoding bit rate of the transcoded video, in kilobits per second.", +"format": "int64", +"type": "string" +}, +"dimensions": { +"$ref": "Dimensions", +"description": "The dimensions of the transcoded video." +}, +"fileSizeBytes": { +"description": "The size of the transcoded file, in bytes.", +"format": "int64", +"type": "string" +}, +"frameRate": { +"description": "The frame rate of the transcoded video, in frames per second.", +"format": "float", +"type": "number" +}, +"mimeType": { +"description": "The MIME type of the transcoded file.", +"type": "string" +}, +"name": { +"description": "The name of the transcoded file.", +"type": "string" +}, +"transcoded": { +"description": "Indicates if the transcoding was successful.", +"type": "boolean" +} +}, +"type": "object" +}, +"UniversalAdId": { +"description": "A creative identifier provided by a registry that is unique across all platforms. This is part of the VAST 4.0 standard.", +"id": "UniversalAdId", +"properties": { +"id": { +"description": "The unique creative identifier.", +"type": "string" +}, +"registry": { +"description": "The registry provides unique creative identifiers.", +"enum": [ +"UNIVERSAL_AD_REGISTRY_UNSPECIFIED", +"UNIVERSAL_AD_REGISTRY_OTHER", +"UNIVERSAL_AD_REGISTRY_AD_ID", +"UNIVERSAL_AD_REGISTRY_CLEARCAST", +"UNIVERSAL_AD_REGISTRY_DV360", +"UNIVERSAL_AD_REGISTRY_CM" +], +"enumDescriptions": [ +"The Universal Ad registry is unspecified or is unknown in this version.", +"Use a custom provider to provide the Universal Ad ID.", +"Use Ad-ID to provide the Universal Ad ID.", +"Use clearcast.co.uk to provide the Universal Ad ID.", +"Use Display & Video 360 to provide the Universal Ad ID.", +"Use Campaign Manager 360 to provide the Universal Ad ID." +], +"type": "string" +} +}, +"type": "object" +}, +"UrlAssignedTargetingOptionDetails": { +"description": "Details for assigned URL targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_URL`.", +"id": "UrlAssignedTargetingOptionDetails", +"properties": { +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"url": { +"description": "Required. The URL, for example `example.com`. DV360 supports two levels of subdirectory targeting, for example `www.example.com/one-subdirectory-level/second-level`, and five levels of subdomain targeting, for example `five.four.three.two.one.example.com`.", +"type": "string" +} +}, +"type": "object" +}, +"User": { +"description": "A single user in Display & Video 360.", +"id": "User", +"properties": { +"assignedUserRoles": { +"description": "The assigned user roles. Required in CreateUser. Output only in UpdateUser. Can only be updated through BulkEditAssignedUserRoles.", +"items": { +"$ref": "AssignedUserRole" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The display name of the user. Must be UTF-8 encoded with a maximum size of 240 bytes.", +"type": "string" +}, +"email": { +"description": "Required. Immutable. The email address used to identify the user.", +"type": "string" +}, +"lastLoginTime": { +"description": "Output only. The timestamp when the user last logged in DV360 UI.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the user.", +"readOnly": true, +"type": "string" +}, +"userId": { +"description": "Output only. The unique ID of the user. Assigned by the system.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"UserRewardedContentAssignedTargetingOptionDetails": { +"description": "User rewarded content targeting option details. This will be populated in the user_rewarded_content_details field when targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.", +"id": "UserRewardedContentAssignedTargetingOptionDetails", +"properties": { +"targetingOptionId": { +"description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.", +"type": "string" +}, +"userRewardedContent": { +"description": "Output only. User rewarded content status for video ads.", +"enum": [ +"USER_REWARDED_CONTENT_UNSPECIFIED", +"USER_REWARDED_CONTENT_USER_REWARDED", +"USER_REWARDED_CONTENT_NOT_USER_REWARDED" +], +"enumDescriptions": [ +"User rewarded content is not specified or is unknown in this version.", +"Represents ads where the user will see a reward after viewing.", +"Represents all other ads besides user-rewarded." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"UserRewardedContentTargetingOptionDetails": { +"description": "Represents a targetable user rewarded content status for video ads only. This will be populated in the user_rewarded_content_details field when targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.", +"id": "UserRewardedContentTargetingOptionDetails", +"properties": { +"userRewardedContent": { +"description": "Output only. User rewarded content status for video ads.", +"enum": [ +"USER_REWARDED_CONTENT_UNSPECIFIED", +"USER_REWARDED_CONTENT_USER_REWARDED", +"USER_REWARDED_CONTENT_NOT_USER_REWARDED" +], +"enumDescriptions": [ +"User rewarded content is not specified or is unknown in this version.", +"Represents ads where the user will see a reward after viewing.", +"Represents all other ads besides user-rewarded." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"VideoAdSequenceSettings": { +"description": "Settings related to VideoAdSequence.", +"id": "VideoAdSequenceSettings", +"properties": { +"minimumDuration": { +"description": "The minimum time interval before the same user sees this sequence again.", +"enum": [ +"VIDEO_AD_SEQUENCE_MINIMUM_DURATION_UNSPECIFIED", +"VIDEO_AD_SEQUENCE_MINIMUM_DURATION_WEEK", +"VIDEO_AD_SEQUENCE_MINIMUM_DURATION_MONTH" +], +"enumDescriptions": [ +"Unspecified or unknown.", +"7 days.", +"30 days." +], +"type": "string" +}, +"steps": { +"description": "The steps of which the sequence consists.", +"items": { +"$ref": "VideoAdSequenceStep" +}, +"type": "array" +} +}, +"type": "object" +}, +"VideoAdSequenceStep": { +"description": "The detail of a single step in a VideoAdSequence.", +"id": "VideoAdSequenceStep", +"properties": { +"adGroupId": { +"description": "The ID of the corresponding ad group of the step.", +"format": "int64", +"type": "string" +}, +"interactionType": { +"description": "The interaction on the previous step that will lead the viewer to this step. The first step does not have interaction_type.", +"enum": [ +"INTERACTION_TYPE_UNSPECIFIED", +"INTERACTION_TYPE_PAID_VIEW", +"INTERACTION_TYPE_SKIP", +"INTERACTION_TYPE_IMPRESSION", +"INTERACTION_TYPE_ENGAGED_IMPRESSION" +], +"enumDescriptions": [ +"Unspecified or unknown", +"A paid view.", +"Skipped by the viewer.", +"A (viewed) ad impression.", +"An ad impression that was not immediately skipped by the viewer, but didn't reach the billable event either." +], +"type": "string" +}, +"previousStepId": { +"description": "The ID of the previous step. The first step does not have previous step.", +"format": "int64", +"type": "string" +}, +"stepId": { +"description": "The ID of the step.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"VideoDiscoveryAd": { +"description": "Details for a video discovery ad.", +"id": "VideoDiscoveryAd", +"properties": { +"description1": { +"description": "First text line for the ad.", +"type": "string" +}, +"description2": { +"description": "Second text line for the ad.", +"type": "string" +}, +"headline": { +"description": "The headline of ad.", +"type": "string" +}, +"thumbnail": { +"description": "Thumbnail image used in the ad.", +"enum": [ +"THUMBNAIL_UNSPECIFIED", +"THUMBNAIL_DEFAULT", +"THUMBNAIL_1", +"THUMBNAIL_2", +"THUMBNAIL_3" +], +"enumDescriptions": [ +"Unknown or unspecified.", +"The default thumbnail, can be auto-generated or user-uploaded.", +"Thumbnail 1, generated from the video.", +"Thumbnail 2, generated from the video.", +"Thumbnail 3, generated from the video." +], +"type": "string" +}, +"video": { +"$ref": "YoutubeVideoDetails", +"description": "The YouTube video the ad promotes." +} +}, +"type": "object" +}, +"VideoPerformanceAd": { +"description": "Details for a video performance ad.", +"id": "VideoPerformanceAd", +"properties": { +"actionButtonLabels": { +"description": "The list of text assets shown on the call-to-action button.", +"items": { +"type": "string" +}, +"type": "array" +}, +"companionBanners": { +"description": "The list of companion banners used by this ad.", +"items": { +"$ref": "ImageAsset" +}, +"type": "array" +}, +"customParameters": { +"additionalProperties": { +"type": "string" +}, +"description": "The custom parameters to pass custom values to tracking URL template.", +"type": "object" +}, +"descriptions": { +"description": "The list of descriptions shown on the call-to-action banner.", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayUrlBreadcrumb1": { +"description": "The first piece after the domain in the display URL.", +"type": "string" +}, +"displayUrlBreadcrumb2": { +"description": "The second piece after the domain in the display URL.", +"type": "string" +}, +"domain": { +"description": "The domain of the display URL.", +"type": "string" +}, +"finalUrl": { +"description": "The URL address of the webpage that people reach after they click the ad.", +"type": "string" +}, +"headlines": { +"description": "The list of headlines shown on the call-to-action banner.", +"items": { +"type": "string" +}, +"type": "array" +}, +"longHeadlines": { +"description": "The list of lone headlines shown on the call-to-action banner.", +"items": { +"type": "string" +}, +"type": "array" +}, +"trackingUrl": { +"description": "The URL address loaded in the background for tracking purposes.", +"type": "string" +}, +"videos": { +"description": "The list of YouTube video assets used by this ad.", +"items": { +"$ref": "YoutubeVideoDetails" +}, +"type": "array" +} +}, +"type": "object" +}, +"VideoPlayerSizeAssignedTargetingOptionDetails": { +"description": "Video player size targeting option details. This will be populated in the video_player_size_details field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. Explicitly targeting all options is not supported. Remove all video player size targeting options to achieve this effect.", +"id": "VideoPlayerSizeAssignedTargetingOptionDetails", +"properties": { +"videoPlayerSize": { +"description": "Required. The video player size.", +"enum": [ +"VIDEO_PLAYER_SIZE_UNSPECIFIED", +"VIDEO_PLAYER_SIZE_SMALL", +"VIDEO_PLAYER_SIZE_LARGE", +"VIDEO_PLAYER_SIZE_HD", +"VIDEO_PLAYER_SIZE_UNKNOWN" +], +"enumDescriptions": [ +"Video player size is not specified in this version. This enum is a place holder for a default value and does not represent a real video player size.", +"The dimensions of the video player are less than 400\u00d7300 (desktop), or up to 20% of screen covered (mobile).", +"The dimensions of the video player are between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the screen covered (mobile).", +"The dimensions of the video player are 1280\u00d7720 or greater (desktop), or over 90% of the screen covered (mobile).", +"The dimensions of the video player are unknown." +], +"type": "string" +} +}, +"type": "object" +}, +"VideoPlayerSizeTargetingOptionDetails": { +"description": "Represents a targetable video player size. This will be populated in the video_player_size_details field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.", +"id": "VideoPlayerSizeTargetingOptionDetails", +"properties": { +"videoPlayerSize": { +"description": "Output only. The video player size.", +"enum": [ +"VIDEO_PLAYER_SIZE_UNSPECIFIED", +"VIDEO_PLAYER_SIZE_SMALL", +"VIDEO_PLAYER_SIZE_LARGE", +"VIDEO_PLAYER_SIZE_HD", +"VIDEO_PLAYER_SIZE_UNKNOWN" +], +"enumDescriptions": [ +"Video player size is not specified in this version. This enum is a place holder for a default value and does not represent a real video player size.", +"The dimensions of the video player are less than 400\u00d7300 (desktop), or up to 20% of screen covered (mobile).", +"The dimensions of the video player are between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the screen covered (mobile).", +"The dimensions of the video player are 1280\u00d7720 or greater (desktop), or over 90% of the screen covered (mobile).", +"The dimensions of the video player are unknown." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ViewabilityAssignedTargetingOptionDetails": { +"description": "Assigned viewability targeting option details. This will be populated in the viewability_details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_VIEWABILITY`.", +"id": "ViewabilityAssignedTargetingOptionDetails", +"properties": { +"viewability": { +"description": "Required. The predicted viewability percentage.", +"enum": [ +"VIEWABILITY_UNSPECIFIED", +"VIEWABILITY_10_PERCENT_OR_MORE", +"VIEWABILITY_20_PERCENT_OR_MORE", +"VIEWABILITY_30_PERCENT_OR_MORE", +"VIEWABILITY_40_PERCENT_OR_MORE", +"VIEWABILITY_50_PERCENT_OR_MORE", +"VIEWABILITY_60_PERCENT_OR_MORE", +"VIEWABILITY_70_PERCENT_OR_MORE", +"VIEWABILITY_80_PERCENT_OR_MORE", +"VIEWABILITY_90_PERCENT_OR_MORE" +], +"enumDescriptions": [ +"Default value when viewability is not specified in this version. This enum is a placeholder for default value and does not represent a real viewability option.", +"Bid only on impressions that are at least 10% likely to be viewable.", +"Bid only on impressions that are at least 20% likely to be viewable.", +"Bid only on impressions that are at least 30% likely to be viewable.", +"Bid only on impressions that are at least 40% likely to be viewable.", +"Bid only on impressions that are at least 50% likely to be viewable.", +"Bid only on impressions that are at least 60% likely to be viewable.", +"Bid only on impressions that are at least 70% likely to be viewable.", +"Bid only on impressions that are at least 80% likely to be viewable.", +"Bid only on impressions that are at least 90% likely to be viewable." +], +"type": "string" +} +}, +"type": "object" +}, +"ViewabilityTargetingOptionDetails": { +"description": "Represents a targetable viewability. This will be populated in the viewability_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_VIEWABILITY`.", +"id": "ViewabilityTargetingOptionDetails", +"properties": { +"viewability": { +"description": "Output only. The predicted viewability percentage.", +"enum": [ +"VIEWABILITY_UNSPECIFIED", +"VIEWABILITY_10_PERCENT_OR_MORE", +"VIEWABILITY_20_PERCENT_OR_MORE", +"VIEWABILITY_30_PERCENT_OR_MORE", +"VIEWABILITY_40_PERCENT_OR_MORE", +"VIEWABILITY_50_PERCENT_OR_MORE", +"VIEWABILITY_60_PERCENT_OR_MORE", +"VIEWABILITY_70_PERCENT_OR_MORE", +"VIEWABILITY_80_PERCENT_OR_MORE", +"VIEWABILITY_90_PERCENT_OR_MORE" +], +"enumDescriptions": [ +"Default value when viewability is not specified in this version. This enum is a placeholder for default value and does not represent a real viewability option.", +"Bid only on impressions that are at least 10% likely to be viewable.", +"Bid only on impressions that are at least 20% likely to be viewable.", +"Bid only on impressions that are at least 30% likely to be viewable.", +"Bid only on impressions that are at least 40% likely to be viewable.", +"Bid only on impressions that are at least 50% likely to be viewable.", +"Bid only on impressions that are at least 60% likely to be viewable.", +"Bid only on impressions that are at least 70% likely to be viewable.", +"Bid only on impressions that are at least 80% likely to be viewable.", +"Bid only on impressions that are at least 90% likely to be viewable." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"YoutubeAdGroup": { +"description": "A single YouTube ad group associated with a YouTube and Partners line item.", +"id": "YoutubeAdGroup", +"properties": { +"adGroupFormat": { +"description": "The format of the ads in the ad group.", +"enum": [ +"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_UNSPECIFIED", +"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_IN_STREAM", +"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_VIDEO_DISCOVERY", +"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_BUMPER", +"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_NON_SKIPPABLE_IN_STREAM", +"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_AUDIO", +"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_ACTION", +"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_REACH", +"YOUTUBE_AND_PARTNERS_AD_GROUP_FORMAT_MASTHEAD" +], +"enumDescriptions": [ +"Format value is not specified or is unknown in this version.", +"In-stream ads.", +"In-feed ads.", +"Bumper ads.", +"Non-skippable in-stream ads.", +"Non-skippable in-stream audio ads.", +"[Responsive ads for video action campaigns] (https://support.google.com/displayvideo/answer/9065351).", +"[Effective reach ad groups] (https://support.google.com/displayvideo/answer/9173684), including in-stream and bumper ads.", +"Masthead Ad that is surfaced on the top slot on the YouTube homepage." +], +"type": "string" +}, +"adGroupId": { +"description": "The unique ID of the ad group. Assigned by the system.", +"format": "int64", +"type": "string" +}, +"advertiserId": { +"description": "The unique ID of the advertiser the ad group belongs to.", +"format": "int64", +"type": "string" +}, +"biddingStrategy": { +"$ref": "YoutubeAndPartnersBiddingStrategy", +"description": "The bidding strategy used by the ad group." +}, +"displayName": { +"description": "The display name of the ad group. Must be UTF-8 encoded with a maximum size of 255 bytes.", +"type": "string" +}, +"entityStatus": { +"description": "Controls whether or not the ad group can spend its budget and bid on inventory. If the ad group's parent line item is not active, the ad group can't spend its budget even if its own status is `ENTITY_STATUS_ACTIVE`.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"lineItemId": { +"description": "The unique ID of the line item that the ad group belongs to.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "The resource name of the ad group.", +"type": "string" +}, +"productFeedData": { +"$ref": "ProductFeedData", +"description": "The settings of the product feed in this ad group." +}, +"targetingExpansion": { +"$ref": "TargetingExpansionConfig", +"description": "The [targeting expansion](https://support.google.com/displayvideo/answer/10191558) settings of the ad group. This config is only applicable when eligible audience list targeting is assigned to the ad group." +}, +"youtubeAdIds": { +"description": "The IDs of the youtube_ad_group_ad resources associated with the ad group.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"YoutubeAdGroupAd": { +"description": "A single ad associated with a YouTube ad group.", +"id": "YoutubeAdGroupAd", +"properties": { +"adGroupAdId": { +"description": "The unique ID of the ad. Assigned by the system.", +"format": "int64", +"type": "string" +}, +"adGroupId": { +"description": "The unique ID of the ad group that the ad belongs to.", +"format": "int64", +"type": "string" +}, +"adUrls": { +"description": "List of URLs used by the ad.", +"items": { +"$ref": "AdUrl" +}, +"type": "array" +}, +"advertiserId": { +"description": "The unique ID of the advertiser the ad belongs to.", +"format": "int64", +"type": "string" +}, +"audioAd": { +"$ref": "AudioAd", +"description": "Details of an [audio ad](//support.google.com/displayvideo/answer/6274216) used for reach marketing objectives." +}, +"bumperAd": { +"$ref": "BumperAd", +"description": "Details of a [non-skippable short video ad](//support.google.com/displayvideo/answer/6274216), equal to or less than 6 seconds, used for reach." +}, +"displayName": { +"description": "The display name of the ad. Must be UTF-8 encoded with a maximum size of 255 bytes.", +"type": "string" +}, +"displayVideoSourceAd": { +"$ref": "DisplayVideoSourceAd", +"description": "Details of an ad sourced from a Display & Video 360 creative." +}, +"entityStatus": { +"description": "The entity status of the ad.", +"enum": [ +"ENTITY_STATUS_UNSPECIFIED", +"ENTITY_STATUS_ACTIVE", +"ENTITY_STATUS_ARCHIVED", +"ENTITY_STATUS_DRAFT", +"ENTITY_STATUS_PAUSED", +"ENTITY_STATUS_SCHEDULED_FOR_DELETION" +], +"enumDescriptions": [ +"Default value when status is not specified or is unknown in this version.", +"The entity is enabled to bid and spend budget.", +"The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", +"The entity is under draft. Bidding and budget spending are disabled.", +"Bidding and budget spending are paused for the entity.", +"The entity is scheduled for deletion." +], +"type": "string" +}, +"inStreamAd": { +"$ref": "InStreamAd", +"description": "Details of an [in-stream ad skippable after 5 seconds](//support.google.com/displayvideo/answer/6274216), used for brand awareness or reach marketing objectives." +}, +"mastheadAd": { +"$ref": "MastheadAd", +"description": "Details of an [ad served on the YouTube Home feed](//support.google.com/google-ads/answer/9709826)." +}, +"name": { +"description": "The resource name of the ad.", +"type": "string" +}, +"nonSkippableAd": { +"$ref": "NonSkippableAd", +"description": "Details of a [non-skippable short in-stream video ad](//support.google.com/displayvideo/answer/6274216), between 6 and 15 seconds, used for reach marketing objectives." +}, +"videoDiscoverAd": { +"$ref": "VideoDiscoveryAd", +"description": "Details of an [ad promoting a video](//support.google.com/displayvideo/answer/6274216) that shows in places of discovery." +}, +"videoPerformanceAd": { +"$ref": "VideoPerformanceAd", +"description": "Details of an [ad used in a video action campaign](//support.google.com/google-ads/answer/10147229) to drive actions to the business, service or product." +} +}, +"type": "object" +}, +"YoutubeAdGroupAssignedTargetingOption": { +"description": "Wrapper object associating an AssignedTargetingOption resource and the youtube ad group it is assigned to.", +"id": "YoutubeAdGroupAssignedTargetingOption", +"properties": { +"assignedTargetingOption": { +"$ref": "AssignedTargetingOption", +"description": "The assigned targeting option resource." +}, +"youtubeAdGroupId": { +"description": "The ID of the youtube ad group the assigned targeting option is assigned to.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"YoutubeAndPartnersBiddingStrategy": { +"description": "Settings that control the bid strategy for YouTube and Partners resources.", +"id": "YoutubeAndPartnersBiddingStrategy", +"properties": { +"adGroupEffectiveTargetCpaSource": { +"description": "Output only. Source of the effective target CPA value for ad group.", +"enum": [ +"BIDDING_SOURCE_UNSPECIFIED", +"BIDDING_SOURCE_LINE_ITEM", +"BIDDING_SOURCE_AD_GROUP" +], +"enumDescriptions": [ +"Bidding source is not specified or unknown.", +"Bidding value is inherited from the line item.", +"Bidding value is defined in the ad group." +], +"readOnly": true, +"type": "string" +}, +"adGroupEffectiveTargetCpaValue": { +"description": "Output only. The effective target CPA for ad group, in micros of advertiser's currency.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "The type of the bidding strategy.", +"enum": [ +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_UNSPECIFIED", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_MANUAL_CPV", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_MANUAL_CPM", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_TARGET_CPA", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_TARGET_CPM", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_RESERVE_CPM", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_MAXIMIZE_LIFT", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_MAXIMIZE_CONVERSIONS", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_TARGET_CPV", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_TARGET_ROAS", +"YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_MAXIMIZE_CONVERSION_VALUE" +], +"enumDescriptions": [ +"Type is not specified or unknown.", +"A bidding strategy that pays a configurable amount per video view.", +"A bidding strategy that pays a configurable amount per impression.", +"A bidding strategy that automatically optimizes conversions per dollar.", +"A bidding strategy that pays a configurable amount per impression.", +"A bidding strategy for YouTube Instant Reserve line items that pays a fixed amount per impression.", +"An automated bidding strategy that sets bids to achieve maximum lift.", +"A bidding strategy that automatically maximizes number of conversions given a daily budget.", +"A bidding strategy that automatically optimizes cost per video view.", +"A bidding strategy that automatically maximizes revenue while averaging a specific target Return On Ad Spend (ROAS).", +"A bidding strategy that automatically sets bids to maximize revenue while spending your budget." +], +"type": "string" +}, +"value": { +"description": "The value used by the bidding strategy. When the bidding strategy is assigned at the line item level, this field is only applicable for the following strategy types: * `YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_TARGET_CPA` * `YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_TARGET_ROAS` When the bidding strategy is assigned at the ad group level, this field is only applicable for the following strategy types: * `YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_MANUAL_CPM` * `YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_MANUAL_CPV` * `YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_TARGET_CPA` * `YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_TARGET_CPM` * `YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_RESERVE_CPM` * `YOUTUBE_AND_PARTNERS_BIDDING_STRATEGY_TYPE_TARGET_ROAS` If not using an applicable strategy, the value of this field will be 0.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"YoutubeAndPartnersInventorySourceConfig": { +"description": "Settings that control what YouTube related inventories the YouTube and Partners line item will target.", +"id": "YoutubeAndPartnersInventorySourceConfig", +"properties": { +"includeGoogleTv": { +"description": "Optional. Whether to target inventory in video apps available with Google TV.", +"type": "boolean" +}, +"includeYoutubeSearch": { +"description": "Whether to target inventory on the YouTube search results page.", +"type": "boolean" +}, +"includeYoutubeVideoPartners": { +"description": "Whether to target inventory on a collection of partner sites and apps that follow the same brand safety standards as YouTube.", +"type": "boolean" +}, +"includeYoutubeVideos": { +"description": "Whether to target inventory of channels and videos on YouTube and YouTube videos embedded on other sites.", +"type": "boolean" +} +}, +"type": "object" +}, +"YoutubeAndPartnersSettings": { +"description": "Settings for YouTube and Partners line items.", +"id": "YoutubeAndPartnersSettings", +"properties": { +"biddingStrategy": { +"$ref": "YoutubeAndPartnersBiddingStrategy", +"description": "Required. The bidding strategy of the YouTube and Partners line item." +}, +"contentCategory": { +"description": "The kind of content on which the YouTube and Partners ads will be shown.", +"enum": [ +"YOUTUBE_AND_PARTNERS_CONTENT_CATEGORY_UNSPECIFIED", +"YOUTUBE_AND_PARTNERS_CONTENT_CATEGORY_STANDARD", +"YOUTUBE_AND_PARTNERS_CONTENT_CATEGORY_EXPANDED", +"YOUTUBE_AND_PARTNERS_CONTENT_CATEGORY_LIMITED" +], +"enumDescriptions": [ +"Content category is not specified or is unknown in this version.", +"A category consisting of a wide range of content appropriate for most brands. The content is based off of YouTube's [advertiser-friendly content guidelines](https://support.google.com/youtube/answer/6162278).", +"A category including all content across YouTube and video partners that meets standards for monetization.", +"A category consisting of a reduced range of content that meets heightened requirements, especially regarding inappropriate language and sexual suggestiveness." +], +"type": "string" +}, +"effectiveContentCategory": { +"description": "Output only. The content category which takes effect when serving the line item. When content category is set in both line item and advertiser, the stricter one will take effect when serving the line item.", +"enum": [ +"YOUTUBE_AND_PARTNERS_CONTENT_CATEGORY_UNSPECIFIED", +"YOUTUBE_AND_PARTNERS_CONTENT_CATEGORY_STANDARD", +"YOUTUBE_AND_PARTNERS_CONTENT_CATEGORY_EXPANDED", +"YOUTUBE_AND_PARTNERS_CONTENT_CATEGORY_LIMITED" +], +"enumDescriptions": [ +"Content category is not specified or is unknown in this version.", +"A category consisting of a wide range of content appropriate for most brands. The content is based off of YouTube's [advertiser-friendly content guidelines](https://support.google.com/youtube/answer/6162278).", +"A category including all content across YouTube and video partners that meets standards for monetization.", +"A category consisting of a reduced range of content that meets heightened requirements, especially regarding inappropriate language and sexual suggestiveness." +], +"readOnly": true, +"type": "string" +}, +"inventorySourceSettings": { +"$ref": "YoutubeAndPartnersInventorySourceConfig", +"description": "Settings that control what YouTube and Partners inventories the line item will target." +}, +"leadFormId": { +"description": "Optional. The ID of the form to generate leads.", +"format": "int64", +"type": "string" +}, +"linkedMerchantId": { +"description": "Optional. The ID of the merchant which is linked to the line item for product feed.", +"format": "int64", +"type": "string" +}, +"relatedVideoIds": { +"description": "Optional. The IDs of the videos appear below the primary video ad when the ad is playing in the YouTube app on mobile devices.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetFrequency": { +"$ref": "TargetFrequency", +"description": "Optional. The average number of times you want ads from this line item to show to the same person over a certain period of time." +}, +"thirdPartyMeasurementSettings": { +"$ref": "YoutubeAndPartnersThirdPartyMeasurementSettings", +"description": "Optional. The third-party measurement settings of the line item." +}, +"videoAdSequenceSettings": { +"$ref": "VideoAdSequenceSettings", +"description": "Optional. The settings related to VideoAdSequence." +}, +"viewFrequencyCap": { +"$ref": "FrequencyCap", +"description": "The view frequency cap settings of the line item. The max_views field in this settings object must be used if assigning a limited cap." +} +}, +"type": "object" +}, +"YoutubeAndPartnersThirdPartyMeasurementSettings": { +"description": "Settings that control what third-party vendors are measuring specific line item metrics.", +"id": "YoutubeAndPartnersThirdPartyMeasurementSettings", +"properties": { +"brandLiftVendorConfigs": { +"description": "The third-party vendors measuring brand lift. The following third-party vendors are applicable: * `THIRD_PARTY_VENDOR_DYNATA` * `THIRD_PARTY_VENDOR_KANTAR`", +"items": { +"$ref": "ThirdPartyVendorConfig" +}, +"type": "array" +}, +"brandSafetyVendorConfigs": { +"description": "The third-party vendors measuring brand safety. The following third-party vendors are applicable: * `THIRD_PARTY_VENDOR_ZERF` * `THIRD_PARTY_VENDOR_DOUBLE_VERIFY` * `THIRD_PARTY_VENDOR_INTEGRAL_AD_SCIENCE`", +"items": { +"$ref": "ThirdPartyVendorConfig" +}, +"type": "array" +}, +"reachVendorConfigs": { +"description": "The third-party vendors measuring reach. The following third-party vendors are applicable: * `THIRD_PARTY_VENDOR_NIELSEN` * `THIRD_PARTY_VENDOR_COMSCORE` * `THIRD_PARTY_VENDOR_KANTAR`", +"items": { +"$ref": "ThirdPartyVendorConfig" +}, +"type": "array" +}, +"viewabilityVendorConfigs": { +"description": "The third-party vendors measuring viewability. The following third-party vendors are applicable: * `THIRD_PARTY_VENDOR_MOAT` * `THIRD_PARTY_VENDOR_DOUBLE_VERIFY` * `THIRD_PARTY_VENDOR_INTEGRAL_AD_SCIENCE` * `THIRD_PARTY_VENDOR_COMSCORE` * `THIRD_PARTY_VENDOR_TELEMETRY` * `THIRD_PARTY_VENDOR_MEETRICS`", +"items": { +"$ref": "ThirdPartyVendorConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"YoutubeChannelAssignedTargetingOptionDetails": { +"description": "Details for YouTube channel assigned targeting option. This will be populated in the youtube_channel_details field when targeting_type is `TARGETING_TYPE_YOUTUBE_CHANNEL`.", +"id": "YoutubeChannelAssignedTargetingOptionDetails", +"properties": { +"channelId": { +"description": "The YouTube uploader channel id or the channel code of a YouTube channel.", +"type": "string" +}, +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +} +}, +"type": "object" +}, +"YoutubeVideoAssignedTargetingOptionDetails": { +"description": "Details for YouTube video assigned targeting option. This will be populated in the youtube_video_details field when targeting_type is `TARGETING_TYPE_YOUTUBE_VIDEO`.", +"id": "YoutubeVideoAssignedTargetingOptionDetails", +"properties": { +"negative": { +"description": "Indicates if this option is being negatively targeted.", +"type": "boolean" +}, +"videoId": { +"description": "YouTube video id as it appears on the YouTube watch page.", +"type": "string" +} +}, +"type": "object" +}, +"YoutubeVideoDetails": { +"description": "Details of a YouTube video.", +"id": "YoutubeVideoDetails", +"properties": { +"id": { +"description": "The YouTube video ID which can be searched on YouTube webpage.", +"type": "string" +}, +"unavailableReason": { +"description": "The reason why the video data is not available.", +"enum": [ +"VIDEO_UNAVAILABLE_REASON_UNSPECIFIED", +"VIDEO_UNAVAILABLE_REASON_PRIVATE", +"VIDEO_UNAVAILABLE_REASON_DELETED" +], +"enumDescriptions": [ +"Unknown or unspecified.", +"The video is private.", +"The video is deleted." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Display & Video 360 API", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dns.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dns.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..f50dabd27e3f406d5d9ad673041afeb7b1f5b680 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dns.v2.json @@ -0,0 +1,3377 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + }, + "https://www.googleapis.com/auth/cloud-platform.read-only": { + "description": "View your data across Google Cloud services and see the email address of your Google Account" + }, + "https://www.googleapis.com/auth/ndev.clouddns.readonly": { + "description": "View your DNS records hosted by Google Cloud DNS" + }, + "https://www.googleapis.com/auth/ndev.clouddns.readwrite": { + "description": "View and manage your DNS records hosted by Google Cloud DNS" + } + } + } + }, + "basePath": "", + "baseUrl": "https://dns.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Dns", + "description": "", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/dns/docs", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "dns:v2", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://dns.mtls.googleapis.com/", + "name": "dns", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "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", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "key": { + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "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", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "changes": { + "methods": { + "create": { + "description": "Atomically updates the ResourceRecordSet collection.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/changes", + "httpMethod": "POST", + "id": "dns.changes.create", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/changes", + "request": { + "$ref": "Change" + }, + "response": { + "$ref": "Change" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "get": { + "description": "Fetches the representation of an existing Change.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/changes/{changeId}", + "httpMethod": "GET", + "id": "dns.changes.get", + "parameterOrder": [ + "project", + "location", + "managedZone", + "changeId" + ], + "parameters": { + "changeId": { + "description": "The identifier of the requested change, from a previous ResourceRecordSetsChangeResponse.", + "location": "path", + "required": true, + "type": "string" + }, + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/changes/{changeId}", + "response": { + "$ref": "Change" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "description": "Enumerates Changes to a ResourceRecordSet collection.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/changes", + "httpMethod": "GET", + "id": "dns.changes.list", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "location": { + "default": "global", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "sortBy": { + "default": "CHANGE_SEQUENCE", + "description": "Sorting criterion. The only supported value is change sequence.", + "enum": [ + "CHANGE_SEQUENCE" + ], + "enumDescriptions": [ + "" + ], + "location": "query", + "type": "string" + }, + "sortOrder": { + "description": "Sorting order direction: 'ascending' or 'descending'.", + "location": "query", + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/changes", + "response": { + "$ref": "ChangesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "dnsKeys": { + "methods": { + "get": { + "description": "Fetches the representation of an existing DnsKey.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/dnsKeys/{dnsKeyId}", + "httpMethod": "GET", + "id": "dns.dnsKeys.get", + "parameterOrder": [ + "project", + "location", + "managedZone", + "dnsKeyId" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "digestType": { + "description": "An optional comma-separated list of digest types to compute and display for key signing keys. If omitted, the recommended digest type is computed and displayed.", + "location": "query", + "type": "string" + }, + "dnsKeyId": { + "description": "The identifier of the requested DnsKey.", + "location": "path", + "required": true, + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/dnsKeys/{dnsKeyId}", + "response": { + "$ref": "DnsKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "description": "Enumerates DnsKeys to a ResourceRecordSet collection.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/dnsKeys", + "httpMethod": "GET", + "id": "dns.dnsKeys.list", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "digestType": { + "description": "An optional comma-separated list of digest types to compute and display for key signing keys. If omitted, the recommended digest type is computed and displayed.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/dnsKeys", + "response": { + "$ref": "DnsKeysListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "managedZoneOperations": { + "methods": { + "get": { + "description": "Fetches the representation of an existing Operation.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/operations/{operation}", + "httpMethod": "GET", + "id": "dns.managedZoneOperations.get", + "parameterOrder": [ + "project", + "location", + "managedZone", + "operation" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "operation": { + "description": "Identifies the operation addressed by this request (ID of the operation).", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/operations/{operation}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "description": "Enumerates Operations for the given ManagedZone.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/operations", + "httpMethod": "GET", + "id": "dns.managedZoneOperations.list", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "sortBy": { + "default": "START_TIME", + "description": "Sorting criterion. The only supported values are START_TIME and ID.", + "enum": [ + "START_TIME", + "ID" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/operations", + "response": { + "$ref": "ManagedZoneOperationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "managedZones": { + "methods": { + "create": { + "description": "Creates a new ManagedZone.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones", + "httpMethod": "POST", + "id": "dns.managedZones.create", + "parameterOrder": [ + "project", + "location" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones", + "request": { + "$ref": "ManagedZone" + }, + "response": { + "$ref": "ManagedZone" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "delete": { + "description": "Deletes a previously created ManagedZone.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}", + "httpMethod": "DELETE", + "id": "dns.managedZones.delete", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "get": { + "description": "Fetches the representation of an existing ManagedZone.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}", + "httpMethod": "GET", + "id": "dns.managedZones.get", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}", + "response": { + "$ref": "ManagedZone" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "description": "Enumerates ManagedZones that have been created but not yet deleted.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones", + "httpMethod": "GET", + "id": "dns.managedZones.list", + "parameterOrder": [ + "project", + "location" + ], + "parameters": { + "dnsName": { + "description": "Restricts the list to return only zones with this domain name.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones", + "response": { + "$ref": "ManagedZonesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "patch": { + "description": "Applies a partial update to an existing ManagedZone.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}", + "httpMethod": "PATCH", + "id": "dns.managedZones.patch", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}", + "request": { + "$ref": "ManagedZone" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "update": { + "description": "Updates an existing ManagedZone.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}", + "httpMethod": "PUT", + "id": "dns.managedZones.update", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}", + "request": { + "$ref": "ManagedZone" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "policies": { + "methods": { + "create": { + "description": "Creates a new Policy.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/policies", + "httpMethod": "POST", + "id": "dns.policies.create", + "parameterOrder": [ + "project", + "location" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/policies", + "request": { + "$ref": "Policy" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "delete": { + "description": "Deletes a previously created Policy. Fails if the policy is still being referenced by a network.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/policies/{policy}", + "httpMethod": "DELETE", + "id": "dns.policies.delete", + "parameterOrder": [ + "project", + "location", + "policy" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "policy": { + "description": "User given friendly name of the policy addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/policies/{policy}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "get": { + "description": "Fetches the representation of an existing Policy.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/policies/{policy}", + "httpMethod": "GET", + "id": "dns.policies.get", + "parameterOrder": [ + "project", + "location", + "policy" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "policy": { + "description": "User given friendly name of the policy addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/policies/{policy}", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "description": "Enumerates all Policies associated with a project.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/policies", + "httpMethod": "GET", + "id": "dns.policies.list", + "parameterOrder": [ + "project", + "location" + ], + "parameters": { + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/policies", + "response": { + "$ref": "PoliciesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "patch": { + "description": "Applies a partial update to an existing Policy.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/policies/{policy}", + "httpMethod": "PATCH", + "id": "dns.policies.patch", + "parameterOrder": [ + "project", + "location", + "policy" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "policy": { + "description": "User given friendly name of the policy addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/policies/{policy}", + "request": { + "$ref": "Policy" + }, + "response": { + "$ref": "PoliciesPatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "update": { + "description": "Updates an existing Policy.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/policies/{policy}", + "httpMethod": "PUT", + "id": "dns.policies.update", + "parameterOrder": [ + "project", + "location", + "policy" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "policy": { + "description": "User given friendly name of the policy addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/policies/{policy}", + "request": { + "$ref": "Policy" + }, + "response": { + "$ref": "PoliciesUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "projects": { + "methods": { + "get": { + "description": "Fetches the representation of an existing Project.", + "flatPath": "dns/v2/projects/{project}/locations/{location}", + "httpMethod": "GET", + "id": "dns.projects.get", + "parameterOrder": [ + "project", + "location" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}", + "response": { + "$ref": "Project" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "resourceRecordSets": { + "methods": { + "create": { + "description": "Creates a new ResourceRecordSet.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets", + "httpMethod": "POST", + "id": "dns.resourceRecordSets.create", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets", + "request": { + "$ref": "ResourceRecordSet" + }, + "response": { + "$ref": "ResourceRecordSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "delete": { + "description": "Deletes a previously created ResourceRecordSet.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets/{name}/{type}", + "httpMethod": "DELETE", + "id": "dns.resourceRecordSets.delete", + "parameterOrder": [ + "project", + "location", + "managedZone", + "name", + "type" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "Fully qualified domain name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "type": { + "description": "RRSet type.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets/{name}/{type}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "get": { + "description": "Fetches the representation of an existing ResourceRecordSet.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets/{name}/{type}", + "httpMethod": "GET", + "id": "dns.resourceRecordSets.get", + "parameterOrder": [ + "project", + "location", + "managedZone", + "name", + "type" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "Fully qualified domain name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "type": { + "description": "RRSet type.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets/{name}/{type}", + "response": { + "$ref": "ResourceRecordSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "description": "Enumerates ResourceRecordSets that you have created but not yet deleted.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets", + "httpMethod": "GET", + "id": "dns.resourceRecordSets.list", + "parameterOrder": [ + "project", + "location", + "managedZone" + ], + "parameters": { + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "name": { + "description": "Restricts the list to return only records with this fully qualified domain name.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "type": { + "description": "Restricts the list to return only records of this type. If present, the \"name\" parameter must also be present.", + "location": "query", + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets", + "response": { + "$ref": "ResourceRecordSetsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "patch": { + "description": "Applies a partial update to an existing ResourceRecordSet.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets/{name}/{type}", + "httpMethod": "PATCH", + "id": "dns.resourceRecordSets.patch", + "parameterOrder": [ + "project", + "location", + "managedZone", + "name", + "type" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "managedZone": { + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "Fully qualified domain name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "type": { + "description": "RRSet type.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets/{name}/{type}", + "request": { + "$ref": "ResourceRecordSet" + }, + "response": { + "$ref": "ResourceRecordSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "responsePolicies": { + "methods": { + "create": { + "description": "Creates a new Response Policy", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies", + "httpMethod": "POST", + "id": "dns.responsePolicies.create", + "parameterOrder": [ + "project", + "location" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource, only applicable in the v APIs. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies", + "request": { + "$ref": "ResponsePolicy" + }, + "response": { + "$ref": "ResponsePolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "delete": { + "description": "Deletes a previously created Response Policy. Fails if the response policy is non-empty or still being referenced by a network.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}", + "httpMethod": "DELETE", + "id": "dns.responsePolicies.delete", + "parameterOrder": [ + "project", + "location", + "responsePolicy" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Response Policy addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "get": { + "description": "Fetches the representation of an existing Response Policy.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}", + "httpMethod": "GET", + "id": "dns.responsePolicies.get", + "parameterOrder": [ + "project", + "location", + "responsePolicy" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Response Policy addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}", + "response": { + "$ref": "ResponsePolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "description": "Enumerates all Response Policies associated with a project.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies", + "httpMethod": "GET", + "id": "dns.responsePolicies.list", + "parameterOrder": [ + "project", + "location" + ], + "parameters": { + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies", + "response": { + "$ref": "ResponsePoliciesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "patch": { + "description": "Applies a partial update to an existing Response Policy.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}", + "httpMethod": "PATCH", + "id": "dns.responsePolicies.patch", + "parameterOrder": [ + "project", + "location", + "responsePolicy" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Respones Policy addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}", + "request": { + "$ref": "ResponsePolicy" + }, + "response": { + "$ref": "ResponsePoliciesPatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "update": { + "description": "Updates an existing Response Policy.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}", + "httpMethod": "PUT", + "id": "dns.responsePolicies.update", + "parameterOrder": [ + "project", + "location", + "responsePolicy" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Response Policy addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}", + "request": { + "$ref": "ResponsePolicy" + }, + "response": { + "$ref": "ResponsePoliciesUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "responsePolicyRules": { + "methods": { + "create": { + "description": "Creates a new Response Policy Rule.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules", + "httpMethod": "POST", + "id": "dns.responsePolicyRules.create", + "parameterOrder": [ + "project", + "location", + "responsePolicy" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Response Policy containing the Response Policy Rule.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules", + "request": { + "$ref": "ResponsePolicyRule" + }, + "response": { + "$ref": "ResponsePolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "delete": { + "description": "Deletes a previously created Response Policy Rule.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", + "httpMethod": "DELETE", + "id": "dns.responsePolicyRules.delete", + "parameterOrder": [ + "project", + "location", + "responsePolicy", + "responsePolicyRule" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Response Policy containing the Response Policy Rule.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicyRule": { + "description": "User assigned name of the Response Policy Rule addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "get": { + "description": "Fetches the representation of an existing Response Policy Rule.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", + "httpMethod": "GET", + "id": "dns.responsePolicyRules.get", + "parameterOrder": [ + "project", + "location", + "responsePolicy", + "responsePolicyRule" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Response Policy containing the Response Policy Rule.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicyRule": { + "description": "User assigned name of the Response Policy Rule addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", + "response": { + "$ref": "ResponsePolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "description": "Enumerates all Response Policy Rules associated with a project.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules", + "httpMethod": "GET", + "id": "dns.responsePolicyRules.list", + "parameterOrder": [ + "project", + "location", + "responsePolicy" + ], + "parameters": { + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Response Policy to list.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules", + "response": { + "$ref": "ResponsePolicyRulesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "patch": { + "description": "Applies a partial update to an existing Response Policy Rule.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", + "httpMethod": "PATCH", + "id": "dns.responsePolicyRules.patch", + "parameterOrder": [ + "project", + "location", + "responsePolicy", + "responsePolicyRule" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Response Policy containing the Response Policy Rule.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicyRule": { + "description": "User assigned name of the Response Policy Rule addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", + "request": { + "$ref": "ResponsePolicyRule" + }, + "response": { + "$ref": "ResponsePolicyRulesPatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "update": { + "description": "Updates an existing Response Policy Rule.", + "flatPath": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", + "httpMethod": "PUT", + "id": "dns.responsePolicyRules.update", + "parameterOrder": [ + "project", + "location", + "responsePolicy", + "responsePolicyRule" + ], + "parameters": { + "clientOperationId": { + "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.", + "location": "query", + "type": "string" + }, + "location": { + "default": "global", + "description": "Specifies the location of the resource. This information will be used for routing and will be part of the resource name.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Identifies the project addressed by this request.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicy": { + "description": "User assigned name of the Response Policy containing the Response Policy Rule.", + "location": "path", + "required": true, + "type": "string" + }, + "responsePolicyRule": { + "description": "User assigned name of the Response Policy Rule addressed by this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", + "request": { + "$ref": "ResponsePolicyRule" + }, + "response": { + "$ref": "ResponsePolicyRulesUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + } + }, + "revision": "20220426", + "rootUrl": "https://dns.googleapis.com/", + "schemas": { + "Change": { + "description": "A Change represents a set of ResourceRecordSet additions and deletions applied atomically to a ManagedZone. ResourceRecordSets within a ManagedZone are modified by creating a new Change element in the Changes collection. In turn the Changes collection also records the past modifications to the ResourceRecordSets in a ManagedZone. The current state of the ManagedZone is the sum effect of applying all Change elements in the Changes collection in sequence.", + "id": "Change", + "properties": { + "additions": { + "description": "Which ResourceRecordSets to add?", + "items": { + "$ref": "ResourceRecordSet" + }, + "type": "array" + }, + "deletions": { + "description": "Which ResourceRecordSets to remove? Must match existing data exactly.", + "items": { + "$ref": "ResourceRecordSet" + }, + "type": "array" + }, + "id": { + "description": "Unique identifier for the resource; defined by the server (output only).", + "type": "string" + }, + "isServing": { + "description": "If the DNS queries for the zone will be served.", + "type": "boolean" + }, + "kind": { + "default": "dns#change", + "type": "string" + }, + "startTime": { + "description": "The time that this operation was started by the server (output only). This is in RFC3339 text format.", + "type": "string" + }, + "status": { + "description": "Status of the operation (output only). A status of \"done\" means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.", + "enum": [ + "PENDING", + "DONE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "ChangesListResponse": { + "description": "The response to a request to enumerate Changes to a ResourceRecordSets collection.", + "id": "ChangesListResponse", + "properties": { + "changes": { + "description": "The requested changes.", + "items": { + "$ref": "Change" + }, + "type": "array" + }, + "header": { + "$ref": "ResponseHeader" + }, + "kind": { + "default": "dns#changesListResponse", + "description": "Type of resource.", + "type": "string" + }, + "nextPageToken": { + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a \"snapshot\" of collections larger than the maximum page size.", + "type": "string" + } + }, + "type": "object" + }, + "DnsKey": { + "description": "A DNSSEC key pair.", + "id": "DnsKey", + "properties": { + "algorithm": { + "description": "String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.", + "enum": [ + "RSASHA1", + "RSASHA256", + "RSASHA512", + "ECDSAP256SHA256", + "ECDSAP384SHA384" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "creationTime": { + "description": "The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.", + "type": "string" + }, + "description": { + "description": "A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the resource's function.", + "type": "string" + }, + "digests": { + "description": "Cryptographic hashes of the DNSKEY resource record associated with this DnsKey. These digests are needed to construct a DS record that points at this DNS key. Output only.", + "items": { + "$ref": "DnsKeyDigest" + }, + "type": "array" + }, + "id": { + "description": "Unique identifier for the resource; defined by the server (output only).", + "type": "string" + }, + "isActive": { + "description": "Active keys are used to sign subsequent changes to the ManagedZone. Inactive keys are still present as DNSKEY Resource Records for the use of resolvers validating existing signatures.", + "type": "boolean" + }, + "keyLength": { + "description": "Length of the key in bits. Specified at creation time, and then immutable.", + "format": "uint32", + "type": "integer" + }, + "keyTag": { + "description": "The key tag is a non-cryptographic hash of the a DNSKEY resource record associated with this DnsKey. The key tag can be used to identify a DNSKEY more quickly (but it is not a unique identifier). In particular, the key tag is used in a parent zone's DS record to point at the DNSKEY in this child ManagedZone. The key tag is a number in the range [0, 65535] and the algorithm to calculate it is specified in RFC4034 Appendix B. Output only.", + "format": "int32", + "type": "integer" + }, + "kind": { + "default": "dns#dnsKey", + "type": "string" + }, + "publicKey": { + "description": "Base64 encoded public half of this key. Output only.", + "type": "string" + }, + "type": { + "description": "One of \"KEY_SIGNING\" or \"ZONE_SIGNING\". Keys of type KEY_SIGNING have the Secure Entry Point flag set and, when active, are used to sign only resource record sets of type DNSKEY. Otherwise, the Secure Entry Point flag is cleared, and this key is used to sign only resource record sets of other types. Immutable after creation time.", + "enum": [ + "KEY_SIGNING", + "ZONE_SIGNING" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "DnsKeyDigest": { + "id": "DnsKeyDigest", + "properties": { + "digest": { + "description": "The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.", + "type": "string" + }, + "type": { + "description": "Specifies the algorithm used to calculate this digest.", + "enum": [ + "SHA1", + "SHA256", + "SHA384" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "DnsKeySpec": { + "description": "Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.", + "id": "DnsKeySpec", + "properties": { + "algorithm": { + "description": "String mnemonic specifying the DNSSEC algorithm of this key.", + "enum": [ + "RSASHA1", + "RSASHA256", + "RSASHA512", + "ECDSAP256SHA256", + "ECDSAP384SHA384" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "keyLength": { + "description": "Length of the keys in bits.", + "format": "uint32", + "type": "integer" + }, + "keyType": { + "description": "Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, are only used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and are used to sign all other types of resource record sets.", + "enum": [ + "KEY_SIGNING", + "ZONE_SIGNING" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "kind": { + "default": "dns#dnsKeySpec", + "type": "string" + } + }, + "type": "object" + }, + "DnsKeysListResponse": { + "description": "The response to a request to enumerate DnsKeys in a ManagedZone.", + "id": "DnsKeysListResponse", + "properties": { + "dnsKeys": { + "description": "The requested resources.", + "items": { + "$ref": "DnsKey" + }, + "type": "array" + }, + "header": { + "$ref": "ResponseHeader" + }, + "kind": { + "default": "dns#dnsKeysListResponse", + "description": "Type of resource.", + "type": "string" + }, + "nextPageToken": { + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. In this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. There is no way to retrieve a \"snapshot\" of collections larger than the maximum page size.", + "type": "string" + } + }, + "type": "object" + }, + "ManagedZone": { + "description": "A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.", + "id": "ManagedZone", + "properties": { + "cloudLoggingConfig": { + "$ref": "ManagedZoneCloudLoggingConfig" + }, + "creationTime": { + "description": "The time that this resource was created on the server. This is in RFC3339 text format. Output only.", + "type": "string" + }, + "description": { + "description": "A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.", + "type": "string" + }, + "dnsName": { + "description": "The DNS name of this managed zone, for instance \"example.com.\".", + "type": "string" + }, + "dnssecConfig": { + "$ref": "ManagedZoneDnsSecConfig", + "description": "DNSSEC configuration." + }, + "forwardingConfig": { + "$ref": "ManagedZoneForwardingConfig", + "description": "The presence for this field indicates that outbound forwarding is enabled for this zone. The value of this field contains the set of destinations to forward to." + }, + "id": { + "description": "Unique identifier for the resource; defined by the server (output only)", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "dns#managedZone", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User labels.", + "type": "object" + }, + "name": { + "description": "User assigned name for this resource. Must be unique within the project. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.", + "type": "string" + }, + "nameServerSet": { + "description": "Optionally specifies the NameServerSet for this ManagedZone. A NameServerSet is a set of DNS name servers that all host the same ManagedZones. Most users leave this field unset. If you need to use this field, contact your account team.", + "type": "string" + }, + "nameServers": { + "description": "Delegate your managed_zone to these virtual name servers; defined by the server (output only)", + "items": { + "type": "string" + }, + "type": "array" + }, + "peeringConfig": { + "$ref": "ManagedZonePeeringConfig", + "description": "The presence of this field indicates that DNS Peering is enabled for this zone. The value of this field contains the network to peer with." + }, + "privateVisibilityConfig": { + "$ref": "ManagedZonePrivateVisibilityConfig", + "description": "For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from." + }, + "reverseLookupConfig": { + "$ref": "ManagedZoneReverseLookupConfig", + "description": "The presence of this field indicates that this is a managed reverse lookup zone and Cloud DNS resolves reverse lookup queries using automatically configured records for VPC resources. This only applies to networks listed under private_visibility_config." + }, + "serviceDirectoryConfig": { + "$ref": "ManagedZoneServiceDirectoryConfig", + "description": "This field links to the associated service directory namespace. Do not set this field for public zones or forwarding zones." + }, + "visibility": { + "description": "The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.", + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "ManagedZoneCloudLoggingConfig": { + "description": "Cloud Logging configurations for publicly visible zones.", + "id": "ManagedZoneCloudLoggingConfig", + "properties": { + "enableLogging": { + "description": "If set, enable query logging for this ManagedZone. False by default, making logging opt-in.", + "type": "boolean" + }, + "kind": { + "default": "dns#managedZoneCloudLoggingConfig", + "type": "string" + } + }, + "type": "object" + }, + "ManagedZoneDnsSecConfig": { + "id": "ManagedZoneDnsSecConfig", + "properties": { + "defaultKeySpecs": { + "description": "Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF.", + "items": { + "$ref": "DnsKeySpec" + }, + "type": "array" + }, + "kind": { + "default": "dns#managedZoneDnsSecConfig", + "type": "string" + }, + "nonExistence": { + "description": "Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF.", + "enum": [ + "NSEC", + "NSEC3" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "state": { + "description": "Specifies whether DNSSEC is enabled, and what mode it is in.", + "enum": [ + "OFF", + "ON", + "TRANSFER" + ], + "enumDescriptions": [ + "DNSSEC is disabled; the zone is not signed.", + "DNSSEC is enabled; the zone is signed and fully managed.", + "DNSSEC is enabled, but in a \"transfer\" mode." + ], + "type": "string" + } + }, + "type": "object" + }, + "ManagedZoneForwardingConfig": { + "id": "ManagedZoneForwardingConfig", + "properties": { + "kind": { + "default": "dns#managedZoneForwardingConfig", + "type": "string" + }, + "targetNameServers": { + "description": "List of target name servers to forward to. Cloud DNS selects the best available name server if more than one target is given.", + "items": { + "$ref": "ManagedZoneForwardingConfigNameServerTarget" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedZoneForwardingConfigNameServerTarget": { + "id": "ManagedZoneForwardingConfigNameServerTarget", + "properties": { + "forwardingPath": { + "description": "Forwarding path for this NameServerTarget. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on IP address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target.", + "enum": [ + "DEFAULT", + "PRIVATE" + ], + "enumDescriptions": [ + "Cloud DNS makes forwarding decisions based on address ranges; that is, RFC1918 addresses forward to the target through the VPC and non-RFC1918 addresses forward to the target through the internet", + "Cloud DNS always forwards to this target through the VPC." + ], + "type": "string" + }, + "ipv4Address": { + "description": "IPv4 address of a target name server.", + "type": "string" + }, + "kind": { + "default": "dns#managedZoneForwardingConfigNameServerTarget", + "type": "string" + } + }, + "type": "object" + }, + "ManagedZoneOperationsListResponse": { + "id": "ManagedZoneOperationsListResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "kind": { + "default": "dns#managedZoneOperationsListResponse", + "type": "string" + }, + "nextPageToken": { + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", + "type": "string" + }, + "operations": { + "description": "The operation resources.", + "items": { + "$ref": "Operation" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedZonePeeringConfig": { + "id": "ManagedZonePeeringConfig", + "properties": { + "kind": { + "default": "dns#managedZonePeeringConfig", + "type": "string" + }, + "targetNetwork": { + "$ref": "ManagedZonePeeringConfigTargetNetwork", + "description": "The network with which to peer." + } + }, + "type": "object" + }, + "ManagedZonePeeringConfigTargetNetwork": { + "id": "ManagedZonePeeringConfigTargetNetwork", + "properties": { + "deactivateTime": { + "description": "The time at which the zone was deactivated, in RFC 3339 date-time format. An empty string indicates that the peering connection is active. The producer network can deactivate a zone. The zone is automatically deactivated if the producer network that the zone targeted is deleted. Output only.", + "type": "string" + }, + "kind": { + "default": "dns#managedZonePeeringConfigTargetNetwork", + "type": "string" + }, + "networkUrl": { + "description": "The fully qualified URL of the VPC network to forward queries to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}", + "type": "string" + } + }, + "type": "object" + }, + "ManagedZonePrivateVisibilityConfig": { + "id": "ManagedZonePrivateVisibilityConfig", + "properties": { + "gkeClusters": { + "description": "The list of Google Kubernetes Engine clusters that can see this zone.", + "items": { + "$ref": "ManagedZonePrivateVisibilityConfigGKECluster" + }, + "type": "array" + }, + "kind": { + "default": "dns#managedZonePrivateVisibilityConfig", + "type": "string" + }, + "networks": { + "description": "The list of VPC networks that can see this zone.", + "items": { + "$ref": "ManagedZonePrivateVisibilityConfigNetwork" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedZonePrivateVisibilityConfigGKECluster": { + "id": "ManagedZonePrivateVisibilityConfigGKECluster", + "properties": { + "gkeClusterName": { + "description": "The resource name of the cluster to bind this ManagedZone to. This should be specified in the format like: projects/*/locations/*/clusters/*. This is referenced from GKE projects.locations.clusters.get API: https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/get", + "type": "string" + }, + "kind": { + "default": "dns#managedZonePrivateVisibilityConfigGKECluster", + "type": "string" + } + }, + "type": "object" + }, + "ManagedZonePrivateVisibilityConfigNetwork": { + "id": "ManagedZonePrivateVisibilityConfigNetwork", + "properties": { + "kind": { + "default": "dns#managedZonePrivateVisibilityConfigNetwork", + "type": "string" + }, + "networkUrl": { + "description": "The fully qualified URL of the VPC network to bind to. Format this URL like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}", + "type": "string" + } + }, + "type": "object" + }, + "ManagedZoneReverseLookupConfig": { + "id": "ManagedZoneReverseLookupConfig", + "properties": { + "kind": { + "default": "dns#managedZoneReverseLookupConfig", + "type": "string" + } + }, + "type": "object" + }, + "ManagedZoneServiceDirectoryConfig": { + "description": "Contains information about Service Directory-backed zones.", + "id": "ManagedZoneServiceDirectoryConfig", + "properties": { + "kind": { + "default": "dns#managedZoneServiceDirectoryConfig", + "type": "string" + }, + "namespace": { + "$ref": "ManagedZoneServiceDirectoryConfigNamespace", + "description": "Contains information about the namespace associated with the zone." + } + }, + "type": "object" + }, + "ManagedZoneServiceDirectoryConfigNamespace": { + "id": "ManagedZoneServiceDirectoryConfigNamespace", + "properties": { + "deletionTime": { + "description": "The time that the namespace backing this zone was deleted; an empty string if it still exists. This is in RFC3339 text format. Output only.", + "type": "string" + }, + "kind": { + "default": "dns#managedZoneServiceDirectoryConfigNamespace", + "type": "string" + }, + "namespaceUrl": { + "description": "The fully qualified URL of the namespace associated with the zone. Format must be https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}", + "type": "string" + } + }, + "type": "object" + }, + "ManagedZonesListResponse": { + "id": "ManagedZonesListResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "kind": { + "default": "dns#managedZonesListResponse", + "description": "Type of resource.", + "type": "string" + }, + "managedZones": { + "description": "The managed zone resources.", + "items": { + "$ref": "ManagedZone" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", + "type": "string" + } + }, + "type": "object" + }, + "Operation": { + "description": "An operation represents a successful mutation performed on a Cloud DNS resource. Operations provide: - An audit log of server resource mutations. - A way to recover/retry API calls in the case where the response is never received by the caller. Use the caller specified client_operation_id.", + "id": "Operation", + "properties": { + "dnsKeyContext": { + "$ref": "OperationDnsKeyContext", + "description": "Only populated if the operation targeted a DnsKey (output only)." + }, + "id": { + "description": "Unique identifier for the resource. This is the client_operation_id if the client specified it when the mutation was initiated, otherwise, it is generated by the server. The name must be 1-63 characters long and match the regular expression [-a-z0-9]? (output only)", + "type": "string" + }, + "kind": { + "default": "dns#operation", + "type": "string" + }, + "startTime": { + "description": "The time that this operation was started by the server. This is in RFC3339 text format (output only).", + "type": "string" + }, + "status": { + "description": "Status of the operation. Can be one of the following: \"PENDING\" or \"DONE\" (output only). A status of \"DONE\" means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.", + "enum": [ + "PENDING", + "DONE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "type": { + "description": "Type of the operation. Operations include insert, update, and delete (output only).", + "type": "string" + }, + "user": { + "description": "User who requested the operation, for example: user@example.com. cloud-dns-system for operations automatically done by the system. (output only)", + "type": "string" + }, + "zoneContext": { + "$ref": "OperationManagedZoneContext", + "description": "Only populated if the operation targeted a ManagedZone (output only)." + } + }, + "type": "object" + }, + "OperationDnsKeyContext": { + "id": "OperationDnsKeyContext", + "properties": { + "newValue": { + "$ref": "DnsKey", + "description": "The post-operation DnsKey resource." + }, + "oldValue": { + "$ref": "DnsKey", + "description": "The pre-operation DnsKey resource." + } + }, + "type": "object" + }, + "OperationManagedZoneContext": { + "id": "OperationManagedZoneContext", + "properties": { + "newValue": { + "$ref": "ManagedZone", + "description": "The post-operation ManagedZone resource." + }, + "oldValue": { + "$ref": "ManagedZone", + "description": "The pre-operation ManagedZone resource." + } + }, + "type": "object" + }, + "PoliciesListResponse": { + "id": "PoliciesListResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "kind": { + "default": "dns#policiesListResponse", + "description": "Type of resource.", + "type": "string" + }, + "nextPageToken": { + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", + "type": "string" + }, + "policies": { + "description": "The policy resources.", + "items": { + "$ref": "Policy" + }, + "type": "array" + } + }, + "type": "object" + }, + "PoliciesPatchResponse": { + "id": "PoliciesPatchResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "policy": { + "$ref": "Policy" + } + }, + "type": "object" + }, + "PoliciesUpdateResponse": { + "id": "PoliciesUpdateResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "policy": { + "$ref": "Policy" + } + }, + "type": "object" + }, + "Policy": { + "description": "A policy is a collection of DNS rules applied to one or more Virtual Private Cloud resources.", + "id": "Policy", + "properties": { + "alternativeNameServerConfig": { + "$ref": "PolicyAlternativeNameServerConfig", + "description": "Sets an alternative name server for the associated networks. When specified, all DNS queries are forwarded to a name server that you choose. Names such as .internal are not available when an alternative name server is specified." + }, + "description": { + "description": "A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the policy's function.", + "type": "string" + }, + "enableInboundForwarding": { + "description": "Allows networks bound to this policy to receive DNS queries sent by VMs or applications over VPN connections. When enabled, a virtual IP address is allocated from each of the subnetworks that are bound to this policy.", + "type": "boolean" + }, + "enableLogging": { + "description": "Controls whether logging is enabled for the networks bound to this policy. Defaults to no logging if not set.", + "type": "boolean" + }, + "id": { + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "dns#policy", + "type": "string" + }, + "name": { + "description": "User-assigned name for this policy.", + "type": "string" + }, + "networks": { + "description": "List of network names specifying networks to which this policy is applied.", + "items": { + "$ref": "PolicyNetwork" + }, + "type": "array" + } + }, + "type": "object" + }, + "PolicyAlternativeNameServerConfig": { + "id": "PolicyAlternativeNameServerConfig", + "properties": { + "kind": { + "default": "dns#policyAlternativeNameServerConfig", + "type": "string" + }, + "targetNameServers": { + "description": "Sets an alternative name server for the associated networks. When specified, all DNS queries are forwarded to a name server that you choose. Names such as .internal are not available when an alternative name server is specified.", + "items": { + "$ref": "PolicyAlternativeNameServerConfigTargetNameServer" + }, + "type": "array" + } + }, + "type": "object" + }, + "PolicyAlternativeNameServerConfigTargetNameServer": { + "id": "PolicyAlternativeNameServerConfigTargetNameServer", + "properties": { + "forwardingPath": { + "description": "Forwarding path for this TargetNameServer. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target.", + "enum": [ + "DEFAULT", + "PRIVATE" + ], + "enumDescriptions": [ + "Cloud DNS makes forwarding decision based on IP address ranges; that is, RFC1918 addresses forward to the target through the VPC and non-RFC1918 addresses forward to the target through the internet", + "Cloud DNS always forwards to this target through the VPC." + ], + "type": "string" + }, + "ipv4Address": { + "description": "IPv4 address to forward to.", + "type": "string" + }, + "kind": { + "default": "dns#policyAlternativeNameServerConfigTargetNameServer", + "type": "string" + } + }, + "type": "object" + }, + "PolicyNetwork": { + "id": "PolicyNetwork", + "properties": { + "kind": { + "default": "dns#policyNetwork", + "type": "string" + }, + "networkUrl": { + "description": "The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}", + "type": "string" + } + }, + "type": "object" + }, + "Project": { + "description": "A project resource. The project is a top level container for resources including Cloud DNS ManagedZones. Projects can be created only in the APIs console. Next tag: 7.", + "id": "Project", + "properties": { + "id": { + "description": "User assigned unique identifier for the resource (output only).", + "type": "string" + }, + "kind": { + "default": "dns#project", + "type": "string" + }, + "number": { + "description": "Unique numeric identifier for the resource; defined by the server (output only).", + "format": "uint64", + "type": "string" + }, + "quota": { + "$ref": "Quota", + "description": "Quotas assigned to this project (output only)." + } + }, + "type": "object" + }, + "Quota": { + "description": "Limits associated with a Project.", + "id": "Quota", + "properties": { + "dnsKeysPerManagedZone": { + "description": "Maximum allowed number of DnsKeys per ManagedZone.", + "format": "int32", + "type": "integer" + }, + "itemsPerRoutingPolicy": { + "description": "Maximum allowed number of items per routing policy.", + "format": "int32", + "type": "integer" + }, + "kind": { + "default": "dns#quota", + "type": "string" + }, + "managedZones": { + "description": "Maximum allowed number of managed zones in the project.", + "format": "int32", + "type": "integer" + }, + "managedZonesPerNetwork": { + "description": "Maximum allowed number of managed zones which can be attached to a network.", + "format": "int32", + "type": "integer" + }, + "networksPerManagedZone": { + "description": "Maximum allowed number of networks to which a privately scoped zone can be attached.", + "format": "int32", + "type": "integer" + }, + "networksPerPolicy": { + "description": "Maximum allowed number of networks per policy.", + "format": "int32", + "type": "integer" + }, + "peeringZonesPerTargetNetwork": { + "description": "Maximum allowed number of consumer peering zones per target network owned by this producer project", + "format": "int32", + "type": "integer" + }, + "policies": { + "description": "Maximum allowed number of policies per project.", + "format": "int32", + "type": "integer" + }, + "resourceRecordsPerRrset": { + "description": "Maximum allowed number of ResourceRecords per ResourceRecordSet.", + "format": "int32", + "type": "integer" + }, + "rrsetAdditionsPerChange": { + "description": "Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.", + "format": "int32", + "type": "integer" + }, + "rrsetDeletionsPerChange": { + "description": "Maximum allowed number of ResourceRecordSets to delete per ChangesCreateRequest.", + "format": "int32", + "type": "integer" + }, + "rrsetsPerManagedZone": { + "description": "Maximum allowed number of ResourceRecordSets per zone in the project.", + "format": "int32", + "type": "integer" + }, + "targetNameServersPerManagedZone": { + "description": "Maximum allowed number of target name servers per managed forwarding zone.", + "format": "int32", + "type": "integer" + }, + "targetNameServersPerPolicy": { + "description": "Maximum allowed number of alternative target name servers per policy.", + "format": "int32", + "type": "integer" + }, + "totalRrdataSizePerChange": { + "description": "Maximum allowed size for total rrdata in one ChangesCreateRequest in bytes.", + "format": "int32", + "type": "integer" + }, + "whitelistedKeySpecs": { + "description": "DNSSEC algorithm and key length types that can be used for DnsKeys.", + "items": { + "$ref": "DnsKeySpec" + }, + "type": "array" + } + }, + "type": "object" + }, + "RRSetRoutingPolicy": { + "description": "A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection.", + "id": "RRSetRoutingPolicy", + "properties": { + "geo": { + "$ref": "RRSetRoutingPolicyGeoPolicy" + }, + "kind": { + "default": "dns#rRSetRoutingPolicy", + "type": "string" + }, + "wrr": { + "$ref": "RRSetRoutingPolicyWrrPolicy" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyGeoPolicy": { + "description": "Configures a RRSetRoutingPolicy that routes based on the geo location of the querying user.", + "id": "RRSetRoutingPolicyGeoPolicy", + "properties": { + "items": { + "description": "The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead.", + "items": { + "$ref": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem" + }, + "type": "array" + }, + "kind": { + "default": "dns#rRSetRoutingPolicyGeoPolicy", + "type": "string" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyGeoPolicyGeoPolicyItem": { + "description": "ResourceRecordSet data for one geo location.", + "id": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "properties": { + "kind": { + "default": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", + "type": "string" + }, + "location": { + "description": "The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. \"us-east1\", \"southamerica-east1\", \"asia-east1\", etc.", + "type": "string" + }, + "rrdatas": { + "items": { + "type": "string" + }, + "type": "array" + }, + "signatureRrdatas": { + "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 ip per item. .", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyWrrPolicy": { + "description": "Configures a RRSetRoutingPolicy that routes in a weighted round robin fashion.", + "id": "RRSetRoutingPolicyWrrPolicy", + "properties": { + "items": { + "items": { + "$ref": "RRSetRoutingPolicyWrrPolicyWrrPolicyItem" + }, + "type": "array" + }, + "kind": { + "default": "dns#rRSetRoutingPolicyWrrPolicy", + "type": "string" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyWrrPolicyWrrPolicyItem": { + "description": "A routing block which contains the routing information for one WRR item.", + "id": "RRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "properties": { + "kind": { + "default": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", + "type": "string" + }, + "rrdatas": { + "items": { + "type": "string" + }, + "type": "array" + }, + "signatureRrdatas": { + "description": "DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 ip per item. .", + "items": { + "type": "string" + }, + "type": "array" + }, + "weight": { + "description": "The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "ResourceRecordSet": { + "description": "A unit of data that is returned by the DNS servers.", + "id": "ResourceRecordSet", + "properties": { + "kind": { + "default": "dns#resourceRecordSet", + "type": "string" + }, + "name": { + "description": "For example, www.example.com.", + "type": "string" + }, + "routingPolicy": { + "$ref": "RRSetRoutingPolicy", + "description": "Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise." + }, + "rrdatas": { + "description": "As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.", + "items": { + "type": "string" + }, + "type": "array" + }, + "signatureRrdatas": { + "description": "As defined in RFC 4034 (section 3.2).", + "items": { + "type": "string" + }, + "type": "array" + }, + "ttl": { + "description": "Number of seconds that this ResourceRecordSet can be cached by resolvers.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "The identifier of a supported record type. See the list of Supported DNS record types.", + "type": "string" + } + }, + "type": "object" + }, + "ResourceRecordSetsListResponse": { + "id": "ResourceRecordSetsListResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "kind": { + "default": "dns#resourceRecordSetsListResponse", + "description": "Type of resource.", + "type": "string" + }, + "nextPageToken": { + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve complete contents of even larger collections, one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", + "type": "string" + }, + "rrsets": { + "description": "The resource record set resources.", + "items": { + "$ref": "ResourceRecordSet" + }, + "type": "array" + } + }, + "type": "object" + }, + "ResponseHeader": { + "description": "Elements common to every response.", + "id": "ResponseHeader", + "properties": { + "operationId": { + "description": "For mutating operation requests that completed successfully. This is the client_operation_id if the client specified it, otherwise it is generated by the server (output only).", + "type": "string" + } + }, + "type": "object" + }, + "ResponsePoliciesListResponse": { + "id": "ResponsePoliciesListResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "nextPageToken": { + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", + "type": "string" + }, + "responsePolicies": { + "description": "The Response Policy resources.", + "items": { + "$ref": "ResponsePolicy" + }, + "type": "array" + } + }, + "type": "object" + }, + "ResponsePoliciesPatchResponse": { + "id": "ResponsePoliciesPatchResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "responsePolicy": { + "$ref": "ResponsePolicy" + } + }, + "type": "object" + }, + "ResponsePoliciesUpdateResponse": { + "id": "ResponsePoliciesUpdateResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "responsePolicy": { + "$ref": "ResponsePolicy" + } + }, + "type": "object" + }, + "ResponsePolicy": { + "description": "A Response Policy is a collection of selectors that apply to queries made against one or more Virtual Private Cloud networks.", + "id": "ResponsePolicy", + "properties": { + "description": { + "description": "User-provided description for this Response Policy.", + "type": "string" + }, + "gkeClusters": { + "description": "The list of Google Kubernetes Engine clusters to which this response policy is applied.", + "items": { + "$ref": "ResponsePolicyGKECluster" + }, + "type": "array" + }, + "id": { + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "int64", + "type": "string" + }, + "kind": { + "default": "dns#responsePolicy", + "type": "string" + }, + "networks": { + "description": "List of network names specifying networks to which this policy is applied.", + "items": { + "$ref": "ResponsePolicyNetwork" + }, + "type": "array" + }, + "responsePolicyName": { + "description": "User assigned name for this Response Policy.", + "type": "string" + } + }, + "type": "object" + }, + "ResponsePolicyGKECluster": { + "id": "ResponsePolicyGKECluster", + "properties": { + "gkeClusterName": { + "description": "The resource name of the cluster to bind this response policy to. This should be specified in the format like: projects/*/locations/*/clusters/*. This is referenced from GKE projects.locations.clusters.get API: https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/get", + "type": "string" + }, + "kind": { + "default": "dns#responsePolicyGKECluster", + "type": "string" + } + }, + "type": "object" + }, + "ResponsePolicyNetwork": { + "id": "ResponsePolicyNetwork", + "properties": { + "kind": { + "default": "dns#responsePolicyNetwork", + "type": "string" + }, + "networkUrl": { + "description": "The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}", + "type": "string" + } + }, + "type": "object" + }, + "ResponsePolicyRule": { + "description": "A Response Policy Rule is a selector that applies its behavior to queries that match the selector. Selectors are DNS names, which may be wildcards or exact matches. Each DNS query subject to a Response Policy matches at most one ResponsePolicyRule, as identified by the dns_name field with the longest matching suffix.", + "id": "ResponsePolicyRule", + "properties": { + "behavior": { + "description": "Answer this query with a behavior rather than DNS data.", + "enum": [ + "BEHAVIOR_UNSPECIFIED", + "BYPASS_RESPONSE_POLICY" + ], + "enumDescriptions": [ + "", + "Skip a less-specific ResponsePolicyRule and continue normal query logic. This can be used in conjunction with a wildcard to exempt a subset of the wildcard ResponsePolicyRule from the ResponsePolicy behavior and e.g., query the public internet instead. For instance, if these rules exist: *.example.com -> 1.2.3.4 foo.example.com -> PASSTHRU Then a query for 'foo.example.com' skips the wildcard." + ], + "type": "string" + }, + "dnsName": { + "description": "The DNS name (wildcard or exact) to apply this rule to. Must be unique within the Response Policy Rule.", + "type": "string" + }, + "kind": { + "default": "dns#responsePolicyRule", + "type": "string" + }, + "localData": { + "$ref": "ResponsePolicyRuleLocalData", + "description": "Answer this query directly with DNS data. These ResourceRecordSets override any other DNS behavior for the matched name; in particular they override private zones, the public internet, and GCP internal DNS. No SOA nor NS types are allowed." + }, + "ruleName": { + "description": "An identifier for this rule. Must be unique with the ResponsePolicy.", + "type": "string" + } + }, + "type": "object" + }, + "ResponsePolicyRuleLocalData": { + "id": "ResponsePolicyRuleLocalData", + "properties": { + "localDatas": { + "description": "All resource record sets for this selector, one per resource record type. The name must match the dns_name.", + "items": { + "$ref": "ResourceRecordSet" + }, + "type": "array" + } + }, + "type": "object" + }, + "ResponsePolicyRulesListResponse": { + "id": "ResponsePolicyRulesListResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "nextPageToken": { + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", + "type": "string" + }, + "responsePolicyRules": { + "description": "The Response Policy Rule resources.", + "items": { + "$ref": "ResponsePolicyRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "ResponsePolicyRulesPatchResponse": { + "id": "ResponsePolicyRulesPatchResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "responsePolicyRule": { + "$ref": "ResponsePolicyRule" + } + }, + "type": "object" + }, + "ResponsePolicyRulesUpdateResponse": { + "id": "ResponsePolicyRulesUpdateResponse", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "responsePolicyRule": { + "$ref": "ResponsePolicyRule" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Cloud DNS API", + "version": "v2" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/driveactivity.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/driveactivity.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..74f03dfed28dded199931bccb3719f10e6981a83 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/driveactivity.v2.json @@ -0,0 +1,1447 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/drive.activity": { +"description": "View and add to the activity record of files in your Google Drive" +}, +"https://www.googleapis.com/auth/drive.activity.readonly": { +"description": "View the activity record of files in your Google Drive" +} +} +} +}, +"basePath": "", +"baseUrl": "https://driveactivity.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Drive Activity", +"description": "Provides a historical view of activity in Google Drive.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/drive/activity/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "driveactivity:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://driveactivity.mtls.googleapis.com/", +"name": "driveactivity", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"activity": { +"methods": { +"query": { +"description": "Query past activity in Google Drive.", +"flatPath": "v2/activity:query", +"httpMethod": "POST", +"id": "driveactivity.activity.query", +"parameterOrder": [], +"parameters": {}, +"path": "v2/activity:query", +"request": { +"$ref": "QueryDriveActivityRequest" +}, +"response": { +"$ref": "QueryDriveActivityResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive.activity", +"https://www.googleapis.com/auth/drive.activity.readonly" +] +} +} +} +}, +"revision": "20240625", +"rootUrl": "https://driveactivity.googleapis.com/", +"schemas": { +"Action": { +"description": "Information about the action.", +"id": "Action", +"properties": { +"actor": { +"$ref": "Actor", +"description": "The actor responsible for this action (or empty if all actors are responsible)." +}, +"detail": { +"$ref": "ActionDetail", +"description": "The type and detailed information about the action." +}, +"target": { +"$ref": "Target", +"description": "The target this action affects (or empty if affecting all targets). This represents the state of the target immediately after this action occurred." +}, +"timeRange": { +"$ref": "TimeRange", +"description": "The action occurred over this time range." +}, +"timestamp": { +"description": "The action occurred at this specific time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ActionDetail": { +"description": "Data describing the type and additional information of an action.", +"id": "ActionDetail", +"properties": { +"appliedLabelChange": { +"$ref": "AppliedLabelChange", +"description": "Label was changed." +}, +"comment": { +"$ref": "Comment", +"description": "A change about comments was made." +}, +"create": { +"$ref": "Create", +"description": "An object was created." +}, +"delete": { +"$ref": "Delete", +"description": "An object was deleted." +}, +"dlpChange": { +"$ref": "DataLeakPreventionChange", +"description": "A change happened in data leak prevention status." +}, +"edit": { +"$ref": "Edit", +"description": "An object was edited." +}, +"move": { +"$ref": "Move", +"description": "An object was moved." +}, +"permissionChange": { +"$ref": "PermissionChange", +"description": "The permission on an object was changed." +}, +"reference": { +"$ref": "ApplicationReference", +"description": "An object was referenced in an application outside of Drive/Docs." +}, +"rename": { +"$ref": "Rename", +"description": "An object was renamed." +}, +"restore": { +"$ref": "Restore", +"description": "A deleted object was restored." +}, +"settingsChange": { +"$ref": "SettingsChange", +"description": "Settings were changed." +} +}, +"type": "object" +}, +"Actor": { +"description": "The actor of a Drive activity.", +"id": "Actor", +"properties": { +"administrator": { +"$ref": "Administrator", +"description": "An administrator." +}, +"anonymous": { +"$ref": "AnonymousUser", +"description": "An anonymous user." +}, +"impersonation": { +"$ref": "Impersonation", +"description": "An account acting on behalf of another." +}, +"system": { +"$ref": "SystemEvent", +"description": "A non-user actor (i.e. system triggered)." +}, +"user": { +"$ref": "User", +"description": "An end user." +} +}, +"type": "object" +}, +"Administrator": { +"description": "Empty message representing an administrator.", +"id": "Administrator", +"properties": {}, +"type": "object" +}, +"AnonymousUser": { +"description": "Empty message representing an anonymous user or indicating the authenticated user should be anonymized.", +"id": "AnonymousUser", +"properties": {}, +"type": "object" +}, +"Anyone": { +"description": "Represents any user (including a logged out user).", +"id": "Anyone", +"properties": {}, +"type": "object" +}, +"ApplicationReference": { +"description": "Activity in applications other than Drive.", +"id": "ApplicationReference", +"properties": { +"type": { +"description": "The reference type corresponding to this event.", +"enum": [ +"UNSPECIFIED_REFERENCE_TYPE", +"LINK", +"DISCUSS" +], +"enumDescriptions": [ +"The type is not available.", +"The links of one or more Drive items were posted.", +"Comments were made regarding a Drive item." +], +"type": "string" +} +}, +"type": "object" +}, +"AppliedLabelChange": { +"description": "Label changes that were made on the Target.", +"id": "AppliedLabelChange", +"properties": { +"changes": { +"description": "Changes that were made to the Label on the Target.", +"items": { +"$ref": "AppliedLabelChangeDetail" +}, +"type": "array" +} +}, +"type": "object" +}, +"AppliedLabelChangeDetail": { +"description": "A change made to a Label on the Target.", +"id": "AppliedLabelChangeDetail", +"properties": { +"fieldChanges": { +"description": "Field Changes. Only present if `types` contains `LABEL_FIELD_VALUE_CHANGED`.", +"items": { +"$ref": "FieldValueChange" +}, +"type": "array" +}, +"label": { +"description": "The Label name representing the Label that changed. This name always contains the revision of the Label that was used when this Action occurred. The format is `labels/id@revision`.", +"type": "string" +}, +"title": { +"description": "The human-readable title of the label that changed.", +"type": "string" +}, +"types": { +"description": "The types of changes made to the Label on the Target.", +"items": { +"enum": [ +"TYPE_UNSPECIFIED", +"LABEL_ADDED", +"LABEL_REMOVED", +"LABEL_FIELD_VALUE_CHANGED", +"LABEL_APPLIED_BY_ITEM_CREATE" +], +"enumDescriptions": [ +"The type of change to this Label is not available.", +"The identified Label was added to the Target.", +"The identified Label was removed from the Target.", +"Field values were changed on the Target.", +"The Label was applied as a side-effect of Drive item creation." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Assignment": { +"description": "A comment with an assignment.", +"id": "Assignment", +"properties": { +"assignedUser": { +"$ref": "User", +"description": "The user to whom the comment was assigned." +}, +"subtype": { +"description": "The sub-type of this event.", +"enum": [ +"SUBTYPE_UNSPECIFIED", +"ADDED", +"DELETED", +"REPLY_ADDED", +"REPLY_DELETED", +"RESOLVED", +"REOPENED", +"REASSIGNED" +], +"enumDescriptions": [ +"Subtype not available.", +"An assignment was added.", +"An assignment was deleted.", +"An assignment reply was added.", +"An assignment reply was deleted.", +"An assignment was resolved.", +"A resolved assignment was reopened.", +"An assignment was reassigned." +], +"type": "string" +} +}, +"type": "object" +}, +"Comment": { +"description": "A change about comments on an object.", +"id": "Comment", +"properties": { +"assignment": { +"$ref": "Assignment", +"description": "A change on an assignment." +}, +"mentionedUsers": { +"description": "Users who are mentioned in this comment.", +"items": { +"$ref": "User" +}, +"type": "array" +}, +"post": { +"$ref": "Post", +"description": "A change on a regular posted comment." +}, +"suggestion": { +"$ref": "Suggestion", +"description": "A change on a suggestion." +} +}, +"type": "object" +}, +"ConsolidationStrategy": { +"description": "How the individual activities are consolidated. If a set of activities is related they can be consolidated into one combined activity, such as one actor performing the same action on multiple targets, or multiple actors performing the same action on a single target. The strategy defines the rules for which activities are related.", +"id": "ConsolidationStrategy", +"properties": { +"legacy": { +"$ref": "Legacy", +"description": "The individual activities are consolidated using the legacy strategy." +}, +"none": { +"$ref": "NoConsolidation", +"description": "The individual activities are not consolidated." +} +}, +"type": "object" +}, +"Copy": { +"description": "An object was created by copying an existing object.", +"id": "Copy", +"properties": { +"originalObject": { +"$ref": "TargetReference", +"description": "The original object." +} +}, +"type": "object" +}, +"Create": { +"description": "An object was created.", +"id": "Create", +"properties": { +"copy": { +"$ref": "Copy", +"description": "If present, indicates the object was created by copying an existing Drive object." +}, +"new": { +"$ref": "New", +"description": "If present, indicates the object was newly created (e.g. as a blank document), not derived from a Drive object or external object." +}, +"upload": { +"$ref": "Upload", +"description": "If present, indicates the object originated externally and was uploaded to Drive." +} +}, +"type": "object" +}, +"DataLeakPreventionChange": { +"description": "A change in the object's data leak prevention status.", +"id": "DataLeakPreventionChange", +"properties": { +"type": { +"description": "The type of Data Leak Prevention (DLP) change.", +"enum": [ +"TYPE_UNSPECIFIED", +"FLAGGED", +"CLEARED" +], +"enumDescriptions": [ +"An update to the DLP state that is neither FLAGGED or CLEARED.", +"Document has been flagged as containing sensitive content.", +"Document is no longer flagged as containing sensitive content." +], +"type": "string" +} +}, +"type": "object" +}, +"Date": { +"description": "Wrapper for Date Field value.", +"id": "Date", +"properties": { +"value": { +"description": "Date value.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Delete": { +"description": "An object was deleted.", +"id": "Delete", +"properties": { +"type": { +"description": "The type of delete action taken.", +"enum": [ +"TYPE_UNSPECIFIED", +"TRASH", +"PERMANENT_DELETE" +], +"enumDescriptions": [ +"Deletion type is not available.", +"An object was put into the trash.", +"An object was deleted permanently." +], +"type": "string" +} +}, +"type": "object" +}, +"DeletedUser": { +"description": "A user whose account has since been deleted.", +"id": "DeletedUser", +"properties": {}, +"type": "object" +}, +"Domain": { +"description": "Information about a domain.", +"id": "Domain", +"properties": { +"legacyId": { +"description": "An opaque string used to identify this domain.", +"type": "string" +}, +"name": { +"description": "The name of the domain, e.g. `google.com`.", +"type": "string" +} +}, +"type": "object" +}, +"Drive": { +"description": "Information about a shared drive.", +"id": "Drive", +"properties": { +"name": { +"description": "The resource name of the shared drive. The format is `COLLECTION_ID/DRIVE_ID`. Clients should not assume a specific collection ID for this resource name.", +"type": "string" +}, +"root": { +"$ref": "DriveItem", +"description": "The root of this shared drive." +}, +"title": { +"description": "The title of the shared drive.", +"type": "string" +} +}, +"type": "object" +}, +"DriveActivity": { +"description": "A single Drive activity comprising one or more Actions by one or more Actors on one or more Targets. Some Action groupings occur spontaneously, such as moving an item into a shared folder triggering a permission change. Other groupings of related Actions, such as multiple Actors editing one item or moving multiple files into a new folder, are controlled by the selection of a ConsolidationStrategy in the QueryDriveActivityRequest.", +"id": "DriveActivity", +"properties": { +"actions": { +"description": "Details on all actions in this activity.", +"items": { +"$ref": "Action" +}, +"type": "array" +}, +"actors": { +"description": "All actor(s) responsible for the activity.", +"items": { +"$ref": "Actor" +}, +"type": "array" +}, +"primaryActionDetail": { +"$ref": "ActionDetail", +"description": "Key information about the primary action for this activity. This is either representative, or the most important, of all actions in the activity, according to the ConsolidationStrategy in the request." +}, +"targets": { +"description": "All Google Drive objects this activity is about (e.g. file, folder, drive). This represents the state of the target immediately after the actions occurred.", +"items": { +"$ref": "Target" +}, +"type": "array" +}, +"timeRange": { +"$ref": "TimeRange", +"description": "The activity occurred over this time range." +}, +"timestamp": { +"description": "The activity occurred at this specific time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"DriveFile": { +"description": "A Drive item which is a file.", +"id": "DriveFile", +"properties": {}, +"type": "object" +}, +"DriveFolder": { +"description": "A Drive item which is a folder.", +"id": "DriveFolder", +"properties": { +"type": { +"description": "The type of Drive folder.", +"enum": [ +"TYPE_UNSPECIFIED", +"MY_DRIVE_ROOT", +"SHARED_DRIVE_ROOT", +"STANDARD_FOLDER" +], +"enumDescriptions": [ +"The folder type is unknown.", +"The folder is the root of a user's MyDrive.", +"The folder is the root of a shared drive.", +"The folder is a standard, non-root, folder." +], +"type": "string" +} +}, +"type": "object" +}, +"DriveItem": { +"description": "A Drive item, such as a file or folder.", +"id": "DriveItem", +"properties": { +"driveFile": { +"$ref": "DriveFile", +"description": "The Drive item is a file." +}, +"driveFolder": { +"$ref": "DriveFolder", +"description": "The Drive item is a folder. Includes information about the type of folder." +}, +"file": { +"$ref": "File", +"deprecated": true, +"description": "This field is deprecated; please use the `driveFile` field instead." +}, +"folder": { +"$ref": "Folder", +"deprecated": true, +"description": "This field is deprecated; please use the `driveFolder` field instead." +}, +"mimeType": { +"description": "The MIME type of the Drive item. See https://developers.google.com/drive/v3/web/mime-types.", +"type": "string" +}, +"name": { +"description": "The target Drive item. The format is `items/ITEM_ID`.", +"type": "string" +}, +"owner": { +"$ref": "Owner", +"description": "Information about the owner of this Drive item." +}, +"title": { +"description": "The title of the Drive item.", +"type": "string" +} +}, +"type": "object" +}, +"DriveItemReference": { +"description": "A lightweight reference to a Drive item, such as a file or folder.", +"id": "DriveItemReference", +"properties": { +"driveFile": { +"$ref": "DriveFile", +"description": "The Drive item is a file." +}, +"driveFolder": { +"$ref": "DriveFolder", +"description": "The Drive item is a folder. Includes information about the type of folder." +}, +"file": { +"$ref": "File", +"deprecated": true, +"description": "This field is deprecated; please use the `driveFile` field instead." +}, +"folder": { +"$ref": "Folder", +"deprecated": true, +"description": "This field is deprecated; please use the `driveFolder` field instead." +}, +"name": { +"description": "The target Drive item. The format is `items/ITEM_ID`.", +"type": "string" +}, +"title": { +"description": "The title of the Drive item.", +"type": "string" +} +}, +"type": "object" +}, +"DriveReference": { +"description": "A lightweight reference to a shared drive.", +"id": "DriveReference", +"properties": { +"name": { +"description": "The resource name of the shared drive. The format is `COLLECTION_ID/DRIVE_ID`. Clients should not assume a specific collection ID for this resource name.", +"type": "string" +}, +"title": { +"description": "The title of the shared drive.", +"type": "string" +} +}, +"type": "object" +}, +"Edit": { +"description": "An empty message indicating an object was edited.", +"id": "Edit", +"properties": {}, +"type": "object" +}, +"FieldValue": { +"description": "Contains a value of a Field.", +"id": "FieldValue", +"properties": { +"date": { +"$ref": "Date", +"description": "Date Field value." +}, +"integer": { +"$ref": "Integer", +"description": "Integer Field value." +}, +"selection": { +"$ref": "Selection", +"description": "Selection Field value." +}, +"selectionList": { +"$ref": "SelectionList", +"description": "Selection List Field value." +}, +"text": { +"$ref": "Text", +"description": "Text Field value." +}, +"textList": { +"$ref": "TextList", +"description": "Text List Field value." +}, +"user": { +"$ref": "SingleUser", +"description": "User Field value." +}, +"userList": { +"$ref": "UserList", +"description": "User List Field value." +} +}, +"type": "object" +}, +"FieldValueChange": { +"description": "Change to a Field value.", +"id": "FieldValueChange", +"properties": { +"displayName": { +"description": "The human-readable display name for this field.", +"type": "string" +}, +"fieldId": { +"description": "The ID of this field. Field IDs are unique within a Label.", +"type": "string" +}, +"newValue": { +"$ref": "FieldValue", +"description": "The value that is now set on the field. If not present, the field was cleared. At least one of {old_value|new_value} is always set." +}, +"oldValue": { +"$ref": "FieldValue", +"description": "The value that was previously set on the field. If not present, the field was newly set. At least one of {old_value|new_value} is always set." +} +}, +"type": "object" +}, +"File": { +"deprecated": true, +"description": "This item is deprecated; please see `DriveFile` instead.", +"id": "File", +"properties": {}, +"type": "object" +}, +"FileComment": { +"description": "A comment on a file.", +"id": "FileComment", +"properties": { +"legacyCommentId": { +"description": "The comment in the discussion thread. This identifier is an opaque string compatible with the Drive API; see https://developers.google.com/drive/v3/reference/comments/get", +"type": "string" +}, +"legacyDiscussionId": { +"description": "The discussion thread to which the comment was added. This identifier is an opaque string compatible with the Drive API and references the first comment in a discussion; see https://developers.google.com/drive/v3/reference/comments/get", +"type": "string" +}, +"linkToDiscussion": { +"description": "The link to the discussion thread containing this comment, for example, `https://docs.google.com/DOCUMENT_ID/edit?disco=THREAD_ID`.", +"type": "string" +}, +"parent": { +"$ref": "DriveItem", +"description": "The Drive item containing this comment." +} +}, +"type": "object" +}, +"Folder": { +"deprecated": true, +"description": "This item is deprecated; please see `DriveFolder` instead.", +"id": "Folder", +"properties": { +"type": { +"description": "This field is deprecated; please see `DriveFolder.type` instead.", +"enum": [ +"TYPE_UNSPECIFIED", +"MY_DRIVE_ROOT", +"TEAM_DRIVE_ROOT", +"STANDARD_FOLDER" +], +"enumDescriptions": [ +"This item is deprecated; please see `DriveFolder.Type` instead.", +"This item is deprecated; please see `DriveFolder.Type` instead.", +"This item is deprecated; please see `DriveFolder.Type` instead.", +"This item is deprecated; please see `DriveFolder.Type` instead." +], +"type": "string" +} +}, +"type": "object" +}, +"Group": { +"description": "Information about a group.", +"id": "Group", +"properties": { +"email": { +"description": "The email address of the group.", +"type": "string" +}, +"title": { +"description": "The title of the group.", +"type": "string" +} +}, +"type": "object" +}, +"Impersonation": { +"description": "Information about an impersonation, where an admin acts on behalf of an end user. Information about the acting admin is not currently available.", +"id": "Impersonation", +"properties": { +"impersonatedUser": { +"$ref": "User", +"description": "The impersonated user." +} +}, +"type": "object" +}, +"Integer": { +"description": "Wrapper for Integer Field value.", +"id": "Integer", +"properties": { +"value": { +"description": "Integer value.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"KnownUser": { +"description": "A known user.", +"id": "KnownUser", +"properties": { +"isCurrentUser": { +"description": "True if this is the user making the request.", +"type": "boolean" +}, +"personName": { +"description": "The identifier for this user that can be used with the People API to get more information. The format is `people/ACCOUNT_ID`. See https://developers.google.com/people/.", +"type": "string" +} +}, +"type": "object" +}, +"Legacy": { +"description": "A strategy that consolidates activities using the grouping rules from the legacy V1 Activity API. Similar actions occurring within a window of time can be grouped across multiple targets (such as moving a set of files at once) or multiple actors (such as several users editing the same item). Grouping rules for this strategy are specific to each type of action.", +"id": "Legacy", +"properties": {}, +"type": "object" +}, +"Move": { +"description": "An object was moved.", +"id": "Move", +"properties": { +"addedParents": { +"description": "The added parent object(s).", +"items": { +"$ref": "TargetReference" +}, +"type": "array" +}, +"removedParents": { +"description": "The removed parent object(s).", +"items": { +"$ref": "TargetReference" +}, +"type": "array" +} +}, +"type": "object" +}, +"New": { +"description": "An object was created from scratch.", +"id": "New", +"properties": {}, +"type": "object" +}, +"NoConsolidation": { +"description": "A strategy that does no consolidation of individual activities.", +"id": "NoConsolidation", +"properties": {}, +"type": "object" +}, +"Owner": { +"description": "Information about the owner of a Drive item.", +"id": "Owner", +"properties": { +"domain": { +"$ref": "Domain", +"description": "The domain of the Drive item owner." +}, +"drive": { +"$ref": "DriveReference", +"description": "The drive that owns the item." +}, +"teamDrive": { +"$ref": "TeamDriveReference", +"deprecated": true, +"description": "This field is deprecated; please use the `drive` field instead." +}, +"user": { +"$ref": "User", +"description": "The user that owns the Drive item." +} +}, +"type": "object" +}, +"Permission": { +"description": "The permission setting of an object.", +"id": "Permission", +"properties": { +"allowDiscovery": { +"description": "If true, the item can be discovered (e.g. in the user's \"Shared with me\" collection) without needing a link to the item.", +"type": "boolean" +}, +"anyone": { +"$ref": "Anyone", +"description": "If set, this permission applies to anyone, even logged out users." +}, +"domain": { +"$ref": "Domain", +"description": "The domain to whom this permission applies." +}, +"group": { +"$ref": "Group", +"description": "The group to whom this permission applies." +}, +"role": { +"description": "Indicates the [Google Drive permissions role](https://developers.google.com/drive/web/manage-sharing#roles). The role determines a user's ability to read, write, and comment on items.", +"enum": [ +"ROLE_UNSPECIFIED", +"OWNER", +"ORGANIZER", +"FILE_ORGANIZER", +"EDITOR", +"COMMENTER", +"VIEWER", +"PUBLISHED_VIEWER" +], +"enumDescriptions": [ +"The role is not available.", +"A role granting full access.", +"A role granting the ability to manage people and settings.", +"A role granting the ability to contribute and manage content.", +"A role granting the ability to contribute content. This role is sometimes also known as \"writer\".", +"A role granting the ability to view and comment on content.", +"A role granting the ability to view content. This role is sometimes also known as \"reader\".", +"A role granting the ability to view content only after it has been published to the web. This role is sometimes also known as \"published reader\". See https://support.google.com/sites/answer/6372880 for more information." +], +"type": "string" +}, +"user": { +"$ref": "User", +"description": "The user to whom this permission applies." +} +}, +"type": "object" +}, +"PermissionChange": { +"description": "A change of the permission setting on an item.", +"id": "PermissionChange", +"properties": { +"addedPermissions": { +"description": "The set of permissions added by this change.", +"items": { +"$ref": "Permission" +}, +"type": "array" +}, +"removedPermissions": { +"description": "The set of permissions removed by this change.", +"items": { +"$ref": "Permission" +}, +"type": "array" +} +}, +"type": "object" +}, +"Post": { +"description": "A regular posted comment.", +"id": "Post", +"properties": { +"subtype": { +"description": "The sub-type of this event.", +"enum": [ +"SUBTYPE_UNSPECIFIED", +"ADDED", +"DELETED", +"REPLY_ADDED", +"REPLY_DELETED", +"RESOLVED", +"REOPENED" +], +"enumDescriptions": [ +"Subtype not available.", +"A post was added.", +"A post was deleted.", +"A reply was added.", +"A reply was deleted.", +"A posted comment was resolved.", +"A posted comment was reopened." +], +"type": "string" +} +}, +"type": "object" +}, +"QueryDriveActivityRequest": { +"description": "The request message for querying Drive activity.", +"id": "QueryDriveActivityRequest", +"properties": { +"ancestorName": { +"description": "Return activities for this Drive folder, plus all children and descendants. The format is `items/ITEM_ID`.", +"type": "string" +}, +"consolidationStrategy": { +"$ref": "ConsolidationStrategy", +"description": "Details on how to consolidate related actions that make up the activity. If not set, then related actions aren't consolidated." +}, +"filter": { +"description": "The filtering for items returned from this query request. The format of the filter string is a sequence of expressions, joined by an optional \"AND\", where each expression is of the form \"field operator value\". Supported fields: - `time`: Uses numerical operators on date values either in terms of milliseconds since Jan 1, 1970 or in RFC 3339 format. Examples: - `time > 1452409200000 AND time <= 1492812924310` - `time >= \"2016-01-10T01:02:03-05:00\"` - `detail.action_detail_case`: Uses the \"has\" operator (:) and either a singular value or a list of allowed action types enclosed in parentheses, separated by a space. To exclude a result from the response, prepend a hyphen (`-`) to the beginning of the filter string. Examples: - `detail.action_detail_case:RENAME` - `detail.action_detail_case:(CREATE RESTORE)` - `-detail.action_detail_case:MOVE` ", +"type": "string" +}, +"itemName": { +"description": "Return activities for this Drive item. The format is `items/ITEM_ID`.", +"type": "string" +}, +"pageSize": { +"description": "The minimum number of activities desired in the response; the server attempts to return at least this quantity. The server may also return fewer activities if it has a partial response ready before the request times out. If not set, a default value is used.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "The token identifies which page of results to return. Set this to the next_page_token value returned from a previous query to obtain the following page of results. If not set, the first page of results is returned.", +"type": "string" +} +}, +"type": "object" +}, +"QueryDriveActivityResponse": { +"description": "Response message for querying Drive activity.", +"id": "QueryDriveActivityResponse", +"properties": { +"activities": { +"description": "List of activity requested.", +"items": { +"$ref": "DriveActivity" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"Rename": { +"description": "An object was renamed.", +"id": "Rename", +"properties": { +"newTitle": { +"description": "The new title of the drive object.", +"type": "string" +}, +"oldTitle": { +"description": "The previous title of the drive object.", +"type": "string" +} +}, +"type": "object" +}, +"Restore": { +"description": "A deleted object was restored.", +"id": "Restore", +"properties": { +"type": { +"description": "The type of restore action taken.", +"enum": [ +"TYPE_UNSPECIFIED", +"UNTRASH" +], +"enumDescriptions": [ +"The type is not available.", +"An object was restored from the trash." +], +"type": "string" +} +}, +"type": "object" +}, +"RestrictionChange": { +"description": "Information about restriction policy changes to a feature.", +"id": "RestrictionChange", +"properties": { +"feature": { +"description": "The feature which had a change in restriction policy.", +"enum": [ +"FEATURE_UNSPECIFIED", +"SHARING_OUTSIDE_DOMAIN", +"DIRECT_SHARING", +"ITEM_DUPLICATION", +"DRIVE_FILE_STREAM", +"FILE_ORGANIZER_CAN_SHARE_FOLDERS" +], +"enumDescriptions": [ +"The feature which changed restriction settings was not available.", +"When restricted, this prevents items from being shared outside the domain.", +"When restricted, this prevents direct sharing of individual items.", +"When restricted, this prevents actions like copy, download, and print that might result in uncontrolled duplicates of items.", +"When restricted, this prevents use of Drive File Stream.", +"When restricted, this limits sharing of folders to managers only." +], +"type": "string" +}, +"newRestriction": { +"description": "The restriction in place after the change.", +"enum": [ +"RESTRICTION_UNSPECIFIED", +"UNRESTRICTED", +"FULLY_RESTRICTED" +], +"enumDescriptions": [ +"The type of restriction is not available.", +"The feature is available without restriction.", +"The use of this feature is fully restricted." +], +"type": "string" +} +}, +"type": "object" +}, +"Selection": { +"description": "Wrapper for Selection Field value as combined value/display_name pair for selected choice.", +"id": "Selection", +"properties": { +"displayName": { +"description": "Selection value as human-readable display string.", +"type": "string" +}, +"value": { +"description": "Selection value as Field Choice ID.", +"type": "string" +} +}, +"type": "object" +}, +"SelectionList": { +"description": "Wrapper for SelectionList Field value.", +"id": "SelectionList", +"properties": { +"values": { +"description": "Selection values.", +"items": { +"$ref": "Selection" +}, +"type": "array" +} +}, +"type": "object" +}, +"SettingsChange": { +"description": "Information about settings changes.", +"id": "SettingsChange", +"properties": { +"restrictionChanges": { +"description": "The set of changes made to restrictions.", +"items": { +"$ref": "RestrictionChange" +}, +"type": "array" +} +}, +"type": "object" +}, +"SingleUser": { +"description": "Wrapper for User Field value.", +"id": "SingleUser", +"properties": { +"value": { +"description": "User value as email.", +"type": "string" +} +}, +"type": "object" +}, +"Suggestion": { +"description": "A suggestion.", +"id": "Suggestion", +"properties": { +"subtype": { +"description": "The sub-type of this event.", +"enum": [ +"SUBTYPE_UNSPECIFIED", +"ADDED", +"DELETED", +"REPLY_ADDED", +"REPLY_DELETED", +"ACCEPTED", +"REJECTED", +"ACCEPT_DELETED", +"REJECT_DELETED" +], +"enumDescriptions": [ +"Subtype not available.", +"A suggestion was added.", +"A suggestion was deleted.", +"A suggestion reply was added.", +"A suggestion reply was deleted.", +"A suggestion was accepted.", +"A suggestion was rejected.", +"An accepted suggestion was deleted.", +"A rejected suggestion was deleted." +], +"type": "string" +} +}, +"type": "object" +}, +"SystemEvent": { +"description": "Event triggered by system operations instead of end users.", +"id": "SystemEvent", +"properties": { +"type": { +"description": "The type of the system event that may triggered activity.", +"enum": [ +"TYPE_UNSPECIFIED", +"USER_DELETION", +"TRASH_AUTO_PURGE" +], +"enumDescriptions": [ +"The event type is unspecified.", +"The event is a consequence of a user account being deleted.", +"The event is due to the system automatically purging trash." +], +"type": "string" +} +}, +"type": "object" +}, +"Target": { +"description": "Information about the target of activity. For more information on how activity history is shared with users, see [Activity history visibility](https://developers.google.com/drive/activity/v2#activityhistory).", +"id": "Target", +"properties": { +"drive": { +"$ref": "Drive", +"description": "The target is a shared drive." +}, +"driveItem": { +"$ref": "DriveItem", +"description": "The target is a Drive item." +}, +"fileComment": { +"$ref": "FileComment", +"description": "The target is a comment on a Drive file." +}, +"teamDrive": { +"$ref": "TeamDrive", +"deprecated": true, +"description": "This field is deprecated; please use the `drive` field instead." +} +}, +"type": "object" +}, +"TargetReference": { +"description": "A lightweight reference to the target of activity.", +"id": "TargetReference", +"properties": { +"drive": { +"$ref": "DriveReference", +"description": "The target is a shared drive." +}, +"driveItem": { +"$ref": "DriveItemReference", +"description": "The target is a Drive item." +}, +"teamDrive": { +"$ref": "TeamDriveReference", +"deprecated": true, +"description": "This field is deprecated; please use the `drive` field instead." +} +}, +"type": "object" +}, +"TeamDrive": { +"deprecated": true, +"description": "This item is deprecated; please see `Drive` instead.", +"id": "TeamDrive", +"properties": { +"name": { +"description": "This field is deprecated; please see `Drive.name` instead.", +"type": "string" +}, +"root": { +"$ref": "DriveItem", +"description": "This field is deprecated; please see `Drive.root` instead." +}, +"title": { +"description": "This field is deprecated; please see `Drive.title` instead.", +"type": "string" +} +}, +"type": "object" +}, +"TeamDriveReference": { +"deprecated": true, +"description": "This item is deprecated; please see `DriveReference` instead.", +"id": "TeamDriveReference", +"properties": { +"name": { +"description": "This field is deprecated; please see `DriveReference.name` instead.", +"type": "string" +}, +"title": { +"description": "This field is deprecated; please see `DriveReference.title` instead.", +"type": "string" +} +}, +"type": "object" +}, +"Text": { +"description": "Wrapper for Text Field value.", +"id": "Text", +"properties": { +"value": { +"description": "Value of Text Field.", +"type": "string" +} +}, +"type": "object" +}, +"TextList": { +"description": "Wrapper for Text List Field value.", +"id": "TextList", +"properties": { +"values": { +"description": "Text values.", +"items": { +"$ref": "Text" +}, +"type": "array" +} +}, +"type": "object" +}, +"TimeRange": { +"description": "Information about time ranges.", +"id": "TimeRange", +"properties": { +"endTime": { +"description": "The end of the time range.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The start of the time range.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UnknownUser": { +"description": "A user about whom nothing is currently known.", +"id": "UnknownUser", +"properties": {}, +"type": "object" +}, +"Upload": { +"description": "An object was uploaded into Drive.", +"id": "Upload", +"properties": {}, +"type": "object" +}, +"User": { +"description": "Information about an end user.", +"id": "User", +"properties": { +"deletedUser": { +"$ref": "DeletedUser", +"description": "A user whose account has since been deleted." +}, +"knownUser": { +"$ref": "KnownUser", +"description": "A known user." +}, +"unknownUser": { +"$ref": "UnknownUser", +"description": "A user about whom nothing is currently known." +} +}, +"type": "object" +}, +"UserList": { +"description": "Wrapper for UserList Field value.", +"id": "UserList", +"properties": { +"values": { +"description": "User values.", +"items": { +"$ref": "SingleUser" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Drive Activity API", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..f5112321e75c359f5cc70761d151a541d481d4a7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json @@ -0,0 +1,1012 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://essentialcontacts.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Essentialcontacts", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/essentialcontacts/docs/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "essentialcontacts:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://essentialcontacts.mtls.googleapis.com/", +"name": "essentialcontacts", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"folders": { +"resources": { +"contacts": { +"methods": { +"compute": { +"description": "Lists all contacts for the resource that are subscribed to the specified notification categories, including contacts inherited from any parent resources.", +"flatPath": "v1/folders/{foldersId}/contacts:compute", +"httpMethod": "GET", +"id": "essentialcontacts.folders.contacts.compute", +"parameterOrder": [ +"parent" +], +"parameters": { +"notificationCategories": { +"description": "The categories of notifications to compute contacts for. If ALL is included in this list, contacts subscribed to any notification category will be returned.", +"enum": [ +"NOTIFICATION_CATEGORY_UNSPECIFIED", +"ALL", +"SUSPENSION", +"SECURITY", +"TECHNICAL", +"BILLING", +"LEGAL", +"PRODUCT_UPDATES", +"TECHNICAL_INCIDENTS" +], +"enumDescriptions": [ +"Notification category is unrecognized or unspecified.", +"All notifications related to the resource, including notifications pertaining to categories added in the future.", +"Notifications related to imminent account suspension.", +"Notifications related to security/privacy incidents, notifications, and vulnerabilities.", +"Notifications related to technical events and issues such as outages, errors, or bugs.", +"Notifications related to billing and payments notifications, price updates, errors, or credits.", +"Notifications related to enforcement actions, regulatory compliance, or government notices.", +"Notifications related to new versions, product terms updates, or deprecations.", +"Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the resource to compute contacts for. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contacts:compute", +"response": { +"$ref": "GoogleCloudEssentialcontactsV1ComputeContactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Adds a new contact for a resource.", +"flatPath": "v1/folders/{foldersId}/contacts", +"httpMethod": "POST", +"id": "essentialcontacts.folders.contacts.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource to save this contact for. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contacts", +"request": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"response": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a contact.", +"flatPath": "v1/folders/{foldersId}/contacts/{contactsId}", +"httpMethod": "DELETE", +"id": "essentialcontacts.folders.contacts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the contact to delete. Format: organizations/{organization_id}/contacts/{contact_id}, folders/{folder_id}/contacts/{contact_id} or projects/{project_id}/contacts/{contact_id}", +"location": "path", +"pattern": "^folders/[^/]+/contacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a single contact.", +"flatPath": "v1/folders/{foldersId}/contacts/{contactsId}", +"httpMethod": "GET", +"id": "essentialcontacts.folders.contacts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the contact to retrieve. Format: organizations/{organization_id}/contacts/{contact_id}, folders/{folder_id}/contacts/{contact_id} or projects/{project_id}/contacts/{contact_id}", +"location": "path", +"pattern": "^folders/[^/]+/contacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the contacts that have been set on a resource.", +"flatPath": "v1/folders/{foldersId}/contacts", +"httpMethod": "GET", +"id": "essentialcontacts.folders.contacts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contacts", +"response": { +"$ref": "GoogleCloudEssentialcontactsV1ListContactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a contact. Note: A contact's email address cannot be changed.", +"flatPath": "v1/folders/{foldersId}/contacts/{contactsId}", +"httpMethod": "PATCH", +"id": "essentialcontacts.folders.contacts.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", +"location": "path", +"pattern": "^folders/[^/]+/contacts/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The update mask applied to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"response": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"sendTestMessage": { +"description": "Allows a contact admin to send a test message to contact to verify that it has been configured correctly.", +"flatPath": "v1/folders/{foldersId}/contacts:sendTestMessage", +"httpMethod": "POST", +"id": "essentialcontacts.folders.contacts.sendTestMessage", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "Required. The name of the resource to send the test message for. All contacts must either be set directly on this resource or inherited from another resource that is an ancestor of this one. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}/contacts:sendTestMessage", +"request": { +"$ref": "GoogleCloudEssentialcontactsV1SendTestMessageRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"organizations": { +"resources": { +"contacts": { +"methods": { +"compute": { +"description": "Lists all contacts for the resource that are subscribed to the specified notification categories, including contacts inherited from any parent resources.", +"flatPath": "v1/organizations/{organizationsId}/contacts:compute", +"httpMethod": "GET", +"id": "essentialcontacts.organizations.contacts.compute", +"parameterOrder": [ +"parent" +], +"parameters": { +"notificationCategories": { +"description": "The categories of notifications to compute contacts for. If ALL is included in this list, contacts subscribed to any notification category will be returned.", +"enum": [ +"NOTIFICATION_CATEGORY_UNSPECIFIED", +"ALL", +"SUSPENSION", +"SECURITY", +"TECHNICAL", +"BILLING", +"LEGAL", +"PRODUCT_UPDATES", +"TECHNICAL_INCIDENTS" +], +"enumDescriptions": [ +"Notification category is unrecognized or unspecified.", +"All notifications related to the resource, including notifications pertaining to categories added in the future.", +"Notifications related to imminent account suspension.", +"Notifications related to security/privacy incidents, notifications, and vulnerabilities.", +"Notifications related to technical events and issues such as outages, errors, or bugs.", +"Notifications related to billing and payments notifications, price updates, errors, or credits.", +"Notifications related to enforcement actions, regulatory compliance, or government notices.", +"Notifications related to new versions, product terms updates, or deprecations.", +"Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the resource to compute contacts for. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contacts:compute", +"response": { +"$ref": "GoogleCloudEssentialcontactsV1ComputeContactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Adds a new contact for a resource.", +"flatPath": "v1/organizations/{organizationsId}/contacts", +"httpMethod": "POST", +"id": "essentialcontacts.organizations.contacts.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource to save this contact for. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contacts", +"request": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"response": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a contact.", +"flatPath": "v1/organizations/{organizationsId}/contacts/{contactsId}", +"httpMethod": "DELETE", +"id": "essentialcontacts.organizations.contacts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the contact to delete. Format: organizations/{organization_id}/contacts/{contact_id}, folders/{folder_id}/contacts/{contact_id} or projects/{project_id}/contacts/{contact_id}", +"location": "path", +"pattern": "^organizations/[^/]+/contacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a single contact.", +"flatPath": "v1/organizations/{organizationsId}/contacts/{contactsId}", +"httpMethod": "GET", +"id": "essentialcontacts.organizations.contacts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the contact to retrieve. Format: organizations/{organization_id}/contacts/{contact_id}, folders/{folder_id}/contacts/{contact_id} or projects/{project_id}/contacts/{contact_id}", +"location": "path", +"pattern": "^organizations/[^/]+/contacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the contacts that have been set on a resource.", +"flatPath": "v1/organizations/{organizationsId}/contacts", +"httpMethod": "GET", +"id": "essentialcontacts.organizations.contacts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contacts", +"response": { +"$ref": "GoogleCloudEssentialcontactsV1ListContactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a contact. Note: A contact's email address cannot be changed.", +"flatPath": "v1/organizations/{organizationsId}/contacts/{contactsId}", +"httpMethod": "PATCH", +"id": "essentialcontacts.organizations.contacts.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", +"location": "path", +"pattern": "^organizations/[^/]+/contacts/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The update mask applied to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"response": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"sendTestMessage": { +"description": "Allows a contact admin to send a test message to contact to verify that it has been configured correctly.", +"flatPath": "v1/organizations/{organizationsId}/contacts:sendTestMessage", +"httpMethod": "POST", +"id": "essentialcontacts.organizations.contacts.sendTestMessage", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "Required. The name of the resource to send the test message for. All contacts must either be set directly on this resource or inherited from another resource that is an ancestor of this one. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}/contacts:sendTestMessage", +"request": { +"$ref": "GoogleCloudEssentialcontactsV1SendTestMessageRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"projects": { +"resources": { +"contacts": { +"methods": { +"compute": { +"description": "Lists all contacts for the resource that are subscribed to the specified notification categories, including contacts inherited from any parent resources.", +"flatPath": "v1/projects/{projectsId}/contacts:compute", +"httpMethod": "GET", +"id": "essentialcontacts.projects.contacts.compute", +"parameterOrder": [ +"parent" +], +"parameters": { +"notificationCategories": { +"description": "The categories of notifications to compute contacts for. If ALL is included in this list, contacts subscribed to any notification category will be returned.", +"enum": [ +"NOTIFICATION_CATEGORY_UNSPECIFIED", +"ALL", +"SUSPENSION", +"SECURITY", +"TECHNICAL", +"BILLING", +"LEGAL", +"PRODUCT_UPDATES", +"TECHNICAL_INCIDENTS" +], +"enumDescriptions": [ +"Notification category is unrecognized or unspecified.", +"All notifications related to the resource, including notifications pertaining to categories added in the future.", +"Notifications related to imminent account suspension.", +"Notifications related to security/privacy incidents, notifications, and vulnerabilities.", +"Notifications related to technical events and issues such as outages, errors, or bugs.", +"Notifications related to billing and payments notifications, price updates, errors, or credits.", +"Notifications related to enforcement actions, regulatory compliance, or government notices.", +"Notifications related to new versions, product terms updates, or deprecations.", +"Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the resource to compute contacts for. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contacts:compute", +"response": { +"$ref": "GoogleCloudEssentialcontactsV1ComputeContactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Adds a new contact for a resource.", +"flatPath": "v1/projects/{projectsId}/contacts", +"httpMethod": "POST", +"id": "essentialcontacts.projects.contacts.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource to save this contact for. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contacts", +"request": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"response": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a contact.", +"flatPath": "v1/projects/{projectsId}/contacts/{contactsId}", +"httpMethod": "DELETE", +"id": "essentialcontacts.projects.contacts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the contact to delete. Format: organizations/{organization_id}/contacts/{contact_id}, folders/{folder_id}/contacts/{contact_id} or projects/{project_id}/contacts/{contact_id}", +"location": "path", +"pattern": "^projects/[^/]+/contacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a single contact.", +"flatPath": "v1/projects/{projectsId}/contacts/{contactsId}", +"httpMethod": "GET", +"id": "essentialcontacts.projects.contacts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the contact to retrieve. Format: organizations/{organization_id}/contacts/{contact_id}, folders/{folder_id}/contacts/{contact_id} or projects/{project_id}/contacts/{contact_id}", +"location": "path", +"pattern": "^projects/[^/]+/contacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the contacts that have been set on a resource.", +"flatPath": "v1/projects/{projectsId}/contacts", +"httpMethod": "GET", +"id": "essentialcontacts.projects.contacts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/contacts", +"response": { +"$ref": "GoogleCloudEssentialcontactsV1ListContactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a contact. Note: A contact's email address cannot be changed.", +"flatPath": "v1/projects/{projectsId}/contacts/{contactsId}", +"httpMethod": "PATCH", +"id": "essentialcontacts.projects.contacts.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", +"location": "path", +"pattern": "^projects/[^/]+/contacts/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The update mask applied to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"response": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"sendTestMessage": { +"description": "Allows a contact admin to send a test message to contact to verify that it has been configured correctly.", +"flatPath": "v1/projects/{projectsId}/contacts:sendTestMessage", +"httpMethod": "POST", +"id": "essentialcontacts.projects.contacts.sendTestMessage", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "Required. The name of the resource to send the test message for. All contacts must either be set directly on this resource or inherited from another resource that is an ancestor of this one. Format: organizations/{organization_id}, folders/{folder_id} or projects/{project_id}", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}/contacts:sendTestMessage", +"request": { +"$ref": "GoogleCloudEssentialcontactsV1SendTestMessageRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://essentialcontacts.googleapis.com/", +"schemas": { +"GoogleCloudEssentialcontactsV1ComputeContactsResponse": { +"description": "Response message for the ComputeContacts method.", +"id": "GoogleCloudEssentialcontactsV1ComputeContactsResponse", +"properties": { +"contacts": { +"description": "All contacts for the resource that are subscribed to the specified notification categories, including contacts inherited from any parent resources.", +"items": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there are more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token` and the rest of the parameters the same as the original request.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudEssentialcontactsV1Contact": { +"description": "A contact that will receive notifications from Google Cloud.", +"id": "GoogleCloudEssentialcontactsV1Contact", +"properties": { +"email": { +"description": "Required. The email address to send notifications to. The email address does not need to be a Google Account.", +"type": "string" +}, +"languageTag": { +"description": "Required. The preferred language for notifications, as a ISO 639-1 language code. See [Supported languages](https://cloud.google.com/resource-manager/docs/managing-notification-contacts#supported-languages) for a list of supported languages.", +"type": "string" +}, +"name": { +"description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", +"readOnly": true, +"type": "string" +}, +"notificationCategorySubscriptions": { +"description": "Required. The categories of notifications that the contact will receive communications for.", +"items": { +"enum": [ +"NOTIFICATION_CATEGORY_UNSPECIFIED", +"ALL", +"SUSPENSION", +"SECURITY", +"TECHNICAL", +"BILLING", +"LEGAL", +"PRODUCT_UPDATES", +"TECHNICAL_INCIDENTS" +], +"enumDescriptions": [ +"Notification category is unrecognized or unspecified.", +"All notifications related to the resource, including notifications pertaining to categories added in the future.", +"Notifications related to imminent account suspension.", +"Notifications related to security/privacy incidents, notifications, and vulnerabilities.", +"Notifications related to technical events and issues such as outages, errors, or bugs.", +"Notifications related to billing and payments notifications, price updates, errors, or credits.", +"Notifications related to enforcement actions, regulatory compliance, or government notices.", +"Notifications related to new versions, product terms updates, or deprecations.", +"Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL." +], +"type": "string" +}, +"type": "array" +}, +"validateTime": { +"description": "The last time the validation_state was updated, either manually or automatically. A contact is considered stale if its validation state was updated more than 1 year ago.", +"format": "google-datetime", +"type": "string" +}, +"validationState": { +"description": "Output only. The validity of the contact. A contact is considered valid if it is the correct recipient for notifications for a particular resource.", +"enum": [ +"VALIDATION_STATE_UNSPECIFIED", +"VALID", +"INVALID" +], +"enumDescriptions": [ +"The validation state is unknown or unspecified.", +"The contact is marked as valid. This is usually done manually by the contact admin. All new contacts begin in the valid state.", +"The contact is considered invalid. This may become the state if the contact's email is found to be unreachable." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudEssentialcontactsV1ListContactsResponse": { +"description": "Response message for the ListContacts method.", +"id": "GoogleCloudEssentialcontactsV1ListContactsResponse", +"properties": { +"contacts": { +"description": "The contacts for the specified resource.", +"items": { +"$ref": "GoogleCloudEssentialcontactsV1Contact" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there are more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token` and the rest of the parameters the same as the original request.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudEssentialcontactsV1SendTestMessageRequest": { +"description": "Request message for the SendTestMessage method.", +"id": "GoogleCloudEssentialcontactsV1SendTestMessageRequest", +"properties": { +"contacts": { +"description": "Required. The list of names of the contacts to send a test message to. Format: organizations/{organization_id}/contacts/{contact_id}, folders/{folder_id}/contacts/{contact_id} or projects/{project_id}/contacts/{contact_id}", +"items": { +"type": "string" +}, +"type": "array" +}, +"notificationCategory": { +"description": "Required. The notification category to send the test message for. All contacts must be subscribed to this category.", +"enum": [ +"NOTIFICATION_CATEGORY_UNSPECIFIED", +"ALL", +"SUSPENSION", +"SECURITY", +"TECHNICAL", +"BILLING", +"LEGAL", +"PRODUCT_UPDATES", +"TECHNICAL_INCIDENTS" +], +"enumDescriptions": [ +"Notification category is unrecognized or unspecified.", +"All notifications related to the resource, including notifications pertaining to categories added in the future.", +"Notifications related to imminent account suspension.", +"Notifications related to security/privacy incidents, notifications, and vulnerabilities.", +"Notifications related to technical events and issues such as outages, errors, or bugs.", +"Notifications related to billing and payments notifications, price updates, errors, or credits.", +"Notifications related to enforcement actions, regulatory compliance, or government notices.", +"Notifications related to new versions, product terms updates, or deprecations.", +"Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Essential Contacts API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..a84c6d7326287a3b9a0e3bf63fe9b7696cf477b1 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json @@ -0,0 +1,1049 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/firebase": { +"description": "View and administer all your Firebase data and settings" +} +} +} +}, +"basePath": "", +"baseUrl": "https://firebasedynamiclinks.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Firebase Dynamic Links", +"description": "Programmatically creates and manages Firebase Dynamic Links.", +"discoveryVersion": "v1", +"documentationLink": "https://firebase.google.com/docs/dynamic-links/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "firebasedynamiclinks:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://firebasedynamiclinks.mtls.googleapis.com/", +"name": "firebasedynamiclinks", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"managedShortLinks": { +"methods": { +"create": { +"description": "Creates a managed short Dynamic Link given either a valid long Dynamic Link or details such as Dynamic Link domain, Android and iOS app information. The created short Dynamic Link will not expire. This differs from CreateShortDynamicLink in the following ways: - The request will also contain a name for the link (non unique name for the front end). - The response must be authenticated with an auth token (generated with the admin service account). - The link will appear in the FDL list of links in the console front end. The Dynamic Link domain in the request must be owned by requester's Firebase project.", +"flatPath": "v1/managedShortLinks:create", +"httpMethod": "POST", +"id": "firebasedynamiclinks.managedShortLinks.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/managedShortLinks:create", +"request": { +"$ref": "CreateManagedShortLinkRequest" +}, +"response": { +"$ref": "CreateManagedShortLinkResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/firebase" +] +} +} +}, +"shortLinks": { +"methods": { +"create": { +"description": "Creates a short Dynamic Link given either a valid long Dynamic Link or details such as Dynamic Link domain, Android and iOS app information. The created short Dynamic Link will not expire. Repeated calls with the same long Dynamic Link or Dynamic Link information will produce the same short Dynamic Link. The Dynamic Link domain in the request must be owned by requester's Firebase project.", +"flatPath": "v1/shortLinks", +"httpMethod": "POST", +"id": "firebasedynamiclinks.shortLinks.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/shortLinks", +"request": { +"$ref": "CreateShortDynamicLinkRequest" +}, +"response": { +"$ref": "CreateShortDynamicLinkResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/firebase" +] +} +} +}, +"v1": { +"methods": { +"getLinkStats": { +"description": "Fetches analytics stats of a short Dynamic Link for a given duration. Metrics include number of clicks, redirects, installs, app first opens, and app reopens.", +"flatPath": "v1/{dynamicLink}/linkStats", +"httpMethod": "GET", +"id": "firebasedynamiclinks.getLinkStats", +"parameterOrder": [ +"dynamicLink" +], +"parameters": { +"durationDays": { +"description": "The span of time requested in days.", +"format": "int64", +"location": "query", +"type": "string" +}, +"dynamicLink": { +"description": "Dynamic Link URL. e.g. https://abcd.app.goo.gl/wxyz", +"location": "path", +"required": true, +"type": "string" +}, +"sdkVersion": { +"description": "Google SDK version. Version takes the form \"$major.$minor.$patch\"", +"location": "query", +"type": "string" +} +}, +"path": "v1/{dynamicLink}/linkStats", +"response": { +"$ref": "DynamicLinkStats" +}, +"scopes": [ +"https://www.googleapis.com/auth/firebase" +] +}, +"installAttribution": { +"description": "Get iOS strong/weak-match info for post-install attribution.", +"flatPath": "v1/installAttribution", +"httpMethod": "POST", +"id": "firebasedynamiclinks.installAttribution", +"parameterOrder": [], +"parameters": {}, +"path": "v1/installAttribution", +"request": { +"$ref": "GetIosPostInstallAttributionRequest" +}, +"response": { +"$ref": "GetIosPostInstallAttributionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/firebase" +] +}, +"reopenAttribution": { +"description": "Get iOS reopen attribution for app universal link open deeplinking.", +"flatPath": "v1/reopenAttribution", +"httpMethod": "POST", +"id": "firebasedynamiclinks.reopenAttribution", +"parameterOrder": [], +"parameters": {}, +"path": "v1/reopenAttribution", +"request": { +"$ref": "GetIosReopenAttributionRequest" +}, +"response": { +"$ref": "GetIosReopenAttributionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/firebase" +] +} +} +} +}, +"revision": "20241125", +"rootUrl": "https://firebasedynamiclinks.googleapis.com/", +"schemas": { +"AnalyticsInfo": { +"description": "Tracking parameters supported by Dynamic Link.", +"id": "AnalyticsInfo", +"properties": { +"googlePlayAnalytics": { +"$ref": "GooglePlayAnalytics", +"description": "Google Play Campaign Measurements." +}, +"itunesConnectAnalytics": { +"$ref": "ITunesConnectAnalytics", +"description": "iTunes Connect App Analytics." +} +}, +"type": "object" +}, +"AndroidInfo": { +"description": "Android related attributes to the Dynamic Link.", +"id": "AndroidInfo", +"properties": { +"androidFallbackLink": { +"description": "Link to open on Android if the app is not installed.", +"type": "string" +}, +"androidLink": { +"description": "If specified, this overrides the \u2018link\u2019 parameter on Android.", +"type": "string" +}, +"androidMinPackageVersionCode": { +"description": "Minimum version code for the Android app. If the installed app\u2019s version code is lower, then the user is taken to the Play Store.", +"type": "string" +}, +"androidPackageName": { +"description": "Android package name of the app.", +"type": "string" +} +}, +"type": "object" +}, +"CreateManagedShortLinkRequest": { +"description": "Request to create a managed Short Dynamic Link.", +"id": "CreateManagedShortLinkRequest", +"properties": { +"dynamicLinkInfo": { +"$ref": "DynamicLinkInfo", +"description": "Information about the Dynamic Link to be shortened. [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener)." +}, +"longDynamicLink": { +"description": "Full long Dynamic Link URL with desired query parameters specified. For example, \"https://sample.app.goo.gl/?link=http://www.google.com&apn=com.sample\", [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener).", +"type": "string" +}, +"name": { +"description": "Link name to associate with the link. It's used for marketer to identify manually-created links in the Firebase console (https://console.firebase.google.com/). Links must be named to be tracked.", +"type": "string" +}, +"sdkVersion": { +"description": "Google SDK version. Version takes the form \"$major.$minor.$patch\"", +"type": "string" +}, +"suffix": { +"$ref": "Suffix", +"description": "Short Dynamic Link suffix. Optional." +} +}, +"type": "object" +}, +"CreateManagedShortLinkResponse": { +"description": "Response to create a short Dynamic Link.", +"id": "CreateManagedShortLinkResponse", +"properties": { +"managedShortLink": { +"$ref": "ManagedShortLink", +"description": "Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz" +}, +"previewLink": { +"description": "Preview link to show the link flow chart. (debug info.)", +"type": "string" +}, +"warning": { +"description": "Information about potential warnings on link creation.", +"items": { +"$ref": "DynamicLinkWarning" +}, +"type": "array" +} +}, +"type": "object" +}, +"CreateShortDynamicLinkRequest": { +"description": "Request to create a short Dynamic Link.", +"id": "CreateShortDynamicLinkRequest", +"properties": { +"dynamicLinkInfo": { +"$ref": "DynamicLinkInfo", +"description": "Information about the Dynamic Link to be shortened. [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener)." +}, +"longDynamicLink": { +"description": "Full long Dynamic Link URL with desired query parameters specified. For example, \"https://sample.app.goo.gl/?link=http://www.google.com&apn=com.sample\", [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener).", +"type": "string" +}, +"sdkVersion": { +"description": "Google SDK version. Version takes the form \"$major.$minor.$patch\"", +"type": "string" +}, +"suffix": { +"$ref": "Suffix", +"description": "Short Dynamic Link suffix. Optional." +} +}, +"type": "object" +}, +"CreateShortDynamicLinkResponse": { +"description": "Response to create a short Dynamic Link.", +"id": "CreateShortDynamicLinkResponse", +"properties": { +"previewLink": { +"description": "Preview link to show the link flow chart. (debug info.)", +"type": "string" +}, +"shortLink": { +"description": "Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz", +"type": "string" +}, +"warning": { +"description": "Information about potential warnings on link creation.", +"items": { +"$ref": "DynamicLinkWarning" +}, +"type": "array" +} +}, +"type": "object" +}, +"DesktopInfo": { +"description": "Desktop related attributes to the Dynamic Link.", +"id": "DesktopInfo", +"properties": { +"desktopFallbackLink": { +"description": "Link to open on desktop.", +"type": "string" +} +}, +"type": "object" +}, +"DeviceInfo": { +"description": "Signals associated with the device making the request.", +"id": "DeviceInfo", +"properties": { +"deviceModelName": { +"description": "Device model name.", +"type": "string" +}, +"languageCode": { +"deprecated": true, +"description": "Device language code setting.", +"type": "string" +}, +"languageCodeFromWebview": { +"description": "Device language code setting obtained by executing JavaScript code in WebView.", +"type": "string" +}, +"languageCodeRaw": { +"deprecated": true, +"description": "Device language code raw setting. iOS does returns language code in different format than iOS WebView. For example WebView returns en_US, but iOS returns en-US. Field below will return raw value returned by iOS.", +"type": "string" +}, +"screenResolutionHeight": { +"description": "Device display resolution height.", +"format": "int64", +"type": "string" +}, +"screenResolutionWidth": { +"description": "Device display resolution width.", +"format": "int64", +"type": "string" +}, +"timezone": { +"description": "Device timezone setting.", +"type": "string" +} +}, +"type": "object" +}, +"DynamicLinkEventStat": { +"description": "Dynamic Link event stat.", +"id": "DynamicLinkEventStat", +"properties": { +"count": { +"description": "The number of times this event occurred.", +"format": "int64", +"type": "string" +}, +"event": { +"description": "Link event.", +"enum": [ +"DYNAMIC_LINK_EVENT_UNSPECIFIED", +"CLICK", +"REDIRECT", +"APP_INSTALL", +"APP_FIRST_OPEN", +"APP_RE_OPEN" +], +"enumDescriptions": [ +"Unspecified type.", +"Indicates that an FDL is clicked by users.", +"Indicates that an FDL redirects users to fallback link.", +"Indicates that an FDL triggers an app install from Play store, currently it's impossible to get stats from App store.", +"Indicates that the app is opened for the first time after an install triggered by FDLs", +"Indicates that the app is opened via an FDL for non-first time." +], +"type": "string" +}, +"platform": { +"description": "Requested platform.", +"enum": [ +"DYNAMIC_LINK_PLATFORM_UNSPECIFIED", +"ANDROID", +"IOS", +"DESKTOP", +"OTHER" +], +"enumDeprecated": [ +false, +false, +false, +true, +false +], +"enumDescriptions": [ +"Unspecified platform.", +"Represents Android platform. All apps and browsers on Android are classfied in this category.", +"Represents iOS platform. All apps and browsers on iOS are classfied in this category.", +"Represents desktop.", +"Platforms are not categorized as Android/iOS/Destop fall into here." +], +"type": "string" +} +}, +"type": "object" +}, +"DynamicLinkInfo": { +"description": "Information about a Dynamic Link.", +"id": "DynamicLinkInfo", +"properties": { +"analyticsInfo": { +"$ref": "AnalyticsInfo", +"description": "Parameters used for tracking. See all tracking parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually)." +}, +"androidInfo": { +"$ref": "AndroidInfo", +"description": "Android related information. See Android related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually)." +}, +"desktopInfo": { +"$ref": "DesktopInfo", +"description": "Desktop related information. See desktop related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually)." +}, +"domainUriPrefix": { +"description": "E.g. https://maps.app.goo.gl, https://maps.page.link, https://g.co/maps More examples can be found in description of getNormalizedUriPrefix in j/c/g/firebase/dynamiclinks/uri/DdlDomain.java Will fallback to dynamic_link_domain is this field is missing", +"type": "string" +}, +"dynamicLinkDomain": { +"deprecated": true, +"description": "Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl [Learn more](https://firebase.google.com/docs/dynamic-links/android/receive) on how to set up Dynamic Link domain associated with your Firebase project. Required if missing domain_uri_prefix.", +"type": "string" +}, +"iosInfo": { +"$ref": "IosInfo", +"description": "iOS related information. See iOS related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually)." +}, +"link": { +"description": "The link your app will open, You can specify any URL your app can handle. This link must be a well-formatted URL, be properly URL-encoded, and use the HTTP or HTTPS scheme. See 'link' parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually). Required.", +"type": "string" +}, +"navigationInfo": { +"$ref": "NavigationInfo", +"description": "Information of navigation behavior of a Firebase Dynamic Links." +}, +"socialMetaTagInfo": { +"$ref": "SocialMetaTagInfo", +"description": "Parameters for social meta tag params. Used to set meta tag data for link previews on social sites." +} +}, +"type": "object" +}, +"DynamicLinkStats": { +"description": "Analytics stats of a Dynamic Link for a given timeframe.", +"id": "DynamicLinkStats", +"properties": { +"linkEventStats": { +"description": "Dynamic Link event stats.", +"items": { +"$ref": "DynamicLinkEventStat" +}, +"type": "array" +}, +"warnings": { +"description": "Optional warnings associated this API request.", +"items": { +"$ref": "DynamicLinkWarning" +}, +"type": "array" +} +}, +"type": "object" +}, +"DynamicLinkWarning": { +"description": "Dynamic Links warning messages.", +"id": "DynamicLinkWarning", +"properties": { +"warningCode": { +"description": "The warning code.", +"enum": [ +"CODE_UNSPECIFIED", +"NOT_IN_PROJECT_ANDROID_PACKAGE_NAME", +"NOT_INTEGER_ANDROID_PACKAGE_MIN_VERSION", +"UNNECESSARY_ANDROID_PACKAGE_MIN_VERSION", +"NOT_URI_ANDROID_LINK", +"UNNECESSARY_ANDROID_LINK", +"NOT_URI_ANDROID_FALLBACK_LINK", +"BAD_URI_SCHEME_ANDROID_FALLBACK_LINK", +"NOT_IN_PROJECT_IOS_BUNDLE_ID", +"NOT_IN_PROJECT_IPAD_BUNDLE_ID", +"UNNECESSARY_IOS_URL_SCHEME", +"NOT_NUMERIC_IOS_APP_STORE_ID", +"UNNECESSARY_IOS_APP_STORE_ID", +"NOT_URI_IOS_FALLBACK_LINK", +"BAD_URI_SCHEME_IOS_FALLBACK_LINK", +"NOT_URI_IPAD_FALLBACK_LINK", +"BAD_URI_SCHEME_IPAD_FALLBACK_LINK", +"BAD_DEBUG_PARAM", +"BAD_AD_PARAM", +"DEPRECATED_PARAM", +"UNRECOGNIZED_PARAM", +"TOO_LONG_PARAM", +"NOT_URI_SOCIAL_IMAGE_LINK", +"BAD_URI_SCHEME_SOCIAL_IMAGE_LINK", +"NOT_URI_SOCIAL_URL", +"BAD_URI_SCHEME_SOCIAL_URL", +"LINK_LENGTH_TOO_LONG", +"LINK_WITH_FRAGMENTS", +"NOT_MATCHING_IOS_BUNDLE_ID_AND_STORE_ID", +"API_DEPRECATED" +], +"enumDescriptions": [ +"Unknown code.", +"The Android package does not match any in developer's DevConsole project.", +"The Android minimum version code has to be a valid integer.", +"Android package min version param is not needed, e.g. when 'apn' is missing.", +"Android link is not a valid URI.", +"Android link param is not needed, e.g. when param 'al' and 'link' have the same value..", +"Android fallback link is not a valid URI.", +"Android fallback link has an invalid (non http/https) URI scheme.", +"The iOS bundle ID does not match any in developer's DevConsole project.", +"The iPad bundle ID does not match any in developer's DevConsole project.", +"iOS URL scheme is not needed, e.g. when 'ibi' are 'ipbi' are all missing.", +"iOS app store ID format is incorrect, e.g. not numeric.", +"iOS app store ID is not needed.", +"iOS fallback link is not a valid URI.", +"iOS fallback link has an invalid (non http/https) URI scheme.", +"iPad fallback link is not a valid URI.", +"iPad fallback link has an invalid (non http/https) URI scheme.", +"Debug param format is incorrect.", +"isAd param format is incorrect.", +"Indicates a certain param is deprecated.", +"Indicates certain parameter is not recognized.", +"Indicates certain parameter is too long.", +"Social meta tag image link is not a valid URI.", +"Social meta tag image link has an invalid (non http/https) URI scheme.", +"", +"", +"Dynamic Link URL length is too long.", +"Dynamic Link URL contains fragments.", +"The iOS bundle ID does not match with the given iOS store ID.", +"The API is deprecated." +], +"type": "string" +}, +"warningDocumentLink": { +"description": "The document describing the warning, and helps resolve.", +"type": "string" +}, +"warningMessage": { +"description": "The warning message to help developers improve their requests.", +"type": "string" +} +}, +"type": "object" +}, +"GetIosPostInstallAttributionRequest": { +"description": "Request for iSDK to execute strong match flow for post-install attribution. This is meant for iOS requests only. Requests from other platforms will not be honored.", +"id": "GetIosPostInstallAttributionRequest", +"properties": { +"appInstallationTime": { +"description": "App installation epoch time (https://en.wikipedia.org/wiki/Unix_time). This is a client signal for a more accurate weak match.", +"format": "int64", +"type": "string" +}, +"bundleId": { +"description": "APP bundle ID.", +"type": "string" +}, +"device": { +"$ref": "DeviceInfo", +"description": "Device information." +}, +"iosVersion": { +"description": "iOS version, ie: 9.3.5. Consider adding \"build\".", +"type": "string" +}, +"retrievalMethod": { +"description": "App post install attribution retrieval information. Disambiguates mechanism (iSDK or developer invoked) to retrieve payload from clicked link.", +"enum": [ +"UNKNOWN_PAYLOAD_RETRIEVAL_METHOD", +"IMPLICIT_WEAK_MATCH", +"EXPLICIT_WEAK_MATCH", +"EXPLICIT_STRONG_AFTER_WEAK_MATCH" +], +"enumDescriptions": [ +"Unknown method.", +"iSDK performs a server lookup by device heuristics in the background when app is first-opened; no API called by developer.", +"iSDK performs a server lookup by device heuristics upon a dev API call.", +"iSDK performs a strong match only if weak match is found upon a dev API call." +], +"type": "string" +}, +"sdkVersion": { +"description": "Google SDK version. Version takes the form \"$major.$minor.$patch\"", +"type": "string" +}, +"uniqueMatchLinkToCheck": { +"description": "Possible unique matched link that server need to check before performing device heuristics match. If passed link is short server need to expand the link. If link is long server need to vslidate the link.", +"type": "string" +}, +"visualStyle": { +"description": "Strong match page information. Disambiguates between default UI and custom page to present when strong match succeeds/fails to find cookie.", +"enum": [ +"UNKNOWN_VISUAL_STYLE", +"DEFAULT_STYLE", +"CUSTOM_STYLE" +], +"enumDescriptions": [ +"Unknown style.", +"Default style.", +"Custom style." +], +"type": "string" +} +}, +"type": "object" +}, +"GetIosPostInstallAttributionResponse": { +"description": "Response for iSDK to execute strong match flow for post-install attribution. Information of the resolved FDL link.", +"id": "GetIosPostInstallAttributionResponse", +"properties": { +"appMinimumVersion": { +"description": "The minimum version for app, specified by dev through ?imv= parameter. Return to iSDK to allow app to evaluate if current version meets this.", +"type": "string" +}, +"attributionConfidence": { +"description": "The confidence of the returned attribution.", +"enum": [ +"UNKNOWN_ATTRIBUTION_CONFIDENCE", +"WEAK", +"DEFAULT", +"UNIQUE" +], +"enumDescriptions": [ +"Unset.", +"Weak confidence, more than one matching link found or link suspected to be false positive.", +"Default confidence, match based on device heuristics.", +"Unique confidence, match based on \"unique match link to check\" or other means." +], +"type": "string" +}, +"deepLink": { +"description": "The deep-link attributed post-install via one of several techniques (device heuristics, copy unique).", +"type": "string" +}, +"externalBrowserDestinationLink": { +"description": "User-agent specific custom-scheme URIs for iSDK to open. This will be set according to the user-agent tha the click was originally made in. There is no Safari-equivalent custom-scheme open URLs. ie: googlechrome://www.example.com ie: firefox://open-url?url=http://www.example.com ie: opera-http://example.com", +"type": "string" +}, +"fallbackLink": { +"description": "The link to navigate to update the app if min version is not met. This is either (in order): 1) fallback link (from ?ifl= parameter, if specified by developer) or 2) AppStore URL (from ?isi= parameter, if specified), or 3) the payload link (from required link= parameter).", +"type": "string" +}, +"invitationId": { +"description": "Invitation ID attributed post-install via one of several techniques (device heuristics, copy unique).", +"type": "string" +}, +"isStrongMatchExecutable": { +"description": "Instruction for iSDK to attemmpt to perform strong match. For instance, if browser does not support/allow cookie or outside of support browsers, this will be false.", +"type": "boolean" +}, +"matchMessage": { +"description": "Describes why match failed, ie: \"discarded due to low confidence\". This message will be publicly visible.", +"type": "string" +}, +"requestIpVersion": { +"description": "Which IP version the request was made from.", +"enum": [ +"UNKNOWN_IP_VERSION", +"IP_V4", +"IP_V6" +], +"enumDescriptions": [ +"Unset.", +"Request made from an IPv4 IP address.", +"Request made from an IPv6 IP address." +], +"type": "string" +}, +"requestedLink": { +"description": "Entire FDL (short or long) attributed post-install via one of several techniques (device heuristics, copy unique).", +"type": "string" +}, +"resolvedLink": { +"description": "The entire FDL, expanded from a short link. It is the same as the requested_link, if it is long. Parameters from this should not be used directly (ie: server can default utm_[campaign|medium|source] to a value when requested_link lack them, server determine the best fallback_link when requested_link specifies >1 fallback links).", +"type": "string" +}, +"utmCampaign": { +"description": "Scion campaign value to be propagated by iSDK to Scion at post-install.", +"type": "string" +}, +"utmContent": { +"description": "Scion content value to be propagated by iSDK to Scion at app-reopen.", +"type": "string" +}, +"utmMedium": { +"description": "Scion medium value to be propagated by iSDK to Scion at post-install.", +"type": "string" +}, +"utmSource": { +"description": "Scion source value to be propagated by iSDK to Scion at post-install.", +"type": "string" +}, +"utmTerm": { +"description": "Scion term value to be propagated by iSDK to Scion at app-reopen.", +"type": "string" +} +}, +"type": "object" +}, +"GetIosReopenAttributionRequest": { +"description": "Request for iSDK to get reopen attribution for app universal link open deeplinking. This endpoint is meant for only iOS requests.", +"id": "GetIosReopenAttributionRequest", +"properties": { +"bundleId": { +"description": "APP bundle ID.", +"type": "string" +}, +"requestedLink": { +"description": "FDL link to be verified from an app universal link open. The FDL link can be one of: 1) short FDL. e.g. .page.link/, or 2) long FDL. e.g. .page.link/?{query params}, or 3) Invite FDL. e.g. .page.link/i/", +"type": "string" +}, +"sdkVersion": { +"description": "Google SDK version. Version takes the form \"$major.$minor.$patch\"", +"type": "string" +} +}, +"type": "object" +}, +"GetIosReopenAttributionResponse": { +"description": "Response for iSDK to get reopen attribution for app universal link open deeplinking. This endpoint is meant for only iOS requests.", +"id": "GetIosReopenAttributionResponse", +"properties": { +"deepLink": { +"description": "The deep-link attributed the app universal link open. For both regular FDL links and invite FDL links.", +"type": "string" +}, +"invitationId": { +"description": "Optional invitation ID, for only invite typed requested FDL links.", +"type": "string" +}, +"iosMinAppVersion": { +"description": "FDL input value of the \"&imv=\" parameter, minimum app version to be returned to Google Firebase SDK running on iOS-9.", +"type": "string" +}, +"resolvedLink": { +"description": "The entire FDL, expanded from a short link. It is the same as the requested_link, if it is long.", +"type": "string" +}, +"utmCampaign": { +"description": "Scion campaign value to be propagated by iSDK to Scion at app-reopen.", +"type": "string" +}, +"utmContent": { +"description": "Scion content value to be propagated by iSDK to Scion at app-reopen.", +"type": "string" +}, +"utmMedium": { +"description": "Scion medium value to be propagated by iSDK to Scion at app-reopen.", +"type": "string" +}, +"utmSource": { +"description": "Scion source value to be propagated by iSDK to Scion at app-reopen.", +"type": "string" +}, +"utmTerm": { +"description": "Scion term value to be propagated by iSDK to Scion at app-reopen.", +"type": "string" +}, +"warning": { +"description": "Optional warnings associated this API request.", +"items": { +"$ref": "DynamicLinkWarning" +}, +"type": "array" +} +}, +"type": "object" +}, +"GooglePlayAnalytics": { +"description": "Parameters for Google Play Campaign Measurements. [Learn more](https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params)", +"id": "GooglePlayAnalytics", +"properties": { +"gclid": { +"deprecated": true, +"description": "Deprecated; FDL SDK does not process nor log it.", +"type": "string" +}, +"utmCampaign": { +"description": "Campaign name; used for keyword analysis to identify a specific product promotion or strategic campaign.", +"type": "string" +}, +"utmContent": { +"description": "Campaign content; used for A/B testing and content-targeted ads to differentiate ads or links that point to the same URL.", +"type": "string" +}, +"utmMedium": { +"description": "Campaign medium; used to identify a medium such as email or cost-per-click.", +"type": "string" +}, +"utmSource": { +"description": "Campaign source; used to identify a search engine, newsletter, or other source.", +"type": "string" +}, +"utmTerm": { +"description": "Campaign term; used with paid search to supply the keywords for ads.", +"type": "string" +} +}, +"type": "object" +}, +"ITunesConnectAnalytics": { +"description": "Parameters for iTunes Connect App Analytics.", +"id": "ITunesConnectAnalytics", +"properties": { +"at": { +"description": "Affiliate token used to create affiliate-coded links.", +"type": "string" +}, +"ct": { +"description": "Campaign text that developers can optionally add to any link in order to track sales from a specific marketing campaign.", +"type": "string" +}, +"mt": { +"description": "iTune media types, including music, podcasts, audiobooks and so on.", +"type": "string" +}, +"pt": { +"description": "Provider token that enables analytics for Dynamic Links from within iTunes Connect.", +"type": "string" +} +}, +"type": "object" +}, +"IosInfo": { +"description": "iOS related attributes to the Dynamic Link..", +"id": "IosInfo", +"properties": { +"iosAppStoreId": { +"description": "iOS App Store ID.", +"type": "string" +}, +"iosBundleId": { +"description": "iOS bundle ID of the app.", +"type": "string" +}, +"iosCustomScheme": { +"description": "Custom (destination) scheme to use for iOS. By default, we\u2019ll use the bundle ID as the custom scheme. Developer can override this behavior using this param.", +"type": "string" +}, +"iosFallbackLink": { +"description": "Link to open on iOS if the app is not installed.", +"type": "string" +}, +"iosIpadBundleId": { +"description": "iPad bundle ID of the app.", +"type": "string" +}, +"iosIpadFallbackLink": { +"description": "If specified, this overrides the ios_fallback_link value on iPads.", +"type": "string" +}, +"iosMinimumVersion": { +"description": "iOS minimum version.", +"type": "string" +} +}, +"type": "object" +}, +"ManagedShortLink": { +"description": "Managed Short Link.", +"id": "ManagedShortLink", +"properties": { +"creationTime": { +"description": "Creation timestamp of the short link.", +"format": "google-datetime", +"type": "string" +}, +"flaggedAttribute": { +"description": "Attributes that have been flagged about this short url.", +"items": { +"enum": [ +"UNSPECIFIED_ATTRIBUTE", +"SPAM" +], +"enumDescriptions": [ +"Indicates that no attributes were found for this short url.", +"Indicates that short url has been flagged as spam." +], +"type": "string" +}, +"type": "array" +}, +"info": { +"$ref": "DynamicLinkInfo", +"description": "Full Dyamic Link info" +}, +"link": { +"description": "Short durable link url, for example, \"https://sample.app.goo.gl/xyz123\". Required.", +"type": "string" +}, +"linkName": { +"description": "Link name defined by the creator. Required.", +"type": "string" +}, +"visibility": { +"description": "Visibility status of link.", +"enum": [ +"UNSPECIFIED_VISIBILITY", +"UNARCHIVED", +"ARCHIVED", +"NEVER_SHOWN" +], +"enumDescriptions": [ +"Visibility of the link is not specified.", +"Link created in console and should be shown in console.", +"Link created in console and should not be shown in console (but can be shown in the console again if it is unarchived).", +"Link created outside of console and should never be shown in console." +], +"type": "string" +} +}, +"type": "object" +}, +"NavigationInfo": { +"description": "Information of navigation behavior.", +"id": "NavigationInfo", +"properties": { +"enableForcedRedirect": { +"description": "If this option is on, FDL click will be forced to redirect rather than show an interstitial page.", +"type": "boolean" +} +}, +"type": "object" +}, +"SocialMetaTagInfo": { +"description": "Parameters for social meta tag params. Used to set meta tag data for link previews on social sites.", +"id": "SocialMetaTagInfo", +"properties": { +"socialDescription": { +"description": "A short description of the link. Optional.", +"type": "string" +}, +"socialImageLink": { +"description": "An image url string. Optional.", +"type": "string" +}, +"socialTitle": { +"description": "Title to be displayed. Optional.", +"type": "string" +} +}, +"type": "object" +}, +"Suffix": { +"description": "Short Dynamic Link suffix.", +"id": "Suffix", +"properties": { +"customSuffix": { +"description": "Only applies to Option.CUSTOM.", +"type": "string" +}, +"option": { +"description": "Suffix option.", +"enum": [ +"OPTION_UNSPECIFIED", +"UNGUESSABLE", +"SHORT", +"CUSTOM" +], +"enumDescriptions": [ +"The suffix option is not specified, performs as UNGUESSABLE .", +"Short Dynamic Link suffix is a base62 [0-9A-Za-z] encoded string of a random generated 96 bit random number, which has a length of 17 chars. For example, \"nlAR8U4SlKRZw1cb2\". It prevents other people from guessing and crawling short Dynamic Links that contain personal identifiable information.", +"Short Dynamic Link suffix is a base62 [0-9A-Za-z] string starting with a length of 4 chars. the length will increase when all the space is occupied.", +"Custom DDL suffix is a client specified string, for example, \"buy2get1free\". NOTE: custom suffix should only be available to managed short link creation" +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Firebase Dynamic Links API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebasehosting.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebasehosting.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..200bbce0dab7a2f76426dc0d0af3b7a73764945b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebasehosting.v1beta1.json @@ -0,0 +1,3873 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/cloud-platform.read-only": { +"description": "View your data across Google Cloud services and see the email address of your Google Account" +}, +"https://www.googleapis.com/auth/firebase": { +"description": "View and administer all your Firebase data and settings" +}, +"https://www.googleapis.com/auth/firebase.readonly": { +"description": "View all your Firebase data and settings" +} +} +} +}, +"basePath": "", +"baseUrl": "https://firebasehosting.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Firebase Hosting", +"description": "The Firebase Hosting REST API enables programmatic and customizable management and deployments to your Firebase-hosted sites. Use this REST API to create and manage channels and sites as well as to deploy new or updated hosting configurations and content files.", +"discoveryVersion": "v1", +"documentationLink": "https://firebase.google.com/docs/hosting/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "firebasehosting:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://firebasehosting.mtls.googleapis.com/", +"name": "firebasehosting", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "firebasehosting.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +} +}, +"sites": { +"methods": { +"create": { +"description": "Creates a new Hosting Site in the specified parent Firebase project. Note that Hosting sites can take several minutes to propagate through Firebase systems.", +"flatPath": "v1beta1/projects/{projectsId}/sites", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The Firebase project in which to create a Hosting site, in the format: projects/PROJECT_IDENTIFIER Refer to the `Site` [`name`](../projects#Site.FIELDS.name) field for details about PROJECT_IDENTIFIER values.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"siteId": { +"description": "Required. Immutable. A globally unique identifier for the Hosting site. This identifier is used to construct the Firebase-provisioned subdomains for the site, so it must also be a valid domain name label.", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validates that the site_id is available and that the request would succeed, returning the expected resulting site or error.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta1/{+parent}/sites", +"request": { +"$ref": "Site" +}, +"response": { +"$ref": "Site" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes the specified Hosting Site from the specified parent Firebase project.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}", +"httpMethod": "DELETE", +"id": "firebasehosting.projects.sites.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the Hosting site, in the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID Refer to the `Site` [`name`](../projects#Site.FIELDS.name) field for details about PROJECT_IDENTIFIER values.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Gets the specified Hosting Site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the Hosting site, in the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID Refer to the `Site` [`name`](../projects#Site.FIELDS.name) field for details about PROJECT_IDENTIFIER values. Since a SITE_ID is a globally unique identifier, you can also use the unique sub-collection resource access pattern, in the format: projects/-/sites/SITE_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Site" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"getConfig": { +"description": "Gets the Hosting metadata for a specific site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/config", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.getConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The site for which to get the SiteConfig, in the format: sites/ site-name/config", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/config$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "SiteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists each Hosting Site associated with the specified parent Firebase project.", +"flatPath": "v1beta1/projects/{projectsId}/sites", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of sites to return. The service may return a lower number if fewer sites exist than this maximum number. If unspecified, defaults to 40.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token from a previous call to `ListSites` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Firebase project for which to list sites, in the format: projects/PROJECT_IDENTIFIER Refer to the `Site` [`name`](../projects#Site.FIELDS.name) field for details about PROJECT_IDENTIFIER values.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/sites", +"response": { +"$ref": "ListSitesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"patch": { +"description": "Updates attributes of the specified Hosting Site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}", +"httpMethod": "PATCH", +"id": "firebasehosting.projects.sites.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The fully-qualified resource name of the Hosting site, in the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A set of field names from your Site that you want to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Site" +}, +"response": { +"$ref": "Site" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"updateConfig": { +"description": "Sets the Hosting metadata for a specific site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/config", +"httpMethod": "PATCH", +"id": "firebasehosting.projects.sites.updateConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The site for which to update the SiteConfig, in the format: sites/ site-name/config", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/config$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A set of field names from your [site configuration](../sites.SiteConfig) that you want to update. A field will be overwritten if, and only if, it's in the mask. If a mask is not provided then a default mask of only [`max_versions`](../sites.SiteConfig.max_versions) will be used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "SiteConfig" +}, +"response": { +"$ref": "SiteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +}, +"resources": { +"channels": { +"methods": { +"create": { +"description": "Creates a new channel in the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.channels.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"channelId": { +"description": "Required. Immutable. A unique ID within the site that identifies the channel.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site in which to create this channel, in the format: sites/ SITE_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/channels", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes the specified channel of the specified site. The `live` channel cannot be deleted.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}", +"httpMethod": "DELETE", +"id": "firebasehosting.projects.sites.channels.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the channel, in the format: sites/SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Retrieves information for the specified channel of the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.channels.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the channel, in the format: sites/SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the channels for the specified site. All sites have a default `live` channel.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.channels.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of channels to return. The service may return a lower number if fewer channels exist than this maximum number. If unspecified, defaults to 10. The maximum value is 100; values above 100 will be coerced to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `ListChannels` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site for which to list channels, in the format: sites/SITE_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/channels", +"response": { +"$ref": "ListChannelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"patch": { +"description": "Updates information for the specified channel of the specified site. Implicitly creates the channel if it doesn't already exist.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}", +"httpMethod": "PATCH", +"id": "firebasehosting.projects.sites.channels.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The fully-qualified resource name for the channel, in the format: sites/ SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A comma-separated list of fields to be updated in this request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +}, +"resources": { +"releases": { +"methods": { +"create": { +"description": "Creates a new release, which makes the content of the specified version actively display on the appropriate URL(s).", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}/releases", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.channels.releases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The site or channel to which the release belongs, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +}, +"versionName": { +"description": " The unique identifier for a version, in the format: sites/SITE_ID/versions/ VERSION_ID The SITE_ID in this version identifier must match the SITE_ID in the `parent` parameter. This query parameter must be empty if the `type` field in the request body is `SITE_DISABLE`.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releases", +"request": { +"$ref": "Release" +}, +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Gets the specified release for a site or channel. When used to get a release for a site, this can get releases for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}/releases/{releasesId}", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.channels.releases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the Hosting release, in either of the following formats: - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID - sites/SITE_ID/releases/RELEASE_ID ", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/channels/[^/]+/releases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the releases that have been created for the specified site or channel. When used to list releases for a site, this list includes releases for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}/releases", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.channels.releases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of releases to return. The service may return a lower number if fewer releases exist than this maximum number. If unspecified, defaults to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `releases.list` or `channels.releases.list` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site or channel for which to list releases, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID ", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releases", +"response": { +"$ref": "ListReleasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +} +} +} +}, +"customDomains": { +"methods": { +"create": { +"description": "Creates a `CustomDomain`.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.customDomains.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"customDomainId": { +"description": "Required. The ID of the `CustomDomain`, which is the domain name you'd like to use with Firebase Hosting.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The custom domain's parent, specifically a Firebase Hosting `Site`.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If true, Hosting validates that it's possible to complete your request but doesn't actually create a new `CustomDomain`.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta1/{+parent}/customDomains", +"request": { +"$ref": "CustomDomain" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes the specified `CustomDomain`.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}", +"httpMethod": "DELETE", +"id": "firebasehosting.projects.sites.customDomains.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If true, the request succeeds even if the `CustomDomain` doesn't exist.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "A tag that represents the state of the `CustomDomain` as you know it. If present, the supplied tag must match the current value on your `CustomDomain`, or the request fails.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the `CustomDomain` to delete.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If true, Hosting validates that it's possible to complete your request but doesn't actually delete the `CustomDomain`.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Gets the specified `CustomDomain`.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.customDomains.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `CustomDomain` to get.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "CustomDomain" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists each `CustomDomain` associated with the specified parent Hosting site. Returns `CustomDomain`s in a consistent, but undefined, order to facilitate pagination.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.customDomains.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The max number of `CustomDomain` entities to return in a request. Defaults to 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `ListCustomDomains` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Firebase Hosting `Site` with `CustomDomain` entities you'd like to list.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "If true, the request returns soft-deleted `CustomDomain`s that haven't been fully-deleted yet. To restore deleted `CustomDomain`s, make an `UndeleteCustomDomain` request.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta1/{+parent}/customDomains", +"response": { +"$ref": "ListCustomDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"patch": { +"description": "Updates the specified `CustomDomain`.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}", +"httpMethod": "PATCH", +"id": "firebasehosting.projects.sites.customDomains.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If true, Hosting creates the `CustomDomain` if it doesn't already exist.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Output only. The fully-qualified name of the `CustomDomain`.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The set of field names from your `CustomDomain` that you want to update. A field will be overwritten if, and only if, it's in the mask. If you don't provide a mask, Hosting updates the entire `CustomDomain`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "If true, Hosting validates that it's possible to complete your request but doesn't actually create or update the `CustomDomain`.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "CustomDomain" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"undelete": { +"description": "Undeletes the specified `CustomDomain` if it has been soft-deleted. Hosting retains soft-deleted custom domains for around 30 days before permanently deleting them.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}:undelete", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.customDomains.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `CustomDomain` to delete.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:undelete", +"request": { +"$ref": "UndeleteCustomDomainRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.customDomains.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/customDomains/{customDomainsId}/operations", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.customDomains.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/customDomains/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +} +} +} +}, +"domains": { +"methods": { +"create": { +"description": "Creates a domain mapping on the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.domains.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent to create the domain association for, in the format: sites/site-name", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/domains", +"request": { +"$ref": "Domain" +}, +"response": { +"$ref": "Domain" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes the existing domain mapping on the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains/{domainsId}", +"httpMethod": "DELETE", +"id": "firebasehosting.projects.sites.domains.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the domain association to delete.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Gets a domain mapping on the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains/{domainsId}", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.domains.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the domain configuration to get.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Domain" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the domains for the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.domains.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The page size to return. Defaults to 50.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token from a previous request, if provided.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent for which to list domains, in the format: sites/ site-name", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/domains", +"response": { +"$ref": "ListDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"update": { +"description": "Updates the specified domain mapping, creating the mapping as if it does not exist.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains/{domainsId}", +"httpMethod": "PUT", +"id": "firebasehosting.projects.sites.domains.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the domain association to update or create, if an association doesn't already exist.", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Domain" +}, +"response": { +"$ref": "Domain" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +} +}, +"releases": { +"methods": { +"create": { +"description": "Creates a new release, which makes the content of the specified version actively display on the appropriate URL(s).", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/releases", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.releases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The site or channel to which the release belongs, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +}, +"versionName": { +"description": " The unique identifier for a version, in the format: sites/SITE_ID/versions/ VERSION_ID The SITE_ID in this version identifier must match the SITE_ID in the `parent` parameter. This query parameter must be empty if the `type` field in the request body is `SITE_DISABLE`.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releases", +"request": { +"$ref": "Release" +}, +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Gets the specified release for a site or channel. When used to get a release for a site, this can get releases for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/releases/{releasesId}", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.releases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the Hosting release, in either of the following formats: - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID - sites/SITE_ID/releases/RELEASE_ID ", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/releases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the releases that have been created for the specified site or channel. When used to list releases for a site, this list includes releases for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/releases", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.releases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of releases to return. The service may return a lower number if fewer releases exist than this maximum number. If unspecified, defaults to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `releases.list` or `channels.releases.list` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site or channel for which to list releases, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID ", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releases", +"response": { +"$ref": "ListReleasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +} +}, +"versions": { +"methods": { +"clone": { +"description": "Creates a new version on the specified target site using the content of the specified version.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions:clone", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.versions.clone", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The target site for the cloned version, in the format: sites/ SITE_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions:clone", +"request": { +"$ref": "CloneVersionRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"create": { +"description": "Creates a new version for the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.versions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The site in which to create the version, in the format: sites/ SITE_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +}, +"sizeBytes": { +"description": "The self-reported size of the version. This value is used for a pre-emptive quota check for legacy version uploads.", +"format": "int64", +"location": "query", +"type": "string" +}, +"versionId": { +"deprecated": true, +"description": "A unique id for the new version. This is was only specified for legacy version creations, and should be blank.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions", +"request": { +"$ref": "Version" +}, +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes the specified version.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "firebasehosting.projects.sites.versions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the version, in the format: sites/SITE_ID/versions/VERSION_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Get the specified version that has been created for the specified site. This can include versions that were created for the default `live` channel or for any active preview channels for the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the version, in the format: sites/SITE_ID/versions/VERSION_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the versions that have been created for the specified site. This list includes versions for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter string used to return a subset of versions in the response. The currently supported fields for filtering are: `name`, `status`, and `create_time`. Learn more about filtering in Google's [AIP 160 standard](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of versions to return. The service may return a lower number if fewer versions exist than this maximum number. If unspecified, defaults to 25. The maximum value is 100; values above 100 will be coerced to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `ListVersions` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site or channel for which to list versions, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID ", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions", +"response": { +"$ref": "ListVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"patch": { +"description": " Updates the specified metadata for the specified version. This method will fail with `FAILED_PRECONDITION` in the event of an invalid state transition. The supported [state](../sites.versions#versionstatus) transitions for a version are from `CREATED` to `FINALIZED`. Use [`DeleteVersion`](delete) to set the status of a version to `DELETED`.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}", +"httpMethod": "PATCH", +"id": "firebasehosting.projects.sites.versions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A set of field names from your [version](../sites.versions) that you want to update. A field will be overwritten if, and only if, it's in the mask. If a mask is not provided then a default mask of only [`status`](../sites.versions#Version.FIELDS.status) will be used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Version" +}, +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"populateFiles": { +"description": " Adds content files to the specified version. Each file must be under 2 GB.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}:populateFiles", +"httpMethod": "POST", +"id": "firebasehosting.projects.sites.versions.populateFiles", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The version to which to add files, in the format: sites/SITE_ID /versions/VERSION_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}:populateFiles", +"request": { +"$ref": "PopulateVersionFilesRequest" +}, +"response": { +"$ref": "PopulateVersionFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +}, +"resources": { +"files": { +"methods": { +"list": { +"description": "Lists the remaining files to be uploaded for the specified version.", +"flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}/files", +"httpMethod": "GET", +"id": "firebasehosting.projects.sites.versions.files.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of version files to return. The service may return a lower number if fewer version files exist than this maximum number. If unspecified, defaults to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `ListVersionFiles` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The version for which to list files, in the format: sites/SITE_ID /versions/VERSION_ID", +"location": "path", +"pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +}, +"status": { +"description": " The type of files that should be listed for the specified version.", +"enum": [ +"STATUS_UNSPECIFIED", +"EXPECTED", +"ACTIVE" +], +"enumDescriptions": [ +"The default status; should not be intentionally used.", +"The file has been included in the version and is expected to be uploaded in the near future.", +"The file has already been uploaded to Firebase Hosting." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/files", +"response": { +"$ref": "ListVersionFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +} +} +} +} +} +} +} +}, +"sites": { +"methods": { +"getConfig": { +"description": "Gets the Hosting metadata for a specific site.", +"flatPath": "v1beta1/sites/{sitesId}/config", +"httpMethod": "GET", +"id": "firebasehosting.sites.getConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The site for which to get the SiteConfig, in the format: sites/ site-name/config", +"location": "path", +"pattern": "^sites/[^/]+/config$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "SiteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"updateConfig": { +"description": "Sets the Hosting metadata for a specific site.", +"flatPath": "v1beta1/sites/{sitesId}/config", +"httpMethod": "PATCH", +"id": "firebasehosting.sites.updateConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The site for which to update the SiteConfig, in the format: sites/ site-name/config", +"location": "path", +"pattern": "^sites/[^/]+/config$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A set of field names from your [site configuration](../sites.SiteConfig) that you want to update. A field will be overwritten if, and only if, it's in the mask. If a mask is not provided then a default mask of only [`max_versions`](../sites.SiteConfig.max_versions) will be used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "SiteConfig" +}, +"response": { +"$ref": "SiteConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +}, +"resources": { +"channels": { +"methods": { +"create": { +"description": "Creates a new channel in the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/channels", +"httpMethod": "POST", +"id": "firebasehosting.sites.channels.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"channelId": { +"description": "Required. Immutable. A unique ID within the site that identifies the channel.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site in which to create this channel, in the format: sites/ SITE_ID", +"location": "path", +"pattern": "^sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/channels", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes the specified channel of the specified site. The `live` channel cannot be deleted.", +"flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}", +"httpMethod": "DELETE", +"id": "firebasehosting.sites.channels.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the channel, in the format: sites/SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Retrieves information for the specified channel of the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}", +"httpMethod": "GET", +"id": "firebasehosting.sites.channels.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the channel, in the format: sites/SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the channels for the specified site. All sites have a default `live` channel.", +"flatPath": "v1beta1/sites/{sitesId}/channels", +"httpMethod": "GET", +"id": "firebasehosting.sites.channels.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of channels to return. The service may return a lower number if fewer channels exist than this maximum number. If unspecified, defaults to 10. The maximum value is 100; values above 100 will be coerced to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `ListChannels` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site for which to list channels, in the format: sites/SITE_ID", +"location": "path", +"pattern": "^sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/channels", +"response": { +"$ref": "ListChannelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"patch": { +"description": "Updates information for the specified channel of the specified site. Implicitly creates the channel if it doesn't already exist.", +"flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}", +"httpMethod": "PATCH", +"id": "firebasehosting.sites.channels.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The fully-qualified resource name for the channel, in the format: sites/ SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A comma-separated list of fields to be updated in this request.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Channel" +}, +"response": { +"$ref": "Channel" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +}, +"resources": { +"releases": { +"methods": { +"create": { +"description": "Creates a new release, which makes the content of the specified version actively display on the appropriate URL(s).", +"flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}/releases", +"httpMethod": "POST", +"id": "firebasehosting.sites.channels.releases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The site or channel to which the release belongs, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +}, +"versionName": { +"description": " The unique identifier for a version, in the format: sites/SITE_ID/versions/ VERSION_ID The SITE_ID in this version identifier must match the SITE_ID in the `parent` parameter. This query parameter must be empty if the `type` field in the request body is `SITE_DISABLE`.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releases", +"request": { +"$ref": "Release" +}, +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Gets the specified release for a site or channel. When used to get a release for a site, this can get releases for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}/releases/{releasesId}", +"httpMethod": "GET", +"id": "firebasehosting.sites.channels.releases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the Hosting release, in either of the following formats: - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID - sites/SITE_ID/releases/RELEASE_ID ", +"location": "path", +"pattern": "^sites/[^/]+/channels/[^/]+/releases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the releases that have been created for the specified site or channel. When used to list releases for a site, this list includes releases for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}/releases", +"httpMethod": "GET", +"id": "firebasehosting.sites.channels.releases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of releases to return. The service may return a lower number if fewer releases exist than this maximum number. If unspecified, defaults to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `releases.list` or `channels.releases.list` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site or channel for which to list releases, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID ", +"location": "path", +"pattern": "^sites/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releases", +"response": { +"$ref": "ListReleasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +} +} +} +}, +"domains": { +"methods": { +"create": { +"description": "Creates a domain mapping on the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/domains", +"httpMethod": "POST", +"id": "firebasehosting.sites.domains.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent to create the domain association for, in the format: sites/site-name", +"location": "path", +"pattern": "^sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/domains", +"request": { +"$ref": "Domain" +}, +"response": { +"$ref": "Domain" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes the existing domain mapping on the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/domains/{domainsId}", +"httpMethod": "DELETE", +"id": "firebasehosting.sites.domains.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the domain association to delete.", +"location": "path", +"pattern": "^sites/[^/]+/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Gets a domain mapping on the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/domains/{domainsId}", +"httpMethod": "GET", +"id": "firebasehosting.sites.domains.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the domain configuration to get.", +"location": "path", +"pattern": "^sites/[^/]+/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Domain" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the domains for the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/domains", +"httpMethod": "GET", +"id": "firebasehosting.sites.domains.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The page size to return. Defaults to 50.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token from a previous request, if provided.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent for which to list domains, in the format: sites/ site-name", +"location": "path", +"pattern": "^sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/domains", +"response": { +"$ref": "ListDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"update": { +"description": "Updates the specified domain mapping, creating the mapping as if it does not exist.", +"flatPath": "v1beta1/sites/{sitesId}/domains/{domainsId}", +"httpMethod": "PUT", +"id": "firebasehosting.sites.domains.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the domain association to update or create, if an association doesn't already exist.", +"location": "path", +"pattern": "^sites/[^/]+/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Domain" +}, +"response": { +"$ref": "Domain" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +} +}, +"releases": { +"methods": { +"create": { +"description": "Creates a new release, which makes the content of the specified version actively display on the appropriate URL(s).", +"flatPath": "v1beta1/sites/{sitesId}/releases", +"httpMethod": "POST", +"id": "firebasehosting.sites.releases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The site or channel to which the release belongs, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID", +"location": "path", +"pattern": "^sites/[^/]+$", +"required": true, +"type": "string" +}, +"versionName": { +"description": " The unique identifier for a version, in the format: sites/SITE_ID/versions/ VERSION_ID The SITE_ID in this version identifier must match the SITE_ID in the `parent` parameter. This query parameter must be empty if the `type` field in the request body is `SITE_DISABLE`.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releases", +"request": { +"$ref": "Release" +}, +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Gets the specified release for a site or channel. When used to get a release for a site, this can get releases for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/releases/{releasesId}", +"httpMethod": "GET", +"id": "firebasehosting.sites.releases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the Hosting release, in either of the following formats: - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID - sites/SITE_ID/releases/RELEASE_ID ", +"location": "path", +"pattern": "^sites/[^/]+/releases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the releases that have been created for the specified site or channel. When used to list releases for a site, this list includes releases for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/releases", +"httpMethod": "GET", +"id": "firebasehosting.sites.releases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of releases to return. The service may return a lower number if fewer releases exist than this maximum number. If unspecified, defaults to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `releases.list` or `channels.releases.list` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site or channel for which to list releases, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID ", +"location": "path", +"pattern": "^sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/releases", +"response": { +"$ref": "ListReleasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +} +}, +"versions": { +"methods": { +"clone": { +"description": "Creates a new version on the specified target site using the content of the specified version.", +"flatPath": "v1beta1/sites/{sitesId}/versions:clone", +"httpMethod": "POST", +"id": "firebasehosting.sites.versions.clone", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The target site for the cloned version, in the format: sites/ SITE_ID", +"location": "path", +"pattern": "^sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions:clone", +"request": { +"$ref": "CloneVersionRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"create": { +"description": "Creates a new version for the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/versions", +"httpMethod": "POST", +"id": "firebasehosting.sites.versions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The site in which to create the version, in the format: sites/ SITE_ID", +"location": "path", +"pattern": "^sites/[^/]+$", +"required": true, +"type": "string" +}, +"sizeBytes": { +"description": "The self-reported size of the version. This value is used for a pre-emptive quota check for legacy version uploads.", +"format": "int64", +"location": "query", +"type": "string" +}, +"versionId": { +"deprecated": true, +"description": "A unique id for the new version. This is was only specified for legacy version creations, and should be blank.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions", +"request": { +"$ref": "Version" +}, +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes the specified version.", +"flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "firebasehosting.sites.versions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the version, in the format: sites/SITE_ID/versions/VERSION_ID", +"location": "path", +"pattern": "^sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Get the specified version that has been created for the specified site. This can include versions that were created for the default `live` channel or for any active preview channels for the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}", +"httpMethod": "GET", +"id": "firebasehosting.sites.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully-qualified resource name for the version, in the format: sites/SITE_ID/versions/VERSION_ID", +"location": "path", +"pattern": "^sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "Lists the versions that have been created for the specified site. This list includes versions for both the default `live` channel and any active preview channels for the specified site.", +"flatPath": "v1beta1/sites/{sitesId}/versions", +"httpMethod": "GET", +"id": "firebasehosting.sites.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter string used to return a subset of versions in the response. The currently supported fields for filtering are: `name`, `status`, and `create_time`. Learn more about filtering in Google's [AIP 160 standard](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of versions to return. The service may return a lower number if fewer versions exist than this maximum number. If unspecified, defaults to 25. The maximum value is 100; values above 100 will be coerced to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `ListVersions` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The site or channel for which to list versions, in either of the following formats: - sites/SITE_ID - sites/SITE_ID/channels/CHANNEL_ID ", +"location": "path", +"pattern": "^sites/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions", +"response": { +"$ref": "ListVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"patch": { +"description": " Updates the specified metadata for the specified version. This method will fail with `FAILED_PRECONDITION` in the event of an invalid state transition. The supported [state](../sites.versions#versionstatus) transitions for a version are from `CREATED` to `FINALIZED`. Use [`DeleteVersion`](delete) to set the status of a version to `DELETED`.", +"flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}", +"httpMethod": "PATCH", +"id": "firebasehosting.sites.versions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).", +"location": "path", +"pattern": "^sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A set of field names from your [version](../sites.versions) that you want to update. A field will be overwritten if, and only if, it's in the mask. If a mask is not provided then a default mask of only [`status`](../sites.versions#Version.FIELDS.status) will be used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Version" +}, +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"populateFiles": { +"description": " Adds content files to the specified version. Each file must be under 2 GB.", +"flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}:populateFiles", +"httpMethod": "POST", +"id": "firebasehosting.sites.versions.populateFiles", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The version to which to add files, in the format: sites/SITE_ID /versions/VERSION_ID", +"location": "path", +"pattern": "^sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}:populateFiles", +"request": { +"$ref": "PopulateVersionFilesRequest" +}, +"response": { +"$ref": "PopulateVersionFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +}, +"resources": { +"files": { +"methods": { +"list": { +"description": "Lists the remaining files to be uploaded for the specified version.", +"flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}/files", +"httpMethod": "GET", +"id": "firebasehosting.sites.versions.files.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of version files to return. The service may return a lower number if fewer version files exist than this maximum number. If unspecified, defaults to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token from a previous call to `ListVersionFiles` that tells the server where to resume listing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The version for which to list files, in the format: sites/SITE_ID /versions/VERSION_ID", +"location": "path", +"pattern": "^sites/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +}, +"status": { +"description": " The type of files that should be listed for the specified version.", +"enum": [ +"STATUS_UNSPECIFIED", +"EXPECTED", +"ACTIVE" +], +"enumDescriptions": [ +"The default status; should not be intentionally used.", +"The file has been included in the version and is expected to be uploaded in the near future.", +"The file has already been uploaded to Firebase Hosting." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/files", +"response": { +"$ref": "ListVersionFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +} +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://firebasehosting.googleapis.com/", +"schemas": { +"ActingUser": { +"description": "Contains metadata about the user who performed an action, such as creating a release or finalizing a version.", +"id": "ActingUser", +"properties": { +"email": { +"description": "The email address of the user when the user performed the action.", +"type": "string" +}, +"imageUrl": { +"description": "A profile image URL for the user. May not be present if the user has changed their email address or deleted their account.", +"type": "string" +} +}, +"type": "object" +}, +"CertDnsChallenge": { +"description": "Represents a DNS certificate challenge.", +"id": "CertDnsChallenge", +"properties": { +"domainName": { +"description": "The domain name upon which the DNS challenge must be satisfied.", +"type": "string" +}, +"token": { +"description": "The value that must be present as a TXT record on the domain name to satisfy the challenge.", +"type": "string" +} +}, +"type": "object" +}, +"CertHttpChallenge": { +"description": "Represents an HTTP certificate challenge.", +"id": "CertHttpChallenge", +"properties": { +"path": { +"description": "The URL path on which to serve the specified token to satisfy the certificate challenge.", +"type": "string" +}, +"token": { +"description": "The token to serve at the specified URL path to satisfy the certificate challenge.", +"type": "string" +} +}, +"type": "object" +}, +"CertVerification": { +"description": "A set of ACME challenges you can use to allow Hosting to create an SSL certificate for your domain name before directing traffic to Hosting servers. Use either the DNS or HTTP challenge; it's not necessary to provide both.", +"id": "CertVerification", +"properties": { +"dns": { +"$ref": "DnsUpdates", +"description": "Output only. A `TXT` record to add to your DNS records that confirms your intent to let Hosting create an SSL cert for your domain name.", +"readOnly": true +}, +"http": { +"$ref": "HttpUpdate", +"description": "Output only. A file to add to your existing, non-Hosting hosting service that confirms your intent to let Hosting create an SSL cert for your domain name.", +"readOnly": true +} +}, +"type": "object" +}, +"Certificate": { +"description": "An SSL certificate used to provide end-to-end encryption for requests against your domain name. A `Certificate` can be an actual SSL certificate or, for newly-created custom domains, Hosting's intent to create one.", +"id": "Certificate", +"properties": { +"createTime": { +"description": "Output only. The certificate's creation time. For `TEMPORARY` certs this is the time Hosting first generated challenges for your domain name. For all other cert types, it's the time the actual cert was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The certificate's expiration time. After this time, the cert can no longer be used to provide secure communication between Hosting and your site's visitors.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"issues": { +"description": "Output only. A set of errors Hosting encountered when attempting to create a cert for your domain name. Resolve these issues to ensure Hosting is able to provide secure communication with your site's visitors.", +"items": { +"$ref": "Status" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "Output only. The state of the certificate. Only the `CERT_ACTIVE` and `CERT_EXPIRING_SOON` states provide SSL coverage for a domain name. If the state is `PROPAGATING` and Hosting had an active cert for the domain name before, that formerly-active cert provides SSL coverage for the domain name until the current cert propagates.", +"enum": [ +"CERT_STATE_UNSPECIFIED", +"CERT_PREPARING", +"CERT_VALIDATING", +"CERT_PROPAGATING", +"CERT_ACTIVE", +"CERT_EXPIRING_SOON", +"CERT_EXPIRED" +], +"enumDescriptions": [ +"The certificate's state is unspecified. The message is invalid if this is unspecified.", +"The initial state of every certificate, represents Hosting's intent to create a certificate, before requests to a Certificate Authority are made.", +"Hosting is validating whether a domain name's DNS records are in a state that allow certificate creation on its behalf.", +"The certificate was recently created, and needs time to propagate in Hosting's CDN.", +"The certificate is active, providing secure connections for the domain names it represents.", +"The certificate is expiring, all domain names on it will be given new certificates.", +"The certificate has expired. Hosting can no longer serve secure content on your domain name." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The certificate's type.", +"enum": [ +"TYPE_UNSPECIFIED", +"TEMPORARY", +"GROUPED", +"PROJECT_GROUPED", +"DEDICATED" +], +"enumDescriptions": [ +"The certificate's type is unspecified. The message is invalid if this is unspecified.", +"A short-lived certificate type that covers a domain name temporarily, while Hosting creates a more permanent certificate.", +"The standard certificate for Spark plan custom domains.", +"Blaze plan only. A certificate that covers from 1 to 100 domain names with custom domains on the same Firebase project.", +"Blaze plan only. A certificate that covers a single domain name." +], +"readOnly": true, +"type": "string" +}, +"verification": { +"$ref": "CertVerification", +"description": "Output only. A set of ACME challenges you can add to your DNS records or existing, non-Hosting hosting provider to allow Hosting to create an SSL certificate for your domain name before you point traffic toward hosting. You can use thse challenges as part of a zero downtime transition from your old provider to Hosting.", +"readOnly": true +} +}, +"type": "object" +}, +"Channel": { +"description": "A `Channel` represents a stream of releases for a site. All sites have a default `live` channel that serves content to the Firebase-provided subdomains and any connected custom domains.", +"id": "Channel", +"properties": { +"createTime": { +"description": "Output only. The time at which the channel was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "The time at which the channel will be automatically deleted. If null, the channel will not be automatically deleted. This field is present in the output whether it's set directly or via the `ttl` field.", +"format": "google-datetime", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Text labels used for extra metadata and/or filtering.", +"type": "object" +}, +"name": { +"description": "The fully-qualified resource name for the channel, in the format: sites/ SITE_ID/channels/CHANNEL_ID", +"type": "string" +}, +"release": { +"$ref": "Release", +"description": "Output only. The current release for the channel, if any.", +"readOnly": true +}, +"retainedReleaseCount": { +"description": "The number of previous releases to retain on the channel for rollback or other purposes. Must be a number between 1-100. Defaults to 10 for new channels.", +"format": "int32", +"type": "integer" +}, +"ttl": { +"description": "Input only. A time-to-live for this channel. Sets `expire_time` to the provided duration past the time of the request.", +"format": "google-duration", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which the channel was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"url": { +"description": "Output only. The URL at which the content of this channel's current release can be viewed. This URL is a Firebase-provided subdomain of `web.app`. The content of this channel's current release can also be viewed at the Firebase-provided subdomain of `firebaseapp.com`. If this channel is the `live` channel for the Hosting site, then the content of this channel's current release can also be viewed at any connected custom domains.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CloneVersionRequest": { +"id": "CloneVersionRequest", +"properties": { +"exclude": { +"$ref": "PathFilter", +"description": "If provided, only paths that do not match any of the RegEx values in this list will be included in the new version." +}, +"finalize": { +"description": "If true, the call to `CloneVersion` immediately finalizes the version after cloning is complete. If false, the cloned version will have a status of `CREATED`. Use [`UpdateVersion`](patch) to set the status of the version to `FINALIZED`.", +"type": "boolean" +}, +"include": { +"$ref": "PathFilter", +"description": "If provided, only paths that match one or more RegEx values in this list will be included in the new version." +}, +"sourceVersion": { +"description": "Required. The unique identifier for the version to be cloned, in the format: sites/SITE_ID/versions/VERSION_ID", +"type": "string" +} +}, +"type": "object" +}, +"CloudRunRewrite": { +"description": "A configured rewrite that directs requests to a Cloud Run service. If the Cloud Run service does not exist when setting or updating your Firebase Hosting configuration, then the request fails. Any errors from the Cloud Run service are passed to the end user (for example, if you delete a service, any requests directed to that service receive a `404` error).", +"id": "CloudRunRewrite", +"properties": { +"region": { +"description": "Optional. User-provided region where the Cloud Run service is hosted. Defaults to `us-central1` if not supplied.", +"type": "string" +}, +"serviceId": { +"description": "Required. User-defined ID of the Cloud Run service.", +"type": "string" +}, +"tag": { +"description": "Optional. User-provided TrafficConfig tag to send traffic to. When omitted, traffic is sent to the service-wide URI", +"type": "string" +} +}, +"type": "object" +}, +"CustomDomain": { +"description": "A `CustomDomain` is an entity that links a domain name to a Firebase Hosting site. Add a `CustomDomain` to your site to allow Hosting to serve the site's content in response to requests against your domain name.", +"id": "CustomDomain", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations you can add to leave both human- and machine-readable metadata about your `CustomDomain`.", +"type": "object" +}, +"cert": { +"$ref": "Certificate", +"description": "Output only. The SSL certificate Hosting has for this custom domain's domain name. For new custom domains, this often represents Hosting's intent to create a certificate, rather than an actual cert. Check the `state` field for more.", +"readOnly": true +}, +"certPreference": { +"description": "A field that lets you specify which SSL certificate type Hosting creates for your domain name. Spark plan custom domains only have access to the `GROUPED` cert type, while Blaze plan domains can select any option.", +"enum": [ +"TYPE_UNSPECIFIED", +"TEMPORARY", +"GROUPED", +"PROJECT_GROUPED", +"DEDICATED" +], +"enumDescriptions": [ +"The certificate's type is unspecified. The message is invalid if this is unspecified.", +"A short-lived certificate type that covers a domain name temporarily, while Hosting creates a more permanent certificate.", +"The standard certificate for Spark plan custom domains.", +"Blaze plan only. A certificate that covers from 1 to 100 domain names with custom domains on the same Firebase project.", +"Blaze plan only. A certificate that covers a single domain name." +], +"type": "string" +}, +"createTime": { +"description": "Output only. The custom domain's create time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. The time the `CustomDomain` was deleted; null for custom domains that haven't been deleted. Deleted custom domains persist for approximately 30 days, after which time Hosting removes them completely. To restore a deleted custom domain, make an `UndeleteCustomDomain` request.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Output only. A string that represents the current state of the `CustomDomain` and allows you to confirm its initial state in requests that would modify it. Use the tag to ensure consistency when making `UpdateCustomDomain`, `DeleteCustomDomain`, and `UndeleteCustomDomain` requests.", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The minimum time before a soft-deleted `CustomDomain` is completely removed from Hosting; null for custom domains that haven't been deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"hostState": { +"description": "Output only. The `HostState` of the domain name this `CustomDomain` refers to.", +"enum": [ +"HOST_STATE_UNSPECIFIED", +"HOST_UNHOSTED", +"HOST_UNREACHABLE", +"HOST_MISMATCH", +"HOST_CONFLICT", +"HOST_ACTIVE" +], +"enumDescriptions": [ +"Your custom domain's host state is unspecified. The message is invalid if this is unspecified.", +"Your custom domain's domain name isn't associated with any IP addresses.", +"Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's IP addresses resulted in errors. See your `CustomDomain` object's `issues` field for more details.", +"Your custom domain's domain name has IP addresses that don't ultimately resolve to Hosting.", +"Your custom domain's domain name has IP addresses that resolve to both Hosting and other services. To ensure consistent results, remove `A` and `AAAA` records related to non-Hosting services.", +"All requests against your custom domain's domain name are served by Hosting. If the custom domain's `OwnershipState` is also `ACTIVE`, Hosting serves your Hosting site's content on the domain name." +], +"readOnly": true, +"type": "string" +}, +"issues": { +"description": "Output only. A set of errors Hosting systems encountered when trying to establish Hosting's ability to serve secure content for your domain name. Resolve these issues to ensure your `CustomDomain` behaves properly.", +"items": { +"$ref": "Status" +}, +"readOnly": true, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels used for extra metadata and/or filtering.", +"type": "object" +}, +"name": { +"description": "Output only. The fully-qualified name of the `CustomDomain`.", +"readOnly": true, +"type": "string" +}, +"ownershipState": { +"description": "Output only. The `OwnershipState` of the domain name this `CustomDomain` refers to.", +"enum": [ +"OWNERSHIP_STATE_UNSPECIFIED", +"OWNERSHIP_MISSING", +"OWNERSHIP_UNREACHABLE", +"OWNERSHIP_MISMATCH", +"OWNERSHIP_CONFLICT", +"OWNERSHIP_PENDING", +"OWNERSHIP_ACTIVE" +], +"enumDescriptions": [ +"Your custom domain's ownership state is unspecified. This should never happen.", +"Your custom domain's domain name has no Hosting-related ownership records; no Firebase project has permission to act on the domain name's behalf.", +"Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's ownership records resulted in errors. See your `CustomDomain` object's `issues` field for more details.", +"Your custom domain's domain name is owned by another Firebase project. Remove the conflicting `TXT` records and replace them with project-specific records for your current Firebase project.", +"Your custom domain's domain name has conflicting `TXT` records that indicate ownership by both your current Firebase project and another project. Remove the other project's ownership records to grant the current project ownership.", +"Your custom domain's DNS records are configured correctly. Hosting will transfer ownership of your domain to this `CustomDomain` within 24 hours.", +"Your custom domain's domain name has `TXT` records that grant its project permission to act on its behalf." +], +"readOnly": true, +"type": "string" +}, +"reconciling": { +"description": "Output only. A field that, if true, indicates that Hosting's systems are attmepting to make the custom domain's state match your preferred state. This is most frequently `true` when initially provisioning a `CustomDomain` after a `CreateCustomDomain` request or when creating a new SSL certificate to match an updated `cert_preference` after an `UpdateCustomDomain` request.", +"readOnly": true, +"type": "boolean" +}, +"redirectTarget": { +"description": "A domain name that this `CustomDomain` should direct traffic towards. If specified, Hosting will respond to requests against this custom domain with an HTTP 301 code, and route traffic to the specified `redirect_target` instead.", +"type": "string" +}, +"requiredDnsUpdates": { +"$ref": "DnsUpdates", +"description": "Output only. A set of updates you should make to the domain name's DNS records to let Hosting serve secure content on its behalf.", +"readOnly": true +}, +"updateTime": { +"description": "Output only. The last time the `CustomDomain` was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomDomainMetadata": { +"description": "Metadata associated with a`CustomDomain` operation.", +"id": "CustomDomainMetadata", +"properties": { +"certState": { +"description": "The `CertState` of the domain name's SSL certificate.", +"enum": [ +"CERT_STATE_UNSPECIFIED", +"CERT_PREPARING", +"CERT_VALIDATING", +"CERT_PROPAGATING", +"CERT_ACTIVE", +"CERT_EXPIRING_SOON", +"CERT_EXPIRED" +], +"enumDescriptions": [ +"The certificate's state is unspecified. The message is invalid if this is unspecified.", +"The initial state of every certificate, represents Hosting's intent to create a certificate, before requests to a Certificate Authority are made.", +"Hosting is validating whether a domain name's DNS records are in a state that allow certificate creation on its behalf.", +"The certificate was recently created, and needs time to propagate in Hosting's CDN.", +"The certificate is active, providing secure connections for the domain names it represents.", +"The certificate is expiring, all domain names on it will be given new certificates.", +"The certificate has expired. Hosting can no longer serve secure content on your domain name." +], +"type": "string" +}, +"hostState": { +"description": "The `HostState` of the domain name this `CustomDomain` refers to.", +"enum": [ +"HOST_STATE_UNSPECIFIED", +"HOST_UNHOSTED", +"HOST_UNREACHABLE", +"HOST_MISMATCH", +"HOST_CONFLICT", +"HOST_ACTIVE" +], +"enumDescriptions": [ +"Your custom domain's host state is unspecified. The message is invalid if this is unspecified.", +"Your custom domain's domain name isn't associated with any IP addresses.", +"Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's IP addresses resulted in errors. See your `CustomDomain` object's `issues` field for more details.", +"Your custom domain's domain name has IP addresses that don't ultimately resolve to Hosting.", +"Your custom domain's domain name has IP addresses that resolve to both Hosting and other services. To ensure consistent results, remove `A` and `AAAA` records related to non-Hosting services.", +"All requests against your custom domain's domain name are served by Hosting. If the custom domain's `OwnershipState` is also `ACTIVE`, Hosting serves your Hosting site's content on the domain name." +], +"type": "string" +}, +"issues": { +"description": "A list of issues that are currently preventing Hosting from completing the operation. These are generally DNS-related issues that Hosting encounters when querying a domain name's records or attempting to mint an SSL certificate.", +"items": { +"$ref": "Status" +}, +"type": "array" +}, +"liveMigrationSteps": { +"description": "A set of DNS record updates and ACME challenges that allow you to transition domain names to Firebase Hosting with zero downtime. These updates allow Hosting to create an SSL certificate and establish ownership for your custom domain before Hosting begins serving traffic on it. If your domain name is already in active use with another provider, add one of the challenges and make the recommended DNS updates. After adding challenges and adjusting DNS records as necessary, wait for the `ownershipState` to be `OWNERSHIP_ACTIVE` and the `certState` to be `CERT_ACTIVE` before sending traffic to Hosting.", +"items": { +"$ref": "LiveMigrationStep" +}, +"type": "array" +}, +"ownershipState": { +"description": "The `OwnershipState` of the domain name this `CustomDomain` refers to.", +"enum": [ +"OWNERSHIP_STATE_UNSPECIFIED", +"OWNERSHIP_MISSING", +"OWNERSHIP_UNREACHABLE", +"OWNERSHIP_MISMATCH", +"OWNERSHIP_CONFLICT", +"OWNERSHIP_PENDING", +"OWNERSHIP_ACTIVE" +], +"enumDescriptions": [ +"Your custom domain's ownership state is unspecified. This should never happen.", +"Your custom domain's domain name has no Hosting-related ownership records; no Firebase project has permission to act on the domain name's behalf.", +"Your custom domain's domain name can't be reached. Hosting services' DNS queries to find your domain name's ownership records resulted in errors. See your `CustomDomain` object's `issues` field for more details.", +"Your custom domain's domain name is owned by another Firebase project. Remove the conflicting `TXT` records and replace them with project-specific records for your current Firebase project.", +"Your custom domain's domain name has conflicting `TXT` records that indicate ownership by both your current Firebase project and another project. Remove the other project's ownership records to grant the current project ownership.", +"Your custom domain's DNS records are configured correctly. Hosting will transfer ownership of your domain to this `CustomDomain` within 24 hours.", +"Your custom domain's domain name has `TXT` records that grant its project permission to act on its behalf." +], +"type": "string" +}, +"quickSetupUpdates": { +"$ref": "DnsUpdates", +"description": "A set of DNS record updates that allow Hosting to serve secure content on your domain name. The record type determines the update's purpose: - `A` and `AAAA`: Updates your domain name's IP addresses so that they direct traffic to Hosting servers. - `TXT`: Updates ownership permissions on your domain name, letting Hosting know that your custom domain's project has permission to perform actions for that domain name. - `CAA`: Updates your domain name's list of authorized Certificate Authorities (CAs). Only present if you have existing `CAA` records that prohibit Hosting's CA from minting certs for your domain name. These updates include all DNS changes you'll need to get started with Hosting, but, if made all at once, can result in a brief period of downtime for your domain name--while Hosting creates and uploads an SSL cert, for example. If you'd like to add your domain name to Hosting without downtime, complete the `liveMigrationSteps` first, before making the remaining updates in this field." +} +}, +"type": "object" +}, +"DnsRecord": { +"description": "DNS records are resource records that define how systems and services should behave when handling requests for a domain name. For example, when you add `A` records to your domain name's DNS records, you're informing other systems (such as your users' web browsers) to contact those IPv4 addresses to retrieve resources relevant to your domain name (such as your Hosting site files).", +"id": "DnsRecord", +"properties": { +"domainName": { +"description": "Output only. The domain name the record pertains to, e.g. `foo.bar.com.`.", +"readOnly": true, +"type": "string" +}, +"rdata": { +"description": "Output only. The data of the record. The meaning of the value depends on record type: - A and AAAA: IP addresses for the domain name. - CNAME: Another domain to check for records. - TXT: Arbitrary text strings associated with the domain name. Hosting uses TXT records to determine which Firebase projects have permission to act on the domain name's behalf. - CAA: The record's flags, tag, and value, e.g. `0 issue \"pki.goog\"`.", +"readOnly": true, +"type": "string" +}, +"requiredAction": { +"description": "Output only. An enum that indicates the a required action for this record.", +"enum": [ +"NONE", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"No action necessary.", +"Add this record to your DNS records.", +"Remove this record from your DNS records." +], +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The record's type, which determines what data the record contains.", +"enum": [ +"TYPE_UNSPECIFIED", +"A", +"CNAME", +"TXT", +"AAAA", +"CAA" +], +"enumDescriptions": [ +"The record's type is unspecified. The message is invalid if this is unspecified.", +"An `A` record, as defined in [RFC 1035](https://tools.ietf.org/html/rfc1035). A records determine which IPv4 addresses a domain name directs traffic towards.", +"A `CNAME` record, as defined in [RFC 1035](https://tools.ietf.org/html/rfc1035). `CNAME` or Canonical Name records map a domain name to a different, canonical domain name. If a `CNAME` record is present, it should be the only record on the domain name.", +"A `TXT` record, as defined in [RFC 1035](https://tools.ietf.org/html/rfc1035). `TXT` records hold arbitrary text data on a domain name. Hosting uses `TXT` records to establish which Firebase Project has permission to act on a domain name.", +"An AAAA record, as defined in [RFC 3596](https://tools.ietf.org/html/rfc3596) AAAA records determine which IPv6 addresses a domain name directs traffic towards.", +"A CAA record, as defined in [RFC 6844](https://tools.ietf.org/html/rfc6844). CAA, or Certificate Authority Authorization, records determine which Certificate Authorities (SSL certificate minting organizations) are authorized to mint a certificate for the domain name. Firebase Hosting uses `pki.goog` as its primary CA. CAA records cascade. A CAA record on `foo.com` also applies to `bar.foo.com` unless `bar.foo.com` has its own set of CAA records. CAA records are optional. If a domain name and its parents have no CAA records, all CAs are authorized to mint certificates on its behalf. In general, Hosting only asks you to modify CAA records when doing so is required to unblock SSL cert creation." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DnsRecordSet": { +"description": "A set of DNS records relevant to the setup and maintenance of a custom domain in Firebase Hosting.", +"id": "DnsRecordSet", +"properties": { +"checkError": { +"$ref": "Status", +"description": "Output only. An error Hosting services encountered when querying your domain name's DNS records. Note: Hosting ignores `NXDOMAIN` errors, as those generally just mean that a domain name hasn't been set up yet.", +"readOnly": true +}, +"domainName": { +"description": "Output only. The domain name the record set pertains to.", +"readOnly": true, +"type": "string" +}, +"records": { +"description": "Output only. Records on the domain.", +"items": { +"$ref": "DnsRecord" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"DnsUpdates": { +"description": "A set of DNS record updates that you should make to allow Hosting to serve secure content in response to requests against your domain name. These updates present the current state of your domain name's DNS records when Hosting last queried them, and the desired set of records that Hosting needs to see before your custom domain can be fully active.", +"id": "DnsUpdates", +"properties": { +"checkTime": { +"description": "The last time Hosting checked your custom domain's DNS records.", +"format": "google-datetime", +"type": "string" +}, +"desired": { +"description": "The set of DNS records Hosting needs to serve secure content on the domain.", +"items": { +"$ref": "DnsRecordSet" +}, +"type": "array" +}, +"discovered": { +"description": "The set of DNS records Hosting discovered when inspecting a domain.", +"items": { +"$ref": "DnsRecordSet" +}, +"type": "array" +} +}, +"type": "object" +}, +"Domain": { +"description": "The intended behavior and status information of a domain.", +"id": "Domain", +"properties": { +"domainName": { +"description": "Required. The domain name of the association.", +"type": "string" +}, +"domainRedirect": { +"$ref": "DomainRedirect", +"description": "If set, the domain should redirect with the provided parameters." +}, +"provisioning": { +"$ref": "DomainProvisioning", +"description": "Output only. Information about the provisioning of certificates and the health of the DNS resolution for the domain." +}, +"site": { +"description": "Required. The site name of the association.", +"type": "string" +}, +"status": { +"description": "Output only. Additional status of the domain association.", +"enum": [ +"DOMAIN_STATUS_UNSPECIFIED", +"DOMAIN_CHANGE_PENDING", +"DOMAIN_ACTIVE", +"DOMAIN_VERIFICATION_REQUIRED", +"DOMAIN_VERIFICATION_LOST" +], +"enumDeprecated": [ +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified domain association status.", +"An external operation is in progress on the domain association and no further operations can be performed until it is complete. Formerly used for metabase updates. Not currently used", +"The domain association is active and no additional action is required.", +"The domain was previously verified in the legacy system. User must reverify the domain through the ownership service.", +"The domain verification has been lost and the domain is in the grace period before being removed from the Firebase Hosting site." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which the domain was last updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"DomainProvisioning": { +"description": "The current certificate provisioning status information for a domain.", +"id": "DomainProvisioning", +"properties": { +"certChallengeDiscoveredTxt": { +"description": "The TXT records (for the certificate challenge) that were found at the last DNS fetch.", +"items": { +"type": "string" +}, +"type": "array" +}, +"certChallengeDns": { +"$ref": "CertDnsChallenge", +"description": "The DNS challenge for generating a certificate." +}, +"certChallengeHttp": { +"$ref": "CertHttpChallenge", +"description": "The HTTP challenge for generating a certificate." +}, +"certStatus": { +"description": "The certificate provisioning status; updated when Firebase Hosting provisions an SSL certificate for the domain.", +"enum": [ +"CERT_STATUS_UNSPECIFIED", +"CERT_PENDING", +"CERT_MISSING", +"CERT_PROCESSING", +"CERT_PROPAGATING", +"CERT_ACTIVE", +"CERT_ERROR" +], +"enumDescriptions": [ +"Unspecified certificate provisioning status.", +"Waiting for certificate challenge to be created.", +"Waiting for certificate challenge to be met.", +"Certificate challenge met; attempting to acquire/propagate certificate.", +"Certificate obtained; propagating to the CDN.", +"Certificate provisioned and deployed across the CDN.", +"Certificate provisioning failed in a non-recoverable manner." +], +"type": "string" +}, +"discoveredIps": { +"description": "The IPs found at the last DNS fetch.", +"items": { +"type": "string" +}, +"type": "array" +}, +"dnsFetchTime": { +"description": "The time at which the last DNS fetch occurred.", +"format": "google-datetime", +"type": "string" +}, +"dnsStatus": { +"description": "The DNS record match status as of the last DNS fetch.", +"enum": [ +"DNS_STATUS_UNSPECIFIED", +"DNS_PENDING", +"DNS_MISSING", +"DNS_PARTIAL_MATCH", +"DNS_MATCH", +"DNS_EXTRANEOUS_MATCH" +], +"enumDescriptions": [ +"Unspecified DNS status.", +"No DNS records have been specified for this domain yet.", +"None of the required DNS records have been detected on the domain.", +"Some of the required DNS records were detected, but not all of them. No extra (non-required) DNS records were detected.", +"All required DNS records were detected. No extra (non-required) DNS records were detected.", +"The domain has at least one of the required DNS records, and it has at least one extra (non-required) DNS record." +], +"type": "string" +}, +"expectedIps": { +"description": "The list of IPs to which the domain is expected to resolve.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DomainRedirect": { +"description": "Defines the behavior of a domain-level redirect. Domain redirects preserve the path of the redirect but replace the requested domain with the one specified in the redirect configuration.", +"id": "DomainRedirect", +"properties": { +"domainName": { +"description": "Required. The domain name to redirect to.", +"type": "string" +}, +"type": { +"description": "Required. The redirect status code.", +"enum": [ +"REDIRECT_TYPE_UNSPECIFIED", +"MOVED_PERMANENTLY" +], +"enumDescriptions": [ +"The default redirect type; should not be intentionlly used.", +"The redirect will respond with an HTTP status code of `301 Moved Permanently`." +], +"type": "string" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Header": { +"description": "A [`Header`](https://firebase.google.com/docs/hosting/full-config#headers) specifies a URL pattern that, if matched to the request URL path, triggers Hosting to apply the specified custom response headers.", +"id": "Header", +"properties": { +"glob": { +"description": "The user-supplied [glob](https://firebase.google.com/docs/hosting/full-config#glob_pattern_matching) to match against the request URL path.", +"type": "string" +}, +"headers": { +"additionalProperties": { +"type": "string" +}, +"description": "Required. The additional headers to add to the response.", +"type": "object" +}, +"regex": { +"description": "The user-supplied RE2 regular expression to match against the request URL path.", +"type": "string" +} +}, +"type": "object" +}, +"HttpUpdate": { +"description": "A file you can add to your existing, non-Hosting hosting service that confirms your intent to allow Hosting's Certificate Authorities to create an SSL certificate for your domain.", +"id": "HttpUpdate", +"properties": { +"checkError": { +"$ref": "Status", +"description": "Output only. An error encountered during the last contents check. If null, the check completed successfully.", +"readOnly": true +}, +"desired": { +"description": "Output only. A text string to serve at the path.", +"readOnly": true, +"type": "string" +}, +"discovered": { +"description": "Output only. Whether Hosting was able to find the required file contents on the specified path during its last check.", +"readOnly": true, +"type": "string" +}, +"lastCheckTime": { +"description": "Output only. The last time Hosting systems checked for the file contents.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"path": { +"description": "Output only. The path to the file.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"I18nConfig": { +"description": "If provided, i18n rewrites are enabled.", +"id": "I18nConfig", +"properties": { +"root": { +"description": "Required. The user-supplied path where country and language specific content will be looked for within the public directory.", +"type": "string" +} +}, +"type": "object" +}, +"ListChannelsResponse": { +"id": "ListChannelsResponse", +"properties": { +"channels": { +"description": "The list of channels.", +"items": { +"$ref": "Channel" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token, if more results exist beyond the ones in this response. Include this token in your next call to `ListChannels`. Page tokens are short-lived and should not be stored.", +"type": "string" +} +}, +"type": "object" +}, +"ListCustomDomainsResponse": { +"description": "The response from `ListCustomDomains`.", +"id": "ListCustomDomainsResponse", +"properties": { +"customDomains": { +"description": "A list of `CustomDomain` entities associated with the specified Firebase `Site`.", +"items": { +"$ref": "CustomDomain" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token, if more results exist beyond the ones in this response. Include this token in your next call to `ListCustomDomains`. Page tokens are short-lived and should not be stored.", +"type": "string" +} +}, +"type": "object" +}, +"ListDomainsResponse": { +"description": "The response to listing Domains.", +"id": "ListDomainsResponse", +"properties": { +"domains": { +"description": "The list of domains, if any exist.", +"items": { +"$ref": "Domain" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token, if more results exist.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListReleasesResponse": { +"id": "ListReleasesResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token, if more results exist beyond the ones in this response. Include this token in your next call to `ListReleases`. Page tokens are short-lived and should not be stored.", +"type": "string" +}, +"releases": { +"description": "The list of hashes of files that still need to be uploaded, if any exist.", +"items": { +"$ref": "Release" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSitesResponse": { +"id": "ListSitesResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token, if more results exist beyond the ones in this response. Include this token in your next call to `ListSites`. Page tokens are short-lived and should not be stored.", +"type": "string" +}, +"sites": { +"description": "A list of Site objects associated with the specified Firebase project.", +"items": { +"$ref": "Site" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVersionFilesResponse": { +"id": "ListVersionFilesResponse", +"properties": { +"files": { +"description": " The list of paths to the hashes of the files in the specified version.", +"items": { +"$ref": "VersionFile" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token, if more results exist beyond the ones in this response. Include this token in your next call to `ListVersionFiles`. Page tokens are short-lived and should not be stored.", +"type": "string" +} +}, +"type": "object" +}, +"ListVersionsResponse": { +"id": "ListVersionsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token, if more results exist beyond the ones in this response. Include this token in your next call to `ListVersions`. Page tokens are short-lived and should not be stored.", +"type": "string" +}, +"versions": { +"description": "The list of versions, if any exist.", +"items": { +"$ref": "Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"LiveMigrationStep": { +"description": "A set of updates including ACME challenges and DNS records that allow Hosting to create an SSL certificate and establish project ownership for your domain name before you direct traffic to Hosting servers. Use these updates to facilitate zero downtime migrations to Hosting from other services. After you've made the recommended updates, check your custom domain's `ownershipState` and `certState`. To avoid downtime, they should be `OWNERSHIP_ACTIVE` and `CERT_ACTIVE`, respectively, before you update your `A` and `AAAA` records.", +"id": "LiveMigrationStep", +"properties": { +"certVerification": { +"$ref": "CertVerification", +"description": "Output only. A pair of ACME challenges that Hosting's Certificate Authority (CA) can use to create an SSL cert for your domain name. Use either the DNS or HTTP challenge; it's not necessary to provide both.", +"readOnly": true +}, +"dnsUpdates": { +"$ref": "DnsUpdates", +"description": "Output only. DNS updates to facilitate your domain's zero-downtime migration to Hosting.", +"readOnly": true +}, +"issues": { +"description": "Output only. Issues that prevent the current step from completing.", +"items": { +"$ref": "Status" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "Output only. The state of the live migration step, indicates whether you should work to complete the step now, in the future, or have already completed it.", +"enum": [ +"STATE_UNSPECIFIED", +"PREPARING", +"PENDING", +"INCOMPLETE", +"PROCESSING", +"COMPLETE" +], +"enumDescriptions": [ +"The step's state is unspecified. The message is invalid if this is unspecified.", +"Hosting doesn't have enough information to construct the step yet. Complete any prior steps and/or resolve this step's issue to proceed.", +"The step's state is pending. Complete prior steps before working on a `PENDING` step.", +"The step is incomplete. You should complete any `certVerification` or `dnsUpdates` changes to complete it.", +"You've done your part to update records and present challenges as necessary. Hosting is now completing background processes to complete the step, e.g. minting an SSL cert for your domain name.", +"The step is complete. You've already made the necessary changes to your domain and/or prior hosting service to advance to the next step. Once all steps are complete, Hosting is ready to serve secure content on your domain." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"PathFilter": { +"description": "A representation of filter path.", +"id": "PathFilter", +"properties": { +"regexes": { +"description": "An array of RegEx values by which to filter.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PopulateVersionFilesRequest": { +"id": "PopulateVersionFilesRequest", +"properties": { +"files": { +"additionalProperties": { +"type": "string" +}, +"description": "A set of file paths to the hashes corresponding to assets that should be added to the version. A file path to an empty hash will remove the path from the version. Calculate a hash by Gzipping the file then taking the SHA256 hash of the newly compressed file.", +"type": "object" +} +}, +"type": "object" +}, +"PopulateVersionFilesResponse": { +"id": "PopulateVersionFilesResponse", +"properties": { +"uploadRequiredHashes": { +"description": "The content hashes of the specified files that need to be uploaded to the specified URL.", +"items": { +"type": "string" +}, +"type": "array" +}, +"uploadUrl": { +"description": "The URL to which the files should be uploaded, in the format: \"https://upload-firebasehosting.googleapis.com/upload/sites/SITE_ID /versions/VERSION_ID/files\" Perform a multipart `POST` of the Gzipped file contents to the URL using a forward slash and the hash of the file appended to the end.", +"type": "string" +} +}, +"type": "object" +}, +"Redirect": { +"description": "A [`Redirect`](https://firebase.google.com/docs/hosting/full-config#redirects) specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond with a redirect to the specified destination path.", +"id": "Redirect", +"properties": { +"glob": { +"description": "The user-supplied [glob](https://firebase.google.com/docs/hosting/full-config#glob_pattern_matching) to match against the request URL path.", +"type": "string" +}, +"location": { +"description": "Required. The value to put in the HTTP location header of the response. The location can contain capture group values from the pattern using a `:` prefix to identify the segment and an optional `*` to capture the rest of the URL. For example: \"glob\": \"/:capture*\", \"statusCode\": 301, \"location\": \"https://example.com/foo/:capture\"", +"type": "string" +}, +"regex": { +"description": "The user-supplied RE2 regular expression to match against the request URL path.", +"type": "string" +}, +"statusCode": { +"description": "Required. The status HTTP code to return in the response. It must be a valid 3xx status code.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Release": { +"description": " A `Release` is a particular [collection of configurations and files](sites.versions) that is set to be public at a particular time.", +"id": "Release", +"properties": { +"message": { +"description": "The deploy description when the release was created. The value can be up to 512 characters.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier for the release, in either of the following formats: - sites/SITE_ID/releases/RELEASE_ID - sites/SITE_ID/channels/CHANNEL_ID/releases/RELEASE_ID This name is provided in the response body when you call [`releases.create`](sites.releases/create) or [`channels.releases.create`](sites.channels.releases/create).", +"type": "string" +}, +"releaseTime": { +"description": "Output only. The time at which the version is set to be public.", +"format": "google-datetime", +"type": "string" +}, +"releaseUser": { +"$ref": "ActingUser", +"description": "Output only. Identifies the user who created the release." +}, +"type": { +"description": "Explains the reason for the release. Specify a value for this field only when creating a `SITE_DISABLE` type release.", +"enum": [ +"TYPE_UNSPECIFIED", +"DEPLOY", +"ROLLBACK", +"SITE_DISABLE" +], +"enumDescriptions": [ +"An unspecified type. Indicates that a version was released. This is the default value when no other `type` is explicitly specified.", +"A version was uploaded to Firebase Hosting and released.", +"The release points back to a previously deployed version.", +"The release prevents the site from serving content. Firebase Hosting acts as if the site never existed." +], +"type": "string" +}, +"version": { +"$ref": "Version", +"description": "Output only. The configuration and content that was released." +} +}, +"type": "object" +}, +"Rewrite": { +"description": "A [`Rewrite`](https://firebase.google.com/docs/hosting/full-config#rewrites) specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond as if the service were given the specified destination URL.", +"id": "Rewrite", +"properties": { +"dynamicLinks": { +"description": "The request will be forwarded to Firebase Dynamic Links.", +"type": "boolean" +}, +"function": { +"description": "The function to proxy requests to. Must match the exported function name exactly.", +"type": "string" +}, +"functionRegion": { +"description": "Optional. Specify a Cloud region for rewritten Functions invocations. If not provided, defaults to us-central1.", +"type": "string" +}, +"glob": { +"description": "The user-supplied [glob](https://firebase.google.com/docs/hosting/full-config#glob_pattern_matching) to match against the request URL path.", +"type": "string" +}, +"path": { +"description": "The URL path to rewrite the request to.", +"type": "string" +}, +"regex": { +"description": "The user-supplied RE2 regular expression to match against the request URL path.", +"type": "string" +}, +"run": { +"$ref": "CloudRunRewrite", +"description": "The request will be forwarded to Cloud Run." +} +}, +"type": "object" +}, +"ServingConfig": { +"description": "The configuration for how incoming requests to a site should be routed and processed before serving content. The URL request paths are matched against the specified URL patterns in the configuration, then Hosting applies the applicable configuration according to a specific [priority order](https://firebase.google.com/docs/hosting/full-config#hosting_priority_order).", +"id": "ServingConfig", +"properties": { +"appAssociation": { +"description": "How to handle well known App Association files.", +"enum": [ +"AUTO", +"NONE" +], +"enumDescriptions": [ +"The app association files will be automatically created from the apps that exist in the Firebase project.", +"No special handling of the app association files will occur, these paths will result in a 404 unless caught with a Rewrite." +], +"type": "string" +}, +"cleanUrls": { +"description": "Defines whether to drop the file extension from uploaded files.", +"type": "boolean" +}, +"headers": { +"description": "An array of objects, where each object specifies a URL pattern that, if matched to the request URL path, triggers Hosting to apply the specified custom response headers.", +"items": { +"$ref": "Header" +}, +"type": "array" +}, +"i18n": { +"$ref": "I18nConfig", +"description": "Optional. Defines i18n rewrite behavior." +}, +"redirects": { +"description": "An array of objects (called redirect rules), where each rule specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond with a redirect to the specified destination path.", +"items": { +"$ref": "Redirect" +}, +"type": "array" +}, +"rewrites": { +"description": "An array of objects (called rewrite rules), where each rule specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond as if the service were given the specified destination URL.", +"items": { +"$ref": "Rewrite" +}, +"type": "array" +}, +"trailingSlashBehavior": { +"description": "Defines how to handle a trailing slash in the URL path.", +"enum": [ +"TRAILING_SLASH_BEHAVIOR_UNSPECIFIED", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"No behavior is specified. Files are served at their exact location only, and trailing slashes are only added to directory indexes.", +"Trailing slashes are _added_ to directory indexes as well as to any URL path not ending in a file extension.", +"Trailing slashes are _removed_ from directory indexes as well as from any URL path not ending in a file extension." +], +"type": "string" +} +}, +"type": "object" +}, +"Site": { +"description": "A `Site` represents a Firebase Hosting site.", +"id": "Site", +"properties": { +"appId": { +"description": "Optional. The [ID of a Web App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id) associated with the Hosting site.", +"type": "string" +}, +"defaultUrl": { +"description": "Output only. The default URL for the Hosting site.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-specified labels for the Hosting site.", +"type": "object" +}, +"name": { +"description": "Output only. The fully-qualified resource name of the Hosting site, in the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. The type of Hosting site. Every Firebase project has a `DEFAULT_SITE`, which is created when Hosting is provisioned for the project. All additional sites are `USER_SITE`.", +"enum": [ +"TYPE_UNSPECIFIED", +"DEFAULT_SITE", +"USER_SITE" +], +"enumDescriptions": [ +"Unknown state, likely the result of an error on the backend.", +"The default Hosting site that is provisioned when a Firebase project is created.", +"A Hosting site that the user created." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SiteConfig": { +"description": "A `SiteConfig` contains metadata associated with a specific site that controls Firebase Hosting serving behavior", +"id": "SiteConfig", +"properties": { +"cloudLoggingEnabled": { +"description": "Whether or not web requests made by site visitors are logged via Cloud Logging.", +"type": "boolean" +}, +"maxVersions": { +"description": "The number of FINALIZED versions that will be held for a site before automatic deletion. When a new version is deployed, content for versions in storage in excess of this number will be deleted, and will no longer be billed for storage usage. Oldest versions will be deleted first; sites are created with an unlimited number of max_versions by default.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"UndeleteCustomDomainRequest": { +"description": "The request sent to `UndeleteCustomDomain`.", +"id": "UndeleteCustomDomainRequest", +"properties": { +"etag": { +"description": "A tag that represents the state of the `CustomDomain` as you know it. If present, the supplied tag must match the current value on your `CustomDomain`, or the request fails.", +"type": "string" +}, +"validateOnly": { +"description": "If true, Hosting validates that it's possible to complete your request but doesn't actually delete the `CustomDomain`.", +"type": "boolean" +} +}, +"type": "object" +}, +"Version": { +"description": "A `Version` is a configuration and a collection of static files which determine how a site is displayed.", +"id": "Version", +"properties": { +"config": { +"$ref": "ServingConfig", +"description": "The configuration for the behavior of the site. This configuration exists in the [`firebase.json`](https://firebase.google.com/docs/cli/#the_firebasejson_file) file." +}, +"createTime": { +"description": "Output only. The time at which the version was created.", +"format": "google-datetime", +"type": "string" +}, +"createUser": { +"$ref": "ActingUser", +"description": "Output only. Identifies the user who created the version." +}, +"deleteTime": { +"description": "Output only. The time at which the version was `DELETED`.", +"format": "google-datetime", +"type": "string" +}, +"deleteUser": { +"$ref": "ActingUser", +"description": "Output only. Identifies the user who `DELETED` the version." +}, +"fileCount": { +"description": "Output only. The total number of files associated with the version. This value is calculated after a version is `FINALIZED`.", +"format": "int64", +"type": "string" +}, +"finalizeTime": { +"description": "Output only. The time at which the version was `FINALIZED`.", +"format": "google-datetime", +"type": "string" +}, +"finalizeUser": { +"$ref": "ActingUser", +"description": "Output only. Identifies the user who `FINALIZED` the version." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels used for extra metadata and/or filtering.", +"type": "object" +}, +"name": { +"description": "The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).", +"type": "string" +}, +"status": { +"description": "The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).", +"enum": [ +"VERSION_STATUS_UNSPECIFIED", +"CREATED", +"FINALIZED", +"DELETED", +"ABANDONED", +"EXPIRED", +"CLONING" +], +"enumDescriptions": [ +"The default status; should not be intentionally used.", +"The version has been created, and content is currently being added to the version.", +"All content has been added to the version, and the version can no longer be changed.", +"The version has been deleted.", +"The version was not updated to `FINALIZED` within 12 hours and was automatically deleted.", +"The version is outside the site-configured limit for the number of retained versions, so the version's content is scheduled for deletion.", +"The version is being cloned from another version. All content is still being copied over." +], +"type": "string" +}, +"versionBytes": { +"description": "Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"VersionFile": { +"description": "A static content file that is part of a version.", +"id": "VersionFile", +"properties": { +"hash": { +"description": "The SHA256 content hash of the file.", +"type": "string" +}, +"path": { +"description": "The URI at which the file's content should display.", +"type": "string" +}, +"status": { +"description": "Output only. The current status of a particular file in the specified version. The value will be either `pending upload` or `uploaded`.", +"enum": [ +"STATUS_UNSPECIFIED", +"EXPECTED", +"ACTIVE" +], +"enumDescriptions": [ +"The default status; should not be intentionally used.", +"The file has been included in the version and is expected to be uploaded in the near future.", +"The file has already been uploaded to Firebase Hosting." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Firebase Hosting API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json new file mode 100644 index 0000000000000000000000000000000000000000..d60e8c3f18b3d0b480922c9a7e148eae9e04df4c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json @@ -0,0 +1,572 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://firebaseml.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Firebase ML", +"description": "Access custom machine learning models hosted via Firebase ML.", +"discoveryVersion": "v1", +"documentationLink": "https://firebase.google.com", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "firebaseml:v1beta2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://firebaseml.mtls.googleapis.com/", +"name": "firebaseml", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"models": { +"methods": { +"create": { +"description": "Creates a model in Firebase ML. The longrunning operation will eventually return a Model", +"flatPath": "v1beta2/projects/{projectsId}/models", +"httpMethod": "POST", +"id": "firebaseml.projects.models.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent project resource where the model is to be created. The parent must have the form `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/models", +"request": { +"$ref": "Model" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a model", +"flatPath": "v1beta2/projects/{projectsId}/models/{modelsId}", +"httpMethod": "DELETE", +"id": "firebaseml.projects.models.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the model to delete. The name must have the form `projects/{project_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"download": { +"description": "Gets Download information for a model. This is meant for downloading model resources onto devices. It gives very limited information about the model.", +"flatPath": "v1beta2/projects/{projectsId}/models/{modelsId}:download", +"httpMethod": "GET", +"id": "firebaseml.projects.models.download", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the model to download. The name must have the form `projects/{project}/models/{model}`", +"location": "path", +"pattern": "^projects/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}:download", +"response": { +"$ref": "DownloadModelResponse" +} +}, +"get": { +"description": "Gets a model resource.", +"flatPath": "v1beta2/projects/{projectsId}/models/{modelsId}", +"httpMethod": "GET", +"id": "firebaseml.projects.models.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the model to get. The name must have the form `projects/{project_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Model" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the models", +"flatPath": "v1beta2/projects/{projectsId}/models", +"httpMethod": "GET", +"id": "firebaseml.projects.models.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter for the list e.g. 'tags: abc' to list models which are tagged with \"abc\"", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent to list models for. The parent must have the form `projects/{project_id}'", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/models", +"response": { +"$ref": "ListModelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a model. The longrunning operation will eventually return a Model.", +"flatPath": "v1beta2/projects/{projectsId}/models/{modelsId}", +"httpMethod": "PATCH", +"id": "firebaseml.projects.models.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the Model. Model names have the form `projects/{project_id}/models/{model_id}` The name is ignored when creating a model.", +"location": "path", +"pattern": "^projects/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "Model" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta2/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "firebaseml.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20240705", +"rootUrl": "https://firebaseml.googleapis.com/", +"schemas": { +"DownloadModelResponse": { +"description": "The response for downloading a model to device.", +"id": "DownloadModelResponse", +"properties": { +"downloadUri": { +"description": "Output only. A download URI for the model/zip file.", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The time that the download URI link expires. If the link has expired, the REST call must be repeated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"modelFormat": { +"description": "Output only. The format of the model being downloaded.", +"enum": [ +"MODEL_FORMAT_UNSPECIFIED", +"TFLITE" +], +"enumDescriptions": [ +"Unknown format", +"TFLite model" +], +"readOnly": true, +"type": "string" +}, +"sizeBytes": { +"description": "Output only. The size of the file(s), if this information is available.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"ListModelsResponse": { +"description": "The response for list models", +"id": "ListModelsResponse", +"properties": { +"models": { +"description": "The list of models", +"items": { +"$ref": "Model" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"Model": { +"description": "An ML model hosted in Firebase ML", +"id": "Model", +"properties": { +"activeOperations": { +"description": "Output only. Lists operation ids associated with this model whose status is NOT done.", +"items": { +"$ref": "Operation" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. Timestamp when this model was created in Firebase ML.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The name of the model to create. The name can be up to 32 characters long and can consist only of ASCII Latin letters A-Z and a-z, underscores(_) and ASCII digits 0-9. It must start with a letter.", +"type": "string" +}, +"etag": { +"description": "Output only. See RFC7232 https://tools.ietf.org/html/rfc7232#section-2.3", +"readOnly": true, +"type": "string" +}, +"modelHash": { +"description": "Output only. The model_hash will change if a new file is available for download.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The resource name of the Model. Model names have the form `projects/{project_id}/models/{model_id}` The name is ignored when creating a model.", +"type": "string" +}, +"state": { +"$ref": "ModelState", +"description": "State common to all model types. Includes publishing and validation information." +}, +"tags": { +"description": "User defined tags which can be used to group/filter models during listing", +"items": { +"type": "string" +}, +"type": "array" +}, +"tfliteModel": { +"$ref": "TfLiteModel", +"description": "A TFLite Model" +}, +"updateTime": { +"description": "Output only. Timestamp when this model was updated in Firebase ML.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ModelOperationMetadata": { +"description": "This is returned in the longrunning operations for create/update.", +"id": "ModelOperationMetadata", +"properties": { +"basicOperationStatus": { +"enum": [ +"BASIC_OPERATION_STATUS_UNSPECIFIED", +"BASIC_OPERATION_STATUS_UPLOADING", +"BASIC_OPERATION_STATUS_VERIFYING" +], +"enumDescriptions": [ +"The status is unspecified", +"The model file is being uploaded", +"The model file is being verified" +], +"type": "string" +}, +"name": { +"description": "The name of the model we are creating/updating The name must have the form `projects/{project_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"ModelState": { +"description": "State common to all model types. Includes publishing and validation information.", +"id": "ModelState", +"properties": { +"published": { +"description": "Indicates if this model has been published.", +"type": "boolean" +}, +"validationError": { +"$ref": "Status", +"description": "Output only. Indicates the latest validation error on the model if any. A model may have validation errors if there were problems during the model creation/update. e.g. in the case of a TfLiteModel, if a tflite model file was missing or in the wrong format. This field will be empty for valid models.", +"readOnly": true +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TfLiteModel": { +"description": "Information that is specific to TfLite models.", +"id": "TfLiteModel", +"properties": { +"automlModel": { +"description": "The AutoML model id referencing a model you created with the AutoML API. The name should have format 'projects//locations//models/' (This is the model resource name returned from the AutoML API)", +"type": "string" +}, +"gcsTfliteUri": { +"description": "The TfLite file containing the model. (Stored in Google Cloud). The gcs_tflite_uri should have form: gs://some-bucket/some-model.tflite Note: If you update the file in the original location, it is necessary to call UpdateModel for ML to pick up and validate the updated file.", +"type": "string" +}, +"sizeBytes": { +"description": "Output only. The size of the TFLite model", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Firebase ML API", +"version": "v1beta2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firestore.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firestore.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..3b5ead8a9d7d8b99cf4d744d9603c0931a7c2cec --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firestore.v1.json @@ -0,0 +1,4635 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/datastore": { +"description": "View and manage your Google Cloud Datastore data" +} +} +} +}, +"basePath": "", +"baseUrl": "https://firestore.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Firestore", +"description": "Accesses the NoSQL document database built for automatic scaling, high performance, and ease of application development. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/firestore", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "firestore:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://firestore.mtls.googleapis.com/", +"name": "firestore", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"databases": { +"methods": { +"bulkDeleteDocuments": { +"description": "Bulk deletes a subset of documents from Google Cloud Firestore. Documents created or updated after the underlying system starts to process the request will not be deleted. The bulk delete occurs in the background and its progress can be monitored and managed via the Operation resource that is created. For more details on bulk delete behavior, refer to: https://cloud.google.com/firestore/docs/manage-data/bulk-delete", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}:bulkDeleteDocuments", +"httpMethod": "POST", +"id": "firestore.projects.databases.bulkDeleteDocuments", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Database to operate. Should be of the form: `projects/{project_id}/databases/{database_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:bulkDeleteDocuments", +"request": { +"$ref": "GoogleFirestoreAdminV1BulkDeleteDocumentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"create": { +"description": "Create a database.", +"flatPath": "v1/projects/{projectsId}/databases", +"httpMethod": "POST", +"id": "firestore.projects.databases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"databaseId": { +"description": "Required. The ID to use for the database, which will become the final component of the database's resource name. This value should be 4-63 characters. Valid characters are /a-z-/ with first character a letter and the last a letter or a number. Must not be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. \"(default)\" database ID is also valid.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. A parent name of the form `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/databases", +"request": { +"$ref": "GoogleFirestoreAdminV1Database" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"delete": { +"description": "Deletes a database.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}", +"httpMethod": "DELETE", +"id": "firestore.projects.databases.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "The current etag of the Database. If an etag is provided and does not match the current etag of the database, deletion will be blocked and a FAILED_PRECONDITION error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. A name of the form `projects/{project_id}/databases/{database_id}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"exportDocuments": { +"description": "Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage. For more details on export behavior and output format, refer to: https://cloud.google.com/firestore/docs/manage-data/export-import", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}:exportDocuments", +"httpMethod": "POST", +"id": "firestore.projects.databases.exportDocuments", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Database to export. Should be of the form: `projects/{project_id}/databases/{database_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:exportDocuments", +"request": { +"$ref": "GoogleFirestoreAdminV1ExportDocumentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"get": { +"description": "Gets information about a database.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}", +"httpMethod": "GET", +"id": "firestore.projects.databases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the form `projects/{project_id}/databases/{database_id}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleFirestoreAdminV1Database" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"importDocuments": { +"description": "Imports documents into Google Cloud Firestore. Existing documents with the same name are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportDocuments operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Firestore.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}:importDocuments", +"httpMethod": "POST", +"id": "firestore.projects.databases.importDocuments", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Database to import into. Should be of the form: `projects/{project_id}/databases/{database_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:importDocuments", +"request": { +"$ref": "GoogleFirestoreAdminV1ImportDocumentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "List all the databases in the project.", +"flatPath": "v1/projects/{projectsId}/databases", +"httpMethod": "GET", +"id": "firestore.projects.databases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. A parent name of the form `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "If true, also returns deleted resources.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/databases", +"response": { +"$ref": "GoogleFirestoreAdminV1ListDatabasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"patch": { +"description": "Updates a database.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}", +"httpMethod": "PATCH", +"id": "firestore.projects.databases.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the Database. Format: `projects/{project}/databases/{database}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleFirestoreAdminV1Database" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"restore": { +"description": "Creates a new database by restoring from an existing backup. The new database must be in the same cloud region or multi-region location as the existing backup. This behaves similar to FirestoreAdmin.CreateDatabase except instead of creating a new empty database, a new database is created with the database type, index configuration, and documents from an existing backup. The long-running operation can be used to track the progress of the restore, with the Operation's metadata field type being the RestoreDatabaseMetadata. The response type is the Database if the restore was successful. The new database is not readable or writeable until the LRO has completed.", +"flatPath": "v1/projects/{projectsId}/databases:restore", +"httpMethod": "POST", +"id": "firestore.projects.databases.restore", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project to restore the database in. Format is `projects/{project_id}`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/databases:restore", +"request": { +"$ref": "GoogleFirestoreAdminV1RestoreDatabaseRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +}, +"resources": { +"backupSchedules": { +"methods": { +"create": { +"description": "Creates a backup schedule on a database. At most two backup schedules can be configured on a database, one daily backup schedule and one weekly backup schedule.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules", +"httpMethod": "POST", +"id": "firestore.projects.databases.backupSchedules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent database. Format `projects/{project}/databases/{database}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backupSchedules", +"request": { +"$ref": "GoogleFirestoreAdminV1BackupSchedule" +}, +"response": { +"$ref": "GoogleFirestoreAdminV1BackupSchedule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"delete": { +"description": "Deletes a backup schedule.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules/{backupSchedulesId}", +"httpMethod": "DELETE", +"id": "firestore.projects.databases.backupSchedules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the backup schedule. Format `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/backupSchedules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"get": { +"description": "Gets information about a backup schedule.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules/{backupSchedulesId}", +"httpMethod": "GET", +"id": "firestore.projects.databases.backupSchedules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the backup schedule. Format `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/backupSchedules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleFirestoreAdminV1BackupSchedule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "List backup schedules.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules", +"httpMethod": "GET", +"id": "firestore.projects.databases.backupSchedules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent database. Format is `projects/{project}/databases/{database}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backupSchedules", +"response": { +"$ref": "GoogleFirestoreAdminV1ListBackupSchedulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"patch": { +"description": "Updates a backup schedule.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/backupSchedules/{backupSchedulesId}", +"httpMethod": "PATCH", +"id": "firestore.projects.databases.backupSchedules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The unique backup schedule identifier across all locations and databases for the given project. This will be auto-assigned. Format is `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/backupSchedules/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleFirestoreAdminV1BackupSchedule" +}, +"response": { +"$ref": "GoogleFirestoreAdminV1BackupSchedule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +} +}, +"collectionGroups": { +"resources": { +"fields": { +"methods": { +"get": { +"description": "Gets the metadata and configuration for a Field.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/collectionGroups/{collectionGroupsId}/fields/{fieldsId}", +"httpMethod": "GET", +"id": "firestore.projects.databases.collectionGroups.fields.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/collectionGroups/[^/]+/fields/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleFirestoreAdminV1Field" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "Lists the field configuration and metadata for this database. Currently, FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with the filter set to `indexConfig.usesAncestorConfig:false` or `ttlConfig:*`.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/collectionGroups/{collectionGroupsId}/fields", +"httpMethod": "GET", +"id": "firestore.projects.databases.collectionGroups.fields.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter to apply to list results. Currently, FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with a filter that includes `indexConfig.usesAncestorConfig:false` or `ttlConfig:*`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, returned from a previous call to FirestoreAdmin.ListFields, that may be used to get the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. A parent name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/collectionGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fields", +"response": { +"$ref": "GoogleFirestoreAdminV1ListFieldsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"patch": { +"description": "Updates a field configuration. Currently, field updates apply only to single field index configuration. However, calls to FirestoreAdmin.UpdateField should provide a field mask to avoid changing any configuration that the caller isn't aware of. The field mask should be specified as: `{ paths: \"index_config\" }`. This call returns a google.longrunning.Operation which may be used to track the status of the field update. The metadata for the operation will be the type FieldOperationMetadata. To configure the default field settings for the database, use the special `Field` with resource name: `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/collectionGroups/{collectionGroupsId}/fields/{fieldsId}", +"httpMethod": "PATCH", +"id": "firestore.projects.databases.collectionGroups.fields.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A field name of the form: `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}` A field path can be a simple field name, e.g. `address` or a path to fields within `map_value` , e.g. `address.city`, or a special field path. The only valid special field is `*`, which represents any field. Field paths can be quoted using `` ` `` (backtick). The only character that must be escaped within a quoted field path is the backtick character itself, escaped using a backslash. Special characters in field paths that must be quoted include: `*`, `.`, `` ` `` (backtick), `[`, `]`, as well as any ascii symbolic characters. Examples: `` `address.city` `` represents a field named `address.city`, not the map key `city` in the field `address`. `` `*` `` represents a field named `*`, not any field. A special `Field` contains the default indexing settings for all fields. This field's resource name is: `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*` Indexes defined on this `Field` will be applied to all fields which do not have their own `Field` index configuration.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/collectionGroups/[^/]+/fields/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A mask, relative to the field. If specified, only configuration specified by this field_mask will be updated in the field.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleFirestoreAdminV1Field" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +} +}, +"indexes": { +"methods": { +"create": { +"description": "Creates a composite index. This returns a google.longrunning.Operation which may be used to track the status of the creation. The metadata for the operation will be the type IndexOperationMetadata.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/collectionGroups/{collectionGroupsId}/indexes", +"httpMethod": "POST", +"id": "firestore.projects.databases.collectionGroups.indexes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. A parent name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/collectionGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/indexes", +"request": { +"$ref": "GoogleFirestoreAdminV1Index" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"delete": { +"description": "Deletes a composite index.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/collectionGroups/{collectionGroupsId}/indexes/{indexesId}", +"httpMethod": "DELETE", +"id": "firestore.projects.databases.collectionGroups.indexes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/collectionGroups/[^/]+/indexes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"get": { +"description": "Gets a composite index.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/collectionGroups/{collectionGroupsId}/indexes/{indexesId}", +"httpMethod": "GET", +"id": "firestore.projects.databases.collectionGroups.indexes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/collectionGroups/[^/]+/indexes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleFirestoreAdminV1Index" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "Lists composite indexes.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/collectionGroups/{collectionGroupsId}/indexes", +"httpMethod": "GET", +"id": "firestore.projects.databases.collectionGroups.indexes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter to apply to list results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, returned from a previous call to FirestoreAdmin.ListIndexes, that may be used to get the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. A parent name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/collectionGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/indexes", +"response": { +"$ref": "GoogleFirestoreAdminV1ListIndexesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +} +} +} +}, +"documents": { +"methods": { +"batchGet": { +"description": "Gets multiple documents. Documents returned by this method are not guaranteed to be returned in the same order that they were requested.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:batchGet", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.batchGet", +"parameterOrder": [ +"database" +], +"parameters": { +"database": { +"description": "Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+database}/documents:batchGet", +"request": { +"$ref": "BatchGetDocumentsRequest" +}, +"response": { +"$ref": "BatchGetDocumentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"batchWrite": { +"description": "Applies a batch of write operations. The BatchWrite method does not apply the write operations atomically and can apply them out of order. Method does not allow more than one write per document. Each write succeeds or fails independently. See the BatchWriteResponse for the success status of each write. If you require an atomically applied set of writes, use Commit instead.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:batchWrite", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.batchWrite", +"parameterOrder": [ +"database" +], +"parameters": { +"database": { +"description": "Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+database}/documents:batchWrite", +"request": { +"$ref": "BatchWriteRequest" +}, +"response": { +"$ref": "BatchWriteResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"beginTransaction": { +"description": "Starts a new transaction.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:beginTransaction", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.beginTransaction", +"parameterOrder": [ +"database" +], +"parameters": { +"database": { +"description": "Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+database}/documents:beginTransaction", +"request": { +"$ref": "BeginTransactionRequest" +}, +"response": { +"$ref": "BeginTransactionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"commit": { +"description": "Commits a transaction, while optionally updating documents.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:commit", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.commit", +"parameterOrder": [ +"database" +], +"parameters": { +"database": { +"description": "Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+database}/documents:commit", +"request": { +"$ref": "CommitRequest" +}, +"response": { +"$ref": "CommitResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"createDocument": { +"description": "Creates a new document.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{collectionId}", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.createDocument", +"parameterOrder": [ +"parent", +"collectionId" +], +"parameters": { +"collectionId": { +"description": "Required. The collection ID, relative to `parent`, to list. For example: `chatrooms`.", +"location": "path", +"required": true, +"type": "string" +}, +"documentId": { +"description": "The client-assigned document ID to use for this document. Optional. If not specified, an ID will be assigned by the service.", +"location": "query", +"type": "string" +}, +"mask.fieldPaths": { +"description": "The list of field paths in the mask. See Document.fields for a field path syntax reference.", +"location": "query", +"repeated": true, +"type": "string" +}, +"parent": { +"description": "Required. The parent resource. For example: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/{collectionId}", +"request": { +"$ref": "Document" +}, +"response": { +"$ref": "Document" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"delete": { +"description": "Deletes a document.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", +"httpMethod": "DELETE", +"id": "firestore.projects.databases.documents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"currentDocument.exists": { +"description": "When set to `true`, the target document must exist. When set to `false`, the target document must not exist.", +"location": "query", +"type": "boolean" +}, +"currentDocument.updateTime": { +"description": "When set, the target document must exist and have been last updated at that time. Timestamp must be microsecond aligned.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the Document to delete. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"get": { +"description": "Gets a single document.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", +"httpMethod": "GET", +"id": "firestore.projects.databases.documents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"mask.fieldPaths": { +"description": "The list of field paths in the mask. See Document.fields for a field path syntax reference.", +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "Required. The resource name of the Document to get. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", +"required": true, +"type": "string" +}, +"readTime": { +"description": "Reads the version of the document at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"transaction": { +"description": "Reads the document in a transaction.", +"format": "byte", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Document" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "Lists documents.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}/{collectionId}", +"httpMethod": "GET", +"id": "firestore.projects.databases.documents.list", +"parameterOrder": [ +"parent", +"collectionId" +], +"parameters": { +"collectionId": { +"description": "Optional. The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`. This is optional, and when not provided, Firestore will list documents from all collections under the provided `parent`.", +"location": "path", +"required": true, +"type": "string" +}, +"mask.fieldPaths": { +"description": "The list of field paths in the mask. See Document.fields for a field path syntax reference.", +"location": "query", +"repeated": true, +"type": "string" +}, +"orderBy": { +"description": "Optional. The optional ordering of the documents to return. For example: `priority desc, __name__ desc`. This mirrors the `ORDER BY` used in Firestore queries but in a string representation. When absent, documents are ordered based on `__name__ ASC`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of documents to return in a single response. Firestore may return fewer than this value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListDocuments` response. Provide this to retrieve the subsequent page. When paginating, all other parameters (with the exception of `page_size`) must match the values set in the request that generated the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", +"required": true, +"type": "string" +}, +"readTime": { +"description": "Perform the read at the provided time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"showMissing": { +"description": "If the list should show missing documents. A document is missing if it does not exist, but there are sub-documents nested underneath it. When true, such missing documents will be returned with a key but will not have fields, `create_time`, or `update_time` set. Requests with `show_missing` may not specify `where` or `order_by`.", +"location": "query", +"type": "boolean" +}, +"transaction": { +"description": "Perform the read as part of an already active transaction.", +"format": "byte", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/{collectionId}", +"response": { +"$ref": "ListDocumentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"listCollectionIds": { +"description": "Lists all the collection IDs underneath a document.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:listCollectionIds", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.listCollectionIds", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent document. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:listCollectionIds", +"request": { +"$ref": "ListCollectionIdsRequest" +}, +"response": { +"$ref": "ListCollectionIdsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"listDocuments": { +"description": "Lists documents.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{collectionId}", +"httpMethod": "GET", +"id": "firestore.projects.databases.documents.listDocuments", +"parameterOrder": [ +"parent", +"collectionId" +], +"parameters": { +"collectionId": { +"description": "Optional. The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`. This is optional, and when not provided, Firestore will list documents from all collections under the provided `parent`.", +"location": "path", +"required": true, +"type": "string" +}, +"mask.fieldPaths": { +"description": "The list of field paths in the mask. See Document.fields for a field path syntax reference.", +"location": "query", +"repeated": true, +"type": "string" +}, +"orderBy": { +"description": "Optional. The optional ordering of the documents to return. For example: `priority desc, __name__ desc`. This mirrors the `ORDER BY` used in Firestore queries but in a string representation. When absent, documents are ordered based on `__name__ ASC`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of documents to return in a single response. Firestore may return fewer than this value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListDocuments` response. Provide this to retrieve the subsequent page. When paginating, all other parameters (with the exception of `page_size`) must match the values set in the request that generated the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents$", +"required": true, +"type": "string" +}, +"readTime": { +"description": "Perform the read at the provided time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"showMissing": { +"description": "If the list should show missing documents. A document is missing if it does not exist, but there are sub-documents nested underneath it. When true, such missing documents will be returned with a key but will not have fields, `create_time`, or `update_time` set. Requests with `show_missing` may not specify `where` or `order_by`.", +"location": "query", +"type": "boolean" +}, +"transaction": { +"description": "Perform the read as part of an already active transaction.", +"format": "byte", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/{collectionId}", +"response": { +"$ref": "ListDocumentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"listen": { +"description": "Listens to changes. This method is only available via gRPC or WebChannel (not REST).", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:listen", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.listen", +"parameterOrder": [ +"database" +], +"parameters": { +"database": { +"description": "Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+database}/documents:listen", +"request": { +"$ref": "ListenRequest" +}, +"response": { +"$ref": "ListenResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"partitionQuery": { +"description": "Partitions a query by returning partition cursors that can be used to run the query in parallel. The returned partition cursors are split points that can be used by RunQuery as starting/end points for the query results.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:partitionQuery", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.partitionQuery", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents`. Document resource names are not supported; only database resource names can be specified.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:partitionQuery", +"request": { +"$ref": "PartitionQueryRequest" +}, +"response": { +"$ref": "PartitionQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"patch": { +"description": "Updates or inserts a document.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", +"httpMethod": "PATCH", +"id": "firestore.projects.databases.documents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"currentDocument.exists": { +"description": "When set to `true`, the target document must exist. When set to `false`, the target document must not exist.", +"location": "query", +"type": "boolean" +}, +"currentDocument.updateTime": { +"description": "When set, the target document must exist and have been last updated at that time. Timestamp must be microsecond aligned.", +"format": "google-datetime", +"location": "query", +"type": "string" +}, +"mask.fieldPaths": { +"description": "The list of field paths in the mask. See Document.fields for a field path syntax reference.", +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "The resource name of the document, for example `projects/{project_id}/databases/{database_id}/documents/{document_path}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", +"required": true, +"type": "string" +}, +"updateMask.fieldPaths": { +"description": "The list of field paths in the mask. See Document.fields for a field path syntax reference.", +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Document" +}, +"response": { +"$ref": "Document" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"rollback": { +"description": "Rolls back a transaction.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:rollback", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.rollback", +"parameterOrder": [ +"database" +], +"parameters": { +"database": { +"description": "Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+database}/documents:rollback", +"request": { +"$ref": "RollbackRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"runAggregationQuery": { +"description": "Runs an aggregation query. Rather than producing Document results like Firestore.RunQuery, this API allows running an aggregation to produce a series of AggregationResult server-side. High-Level Example: ``` -- Return the number of documents in table given a filter. SELECT COUNT(*) FROM ( SELECT * FROM k where a = true ); ```", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:runAggregationQuery", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.runAggregationQuery", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:runAggregationQuery", +"request": { +"$ref": "RunAggregationQueryRequest" +}, +"response": { +"$ref": "RunAggregationQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"runQuery": { +"description": "Runs a query.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:runQuery", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.runQuery", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:runQuery", +"request": { +"$ref": "RunQueryRequest" +}, +"response": { +"$ref": "RunQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"write": { +"description": "Streams batches of document updates and deletes, in order. This method is only available via gRPC or WebChannel (not REST).", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:write", +"httpMethod": "POST", +"id": "firestore.projects.databases.documents.write", +"parameterOrder": [ +"database" +], +"parameters": { +"database": { +"description": "Required. The database name. In the format: `projects/{project_id}/databases/{database_id}`. This is only required in the first message.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+database}/documents:write", +"request": { +"$ref": "WriteRequest" +}, +"response": { +"$ref": "WriteResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "firestore.projects.databases.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "GoogleLongrunningCancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "firestore.projects.databases.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "firestore.projects.databases.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/databases/{databasesId}/operations", +"httpMethod": "GET", +"id": "firestore.projects.databases.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/databases/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +} +} +} +}, +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "firestore.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "firestore.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +}, +"resources": { +"backups": { +"methods": { +"delete": { +"description": "Deletes a backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "firestore.projects.locations.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the backup to delete. format is `projects/{project}/locations/{location}/backups/{backup}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"get": { +"description": "Gets information about a backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "firestore.projects.locations.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the backup to fetch. Format is `projects/{project}/locations/{location}/backups/{backup}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleFirestoreAdminV1Backup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +}, +"list": { +"description": "Lists all the backups.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups", +"httpMethod": "GET", +"id": "firestore.projects.locations.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "An expression that filters the list of returned backups. A filter expression consists of a field name, a comparison operator, and a value for filtering. The value must be a string, a number, or a boolean. The comparison operator must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`. Colon `:` is the contains operator. Filter rules are not case sensitive. The following fields in the Backup are eligible for filtering: * `database_uid` (supports `=` only)", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location to list backups from. Format is `projects/{project}/locations/{location}`. Use `{location} = '-'` to list backups from all locations for the given project. This allows listing backups from a single location or from all locations.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backups", +"response": { +"$ref": "GoogleFirestoreAdminV1ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/datastore" +] +} +} +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://firestore.googleapis.com/", +"schemas": { +"Aggregation": { +"description": "Defines an aggregation that produces a single result.", +"id": "Aggregation", +"properties": { +"alias": { +"description": "Optional. Optional name of the field to store the result of the aggregation into. If not provided, Firestore will pick a default name following the format `field_`. For example: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2), COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) OVER ( ... ); ``` becomes: ``` AGGREGATE COUNT_UP_TO(1) AS count_up_to_1, COUNT_UP_TO(2) AS field_1, COUNT_UP_TO(3) AS count_up_to_3, COUNT(*) AS field_2 OVER ( ... ); ``` Requires: * Must be unique across all aggregation aliases. * Conform to document field name limitations.", +"type": "string" +}, +"avg": { +"$ref": "Avg", +"description": "Average aggregator." +}, +"count": { +"$ref": "Count", +"description": "Count aggregator." +}, +"sum": { +"$ref": "Sum", +"description": "Sum aggregator." +} +}, +"type": "object" +}, +"AggregationResult": { +"description": "The result of a single bucket from a Firestore aggregation query. The keys of `aggregate_fields` are the same for all results in an aggregation query, unlike document queries which can have different fields present for each result.", +"id": "AggregationResult", +"properties": { +"aggregateFields": { +"additionalProperties": { +"$ref": "Value" +}, +"description": "The result of the aggregation functions, ex: `COUNT(*) AS total_docs`. The key is the alias assigned to the aggregation function on input and the size of this map equals the number of aggregation functions in the query.", +"type": "object" +} +}, +"type": "object" +}, +"ArrayValue": { +"description": "An array value.", +"id": "ArrayValue", +"properties": { +"values": { +"description": "Values in the array.", +"items": { +"$ref": "Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"Avg": { +"description": "Average of the values of the requested field. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns `NULL`. * Always returns the result as a double.", +"id": "Avg", +"properties": { +"field": { +"$ref": "FieldReference", +"description": "The field to aggregate on." +} +}, +"type": "object" +}, +"BatchGetDocumentsRequest": { +"description": "The request for Firestore.BatchGetDocuments.", +"id": "BatchGetDocumentsRequest", +"properties": { +"documents": { +"description": "The names of the documents to retrieve. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. The request will fail if any of the document is not a child resource of the given `database`. Duplicate names will be elided.", +"items": { +"type": "string" +}, +"type": "array" +}, +"mask": { +"$ref": "DocumentMask", +"description": "The fields to return. If not set, returns all fields. If a document has a field that is not present in this mask, that field will not be returned in the response." +}, +"newTransaction": { +"$ref": "TransactionOptions", +"description": "Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream." +}, +"readTime": { +"description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"type": "string" +}, +"transaction": { +"description": "Reads documents in a transaction.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"BatchGetDocumentsResponse": { +"description": "The streamed response for Firestore.BatchGetDocuments.", +"id": "BatchGetDocumentsResponse", +"properties": { +"found": { +"$ref": "Document", +"description": "A document that was requested." +}, +"missing": { +"description": "A document name that was requested but does not exist. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.", +"type": "string" +}, +"readTime": { +"description": "The time at which the document was read. This may be monotically increasing, in this case the previous documents in the result stream are guaranteed not to have changed between their read_time and this one.", +"format": "google-datetime", +"type": "string" +}, +"transaction": { +"description": "The transaction that was started as part of this request. Will only be set in the first response, and only if BatchGetDocumentsRequest.new_transaction was set in the request.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"BatchWriteRequest": { +"description": "The request for Firestore.BatchWrite.", +"id": "BatchWriteRequest", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels associated with this batch write.", +"type": "object" +}, +"writes": { +"description": "The writes to apply. Method does not apply writes atomically and does not guarantee ordering. Each write succeeds or fails independently. You cannot write to the same document more than once per request.", +"items": { +"$ref": "Write" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchWriteResponse": { +"description": "The response from Firestore.BatchWrite.", +"id": "BatchWriteResponse", +"properties": { +"status": { +"description": "The status of applying the writes. This i-th write status corresponds to the i-th write in the request.", +"items": { +"$ref": "Status" +}, +"type": "array" +}, +"writeResults": { +"description": "The result of applying the writes. This i-th write result corresponds to the i-th write in the request.", +"items": { +"$ref": "WriteResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"BeginTransactionRequest": { +"description": "The request for Firestore.BeginTransaction.", +"id": "BeginTransactionRequest", +"properties": { +"options": { +"$ref": "TransactionOptions", +"description": "The options for the transaction. Defaults to a read-write transaction." +} +}, +"type": "object" +}, +"BeginTransactionResponse": { +"description": "The response for Firestore.BeginTransaction.", +"id": "BeginTransactionResponse", +"properties": { +"transaction": { +"description": "The transaction that was started.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"BitSequence": { +"description": "A sequence of bits, encoded in a byte array. Each byte in the `bitmap` byte array stores 8 bits of the sequence. The only exception is the last byte, which may store 8 _or fewer_ bits. The `padding` defines the number of bits of the last byte to be ignored as \"padding\". The values of these \"padding\" bits are unspecified and must be ignored. To retrieve the first bit, bit 0, calculate: `(bitmap[0] & 0x01) != 0`. To retrieve the second bit, bit 1, calculate: `(bitmap[0] & 0x02) != 0`. To retrieve the third bit, bit 2, calculate: `(bitmap[0] & 0x04) != 0`. To retrieve the fourth bit, bit 3, calculate: `(bitmap[0] & 0x08) != 0`. To retrieve bit n, calculate: `(bitmap[n / 8] & (0x01 << (n % 8))) != 0`. The \"size\" of a `BitSequence` (the number of bits it contains) is calculated by this formula: `(bitmap.length * 8) - padding`.", +"id": "BitSequence", +"properties": { +"bitmap": { +"description": "The bytes that encode the bit sequence. May have a length of zero.", +"format": "byte", +"type": "string" +}, +"padding": { +"description": "The number of bits of the last byte in `bitmap` to ignore as \"padding\". If the length of `bitmap` is zero, then this value must be `0`. Otherwise, this value must be between 0 and 7, inclusive.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BloomFilter": { +"description": "A bloom filter (https://en.wikipedia.org/wiki/Bloom_filter). The bloom filter hashes the entries with MD5 and treats the resulting 128-bit hash as 2 distinct 64-bit hash values, interpreted as unsigned integers using 2's complement encoding. These two hash values, named `h1` and `h2`, are then used to compute the `hash_count` hash values using the formula, starting at `i=0`: h(i) = h1 + (i * h2) These resulting values are then taken modulo the number of bits in the bloom filter to get the bits of the bloom filter to test for the given entry.", +"id": "BloomFilter", +"properties": { +"bits": { +"$ref": "BitSequence", +"description": "The bloom filter data." +}, +"hashCount": { +"description": "The number of hashes used by the algorithm.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"CollectionSelector": { +"description": "A selection of a collection, such as `messages as m1`.", +"id": "CollectionSelector", +"properties": { +"allDescendants": { +"description": "When false, selects only collections that are immediate children of the `parent` specified in the containing `RunQueryRequest`. When true, selects all descendant collections.", +"type": "boolean" +}, +"collectionId": { +"description": "The collection ID. When set, selects only collections with this ID.", +"type": "string" +} +}, +"type": "object" +}, +"CommitRequest": { +"description": "The request for Firestore.Commit.", +"id": "CommitRequest", +"properties": { +"transaction": { +"description": "If set, applies all writes in this transaction, and commits it.", +"format": "byte", +"type": "string" +}, +"writes": { +"description": "The writes to apply. Always executed atomically and in order.", +"items": { +"$ref": "Write" +}, +"type": "array" +} +}, +"type": "object" +}, +"CommitResponse": { +"description": "The response for Firestore.Commit.", +"id": "CommitResponse", +"properties": { +"commitTime": { +"description": "The time at which the commit occurred. Any read with an equal or greater `read_time` is guaranteed to see the effects of the commit.", +"format": "google-datetime", +"type": "string" +}, +"writeResults": { +"description": "The result of applying the writes. This i-th write result corresponds to the i-th write in the request.", +"items": { +"$ref": "WriteResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"CompositeFilter": { +"description": "A filter that merges multiple other filters using the given operator.", +"id": "CompositeFilter", +"properties": { +"filters": { +"description": "The list of filters to combine. Requires: * At least one filter is present.", +"items": { +"$ref": "Filter" +}, +"type": "array" +}, +"op": { +"description": "The operator for combining multiple filters.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"AND", +"OR" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"Documents are required to satisfy all of the combined filters.", +"Documents are required to satisfy at least one of the combined filters." +], +"type": "string" +} +}, +"type": "object" +}, +"Count": { +"description": "Count of documents that match the query. The `COUNT(*)` aggregation function operates on the entire document so it does not require a field reference.", +"id": "Count", +"properties": { +"upTo": { +"description": "Optional. Optional constraint on the maximum number of documents to count. This provides a way to set an upper bound on the number of documents to scan, limiting latency, and cost. Unspecified is interpreted as no bound. High-Level Example: ``` AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k ); ``` Requires: * Must be greater than zero when present.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Cursor": { +"description": "A position in a query result set.", +"id": "Cursor", +"properties": { +"before": { +"description": "If the position is just before or just after the given values, relative to the sort order defined by the query.", +"type": "boolean" +}, +"values": { +"description": "The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.", +"items": { +"$ref": "Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"Document": { +"description": "A Firestore document. Must not exceed 1 MiB - 4 bytes.", +"id": "Document", +"properties": { +"createTime": { +"description": "Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.", +"format": "google-datetime", +"type": "string" +}, +"fields": { +"additionalProperties": { +"$ref": "Value" +}, +"description": "The document's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The field names, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by a dot-delimited (`.`) string of segments. Each segment is either a simple field name (defined below) or a quoted field name. For example, the structured field `\"foo\" : { map_value: { \"x&y\" : { string_value: \"hello\" }}}` would be represented by the field path `` foo.`x&y` ``. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. A quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\\`. For example, `` `x&y` `` represents `x&y` and `` `bak\\`tik` `` represents `` bak`tik ``.", +"type": "object" +}, +"name": { +"description": "The resource name of the document, for example `projects/{project_id}/databases/{database_id}/documents/{document_path}`.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which the document was last changed. This value is initially set to the `create_time` then increases monotonically with each change to the document. It can also be compared to values from other documents and the `read_time` of a query.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"DocumentChange": { +"description": "A Document has changed. May be the result of multiple writes, including deletes, that ultimately resulted in a new value for the Document. Multiple DocumentChange messages may be returned for the same logical change, if multiple targets are affected.", +"id": "DocumentChange", +"properties": { +"document": { +"$ref": "Document", +"description": "The new state of the Document. If `mask` is set, contains only fields that were updated or added." +}, +"removedTargetIds": { +"description": "A set of target IDs for targets that no longer match this document.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"targetIds": { +"description": "A set of target IDs of targets that match this document.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"DocumentDelete": { +"description": "A Document has been deleted. May be the result of multiple writes, including updates, the last of which deleted the Document. Multiple DocumentDelete messages may be returned for the same logical delete, if multiple targets are affected.", +"id": "DocumentDelete", +"properties": { +"document": { +"description": "The resource name of the Document that was deleted.", +"type": "string" +}, +"readTime": { +"description": "The read timestamp at which the delete was observed. Greater or equal to the `commit_time` of the delete.", +"format": "google-datetime", +"type": "string" +}, +"removedTargetIds": { +"description": "A set of target IDs for targets that previously matched this entity.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"DocumentMask": { +"description": "A set of field paths on a document. Used to restrict a get or update operation on a document to a subset of its fields. This is different from standard field masks, as this is always scoped to a Document, and takes in account the dynamic nature of Value.", +"id": "DocumentMask", +"properties": { +"fieldPaths": { +"description": "The list of field paths in the mask. See Document.fields for a field path syntax reference.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DocumentRemove": { +"description": "A Document has been removed from the view of the targets. Sent if the document is no longer relevant to a target and is out of view. Can be sent instead of a DocumentDelete or a DocumentChange if the server can not send the new value of the document. Multiple DocumentRemove messages may be returned for the same logical write or delete, if multiple targets are affected.", +"id": "DocumentRemove", +"properties": { +"document": { +"description": "The resource name of the Document that has gone out of view.", +"type": "string" +}, +"readTime": { +"description": "The read timestamp at which the remove was observed. Greater or equal to the `commit_time` of the change/delete/remove.", +"format": "google-datetime", +"type": "string" +}, +"removedTargetIds": { +"description": "A set of target IDs for targets that previously matched this document.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"DocumentTransform": { +"description": "A transformation of a document.", +"id": "DocumentTransform", +"properties": { +"document": { +"description": "The name of the document to transform.", +"type": "string" +}, +"fieldTransforms": { +"description": "The list of transformations to apply to the fields of the document, in order. This must not be empty.", +"items": { +"$ref": "FieldTransform" +}, +"type": "array" +} +}, +"type": "object" +}, +"DocumentsTarget": { +"description": "A target specified by a set of documents names.", +"id": "DocumentsTarget", +"properties": { +"documents": { +"description": "The names of the documents to retrieve. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. The request will fail if any of the document is not a child resource of the given `database`. Duplicate names will be elided.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"ExecutionStats": { +"description": "Execution statistics for the query.", +"id": "ExecutionStats", +"properties": { +"debugStats": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Debugging statistics from the execution of the query. Note that the debugging stats are subject to change as Firestore evolves. It could include: { \"indexes_entries_scanned\": \"1000\", \"documents_scanned\": \"20\", \"billing_details\" : { \"documents_billable\": \"20\", \"index_entries_billable\": \"1000\", \"min_query_cost\": \"0\" } }", +"type": "object" +}, +"executionDuration": { +"description": "Total time to execute the query in the backend.", +"format": "google-duration", +"type": "string" +}, +"readOperations": { +"description": "Total billable read operations.", +"format": "int64", +"type": "string" +}, +"resultsReturned": { +"description": "Total number of results returned, including documents, projections, aggregation results, keys.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ExistenceFilter": { +"description": "A digest of all the documents that match a given target.", +"id": "ExistenceFilter", +"properties": { +"count": { +"description": "The total count of documents that match target_id. If different from the count of documents in the client that match, the client must manually determine which documents no longer match the target. The client can use the `unchanged_names` bloom filter to assist with this determination by testing ALL the document names against the filter; if the document name is NOT in the filter, it means the document no longer matches the target.", +"format": "int32", +"type": "integer" +}, +"targetId": { +"description": "The target ID to which this filter applies.", +"format": "int32", +"type": "integer" +}, +"unchangedNames": { +"$ref": "BloomFilter", +"description": "A bloom filter that, despite its name, contains the UTF-8 byte encodings of the resource names of ALL the documents that match target_id, in the form `projects/{project_id}/databases/{database_id}/documents/{document_path}`. This bloom filter may be omitted at the server's discretion, such as if it is deemed that the client will not make use of it or if it is too computationally expensive to calculate or transmit. Clients must gracefully handle this field being absent by falling back to the logic used before this field existed; that is, re-add the target without a resume token to figure out which documents in the client's cache are out of sync." +} +}, +"type": "object" +}, +"ExplainMetrics": { +"description": "Explain metrics for the query.", +"id": "ExplainMetrics", +"properties": { +"executionStats": { +"$ref": "ExecutionStats", +"description": "Aggregated stats from the execution of the query. Only present when ExplainOptions.analyze is set to true." +}, +"planSummary": { +"$ref": "PlanSummary", +"description": "Planning phase information for the query." +} +}, +"type": "object" +}, +"ExplainOptions": { +"description": "Explain options for the query.", +"id": "ExplainOptions", +"properties": { +"analyze": { +"description": "Optional. Whether to execute this query. When false (the default), the query will be planned, returning only metrics from the planning stages. When true, the query will be planned and executed, returning the full query results along with both planning and execution stage metrics.", +"type": "boolean" +} +}, +"type": "object" +}, +"FieldFilter": { +"description": "A filter on a specific field.", +"id": "FieldFilter", +"properties": { +"field": { +"$ref": "FieldReference", +"description": "The field to filter by." +}, +"op": { +"description": "The operator to filter by.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"LESS_THAN", +"LESS_THAN_OR_EQUAL", +"GREATER_THAN", +"GREATER_THAN_OR_EQUAL", +"EQUAL", +"NOT_EQUAL", +"ARRAY_CONTAINS", +"IN", +"ARRAY_CONTAINS_ANY", +"NOT_IN" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"The given `field` is less than the given `value`. Requires: * That `field` come first in `order_by`.", +"The given `field` is less than or equal to the given `value`. Requires: * That `field` come first in `order_by`.", +"The given `field` is greater than the given `value`. Requires: * That `field` come first in `order_by`.", +"The given `field` is greater than or equal to the given `value`. Requires: * That `field` come first in `order_by`.", +"The given `field` is equal to the given `value`.", +"The given `field` is not equal to the given `value`. Requires: * No other `NOT_EQUAL`, `NOT_IN`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`.", +"The given `field` is an array that contains the given `value`.", +"The given `field` is equal to at least one value in the given array. Requires: * That `value` is a non-empty `ArrayValue`, subject to disjunction limits. * No `NOT_IN` filters in the same query.", +"The given `field` is an array that contains any of the values in the given array. Requires: * That `value` is a non-empty `ArrayValue`, subject to disjunction limits. * No other `ARRAY_CONTAINS_ANY` filters within the same disjunction. * No `NOT_IN` filters in the same query.", +"The value of the `field` is not in the given array. Requires: * That `value` is a non-empty `ArrayValue` with at most 10 values. * No other `OR`, `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`." +], +"type": "string" +}, +"value": { +"$ref": "Value", +"description": "The value to compare to." +} +}, +"type": "object" +}, +"FieldReference": { +"description": "A reference to a field in a document, ex: `stats.operations`.", +"id": "FieldReference", +"properties": { +"fieldPath": { +"description": "A reference to a field in a document. Requires: * MUST be a dot-delimited (`.`) string of segments, where each segment conforms to document field name limitations.", +"type": "string" +} +}, +"type": "object" +}, +"FieldTransform": { +"description": "A transformation of a field of the document.", +"id": "FieldTransform", +"properties": { +"appendMissingElements": { +"$ref": "ArrayValue", +"description": "Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value." +}, +"fieldPath": { +"description": "The path of the field. See Document.fields for the field path syntax reference.", +"type": "string" +}, +"increment": { +"$ref": "Value", +"description": "Adds the given value to the field's current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer." +}, +"maximum": { +"$ref": "Value", +"description": "Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN." +}, +"minimum": { +"$ref": "Value", +"description": "Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN." +}, +"removeAllFromArray": { +"$ref": "ArrayValue", +"description": "Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value." +}, +"setToServerValue": { +"description": "Sets the field to the given server value.", +"enum": [ +"SERVER_VALUE_UNSPECIFIED", +"REQUEST_TIME" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"The time at which the server processed the request, with millisecond precision. If used on multiple fields (same or different documents) in a transaction, all the fields will get the same server timestamp." +], +"type": "string" +} +}, +"type": "object" +}, +"Filter": { +"description": "A filter.", +"id": "Filter", +"properties": { +"compositeFilter": { +"$ref": "CompositeFilter", +"description": "A composite filter." +}, +"fieldFilter": { +"$ref": "FieldFilter", +"description": "A filter on a document field." +}, +"unaryFilter": { +"$ref": "UnaryFilter", +"description": "A filter that takes exactly one argument." +} +}, +"type": "object" +}, +"FindNearest": { +"description": "Nearest Neighbors search config. The ordering provided by FindNearest supersedes the order_by stage. If multiple documents have the same vector distance, the returned document order is not guaranteed to be stable between queries.", +"id": "FindNearest", +"properties": { +"distanceMeasure": { +"description": "Required. The distance measure to use, required.", +"enum": [ +"DISTANCE_MEASURE_UNSPECIFIED", +"EUCLIDEAN", +"COSINE", +"DOT_PRODUCT" +], +"enumDescriptions": [ +"Should not be set.", +"Measures the EUCLIDEAN distance between the vectors. See [Euclidean](https://en.wikipedia.org/wiki/Euclidean_distance) to learn more. The resulting distance decreases the more similar two vectors are.", +"COSINE distance compares vectors based on the angle between them, which allows you to measure similarity that isn't based on the vectors magnitude. We recommend using DOT_PRODUCT with unit normalized vectors instead of COSINE distance, which is mathematically equivalent with better performance. See [Cosine Similarity](https://en.wikipedia.org/wiki/Cosine_similarity) to learn more about COSINE similarity and COSINE distance. The resulting COSINE distance decreases the more similar two vectors are.", +"Similar to cosine but is affected by the magnitude of the vectors. See [Dot Product](https://en.wikipedia.org/wiki/Dot_product) to learn more. The resulting distance increases the more similar two vectors are." +], +"type": "string" +}, +"distanceResultField": { +"description": "Optional. Optional name of the field to output the result of the vector distance calculation. Must conform to document field name limitations.", +"type": "string" +}, +"distanceThreshold": { +"description": "Optional. Option to specify a threshold for which no less similar documents will be returned. The behavior of the specified `distance_measure` will affect the meaning of the distance threshold. Since DOT_PRODUCT distances increase when the vectors are more similar, the comparison is inverted. * For EUCLIDEAN, COSINE: WHERE distance <= distance_threshold * For DOT_PRODUCT: WHERE distance >= distance_threshold", +"format": "double", +"type": "number" +}, +"limit": { +"description": "Required. The number of nearest neighbors to return. Must be a positive integer of no more than 1000.", +"format": "int32", +"type": "integer" +}, +"queryVector": { +"$ref": "Value", +"description": "Required. The query vector that we are searching on. Must be a vector of no more than 2048 dimensions." +}, +"vectorField": { +"$ref": "FieldReference", +"description": "Required. An indexed vector field to search upon. Only documents which contain vectors whose dimensionality match the query_vector can be returned." +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1Backup": { +"description": "A Backup of a Cloud Firestore Database. The backup contains all documents and index configurations for the given database at a specific point in time.", +"id": "GoogleFirestoreAdminV1Backup", +"properties": { +"database": { +"description": "Output only. Name of the Firestore database that the backup is from. Format is `projects/{project}/databases/{database}`.", +"readOnly": true, +"type": "string" +}, +"databaseUid": { +"description": "Output only. The system-generated UUID4 for the Firestore database that the backup is from.", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The timestamp at which this backup expires.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The unique resource name of the Backup. Format is `projects/{project}/locations/{location}/backups/{backup}`.", +"readOnly": true, +"type": "string" +}, +"snapshotTime": { +"description": "Output only. The backup contains an externally consistent copy of the database at this time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"NOT_AVAILABLE" +], +"enumDescriptions": [ +"The state is unspecified.", +"The pending backup is still being created. Operations on the backup will be rejected in this state.", +"The backup is complete and ready to use.", +"The backup is not available at this moment." +], +"readOnly": true, +"type": "string" +}, +"stats": { +"$ref": "GoogleFirestoreAdminV1Stats", +"description": "Output only. Statistics about the backup. This data only becomes available after the backup is fully materialized to secondary storage. This field will be empty till then.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1BackupSchedule": { +"description": "A backup schedule for a Cloud Firestore Database. This resource is owned by the database it is backing up, and is deleted along with the database. The actual backups are not though.", +"id": "GoogleFirestoreAdminV1BackupSchedule", +"properties": { +"createTime": { +"description": "Output only. The timestamp at which this backup schedule was created and effective since. No backups will be created for this schedule before this time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dailyRecurrence": { +"$ref": "GoogleFirestoreAdminV1DailyRecurrence", +"description": "For a schedule that runs daily." +}, +"name": { +"description": "Output only. The unique backup schedule identifier across all locations and databases for the given project. This will be auto-assigned. Format is `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", +"readOnly": true, +"type": "string" +}, +"retention": { +"description": "At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days. The maximum supported retention period is 14 weeks.", +"format": "google-duration", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp at which this backup schedule was most recently updated. When a backup schedule is first created, this is the same as create_time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"weeklyRecurrence": { +"$ref": "GoogleFirestoreAdminV1WeeklyRecurrence", +"description": "For a schedule that runs weekly on a specific day." +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1BackupSource": { +"description": "Information about a backup that was used to restore a database.", +"id": "GoogleFirestoreAdminV1BackupSource", +"properties": { +"backup": { +"description": "The resource name of the backup that was used to restore this database. Format: `projects/{project}/locations/{location}/backups/{backup}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1BulkDeleteDocumentsMetadata": { +"description": "Metadata for google.longrunning.Operation results from FirestoreAdmin.BulkDeleteDocuments.", +"id": "GoogleFirestoreAdminV1BulkDeleteDocumentsMetadata", +"properties": { +"collectionIds": { +"description": "The IDs of the collection groups that are being deleted.", +"items": { +"type": "string" +}, +"type": "array" +}, +"endTime": { +"description": "The time this operation completed. Will be unset if operation still in progress.", +"format": "google-datetime", +"type": "string" +}, +"namespaceIds": { +"description": "Which namespace IDs are being deleted.", +"items": { +"type": "string" +}, +"type": "array" +}, +"operationState": { +"description": "The state of the operation.", +"enum": [ +"OPERATION_STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in bytes, of this operation." +}, +"progressDocuments": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in documents, of this operation." +}, +"snapshotTime": { +"description": "The timestamp that corresponds to the version of the database that is being read to get the list of documents to delete. This time can also be used as the timestamp of PITR in case of disaster recovery (subject to PITR window limit).", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The time this operation started.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1BulkDeleteDocumentsRequest": { +"description": "The request for FirestoreAdmin.BulkDeleteDocuments. When both collection_ids and namespace_ids are set, only documents satisfying both conditions will be deleted. Requests with namespace_ids and collection_ids both empty will be rejected. Please use FirestoreAdmin.DeleteDatabase instead.", +"id": "GoogleFirestoreAdminV1BulkDeleteDocumentsRequest", +"properties": { +"collectionIds": { +"description": "Optional. IDs of the collection groups to delete. Unspecified means all collection groups. Each collection group in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +}, +"namespaceIds": { +"description": "Optional. Namespaces to delete. An empty list means all namespaces. This is the recommended usage for databases that don't use namespaces. An empty string element represents the default namespace. This should be used if the database has data in non-default namespaces, but doesn't want to delete from them. Each namespace in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1CmekConfig": { +"description": "The CMEK (Customer Managed Encryption Key) configuration for a Firestore database. If not present, the database is secured by the default Google encryption key.", +"id": "GoogleFirestoreAdminV1CmekConfig", +"properties": { +"activeKeyVersion": { +"description": "Output only. Currently in-use [KMS key versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions). During [key rotation](https://cloud.google.com/kms/docs/key-rotation), there can be multiple in-use key versions. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"kmsKeyName": { +"description": "Required. Only keys in the same location as this database are allowed to be used for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS multi-region us. For Firestore's eur3 multi-region, this corresponds to Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1CreateDatabaseMetadata": { +"description": "Metadata related to the create database operation.", +"id": "GoogleFirestoreAdminV1CreateDatabaseMetadata", +"properties": {}, +"type": "object" +}, +"GoogleFirestoreAdminV1CustomerManagedEncryptionOptions": { +"description": "The configuration options for using CMEK (Customer Managed Encryption Key) encryption.", +"id": "GoogleFirestoreAdminV1CustomerManagedEncryptionOptions", +"properties": { +"kmsKeyName": { +"description": "Required. Only keys in the same location as the database are allowed to be used for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS multi-region us. For Firestore's eur3 multi-region, this corresponds to Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1DailyRecurrence": { +"description": "Represents a recurring schedule that runs every day. The time zone is UTC.", +"id": "GoogleFirestoreAdminV1DailyRecurrence", +"properties": {}, +"type": "object" +}, +"GoogleFirestoreAdminV1Database": { +"description": "A Cloud Firestore Database.", +"id": "GoogleFirestoreAdminV1Database", +"properties": { +"appEngineIntegrationMode": { +"description": "The App Engine integration mode to use for this database.", +"enum": [ +"APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Not used.", +"If an App Engine application exists in the same region as this database, App Engine configuration will impact this database. This includes disabling of the application & database, as well as disabling writes to the database.", +"App Engine has no effect on the ability of this database to serve requests. This is the default setting for databases created with the Firestore API." +], +"type": "string" +}, +"cmekConfig": { +"$ref": "GoogleFirestoreAdminV1CmekConfig", +"description": "Optional. Presence indicates CMEK is enabled for this database." +}, +"concurrencyMode": { +"description": "The concurrency control mode to use for this database.", +"enum": [ +"CONCURRENCY_MODE_UNSPECIFIED", +"OPTIMISTIC", +"PESSIMISTIC", +"OPTIMISTIC_WITH_ENTITY_GROUPS" +], +"enumDescriptions": [ +"Not used.", +"Use optimistic concurrency control by default. This mode is available for Cloud Firestore databases.", +"Use pessimistic concurrency control by default. This mode is available for Cloud Firestore databases. This is the default setting for Cloud Firestore.", +"Use optimistic concurrency control with entity groups by default. This is the only available mode for Cloud Datastore. This mode is also available for Cloud Firestore with Datastore Mode but is not recommended." +], +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp at which this database was created. Databases created before 2016 do not populate create_time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteProtectionState": { +"description": "State of delete protection for the database.", +"enum": [ +"DELETE_PROTECTION_STATE_UNSPECIFIED", +"DELETE_PROTECTION_DISABLED", +"DELETE_PROTECTION_ENABLED" +], +"enumDescriptions": [ +"The default value. Delete protection type is not specified", +"Delete protection is disabled", +"Delete protection is enabled" +], +"type": "string" +}, +"deleteTime": { +"description": "Output only. The timestamp at which this database was deleted. Only set if the database has been deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"earliestVersionTime": { +"description": "Output only. The earliest timestamp at which older versions of the data can be read from the database. See [version_retention_period] above; this field is populated with `now - version_retention_period`. This value is continuously updated, and becomes stale the moment it is queried. If you are using this value to recover data, make sure to account for the time from the moment when the value is queried to the moment when you initiate the recovery.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", +"type": "string" +}, +"keyPrefix": { +"description": "Output only. The key_prefix for this database. This key_prefix is used, in combination with the project ID (\"~\") to construct the application ID that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo).", +"readOnly": true, +"type": "string" +}, +"locationId": { +"description": "The location of the database. Available locations are listed at https://cloud.google.com/firestore/docs/locations.", +"type": "string" +}, +"name": { +"description": "The resource name of the Database. Format: `projects/{project}/databases/{database}`", +"type": "string" +}, +"pointInTimeRecoveryEnablement": { +"description": "Whether to enable the PITR feature on this database.", +"enum": [ +"POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED", +"POINT_IN_TIME_RECOVERY_ENABLED", +"POINT_IN_TIME_RECOVERY_DISABLED" +], +"enumDescriptions": [ +"Not used.", +"Reads are supported on selected versions of the data from within the past 7 days: * Reads against any timestamp within the past hour * Reads against 1-minute snapshots beyond 1 hour and within 7 days `version_retention_period` and `earliest_version_time` can be used to determine the supported versions.", +"Reads are supported on any version of the data from within the past 1 hour." +], +"type": "string" +}, +"previousId": { +"description": "Output only. The database resource's prior database ID. This field is only populated for deleted databases.", +"readOnly": true, +"type": "string" +}, +"sourceInfo": { +"$ref": "GoogleFirestoreAdminV1SourceInfo", +"description": "Output only. Information about the provenance of this database.", +"readOnly": true +}, +"type": { +"description": "The type of the database. See https://cloud.google.com/datastore/docs/firestore-or-datastore for information about how to choose.", +"enum": [ +"DATABASE_TYPE_UNSPECIFIED", +"FIRESTORE_NATIVE", +"DATASTORE_MODE" +], +"enumDescriptions": [ +"Not used.", +"Firestore Native Mode", +"Firestore in Datastore Mode." +], +"type": "string" +}, +"uid": { +"description": "Output only. The system-generated UUID4 for this Database.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp at which this database was most recently updated. Note this only includes updates to the database resource and not data contained by the database.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"versionRetentionPeriod": { +"description": "Output only. The period during which past versions of data are retained in the database. Any read or query can specify a `read_time` within this window, and will read the state of the database at that time. If the PITR feature is enabled, the retention period is 7 days. Otherwise, the retention period is 1 hour.", +"format": "google-duration", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1DeleteDatabaseMetadata": { +"description": "Metadata related to the delete database operation.", +"id": "GoogleFirestoreAdminV1DeleteDatabaseMetadata", +"properties": {}, +"type": "object" +}, +"GoogleFirestoreAdminV1EncryptionConfig": { +"description": "Encryption configuration for a new database being created from another source. The source could be a Backup .", +"id": "GoogleFirestoreAdminV1EncryptionConfig", +"properties": { +"customerManagedEncryption": { +"$ref": "GoogleFirestoreAdminV1CustomerManagedEncryptionOptions", +"description": "Use Customer Managed Encryption Keys (CMEK) for encryption." +}, +"googleDefaultEncryption": { +"$ref": "GoogleFirestoreAdminV1GoogleDefaultEncryptionOptions", +"description": "Use Google default encryption." +}, +"useSourceEncryption": { +"$ref": "GoogleFirestoreAdminV1SourceEncryptionOptions", +"description": "The database will use the same encryption configuration as the source." +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1ExportDocumentsMetadata": { +"description": "Metadata for google.longrunning.Operation results from FirestoreAdmin.ExportDocuments.", +"id": "GoogleFirestoreAdminV1ExportDocumentsMetadata", +"properties": { +"collectionIds": { +"description": "Which collection IDs are being exported.", +"items": { +"type": "string" +}, +"type": "array" +}, +"endTime": { +"description": "The time this operation completed. Will be unset if operation still in progress.", +"format": "google-datetime", +"type": "string" +}, +"namespaceIds": { +"description": "Which namespace IDs are being exported.", +"items": { +"type": "string" +}, +"type": "array" +}, +"operationState": { +"description": "The state of the export operation.", +"enum": [ +"OPERATION_STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +}, +"outputUriPrefix": { +"description": "Where the documents are being exported to.", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in bytes, of this operation." +}, +"progressDocuments": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in documents, of this operation." +}, +"snapshotTime": { +"description": "The timestamp that corresponds to the version of the database that is being exported. If unspecified, there are no guarantees about the consistency of the documents being exported.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The time this operation started.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1ExportDocumentsRequest": { +"description": "The request for FirestoreAdmin.ExportDocuments.", +"id": "GoogleFirestoreAdminV1ExportDocumentsRequest", +"properties": { +"collectionIds": { +"description": "Which collection IDs to export. Unspecified means all collections. Each collection ID in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +}, +"namespaceIds": { +"description": "An empty list represents all namespaces. This is the preferred usage for databases that don't use namespaces. An empty string element represents the default namespace. This should be used if the database has data in non-default namespaces, but doesn't want to include them. Each namespace in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +}, +"outputUriPrefix": { +"description": "The output URI. Currently only supports Google Cloud Storage URIs of the form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional Google Cloud Storage namespace path. When choosing a name, be sure to consider Google Cloud Storage naming guidelines: https://cloud.google.com/storage/docs/naming. If the URI is a bucket (without a namespace path), a prefix will be generated based on the start time.", +"type": "string" +}, +"snapshotTime": { +"description": "The timestamp that corresponds to the version of the database to be exported. The timestamp must be in the past, rounded to the minute and not older than earliestVersionTime. If specified, then the exported documents will represent a consistent view of the database at the provided time. Otherwise, there are no guarantees about the consistency of the exported documents.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1ExportDocumentsResponse": { +"description": "Returned in the google.longrunning.Operation response field.", +"id": "GoogleFirestoreAdminV1ExportDocumentsResponse", +"properties": { +"outputUriPrefix": { +"description": "Location of the output files. This can be used to begin an import into Cloud Firestore (this project or another project) after the operation completes successfully.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1Field": { +"description": "Represents a single field in the database. Fields are grouped by their \"Collection Group\", which represent all collections in the database with the same ID.", +"id": "GoogleFirestoreAdminV1Field", +"properties": { +"indexConfig": { +"$ref": "GoogleFirestoreAdminV1IndexConfig", +"description": "The index configuration for this field. If unset, field indexing will revert to the configuration defined by the `ancestor_field`. To explicitly remove all indexes for this field, specify an index config with an empty list of indexes." +}, +"name": { +"description": "Required. A field name of the form: `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}` A field path can be a simple field name, e.g. `address` or a path to fields within `map_value` , e.g. `address.city`, or a special field path. The only valid special field is `*`, which represents any field. Field paths can be quoted using `` ` `` (backtick). The only character that must be escaped within a quoted field path is the backtick character itself, escaped using a backslash. Special characters in field paths that must be quoted include: `*`, `.`, `` ` `` (backtick), `[`, `]`, as well as any ascii symbolic characters. Examples: `` `address.city` `` represents a field named `address.city`, not the map key `city` in the field `address`. `` `*` `` represents a field named `*`, not any field. A special `Field` contains the default indexing settings for all fields. This field's resource name is: `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*` Indexes defined on this `Field` will be applied to all fields which do not have their own `Field` index configuration.", +"type": "string" +}, +"ttlConfig": { +"$ref": "GoogleFirestoreAdminV1TtlConfig", +"description": "The TTL configuration for this `Field`. Setting or unsetting this will enable or disable the TTL for documents that have this `Field`." +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1FieldOperationMetadata": { +"description": "Metadata for google.longrunning.Operation results from FirestoreAdmin.UpdateField.", +"id": "GoogleFirestoreAdminV1FieldOperationMetadata", +"properties": { +"endTime": { +"description": "The time this operation completed. Will be unset if operation still in progress.", +"format": "google-datetime", +"type": "string" +}, +"field": { +"description": "The field resource that this operation is acting on. For example: `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}`", +"type": "string" +}, +"indexConfigDeltas": { +"description": "A list of IndexConfigDelta, which describe the intent of this operation.", +"items": { +"$ref": "GoogleFirestoreAdminV1IndexConfigDelta" +}, +"type": "array" +}, +"progressBytes": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in bytes, of this operation." +}, +"progressDocuments": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in documents, of this operation." +}, +"startTime": { +"description": "The time this operation started.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The state of the operation.", +"enum": [ +"OPERATION_STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +}, +"ttlConfigDelta": { +"$ref": "GoogleFirestoreAdminV1TtlConfigDelta", +"description": "Describes the deltas of TTL configuration." +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1FlatIndex": { +"description": "An index that stores vectors in a flat data structure, and supports exhaustive search.", +"id": "GoogleFirestoreAdminV1FlatIndex", +"properties": {}, +"type": "object" +}, +"GoogleFirestoreAdminV1GoogleDefaultEncryptionOptions": { +"description": "The configuration options for using Google default encryption.", +"id": "GoogleFirestoreAdminV1GoogleDefaultEncryptionOptions", +"properties": {}, +"type": "object" +}, +"GoogleFirestoreAdminV1ImportDocumentsMetadata": { +"description": "Metadata for google.longrunning.Operation results from FirestoreAdmin.ImportDocuments.", +"id": "GoogleFirestoreAdminV1ImportDocumentsMetadata", +"properties": { +"collectionIds": { +"description": "Which collection IDs are being imported.", +"items": { +"type": "string" +}, +"type": "array" +}, +"endTime": { +"description": "The time this operation completed. Will be unset if operation still in progress.", +"format": "google-datetime", +"type": "string" +}, +"inputUriPrefix": { +"description": "The location of the documents being imported.", +"type": "string" +}, +"namespaceIds": { +"description": "Which namespace IDs are being imported.", +"items": { +"type": "string" +}, +"type": "array" +}, +"operationState": { +"description": "The state of the import operation.", +"enum": [ +"OPERATION_STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in bytes, of this operation." +}, +"progressDocuments": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in documents, of this operation." +}, +"startTime": { +"description": "The time this operation started.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1ImportDocumentsRequest": { +"description": "The request for FirestoreAdmin.ImportDocuments.", +"id": "GoogleFirestoreAdminV1ImportDocumentsRequest", +"properties": { +"collectionIds": { +"description": "Which collection IDs to import. Unspecified means all collections included in the import. Each collection ID in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +}, +"inputUriPrefix": { +"description": "Location of the exported files. This must match the output_uri_prefix of an ExportDocumentsResponse from an export that has completed successfully. See: google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix.", +"type": "string" +}, +"namespaceIds": { +"description": "An empty list represents all namespaces. This is the preferred usage for databases that don't use namespaces. An empty string element represents the default namespace. This should be used if the database has data in non-default namespaces, but doesn't want to include them. Each namespace in this list must be unique.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1Index": { +"description": "Cloud Firestore indexes enable simple and complex queries against documents in a database.", +"id": "GoogleFirestoreAdminV1Index", +"properties": { +"apiScope": { +"description": "The API scope supported by this index.", +"enum": [ +"ANY_API", +"DATASTORE_MODE_API" +], +"enumDescriptions": [ +"The index can only be used by the Firestore Native query API. This is the default.", +"The index can only be used by the Firestore in Datastore Mode query API." +], +"type": "string" +}, +"fields": { +"description": "The fields supported by this index. For composite indexes, this requires a minimum of 2 and a maximum of 100 fields. The last field entry is always for the field path `__name__`. If, on creation, `__name__` was not specified as the last field, it will be added automatically with the same direction as that of the last field defined. If the final field in a composite index is not directional, the `__name__` will be ordered ASCENDING (unless explicitly specified). For single field indexes, this will always be exactly one entry with a field path equal to the field path of the associated field.", +"items": { +"$ref": "GoogleFirestoreAdminV1IndexField" +}, +"type": "array" +}, +"name": { +"description": "Output only. A server defined name for this index. The form of this name for composite indexes will be: `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}` For single field indexes, this field will be empty.", +"type": "string" +}, +"queryScope": { +"description": "Indexes with a collection query scope specified allow queries against a collection that is the child of a specific document, specified at query time, and that has the same collection ID. Indexes with a collection group query scope specified allow queries against all collections descended from a specific document, specified at query time, and that have the same collection ID as this index.", +"enum": [ +"QUERY_SCOPE_UNSPECIFIED", +"COLLECTION", +"COLLECTION_GROUP", +"COLLECTION_RECURSIVE" +], +"enumDescriptions": [ +"The query scope is unspecified. Not a valid option.", +"Indexes with a collection query scope specified allow queries against a collection that is the child of a specific document, specified at query time, and that has the collection ID specified by the index.", +"Indexes with a collection group query scope specified allow queries against all collections that has the collection ID specified by the index.", +"Include all the collections's ancestor in the index. Only available for Datastore Mode databases." +], +"type": "string" +}, +"state": { +"description": "Output only. The serving state of the index.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"NEEDS_REPAIR" +], +"enumDescriptions": [ +"The state is unspecified.", +"The index is being created. There is an active long-running operation for the index. The index is updated when writing a document. Some index data may exist.", +"The index is ready to be used. The index is updated when writing a document. The index is fully populated from all stored documents it applies to.", +"The index was being created, but something went wrong. There is no active long-running operation for the index, and the most recently finished long-running operation failed. The index is not updated when writing a document. Some index data may exist. Use the google.longrunning.Operations API to determine why the operation that last attempted to create this index failed, then re-create the index." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1IndexConfig": { +"description": "The index configuration for this field.", +"id": "GoogleFirestoreAdminV1IndexConfig", +"properties": { +"ancestorField": { +"description": "Output only. Specifies the resource name of the `Field` from which this field's index configuration is set (when `uses_ancestor_config` is true), or from which it *would* be set if this field had no index configuration (when `uses_ancestor_config` is false).", +"type": "string" +}, +"indexes": { +"description": "The indexes supported for this field.", +"items": { +"$ref": "GoogleFirestoreAdminV1Index" +}, +"type": "array" +}, +"reverting": { +"description": "Output only When true, the `Field`'s index configuration is in the process of being reverted. Once complete, the index config will transition to the same state as the field specified by `ancestor_field`, at which point `uses_ancestor_config` will be `true` and `reverting` will be `false`.", +"type": "boolean" +}, +"usesAncestorConfig": { +"description": "Output only. When true, the `Field`'s index configuration is set from the configuration specified by the `ancestor_field`. When false, the `Field`'s index configuration is defined explicitly.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1IndexConfigDelta": { +"description": "Information about an index configuration change.", +"id": "GoogleFirestoreAdminV1IndexConfigDelta", +"properties": { +"changeType": { +"description": "Specifies how the index is changing.", +"enum": [ +"CHANGE_TYPE_UNSPECIFIED", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"The type of change is not specified or known.", +"The single field index is being added.", +"The single field index is being removed." +], +"type": "string" +}, +"index": { +"$ref": "GoogleFirestoreAdminV1Index", +"description": "The index being changed." +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1IndexField": { +"description": "A field in an index. The field_path describes which field is indexed, the value_mode describes how the field value is indexed.", +"id": "GoogleFirestoreAdminV1IndexField", +"properties": { +"arrayConfig": { +"description": "Indicates that this field supports operations on `array_value`s.", +"enum": [ +"ARRAY_CONFIG_UNSPECIFIED", +"CONTAINS" +], +"enumDescriptions": [ +"The index does not support additional array queries.", +"The index supports array containment queries." +], +"type": "string" +}, +"fieldPath": { +"description": "Can be __name__. For single field indexes, this must match the name of the field or may be omitted.", +"type": "string" +}, +"order": { +"description": "Indicates that this field supports ordering by the specified order or comparing using =, !=, <, <=, >, >=.", +"enum": [ +"ORDER_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"The ordering is unspecified. Not a valid option.", +"The field is ordered by ascending field value.", +"The field is ordered by descending field value." +], +"type": "string" +}, +"vectorConfig": { +"$ref": "GoogleFirestoreAdminV1VectorConfig", +"description": "Indicates that this field supports nearest neighbor and distance operations on vector." +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1IndexOperationMetadata": { +"description": "Metadata for google.longrunning.Operation results from FirestoreAdmin.CreateIndex.", +"id": "GoogleFirestoreAdminV1IndexOperationMetadata", +"properties": { +"endTime": { +"description": "The time this operation completed. Will be unset if operation still in progress.", +"format": "google-datetime", +"type": "string" +}, +"index": { +"description": "The index resource that this operation is acting on. For example: `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`", +"type": "string" +}, +"progressBytes": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in bytes, of this operation." +}, +"progressDocuments": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "The progress, in documents, of this operation." +}, +"startTime": { +"description": "The time this operation started.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The state of the operation.", +"enum": [ +"OPERATION_STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1ListBackupSchedulesResponse": { +"description": "The response for FirestoreAdmin.ListBackupSchedules.", +"id": "GoogleFirestoreAdminV1ListBackupSchedulesResponse", +"properties": { +"backupSchedules": { +"description": "List of all backup schedules.", +"items": { +"$ref": "GoogleFirestoreAdminV1BackupSchedule" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1ListBackupsResponse": { +"description": "The response for FirestoreAdmin.ListBackups.", +"id": "GoogleFirestoreAdminV1ListBackupsResponse", +"properties": { +"backups": { +"description": "List of all backups for the project.", +"items": { +"$ref": "GoogleFirestoreAdminV1Backup" +}, +"type": "array" +}, +"unreachable": { +"description": "List of locations that existing backups were not able to be fetched from. Instead of failing the entire requests when a single location is unreachable, this response returns a partial result set and list of locations unable to be reached here. The request can be retried against a single location to get a concrete error.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1ListDatabasesResponse": { +"description": "The list of databases for a project.", +"id": "GoogleFirestoreAdminV1ListDatabasesResponse", +"properties": { +"databases": { +"description": "The databases in the project.", +"items": { +"$ref": "GoogleFirestoreAdminV1Database" +}, +"type": "array" +}, +"unreachable": { +"description": "In the event that data about individual databases cannot be listed they will be recorded here. An example entry might be: projects/some_project/locations/some_location This can happen if the Cloud Region that the Database resides in is currently unavailable. In this case we can't fetch all the details about the database. You may be able to get a more detailed error message (or possibly fetch the resource) by sending a 'Get' request for the resource or a 'List' request for the specific location.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1ListFieldsResponse": { +"description": "The response for FirestoreAdmin.ListFields.", +"id": "GoogleFirestoreAdminV1ListFieldsResponse", +"properties": { +"fields": { +"description": "The requested fields.", +"items": { +"$ref": "GoogleFirestoreAdminV1Field" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A page token that may be used to request another page of results. If blank, this is the last page.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1ListIndexesResponse": { +"description": "The response for FirestoreAdmin.ListIndexes.", +"id": "GoogleFirestoreAdminV1ListIndexesResponse", +"properties": { +"indexes": { +"description": "The requested indexes.", +"items": { +"$ref": "GoogleFirestoreAdminV1Index" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A page token that may be used to request another page of results. If blank, this is the last page.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1LocationMetadata": { +"description": "The metadata message for google.cloud.location.Location.metadata.", +"id": "GoogleFirestoreAdminV1LocationMetadata", +"properties": {}, +"type": "object" +}, +"GoogleFirestoreAdminV1Progress": { +"description": "Describes the progress of the operation. Unit of work is generic and must be interpreted based on where Progress is used.", +"id": "GoogleFirestoreAdminV1Progress", +"properties": { +"completedWork": { +"description": "The amount of work completed.", +"format": "int64", +"type": "string" +}, +"estimatedWork": { +"description": "The amount of work estimated.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1RestoreDatabaseMetadata": { +"description": "Metadata for the long-running operation from the RestoreDatabase request.", +"id": "GoogleFirestoreAdminV1RestoreDatabaseMetadata", +"properties": { +"backup": { +"description": "The name of the backup restoring from.", +"type": "string" +}, +"database": { +"description": "The name of the database being restored to.", +"type": "string" +}, +"endTime": { +"description": "The time the restore finished, unset for ongoing restores.", +"format": "google-datetime", +"type": "string" +}, +"operationState": { +"description": "The operation state of the restore.", +"enum": [ +"OPERATION_STATE_UNSPECIFIED", +"INITIALIZING", +"PROCESSING", +"CANCELLING", +"FINALIZING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Unspecified.", +"Request is being prepared for processing.", +"Request is actively being processed.", +"Request is in the process of being cancelled after user called google.longrunning.Operations.CancelOperation on the operation.", +"Request has been processed and is in its finalization stage.", +"Request has completed successfully.", +"Request has finished being processed, but encountered an error.", +"Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." +], +"type": "string" +}, +"progressPercentage": { +"$ref": "GoogleFirestoreAdminV1Progress", +"description": "How far along the restore is as an estimated percentage of remaining time." +}, +"startTime": { +"description": "The time the restore was started.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1RestoreDatabaseRequest": { +"description": "The request message for FirestoreAdmin.RestoreDatabase.", +"id": "GoogleFirestoreAdminV1RestoreDatabaseRequest", +"properties": { +"backup": { +"description": "Required. Backup to restore from. Must be from the same project as the parent. The restored database will be created in the same location as the source backup. Format is: `projects/{project_id}/locations/{location}/backups/{backup}`", +"type": "string" +}, +"databaseId": { +"description": "Required. The ID to use for the database, which will become the final component of the database's resource name. This database ID must not be associated with an existing database. This value should be 4-63 characters. Valid characters are /a-z-/ with first character a letter and the last a letter or a number. Must not be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. \"(default)\" database ID is also valid.", +"type": "string" +}, +"encryptionConfig": { +"$ref": "GoogleFirestoreAdminV1EncryptionConfig", +"description": "Optional. Encryption configuration for the restored database. If this field is not specified, the restored database will use the same encryption configuration as the backup, namely use_source_encryption." +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1SourceEncryptionOptions": { +"description": "The configuration options for using the same encryption method as the source.", +"id": "GoogleFirestoreAdminV1SourceEncryptionOptions", +"properties": {}, +"type": "object" +}, +"GoogleFirestoreAdminV1SourceInfo": { +"description": "Information about the provenance of this database.", +"id": "GoogleFirestoreAdminV1SourceInfo", +"properties": { +"backup": { +"$ref": "GoogleFirestoreAdminV1BackupSource", +"description": "If set, this database was restored from the specified backup (or a snapshot thereof)." +}, +"operation": { +"description": "The associated long-running operation. This field may not be set after the operation has completed. Format: `projects/{project}/databases/{database}/operations/{operation}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1Stats": { +"description": "Backup specific statistics.", +"id": "GoogleFirestoreAdminV1Stats", +"properties": { +"documentCount": { +"description": "Output only. The total number of documents contained in the backup.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"indexCount": { +"description": "Output only. The total number of index entries contained in the backup.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"sizeBytes": { +"description": "Output only. Summation of the size of all documents and index entries in the backup, measured in bytes.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1TtlConfig": { +"description": "The TTL (time-to-live) configuration for documents that have this `Field` set. Storing a timestamp value into a TTL-enabled field will be treated as the document's absolute expiration time. Timestamp values in the past indicate that the document is eligible for immediate expiration. Using any other data type or leaving the field absent will disable expiration for the individual document.", +"id": "GoogleFirestoreAdminV1TtlConfig", +"properties": { +"state": { +"description": "Output only. The state of the TTL configuration.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"NEEDS_REPAIR" +], +"enumDescriptions": [ +"The state is unspecified or unknown.", +"The TTL is being applied. There is an active long-running operation to track the change. Newly written documents will have TTLs applied as requested. Requested TTLs on existing documents are still being processed. When TTLs on all existing documents have been processed, the state will move to 'ACTIVE'.", +"The TTL is active for all documents.", +"The TTL configuration could not be enabled for all existing documents. Newly written documents will continue to have their TTL applied. The LRO returned when last attempting to enable TTL for this `Field` has failed, and may have more details." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1TtlConfigDelta": { +"description": "Information about a TTL configuration change.", +"id": "GoogleFirestoreAdminV1TtlConfigDelta", +"properties": { +"changeType": { +"description": "Specifies how the TTL configuration is changing.", +"enum": [ +"CHANGE_TYPE_UNSPECIFIED", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"The type of change is not specified or known.", +"The TTL config is being added.", +"The TTL config is being removed." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1UpdateDatabaseMetadata": { +"description": "Metadata related to the update database operation.", +"id": "GoogleFirestoreAdminV1UpdateDatabaseMetadata", +"properties": {}, +"type": "object" +}, +"GoogleFirestoreAdminV1VectorConfig": { +"description": "The index configuration to support vector search operations", +"id": "GoogleFirestoreAdminV1VectorConfig", +"properties": { +"dimension": { +"description": "Required. The vector dimension this configuration applies to. The resulting index will only include vectors of this dimension, and can be used for vector search with the same dimension.", +"format": "int32", +"type": "integer" +}, +"flat": { +"$ref": "GoogleFirestoreAdminV1FlatIndex", +"description": "Indicates the vector index is a flat index." +} +}, +"type": "object" +}, +"GoogleFirestoreAdminV1WeeklyRecurrence": { +"description": "Represents a recurring schedule that runs on a specified day of the week. The time zone is UTC.", +"id": "GoogleFirestoreAdminV1WeeklyRecurrence", +"properties": { +"day": { +"description": "The day of week to run. DAY_OF_WEEK_UNSPECIFIED is not allowed.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningCancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "GoogleLongrunningCancelOperationRequest", +"properties": {}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"LatLng": { +"description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.", +"id": "LatLng", +"properties": { +"latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ListCollectionIdsRequest": { +"description": "The request for Firestore.ListCollectionIds.", +"id": "ListCollectionIdsRequest", +"properties": { +"pageSize": { +"description": "The maximum number of results to return.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token. Must be a value from ListCollectionIdsResponse.", +"type": "string" +}, +"readTime": { +"description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ListCollectionIdsResponse": { +"description": "The response from Firestore.ListCollectionIds.", +"id": "ListCollectionIdsResponse", +"properties": { +"collectionIds": { +"description": "The collection ids.", +"items": { +"type": "string" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A page token that may be used to continue the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListDocumentsResponse": { +"description": "The response for Firestore.ListDocuments.", +"id": "ListDocumentsResponse", +"properties": { +"documents": { +"description": "The Documents found.", +"items": { +"$ref": "Document" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of documents. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListenRequest": { +"description": "A request for Firestore.Listen", +"id": "ListenRequest", +"properties": { +"addTarget": { +"$ref": "Target", +"description": "A target to add to this stream." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels associated with this target change.", +"type": "object" +}, +"removeTarget": { +"description": "The ID of a target to remove from this stream.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListenResponse": { +"description": "The response for Firestore.Listen.", +"id": "ListenResponse", +"properties": { +"documentChange": { +"$ref": "DocumentChange", +"description": "A Document has changed." +}, +"documentDelete": { +"$ref": "DocumentDelete", +"description": "A Document has been deleted." +}, +"documentRemove": { +"$ref": "DocumentRemove", +"description": "A Document has been removed from a target (because it is no longer relevant to that target)." +}, +"filter": { +"$ref": "ExistenceFilter", +"description": "A filter to apply to the set of documents previously returned for the given target. Returned when documents may have been removed from the given target, but the exact documents are unknown." +}, +"targetChange": { +"$ref": "TargetChange", +"description": "Targets have changed." +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"MapValue": { +"description": "A map value.", +"id": "MapValue", +"properties": { +"fields": { +"additionalProperties": { +"$ref": "Value" +}, +"description": "The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.", +"type": "object" +} +}, +"type": "object" +}, +"Order": { +"description": "An order on a field.", +"id": "Order", +"properties": { +"direction": { +"description": "The direction to order by. Defaults to `ASCENDING`.", +"enum": [ +"DIRECTION_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"Unspecified.", +"Ascending.", +"Descending." +], +"type": "string" +}, +"field": { +"$ref": "FieldReference", +"description": "The field to order by." +} +}, +"type": "object" +}, +"PartitionQueryRequest": { +"description": "The request for Firestore.PartitionQuery.", +"id": "PartitionQueryRequest", +"properties": { +"pageSize": { +"description": "The maximum number of partitions to return in this call, subject to `partition_count`. For example, if `partition_count` = 10 and `page_size` = 8, the first call to PartitionQuery will return up to 8 partitions and a `next_page_token` if more results exist. A second call to PartitionQuery will return up to 2 partitions, to complete the total of 10 specified in `partition_count`.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "The `next_page_token` value returned from a previous call to PartitionQuery that may be used to get an additional set of results. There are no ordering guarantees between sets of results. Thus, using multiple sets of results will require merging the different result sets. For example, two subsequent calls using a page_token may return: * cursor B, cursor M, cursor Q * cursor A, cursor U, cursor W To obtain a complete result set ordered with respect to the results of the query supplied to PartitionQuery, the results sets should be merged: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W", +"type": "string" +}, +"partitionCount": { +"description": "The desired maximum number of partition points. The partitions may be returned across multiple pages of results. The number must be positive. The actual number of partitions returned may be fewer. For example, this may be set to one fewer than the number of parallel queries to be run, or in running a data pipeline job, one fewer than the number of workers or compute instances available.", +"format": "int64", +"type": "string" +}, +"readTime": { +"description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"type": "string" +}, +"structuredQuery": { +"$ref": "StructuredQuery", +"description": "A structured query. Query must specify collection with all descendants and be ordered by name ascending. Other filters, order bys, limits, offsets, and start/end cursors are not supported." +} +}, +"type": "object" +}, +"PartitionQueryResponse": { +"description": "The response for Firestore.PartitionQuery.", +"id": "PartitionQueryResponse", +"properties": { +"nextPageToken": { +"description": "A page token that may be used to request an additional set of results, up to the number specified by `partition_count` in the PartitionQuery request. If blank, there are no more results.", +"type": "string" +}, +"partitions": { +"description": "Partition results. Each partition is a split point that can be used by RunQuery as a starting or end point for the query results. The RunQuery requests must be made with the same query supplied to this PartitionQuery request. The partition cursors will be ordered according to same ordering as the results of the query supplied to PartitionQuery. For example, if a PartitionQuery request returns partition cursors A and B, running the following three queries will return the entire result set of the original query: * query, end_at A * query, start_at A, end_at B * query, start_at B An empty result may indicate that the query has too few results to be partitioned, or that the query is not yet supported for partitioning.", +"items": { +"$ref": "Cursor" +}, +"type": "array" +} +}, +"type": "object" +}, +"PlanSummary": { +"description": "Planning phase information for the query.", +"id": "PlanSummary", +"properties": { +"indexesUsed": { +"description": "The indexes selected for the query. For example: [ {\"query_scope\": \"Collection\", \"properties\": \"(foo ASC, __name__ ASC)\"}, {\"query_scope\": \"Collection\", \"properties\": \"(bar ASC, __name__ ASC)\"} ]", +"items": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"Precondition": { +"description": "A precondition on a document, used for conditional operations.", +"id": "Precondition", +"properties": { +"exists": { +"description": "When set to `true`, the target document must exist. When set to `false`, the target document must not exist.", +"type": "boolean" +}, +"updateTime": { +"description": "When set, the target document must exist and have been last updated at that time. Timestamp must be microsecond aligned.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Projection": { +"description": "The projection of document's fields to return.", +"id": "Projection", +"properties": { +"fields": { +"description": "The fields to return. If empty, all fields are returned. To only return the name of the document, use `['__name__']`.", +"items": { +"$ref": "FieldReference" +}, +"type": "array" +} +}, +"type": "object" +}, +"QueryTarget": { +"description": "A target specified by a query.", +"id": "QueryTarget", +"properties": { +"parent": { +"description": "The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", +"type": "string" +}, +"structuredQuery": { +"$ref": "StructuredQuery", +"description": "A structured query." +} +}, +"type": "object" +}, +"ReadOnly": { +"description": "Options for a transaction that can only be used to read documents.", +"id": "ReadOnly", +"properties": { +"readTime": { +"description": "Reads documents at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ReadWrite": { +"description": "Options for a transaction that can be used to read and write documents. Firestore does not allow 3rd party auth requests to create read-write. transactions.", +"id": "ReadWrite", +"properties": { +"retryTransaction": { +"description": "An optional transaction to retry.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"RollbackRequest": { +"description": "The request for Firestore.Rollback.", +"id": "RollbackRequest", +"properties": { +"transaction": { +"description": "Required. The transaction to roll back.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"RunAggregationQueryRequest": { +"description": "The request for Firestore.RunAggregationQuery.", +"id": "RunAggregationQueryRequest", +"properties": { +"explainOptions": { +"$ref": "ExplainOptions", +"description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." +}, +"newTransaction": { +"$ref": "TransactionOptions", +"description": "Starts a new transaction as part of the query, defaulting to read-only. The new transaction ID will be returned as the first response in the stream." +}, +"readTime": { +"description": "Executes the query at the given timestamp. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"type": "string" +}, +"structuredAggregationQuery": { +"$ref": "StructuredAggregationQuery", +"description": "An aggregation query." +}, +"transaction": { +"description": "Run the aggregation within an already active transaction. The value here is the opaque transaction ID to execute the query in.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"RunAggregationQueryResponse": { +"description": "The response for Firestore.RunAggregationQuery.", +"id": "RunAggregationQueryResponse", +"properties": { +"explainMetrics": { +"$ref": "ExplainMetrics", +"description": "Query explain metrics. This is only present when the RunAggregationQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." +}, +"readTime": { +"description": "The time at which the aggregate result was computed. This is always monotonically increasing; in this case, the previous AggregationResult in the result stream are guaranteed not to have changed between their `read_time` and this one. If the query returns no results, a response with `read_time` and no `result` will be sent, and this represents the time at which the query was run.", +"format": "google-datetime", +"type": "string" +}, +"result": { +"$ref": "AggregationResult", +"description": "A single aggregation result. Not present when reporting partial progress." +}, +"transaction": { +"description": "The transaction that was started as part of this request. Only present on the first response when the request requested to start a new transaction.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"RunQueryRequest": { +"description": "The request for Firestore.RunQuery.", +"id": "RunQueryRequest", +"properties": { +"explainOptions": { +"$ref": "ExplainOptions", +"description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." +}, +"newTransaction": { +"$ref": "TransactionOptions", +"description": "Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream." +}, +"readTime": { +"description": "Reads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp within the past 7 days.", +"format": "google-datetime", +"type": "string" +}, +"structuredQuery": { +"$ref": "StructuredQuery", +"description": "A structured query." +}, +"transaction": { +"description": "Run the query within an already active transaction. The value here is the opaque transaction ID to execute the query in.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"RunQueryResponse": { +"description": "The response for Firestore.RunQuery.", +"id": "RunQueryResponse", +"properties": { +"document": { +"$ref": "Document", +"description": "A query result, not set when reporting partial progress." +}, +"done": { +"description": "If present, Firestore has completely finished the request and no more documents will be returned.", +"type": "boolean" +}, +"explainMetrics": { +"$ref": "ExplainMetrics", +"description": "Query explain metrics. This is only present when the RunQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." +}, +"readTime": { +"description": "The time at which the document was read. This may be monotonically increasing; in this case, the previous documents in the result stream are guaranteed not to have changed between their `read_time` and this one. If the query returns no results, a response with `read_time` and no `document` will be sent, and this represents the time at which the query was run.", +"format": "google-datetime", +"type": "string" +}, +"skippedResults": { +"description": "The number of results that have been skipped due to an offset between the last response and the current response.", +"format": "int32", +"type": "integer" +}, +"transaction": { +"description": "The transaction that was started as part of this request. Can only be set in the first response, and only if RunQueryRequest.new_transaction was set in the request. If set, no other fields will be set in this response.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StructuredAggregationQuery": { +"description": "Firestore query for running an aggregation over a StructuredQuery.", +"id": "StructuredAggregationQuery", +"properties": { +"aggregations": { +"description": "Optional. Series of aggregations to apply over the results of the `structured_query`. Requires: * A minimum of one and maximum of five aggregations per query.", +"items": { +"$ref": "Aggregation" +}, +"type": "array" +}, +"structuredQuery": { +"$ref": "StructuredQuery", +"description": "Nested structured query." +} +}, +"type": "object" +}, +"StructuredQuery": { +"description": "A Firestore query. The query stages are executed in the following order: 1. from 2. where 3. select 4. order_by + start_at + end_at 5. offset 6. limit 7. find_nearest", +"id": "StructuredQuery", +"properties": { +"endAt": { +"$ref": "Cursor", +"description": "A potential prefix of a position in the result set to end the query at. This is similar to `START_AT` but with it controlling the end position rather than the start position. Requires: * The number of values cannot be greater than the number of fields specified in the `ORDER BY` clause." +}, +"findNearest": { +"$ref": "FindNearest", +"description": "Optional. A potential nearest neighbors search. Applies after all other filters and ordering. Finds the closest vector embeddings to the given query vector." +}, +"from": { +"description": "The collections to query.", +"items": { +"$ref": "CollectionSelector" +}, +"type": "array" +}, +"limit": { +"description": "The maximum number of results to return. Applies after all other constraints. Requires: * The value must be greater than or equal to zero if specified.", +"format": "int32", +"type": "integer" +}, +"offset": { +"description": "The number of documents to skip before returning the first result. This applies after the constraints specified by the `WHERE`, `START AT`, & `END AT` but before the `LIMIT` clause. Requires: * The value must be greater than or equal to zero if specified.", +"format": "int32", +"type": "integer" +}, +"orderBy": { +"description": "The order to apply to the query results. Firestore allows callers to provide a full ordering, a partial ordering, or no ordering at all. In all cases, Firestore guarantees a stable ordering through the following rules: * The `order_by` is required to reference all fields used with an inequality filter. * All fields that are required to be in the `order_by` but are not already present are appended in lexicographical ordering of the field name. * If an order on `__name__` is not specified, it is appended by default. Fields are appended with the same sort direction as the last order specified, or 'ASCENDING' if no order was specified. For example: * `ORDER BY a` becomes `ORDER BY a ASC, __name__ ASC` * `ORDER BY a DESC` becomes `ORDER BY a DESC, __name__ DESC` * `WHERE a > 1` becomes `WHERE a > 1 ORDER BY a ASC, __name__ ASC` * `WHERE __name__ > ... AND a > 1` becomes `WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC`", +"items": { +"$ref": "Order" +}, +"type": "array" +}, +"select": { +"$ref": "Projection", +"description": "Optional sub-set of the fields to return. This acts as a DocumentMask over the documents returned from a query. When not set, assumes that the caller wants all fields returned." +}, +"startAt": { +"$ref": "Cursor", +"description": "A potential prefix of a position in the result set to start the query at. The ordering of the result set is based on the `ORDER BY` clause of the original query. ``` SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC; ``` This query's results are ordered by `(b ASC, __name__ ASC)`. Cursors can reference either the full ordering or a prefix of the location, though it cannot reference more fields than what are in the provided `ORDER BY`. Continuing off the example above, attaching the following start cursors will have varying impact: - `START BEFORE (2, /k/123)`: start the query right before `a = 1 AND b > 2 AND __name__ > /k/123`. - `START AFTER (10)`: start the query right after `a = 1 AND b > 10`. Unlike `OFFSET` which requires scanning over the first N results to skip, a start cursor allows the query to begin at a logical position. This position is not required to match an actual result, it will scan forward from this position to find the next document. Requires: * The number of values cannot be greater than the number of fields specified in the `ORDER BY` clause." +}, +"where": { +"$ref": "Filter", +"description": "The filter to apply." +} +}, +"type": "object" +}, +"Sum": { +"description": "Sum of the values of the requested field. * Only numeric values will be aggregated. All non-numeric values including `NULL` are skipped. * If the aggregated values contain `NaN`, returns `NaN`. Infinity math follows IEEE-754 standards. * If the aggregated value set is empty, returns 0. * Returns a 64-bit integer if all aggregated numbers are integers and the sum result does not overflow. Otherwise, the result is returned as a double. Note that even if all the aggregated values are integers, the result is returned as a double if it cannot fit within a 64-bit signed integer. When this occurs, the returned value will lose precision. * When underflow occurs, floating-point aggregation is non-deterministic. This means that running the same query repeatedly without any changes to the underlying values could produce slightly different results each time. In those cases, values should be stored as integers over floating-point numbers.", +"id": "Sum", +"properties": { +"field": { +"$ref": "FieldReference", +"description": "The field to aggregate on." +} +}, +"type": "object" +}, +"Target": { +"description": "A specification of a set of documents to listen to.", +"id": "Target", +"properties": { +"documents": { +"$ref": "DocumentsTarget", +"description": "A target specified by a set of document names." +}, +"expectedCount": { +"description": "The number of documents that last matched the query at the resume token or read time. This value is only relevant when a `resume_type` is provided. This value being present and greater than zero signals that the client wants `ExistenceFilter.unchanged_names` to be included in the response.", +"format": "int32", +"type": "integer" +}, +"once": { +"description": "If the target should be removed once it is current and consistent.", +"type": "boolean" +}, +"query": { +"$ref": "QueryTarget", +"description": "A target specified by a query." +}, +"readTime": { +"description": "Start listening after a specific `read_time`. The client must know the state of matching documents at this time.", +"format": "google-datetime", +"type": "string" +}, +"resumeToken": { +"description": "A resume token from a prior TargetChange for an identical target. Using a resume token with a different target is unsupported and may fail.", +"format": "byte", +"type": "string" +}, +"targetId": { +"description": "The target ID that identifies the target on the stream. Must be a positive number and non-zero. If `target_id` is 0 (or unspecified), the server will assign an ID for this target and return that in a `TargetChange::ADD` event. Once a target with `target_id=0` is added, all subsequent targets must also have `target_id=0`. If an `AddTarget` request with `target_id != 0` is sent to the server after a target with `target_id=0` is added, the server will immediately send a response with a `TargetChange::Remove` event. Note that if the client sends multiple `AddTarget` requests without an ID, the order of IDs returned in `TargetChage.target_ids` are undefined. Therefore, clients should provide a target ID instead of relying on the server to assign one. If `target_id` is non-zero, there must not be an existing active target on this stream with the same ID.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TargetChange": { +"description": "Targets being watched have changed.", +"id": "TargetChange", +"properties": { +"cause": { +"$ref": "Status", +"description": "The error that resulted in this change, if applicable." +}, +"readTime": { +"description": "The consistent `read_time` for the given `target_ids` (omitted when the target_ids are not at a consistent snapshot). The stream is guaranteed to send a `read_time` with `target_ids` empty whenever the entire stream reaches a new consistent snapshot. ADD, CURRENT, and RESET messages are guaranteed to (eventually) result in a new consistent snapshot (while NO_CHANGE and REMOVE messages are not). For a given stream, `read_time` is guaranteed to be monotonically increasing.", +"format": "google-datetime", +"type": "string" +}, +"resumeToken": { +"description": "A token that can be used to resume the stream for the given `target_ids`, or all targets if `target_ids` is empty. Not set on every target change.", +"format": "byte", +"type": "string" +}, +"targetChangeType": { +"description": "The type of change that occurred.", +"enum": [ +"NO_CHANGE", +"ADD", +"REMOVE", +"CURRENT", +"RESET" +], +"enumDescriptions": [ +"No change has occurred. Used only to send an updated `resume_token`.", +"The targets have been added.", +"The targets have been removed.", +"The targets reflect all changes committed before the targets were added to the stream. This will be sent after or with a `read_time` that is greater than or equal to the time at which the targets were added. Listeners can wait for this change if read-after-write semantics are desired.", +"The targets have been reset, and a new initial state for the targets will be returned in subsequent changes. After the initial state is complete, `CURRENT` will be returned even if the target was previously indicated to be `CURRENT`." +], +"type": "string" +}, +"targetIds": { +"description": "The target IDs of targets that have changed. If empty, the change applies to all targets. The order of the target IDs is not defined.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"TransactionOptions": { +"description": "Options for creating a new transaction.", +"id": "TransactionOptions", +"properties": { +"readOnly": { +"$ref": "ReadOnly", +"description": "The transaction can only be used for read operations." +}, +"readWrite": { +"$ref": "ReadWrite", +"description": "The transaction can be used for both read and write operations." +} +}, +"type": "object" +}, +"UnaryFilter": { +"description": "A filter with a single operand.", +"id": "UnaryFilter", +"properties": { +"field": { +"$ref": "FieldReference", +"description": "The field to which to apply the operator." +}, +"op": { +"description": "The unary operator to apply.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"IS_NAN", +"IS_NULL", +"IS_NOT_NAN", +"IS_NOT_NULL" +], +"enumDescriptions": [ +"Unspecified. This value must not be used.", +"The given `field` is equal to `NaN`.", +"The given `field` is equal to `NULL`.", +"The given `field` is not equal to `NaN`. Requires: * No other `NOT_EQUAL`, `NOT_IN`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`.", +"The given `field` is not equal to `NULL`. Requires: * A single `NOT_EQUAL`, `NOT_IN`, `IS_NOT_NULL`, or `IS_NOT_NAN`. * That `field` comes first in the `order_by`." +], +"type": "string" +} +}, +"type": "object" +}, +"Value": { +"description": "A message that can hold any of the supported value types.", +"id": "Value", +"properties": { +"arrayValue": { +"$ref": "ArrayValue", +"description": "An array value. Cannot directly contain another array value, though can contain a map which contains another array." +}, +"booleanValue": { +"description": "A boolean value.", +"type": "boolean" +}, +"bytesValue": { +"description": "A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.", +"format": "byte", +"type": "string" +}, +"doubleValue": { +"description": "A double value.", +"format": "double", +"type": "number" +}, +"geoPointValue": { +"$ref": "LatLng", +"description": "A geo point value representing a point on the surface of Earth." +}, +"integerValue": { +"description": "An integer value.", +"format": "int64", +"type": "string" +}, +"mapValue": { +"$ref": "MapValue", +"description": "A map value." +}, +"nullValue": { +"description": "A null value.", +"enum": [ +"NULL_VALUE" +], +"enumDescriptions": [ +"Null value." +], +"type": "string" +}, +"referenceValue": { +"description": "A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.", +"type": "string" +}, +"stringValue": { +"description": "A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.", +"type": "string" +}, +"timestampValue": { +"description": "A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Write": { +"description": "A write on a document.", +"id": "Write", +"properties": { +"currentDocument": { +"$ref": "Precondition", +"description": "An optional precondition on the document. The write will fail if this is set and not met by the target document." +}, +"delete": { +"description": "A document name to delete. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.", +"type": "string" +}, +"transform": { +"$ref": "DocumentTransform", +"description": "Applies a transformation to a document." +}, +"update": { +"$ref": "Document", +"description": "A document to write." +}, +"updateMask": { +"$ref": "DocumentMask", +"description": "The fields to update in this write. This field can be set only when the operation is `update`. If the mask is not set for an `update` and the document exists, any existing data will be overwritten. If the mask is set and the document on the server has fields not covered by the mask, they are left unchanged. Fields referenced in the mask, but not present in the input document, are deleted from the document on the server. The field paths in this mask must not contain a reserved field name." +}, +"updateTransforms": { +"description": "The transforms to perform after update. This field can be set only when the operation is `update`. If present, this write is equivalent to performing `update` and `transform` to the same document atomically and in order.", +"items": { +"$ref": "FieldTransform" +}, +"type": "array" +} +}, +"type": "object" +}, +"WriteRequest": { +"description": "The request for Firestore.Write. The first request creates a stream, or resumes an existing one from a token. When creating a new stream, the server replies with a response containing only an ID and a token, to use in the next request. When resuming a stream, the server first streams any responses later than the given token, then a response containing only an up-to-date token, to use in the next request.", +"id": "WriteRequest", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels associated with this write request.", +"type": "object" +}, +"streamId": { +"description": "The ID of the write stream to resume. This may only be set in the first message. When left empty, a new write stream will be created.", +"type": "string" +}, +"streamToken": { +"description": "A stream token that was previously sent by the server. The client should set this field to the token from the most recent WriteResponse it has received. This acknowledges that the client has received responses up to this token. After sending this token, earlier tokens may not be used anymore. The server may close the stream if there are too many unacknowledged responses. Leave this field unset when creating a new stream. To resume a stream at a specific point, set this field and the `stream_id` field. Leave this field unset when creating a new stream.", +"format": "byte", +"type": "string" +}, +"writes": { +"description": "The writes to apply. Always executed atomically and in order. This must be empty on the first request. This may be empty on the last request. This must not be empty on all other requests.", +"items": { +"$ref": "Write" +}, +"type": "array" +} +}, +"type": "object" +}, +"WriteResponse": { +"description": "The response for Firestore.Write.", +"id": "WriteResponse", +"properties": { +"commitTime": { +"description": "The time at which the commit occurred. Any read with an equal or greater `read_time` is guaranteed to see the effects of the write.", +"format": "google-datetime", +"type": "string" +}, +"streamId": { +"description": "The ID of the stream. Only set on the first message, when a new stream was created.", +"type": "string" +}, +"streamToken": { +"description": "A token that represents the position of this response in the stream. This can be used by a client to resume the stream at this point. This field is always set.", +"format": "byte", +"type": "string" +}, +"writeResults": { +"description": "The result of applying the writes. This i-th write result corresponds to the i-th write in the request.", +"items": { +"$ref": "WriteResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"WriteResult": { +"description": "The result of applying a write.", +"id": "WriteResult", +"properties": { +"transformResults": { +"description": "The results of applying each DocumentTransform.FieldTransform, in the same order.", +"items": { +"$ref": "Value" +}, +"type": "array" +}, +"updateTime": { +"description": "The last update time of the document after applying the write. Not set after a `delete`. If the write did not actually change the document, this will be the previous update_time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Firestore API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json new file mode 100644 index 0000000000000000000000000000000000000000..ca4f0deb69bc5f3b614b61f650e588a170234953 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json @@ -0,0 +1,710 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/androidpublisher": { +"description": "View and manage your Google Play Developer account" +} +} +} +}, +"basePath": "", +"baseUrl": "https://gamesconfiguration.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Games Configuration", +"description": "The Google Play Game Services Publishing API allows developers to configure their games in Game Services.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/games/", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "gamesConfiguration:v1configuration", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://gamesconfiguration.mtls.googleapis.com/", +"name": "gamesConfiguration", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"achievementConfigurations": { +"methods": { +"delete": { +"description": "Delete the achievement configuration with the given ID.", +"flatPath": "games/v1configuration/achievements/{achievementId}", +"httpMethod": "DELETE", +"id": "gamesConfiguration.achievementConfigurations.delete", +"parameterOrder": [ +"achievementId" +], +"parameters": { +"achievementId": { +"description": "The ID of the achievement used by this method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1configuration/achievements/{achievementId}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Retrieves the metadata of the achievement configuration with the given ID.", +"flatPath": "games/v1configuration/achievements/{achievementId}", +"httpMethod": "GET", +"id": "gamesConfiguration.achievementConfigurations.get", +"parameterOrder": [ +"achievementId" +], +"parameters": { +"achievementId": { +"description": "The ID of the achievement used by this method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1configuration/achievements/{achievementId}", +"response": { +"$ref": "AchievementConfiguration" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"insert": { +"description": "Insert a new achievement configuration in this application.", +"flatPath": "games/v1configuration/applications/{applicationId}/achievements", +"httpMethod": "POST", +"id": "gamesConfiguration.achievementConfigurations.insert", +"parameterOrder": [ +"applicationId" +], +"parameters": { +"applicationId": { +"description": "The application ID from the Google Play developer console.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1configuration/applications/{applicationId}/achievements", +"request": { +"$ref": "AchievementConfiguration" +}, +"response": { +"$ref": "AchievementConfiguration" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Returns a list of the achievement configurations in this application.", +"flatPath": "games/v1configuration/applications/{applicationId}/achievements", +"httpMethod": "GET", +"id": "gamesConfiguration.achievementConfigurations.list", +"parameterOrder": [ +"applicationId" +], +"parameters": { +"applicationId": { +"description": "The application ID from the Google Play developer console.", +"location": "path", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of resource configurations to return in the response, used for paging. For any response, the actual number of resources returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1configuration/applications/{applicationId}/achievements", +"response": { +"$ref": "AchievementConfigurationListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"update": { +"description": "Update the metadata of the achievement configuration with the given ID.", +"flatPath": "games/v1configuration/achievements/{achievementId}", +"httpMethod": "PUT", +"id": "gamesConfiguration.achievementConfigurations.update", +"parameterOrder": [ +"achievementId" +], +"parameters": { +"achievementId": { +"description": "The ID of the achievement used by this method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1configuration/achievements/{achievementId}", +"request": { +"$ref": "AchievementConfiguration" +}, +"response": { +"$ref": "AchievementConfiguration" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +}, +"leaderboardConfigurations": { +"methods": { +"delete": { +"description": "Delete the leaderboard configuration with the given ID.", +"flatPath": "games/v1configuration/leaderboards/{leaderboardId}", +"httpMethod": "DELETE", +"id": "gamesConfiguration.leaderboardConfigurations.delete", +"parameterOrder": [ +"leaderboardId" +], +"parameters": { +"leaderboardId": { +"description": "The ID of the leaderboard.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1configuration/leaderboards/{leaderboardId}", +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"get": { +"description": "Retrieves the metadata of the leaderboard configuration with the given ID.", +"flatPath": "games/v1configuration/leaderboards/{leaderboardId}", +"httpMethod": "GET", +"id": "gamesConfiguration.leaderboardConfigurations.get", +"parameterOrder": [ +"leaderboardId" +], +"parameters": { +"leaderboardId": { +"description": "The ID of the leaderboard.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1configuration/leaderboards/{leaderboardId}", +"response": { +"$ref": "LeaderboardConfiguration" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"insert": { +"description": "Insert a new leaderboard configuration in this application.", +"flatPath": "games/v1configuration/applications/{applicationId}/leaderboards", +"httpMethod": "POST", +"id": "gamesConfiguration.leaderboardConfigurations.insert", +"parameterOrder": [ +"applicationId" +], +"parameters": { +"applicationId": { +"description": "The application ID from the Google Play developer console.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1configuration/applications/{applicationId}/leaderboards", +"request": { +"$ref": "LeaderboardConfiguration" +}, +"response": { +"$ref": "LeaderboardConfiguration" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"list": { +"description": "Returns a list of the leaderboard configurations in this application.", +"flatPath": "games/v1configuration/applications/{applicationId}/leaderboards", +"httpMethod": "GET", +"id": "gamesConfiguration.leaderboardConfigurations.list", +"parameterOrder": [ +"applicationId" +], +"parameters": { +"applicationId": { +"description": "The application ID from the Google Play developer console.", +"location": "path", +"required": true, +"type": "string" +}, +"maxResults": { +"description": "The maximum number of resource configurations to return in the response, used for paging. For any response, the actual number of resources returned may be less than the specified `maxResults`.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The token returned by the previous request.", +"location": "query", +"type": "string" +} +}, +"path": "games/v1configuration/applications/{applicationId}/leaderboards", +"response": { +"$ref": "LeaderboardConfigurationListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +}, +"update": { +"description": "Update the metadata of the leaderboard configuration with the given ID.", +"flatPath": "games/v1configuration/leaderboards/{leaderboardId}", +"httpMethod": "PUT", +"id": "gamesConfiguration.leaderboardConfigurations.update", +"parameterOrder": [ +"leaderboardId" +], +"parameters": { +"leaderboardId": { +"description": "The ID of the leaderboard.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "games/v1configuration/leaderboards/{leaderboardId}", +"request": { +"$ref": "LeaderboardConfiguration" +}, +"response": { +"$ref": "LeaderboardConfiguration" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +] +} +} +} +}, +"revision": "20240701", +"rootUrl": "https://gamesconfiguration.googleapis.com/", +"schemas": { +"AchievementConfiguration": { +"description": "An achievement configuration resource.", +"id": "AchievementConfiguration", +"properties": { +"achievementType": { +"description": "The type of the achievement.", +"enum": [ +"ACHIEVEMENT_TYPE_UNSPECIFIED", +"STANDARD", +"INCREMENTAL" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Achievement is either locked or unlocked.", +"Achievement is incremental." +], +"type": "string" +}, +"draft": { +"$ref": "AchievementConfigurationDetail", +"description": "The draft data of the achievement." +}, +"id": { +"description": "The ID of the achievement.", +"type": "string" +}, +"initialState": { +"description": "The initial state of the achievement.", +"enum": [ +"INITIAL_STATE_UNSPECIFIED", +"HIDDEN", +"REVEALED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Achievement is hidden.", +"Achievement is revealed." +], +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#achievementConfiguration`.", +"type": "string" +}, +"published": { +"$ref": "AchievementConfigurationDetail", +"description": "The read-only published data of the achievement." +}, +"stepsToUnlock": { +"description": "Steps to unlock. Only applicable to incremental achievements.", +"format": "int32", +"type": "integer" +}, +"token": { +"description": "The token for this resource.", +"type": "string" +} +}, +"type": "object" +}, +"AchievementConfigurationDetail": { +"description": "An achievement configuration detail.", +"id": "AchievementConfigurationDetail", +"properties": { +"description": { +"$ref": "LocalizedStringBundle", +"description": "Localized strings for the achievement description." +}, +"iconUrl": { +"description": "The icon url of this achievement. Writes to this field are ignored.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#achievementConfigurationDetail`.", +"type": "string" +}, +"name": { +"$ref": "LocalizedStringBundle", +"description": "Localized strings for the achievement name." +}, +"pointValue": { +"description": "Point value for the achievement.", +"format": "int32", +"type": "integer" +}, +"sortRank": { +"description": "The sort rank of this achievement. Writes to this field are ignored.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"AchievementConfigurationListResponse": { +"description": "A ListConfigurations response.", +"id": "AchievementConfigurationListResponse", +"properties": { +"items": { +"description": "The achievement configurations.", +"items": { +"$ref": "AchievementConfiguration" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#achievementConfigurationListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "The pagination token for the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"GamesNumberAffixConfiguration": { +"description": "A number affix resource.", +"id": "GamesNumberAffixConfiguration", +"properties": { +"few": { +"$ref": "LocalizedStringBundle", +"description": "When the language requires special treatment of \"small\" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish)." +}, +"many": { +"$ref": "LocalizedStringBundle", +"description": "When the language requires special treatment of \"large\" numbers (as with numbers ending 11-99 in Maltese)." +}, +"one": { +"$ref": "LocalizedStringBundle", +"description": "When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class)." +}, +"other": { +"$ref": "LocalizedStringBundle", +"description": "When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English)." +}, +"two": { +"$ref": "LocalizedStringBundle", +"description": "When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian)." +}, +"zero": { +"$ref": "LocalizedStringBundle", +"description": "When the language requires special treatment of the number 0 (as in Arabic)." +} +}, +"type": "object" +}, +"GamesNumberFormatConfiguration": { +"description": "A number format resource.", +"id": "GamesNumberFormatConfiguration", +"properties": { +"currencyCode": { +"description": "The curreny code string. Only used for CURRENCY format type.", +"type": "string" +}, +"numDecimalPlaces": { +"description": "The number of decimal places for number. Only used for NUMERIC format type.", +"format": "int32", +"type": "integer" +}, +"numberFormatType": { +"description": "The formatting for the number.", +"enum": [ +"NUMBER_FORMAT_TYPE_UNSPECIFIED", +"NUMERIC", +"TIME_DURATION", +"CURRENCY" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Numbers are formatted to have no digits or fixed number of digits after the decimal point according to locale. An optional custom unit can be added.", +"Numbers are formatted to hours, minutes and seconds.", +"Numbers are formatted to currency according to locale." +], +"type": "string" +}, +"suffix": { +"$ref": "GamesNumberAffixConfiguration", +"description": "An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources." +} +}, +"type": "object" +}, +"LeaderboardConfiguration": { +"description": "An leaderboard configuration resource.", +"id": "LeaderboardConfiguration", +"properties": { +"draft": { +"$ref": "LeaderboardConfigurationDetail", +"description": "The draft data of the leaderboard." +}, +"id": { +"description": "The ID of the leaderboard.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfiguration`.", +"type": "string" +}, +"published": { +"$ref": "LeaderboardConfigurationDetail", +"description": "The read-only published data of the leaderboard." +}, +"scoreMax": { +"description": "Maximum score that can be posted to this leaderboard.", +"format": "int64", +"type": "string" +}, +"scoreMin": { +"description": "Minimum score that can be posted to this leaderboard.", +"format": "int64", +"type": "string" +}, +"scoreOrder": { +"enum": [ +"SCORE_ORDER_UNSPECIFIED", +"LARGER_IS_BETTER", +"SMALLER_IS_BETTER" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Larger scores posted are ranked higher.", +"Smaller scores posted are ranked higher." +], +"type": "string" +}, +"token": { +"description": "The token for this resource.", +"type": "string" +} +}, +"type": "object" +}, +"LeaderboardConfigurationDetail": { +"description": "A leaderboard configuration detail.", +"id": "LeaderboardConfigurationDetail", +"properties": { +"iconUrl": { +"description": "The icon url of this leaderboard. Writes to this field are ignored.", +"type": "string" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.", +"type": "string" +}, +"name": { +"$ref": "LocalizedStringBundle", +"description": "Localized strings for the leaderboard name." +}, +"scoreFormat": { +"$ref": "GamesNumberFormatConfiguration", +"description": "The score formatting for the leaderboard." +}, +"sortRank": { +"description": "The sort rank of this leaderboard. Writes to this field are ignored.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"LeaderboardConfigurationListResponse": { +"description": "A ListConfigurations response.", +"id": "LeaderboardConfigurationListResponse", +"properties": { +"items": { +"description": "The leaderboard configurations.", +"items": { +"$ref": "LeaderboardConfiguration" +}, +"type": "array" +}, +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationListResponse`.", +"type": "string" +}, +"nextPageToken": { +"description": "The pagination token for the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"LocalizedString": { +"description": "A localized string resource.", +"id": "LocalizedString", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.", +"type": "string" +}, +"locale": { +"description": "The locale string.", +"type": "string" +}, +"value": { +"description": "The string value.", +"type": "string" +} +}, +"type": "object" +}, +"LocalizedStringBundle": { +"description": "A localized string bundle resource.", +"id": "LocalizedStringBundle", +"properties": { +"kind": { +"description": "Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.", +"type": "string" +}, +"translations": { +"description": "The locale strings.", +"items": { +"$ref": "LocalizedString" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Play Game Services Publishing API", +"version": "v1configuration" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/genomics.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/genomics.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..1fe0e184aed8363c2842e964e5174ba264908457 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/genomics.v1.json @@ -0,0 +1,796 @@ +{ + "basePath": "", + "baseUrl": "https://genomics.googleapis.com/", + "batchPath": "batch", + "description": "Uploads, processes, queries, and searches Genomics data in the cloud.", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/genomics", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "genomics:v1", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://genomics.mtls.googleapis.com/", + "name": "genomics", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "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", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "key": { + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "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", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": {}, + "revision": "20210512", + "rootUrl": "https://genomics.googleapis.com/", + "schemas": { + "Accelerator": { + "description": "Carries information about an accelerator that can be attached to a VM.", + "id": "Accelerator", + "properties": { + "count": { + "description": "How many accelerators of this type to attach.", + "format": "int64", + "type": "string" + }, + "type": { + "description": "The accelerator type string (for example, \"nvidia-tesla-k80\"). Only NVIDIA GPU accelerators are currently supported. If an NVIDIA GPU is attached, the required runtime libraries will be made available to all containers under `/usr/local/nvidia`. The driver version to install must be specified using the NVIDIA driver version parameter on the virtual machine specification. Note that attaching a GPU increases the worker VM startup time by a few minutes.", + "type": "string" + } + }, + "type": "object" + }, + "Action": { + "description": "Specifies a single action that runs a Docker container.", + "id": "Action", + "properties": { + "commands": { + "description": "If specified, overrides the `CMD` specified in the container. If the container also has an `ENTRYPOINT` the values are used as entrypoint arguments. Otherwise, they are used as a command and arguments to run inside the container.", + "items": { + "type": "string" + }, + "type": "array" + }, + "credentials": { + "$ref": "Secret", + "description": "If the specified image is hosted on a private registry other than Google Container Registry, the credentials required to pull the image must be specified here as an encrypted secret. The secret must decrypt to a JSON-encoded dictionary containing both `username` and `password` keys." + }, + "encryptedEnvironment": { + "$ref": "Secret", + "description": "The encrypted environment to pass into the container. This environment is merged with values specified in the google.genomics.v2alpha1.Pipeline message, overwriting any duplicate values. The secret must decrypt to a JSON-encoded dictionary where key-value pairs serve as environment variable names and their values. The decoded environment variables can overwrite the values specified by the `environment` field." + }, + "entrypoint": { + "description": "If specified, overrides the `ENTRYPOINT` specified in the container.", + "type": "string" + }, + "environment": { + "additionalProperties": { + "type": "string" + }, + "description": "The environment to pass into the container. This environment is merged with values specified in the google.genomics.v2alpha1.Pipeline message, overwriting any duplicate values. In addition to the values passed here, a few other values are automatically injected into the environment. These cannot be hidden or overwritten. `GOOGLE_PIPELINE_FAILED` will be set to \"1\" if the pipeline failed because an action has exited with a non-zero status (and did not have the `IGNORE_EXIT_STATUS` flag set). This can be used to determine if additional debug or logging actions should execute. `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of the last non-background action that executed. This can be used by workflow engine authors to determine whether an individual action has succeeded or failed.", + "type": "object" + }, + "flags": { + "description": "The set of flags to apply to this action.", + "items": { + "enum": [ + "FLAG_UNSPECIFIED", + "IGNORE_EXIT_STATUS", + "RUN_IN_BACKGROUND", + "ALWAYS_RUN", + "ENABLE_FUSE", + "PUBLISH_EXPOSED_PORTS", + "DISABLE_IMAGE_PREFETCH", + "DISABLE_STANDARD_ERROR_CAPTURE", + "BLOCK_EXTERNAL_NETWORK" + ], + "enumDescriptions": [ + "Unspecified flag.", + "Normally, a non-zero exit status causes the pipeline to fail. This flag allows execution of other actions to continue instead.", + "This flag allows an action to continue running in the background while executing subsequent actions. This is useful to provide services to other actions (or to provide debugging support tools like SSH servers).", + "By default, after an action fails, no further actions are run. This flag indicates that this action must be run even if the pipeline has already failed. This is useful for actions that copy output files off of the VM or for debugging. Note that no actions will be run if image prefetching fails.", + "Enable access to the FUSE device for this action. Filesystems can then be mounted into disks shared with other actions. The other actions do not need the `ENABLE_FUSE` flag to access the mounted filesystem. This has the effect of causing the container to be executed with `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the container, so use it only for containers you trust.", + "Exposes all ports specified by `EXPOSE` statements in the container. To discover the host side port numbers, consult the `ACTION_STARTED` event in the operation metadata.", + "All container images are typically downloaded before any actions are executed. This helps prevent typos in URIs or issues like lack of disk space from wasting large amounts of compute resources. If set, this flag prevents the worker from downloading the image until just before the action is executed.", + "A small portion of the container's standard error stream is typically captured and returned inside the `ContainerStoppedEvent`. Setting this flag disables this functionality.", + "Prevents the container from accessing the external network." + ], + "type": "string" + }, + "type": "array" + }, + "imageUri": { + "description": "Required. The URI to pull the container image from. Note that all images referenced by actions in the pipeline are pulled before the first action runs. If multiple actions reference the same image, it is only pulled once, ensuring that the same image is used for all actions in a single pipeline. The image URI can be either a complete host and image specification (e.g., quay.io/biocontainers/samtools), a library and image name (e.g., google/cloud-sdk) or a bare image name ('bash') to pull from the default library. No schema is required in any of these cases. If the specified image is not public, the service account specified for the Virtual Machine must have access to pull the images from GCR, or appropriate credentials must be specified in the google.genomics.v2alpha1.Action.credentials field.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to associate with the action. This field is provided to assist workflow engine authors in identifying actions (for example, to indicate what sort of action they perform, such as localization or debugging). They are returned in the operation metadata, but are otherwise ignored.", + "type": "object" + }, + "mounts": { + "description": "A list of mounts to make available to the action. In addition to the values specified here, every action has a special virtual disk mounted under `/google` that contains log files and other operational components. - /google/logs All logs written during the pipeline execution. - /google/logs/output The combined standard output and standard error of all actions run as part of the pipeline execution. - /google/logs/action/*/stdout The complete contents of each individual action's standard output. - /google/logs/action/*/stderr The complete contents of each individual action's standard error output. ", + "items": { + "$ref": "Mount" + }, + "type": "array" + }, + "name": { + "description": "An optional name for the container. The container hostname will be set to this name, making it useful for inter-container communication. The name must contain only upper and lowercase alphanumeric characters and hyphens and cannot start with a hyphen.", + "type": "string" + }, + "pidNamespace": { + "description": "An optional identifier for a PID namespace to run the action inside. Multiple actions should use the same string to share a namespace. If unspecified, a separate isolated namespace is used.", + "type": "string" + }, + "portMappings": { + "additionalProperties": { + "format": "int32", + "type": "integer" + }, + "description": "A map of containers to host port mappings for this container. If the container already specifies exposed ports, use the `PUBLISH_EXPOSED_PORTS` flag instead. The host port number must be less than 65536. If it is zero, an unused random port is assigned. To determine the resulting port number, consult the `ContainerStartedEvent` in the operation metadata.", + "type": "object" + }, + "timeout": { + "description": "The maximum amount of time to give the action to complete. If the action fails to complete before the timeout, it will be terminated and the exit status will be non-zero. The pipeline will continue or terminate based on the rules defined by the `ALWAYS_RUN` and `IGNORE_EXIT_STATUS` flags.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "ContainerKilledEvent": { + "description": "An event generated when a container is forcibly terminated by the worker. Currently, this only occurs when the container outlives the timeout specified by the user.", + "id": "ContainerKilledEvent", + "properties": { + "actionId": { + "description": "The numeric ID of the action that started the container.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ContainerStartedEvent": { + "description": "An event generated when a container starts.", + "id": "ContainerStartedEvent", + "properties": { + "actionId": { + "description": "The numeric ID of the action that started this container.", + "format": "int32", + "type": "integer" + }, + "ipAddress": { + "description": "The public IP address that can be used to connect to the container. This field is only populated when at least one port mapping is present. If the instance was created with a private address, this field will be empty even if port mappings exist.", + "type": "string" + }, + "portMappings": { + "additionalProperties": { + "format": "int32", + "type": "integer" + }, + "description": "The container-to-host port mappings installed for this container. This set will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS` flag as well as any specified in the `Action` definition.", + "type": "object" + } + }, + "type": "object" + }, + "ContainerStoppedEvent": { + "description": "An event generated when a container exits.", + "id": "ContainerStoppedEvent", + "properties": { + "actionId": { + "description": "The numeric ID of the action that started this container.", + "format": "int32", + "type": "integer" + }, + "exitStatus": { + "description": "The exit status of the container.", + "format": "int32", + "type": "integer" + }, + "stderr": { + "description": "The tail end of any content written to standard error by the container. If the content emits large amounts of debugging noise or contains sensitive information, you can prevent the content from being printed by setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag. Note that only a small amount of the end of the stream is captured here. The entire stream is stored in the `/google/logs` directory mounted into each action, and can be copied off the machine as described elsewhere.", + "type": "string" + } + }, + "type": "object" + }, + "DelayedEvent": { + "description": "An event generated whenever a resource limitation or transient error delays execution of a pipeline that was otherwise ready to run.", + "id": "DelayedEvent", + "properties": { + "cause": { + "description": "A textual description of the cause of the delay. The string can change without notice because it is often generated by another service (such as Compute Engine).", + "type": "string" + }, + "metrics": { + "description": "If the delay was caused by a resource shortage, this field lists the Compute Engine metrics that are preventing this operation from running (for example, `CPUS` or `INSTANCES`). If the particular metric is not known, a single `UNKNOWN` metric will be present.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Disk": { + "description": "Carries information about a disk that can be attached to a VM. See https://cloud.google.com/compute/docs/disks/performance for more information about disk type, size, and performance considerations. Specify either `Volume` or `Disk`, but not both.", + "id": "Disk", + "properties": { + "name": { + "description": "A user-supplied name for the disk. Used when mounting the disk into actions. The name must contain only upper and lowercase alphanumeric characters and hyphens and cannot start with a hyphen.", + "type": "string" + }, + "sizeGb": { + "description": "The size, in GB, of the disk to attach. If the size is not specified, a default is chosen to ensure reasonable I/O performance. If the disk type is specified as `local-ssd`, multiple local drives are automatically combined to provide the requested size. Note, however, that each physical SSD is 375GB in size, and no more than 8 drives can be attached to a single instance.", + "format": "int32", + "type": "integer" + }, + "sourceImage": { + "description": "An optional image to put on the disk before attaching it to the VM.", + "type": "string" + }, + "type": { + "description": "The Compute Engine disk type. If unspecified, `pd-standard` is used.", + "type": "string" + } + }, + "type": "object" + }, + "Event": { + "description": "Carries information about events that occur during pipeline execution.", + "id": "Event", + "properties": { + "description": { + "description": "A human-readable description of the event. Note that these strings can change at any time without notice. Any application logic must use the information in the `details` field.", + "type": "string" + }, + "details": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Machine-readable details about the event.", + "type": "object" + }, + "timestamp": { + "description": "The time at which the event occurred.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "ExistingDisk": { + "description": "Configuration for an existing disk to be attached to the VM.", + "id": "ExistingDisk", + "properties": { + "disk": { + "description": "If `disk` contains slashes, the Cloud Life Sciences API assumes that it is a complete URL for the disk. If `disk` does not contain slashes, the Cloud Life Sciences API assumes that the disk is a zonal disk and a URL will be generated of the form `zones//disks/`, where `` is the zone in which the instance is allocated. The disk must be ext4 formatted. If all `Mount` references to this disk have the `read_only` flag set to true, the disk will be attached in `read-only` mode and can be shared with other instances. Otherwise, the disk will be available for writing but cannot be shared.", + "type": "string" + } + }, + "type": "object" + }, + "FailedEvent": { + "description": "An event generated when the execution of a pipeline has failed. Note that other events can continue to occur after this event.", + "id": "FailedEvent", + "properties": { + "cause": { + "description": "The human-readable description of the cause of the failure.", + "type": "string" + }, + "code": { + "description": "The Google standard error code that best describes this failure.", + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "enumDescriptions": [ + "Not an error; returned on success HTTP Mapping: 200 OK", + "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", + "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", + "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", + "The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout", + "Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found", + "The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict", + "The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden", + "The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized", + "Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests", + "The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request", + "The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict", + "The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request", + "The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented", + "Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error", + "The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable", + "Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error" + ], + "type": "string" + } + }, + "type": "object" + }, + "Metadata": { + "description": "Carries information about the pipeline execution that is returned in the long running operation's metadata field.", + "id": "Metadata", + "properties": { + "createTime": { + "description": "The time at which the operation was created by the API.", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "The time at which execution was completed and resources were cleaned up.", + "format": "google-datetime", + "type": "string" + }, + "events": { + "description": "The list of events that have happened so far during the execution of this operation.", + "items": { + "$ref": "Event" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The user-defined labels associated with this operation.", + "type": "object" + }, + "pipeline": { + "$ref": "Pipeline", + "description": "The pipeline this operation represents." + }, + "startTime": { + "description": "The first time at which resources were allocated to execute the pipeline.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "Mount": { + "description": "Carries information about a particular disk mount inside a container.", + "id": "Mount", + "properties": { + "disk": { + "description": "The name of the disk to mount, as specified in the resources section.", + "type": "string" + }, + "path": { + "description": "The path to mount the disk inside the container.", + "type": "string" + }, + "readOnly": { + "description": "If true, the disk is mounted read-only inside the container.", + "type": "boolean" + } + }, + "type": "object" + }, + "NFSMount": { + "description": "Configuration for an `NFSMount` to be attached to the VM.", + "id": "NFSMount", + "properties": { + "target": { + "description": "A target NFS mount. The target must be specified as `address:/mount\".", + "type": "string" + } + }, + "type": "object" + }, + "Network": { + "description": "VM networking options.", + "id": "Network", + "properties": { + "name": { + "description": "The network name to attach the VM's network interface to. The value will be prefixed with `global/networks/` unless it contains a `/`, in which case it is assumed to be a fully specified network resource URL. If unspecified, the global default network is used.", + "type": "string" + }, + "subnetwork": { + "description": "If the specified network is configured for custom subnet creation, the name of the subnetwork to attach the instance to must be specified here. The value is prefixed with `regions/*/subnetworks/` unless it contains a `/`, in which case it is assumed to be a fully specified subnetwork resource URL. If the `*` character appears in the value, it is replaced with the region that the virtual machine has been allocated in.", + "type": "string" + }, + "usePrivateAddress": { + "description": "If set to true, do not attach a public IP address to the VM. Note that without a public IP address, additional configuration is required to allow the VM to access Google services. See https://cloud.google.com/vpc/docs/configure-private-google-access for more information.", + "type": "boolean" + } + }, + "type": "object" + }, + "PersistentDisk": { + "description": "Configuration for a persistent disk to be attached to the VM. See https://cloud.google.com/compute/docs/disks/performance for more information about disk type, size, and performance considerations.", + "id": "PersistentDisk", + "properties": { + "sizeGb": { + "description": "The size, in GB, of the disk to attach. If the size is not specified, a default is chosen to ensure reasonable I/O performance. If the disk type is specified as `local-ssd`, multiple local drives are automatically combined to provide the requested size. Note, however, that each physical SSD is 375GB in size, and no more than 8 drives can be attached to a single instance.", + "format": "int32", + "type": "integer" + }, + "sourceImage": { + "description": "An image to put on the disk before attaching it to the VM.", + "type": "string" + }, + "type": { + "description": "The Compute Engine disk type. If unspecified, `pd-standard` is used.", + "type": "string" + } + }, + "type": "object" + }, + "Pipeline": { + "description": "Specifies a series of actions to execute, expressed as Docker containers.", + "id": "Pipeline", + "properties": { + "actions": { + "description": "The list of actions to execute, in the order they are specified.", + "items": { + "$ref": "Action" + }, + "type": "array" + }, + "encryptedEnvironment": { + "$ref": "Secret", + "description": "The encrypted environment to pass into every action. Each action can also specify its own encrypted environment. The secret must decrypt to a JSON-encoded dictionary where key-value pairs serve as environment variable names and their values. The decoded environment variables can overwrite the values specified by the `environment` field." + }, + "environment": { + "additionalProperties": { + "type": "string" + }, + "description": "The environment to pass into every action. Each action can also specify additional environment variables but cannot delete an entry from this map (though they can overwrite it with a different value).", + "type": "object" + }, + "resources": { + "$ref": "Resources", + "description": "The resources required for execution." + }, + "timeout": { + "description": "The maximum amount of time to give the pipeline to complete. This includes the time spent waiting for a worker to be allocated. If the pipeline fails to complete before the timeout, it will be cancelled and the error code will be set to DEADLINE_EXCEEDED. If unspecified, it will default to 7 days.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "PullStartedEvent": { + "description": "An event generated when the worker starts pulling an image.", + "id": "PullStartedEvent", + "properties": { + "imageUri": { + "description": "The URI of the image that was pulled.", + "type": "string" + } + }, + "type": "object" + }, + "PullStoppedEvent": { + "description": "An event generated when the worker stops pulling an image.", + "id": "PullStoppedEvent", + "properties": { + "imageUri": { + "description": "The URI of the image that was pulled.", + "type": "string" + } + }, + "type": "object" + }, + "Resources": { + "description": "The system resources for the pipeline run. At least one zone or region must be specified or the pipeline run will fail.", + "id": "Resources", + "properties": { + "projectId": { + "description": "The project ID to allocate resources in.", + "type": "string" + }, + "regions": { + "description": "The list of regions allowed for VM allocation. If set, the `zones` field must not be set.", + "items": { + "type": "string" + }, + "type": "array" + }, + "virtualMachine": { + "$ref": "VirtualMachine", + "description": "The virtual machine specification." + }, + "zones": { + "description": "The list of zones allowed for VM allocation. If set, the `regions` field must not be set.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RunPipelineResponse": { + "description": "The response to the RunPipeline method, returned in the operation's result field on success.", + "id": "RunPipelineResponse", + "properties": {}, + "type": "object" + }, + "Secret": { + "description": "Holds encrypted information that is only decrypted and stored in RAM by the worker VM when running the pipeline.", + "id": "Secret", + "properties": { + "cipherText": { + "description": "The value of the cipherText response from the `encrypt` method. This field is intentionally unaudited.", + "type": "string" + }, + "keyName": { + "description": "The name of the Cloud KMS key that will be used to decrypt the secret value. The VM service account must have the required permissions and authentication scopes to invoke the `decrypt` method on the specified key.", + "type": "string" + } + }, + "type": "object" + }, + "ServiceAccount": { + "description": "Carries information about a Google Cloud service account.", + "id": "ServiceAccount", + "properties": { + "email": { + "description": "Email address of the service account. If not specified, the default Compute Engine service account for the project will be used.", + "type": "string" + }, + "scopes": { + "description": "List of scopes to be enabled for this service account on the VM, in addition to the cloud-platform API scope that will be added by default.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "UnexpectedExitStatusEvent": { + "description": "An event generated when the execution of a container results in a non-zero exit status that was not otherwise ignored. Execution will continue, but only actions that are flagged as `ALWAYS_RUN` will be executed. Other actions will be skipped.", + "id": "UnexpectedExitStatusEvent", + "properties": { + "actionId": { + "description": "The numeric ID of the action that started the container.", + "format": "int32", + "type": "integer" + }, + "exitStatus": { + "description": "The exit status of the container.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "VirtualMachine": { + "description": "Carries information about a Compute Engine VM resource.", + "id": "VirtualMachine", + "properties": { + "accelerators": { + "description": "The list of accelerators to attach to the VM.", + "items": { + "$ref": "Accelerator" + }, + "type": "array" + }, + "bootDiskSizeGb": { + "description": "The size of the boot disk, in GB. The boot disk must be large enough to accommodate all of the Docker images from each action in the pipeline at the same time. If not specified, a small but reasonable default value is used.", + "format": "int32", + "type": "integer" + }, + "bootImage": { + "description": "The host operating system image to use. Currently, only Container-Optimized OS images can be used. The default value is `projects/cos-cloud/global/images/family/cos-stable`, which selects the latest stable release of Container-Optimized OS. This option is provided to allow testing against the beta release of the operating system to ensure that the new version does not interact negatively with production pipelines. To test a pipeline against the beta release of Container-Optimized OS, use the value `projects/cos-cloud/global/images/family/cos-beta`.", + "type": "string" + }, + "cpuPlatform": { + "description": "The CPU platform to request. An instance based on a newer platform can be allocated, but never one with fewer capabilities. The value of this parameter must be a valid Compute Engine CPU platform name (such as \"Intel Skylake\"). This parameter is only useful for carefully optimized work loads where the CPU platform has a significant impact. For more information about the effect of this parameter, see https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.", + "type": "string" + }, + "disks": { + "description": "The list of disks to create and attach to the VM. Specify either the `volumes[]` field or the `disks[]` field, but not both.", + "items": { + "$ref": "Disk" + }, + "type": "array" + }, + "dockerCacheImages": { + "description": "The Compute Engine Disk Images to use as a Docker cache. The disks will be mounted into the Docker folder in a way that the images present in the cache will not need to be pulled. The digests of the cached images must match those of the tags used or the latest version will still be pulled. The root directory of the ext4 image must contain `image` and `overlay2` directories copied from the Docker directory of a VM where the desired Docker images have already been pulled. Any images pulled that are not cached will be stored on the first cache disk instead of the boot disk. Only a single image is supported.", + "items": { + "type": "string" + }, + "type": "array" + }, + "enableStackdriverMonitoring": { + "description": "Whether Stackdriver monitoring should be enabled on the VM.", + "type": "boolean" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional set of labels to apply to the VM and any attached disk resources. These labels must adhere to the [name and value restrictions](https://cloud.google.com/compute/docs/labeling-resources) on VM labels imposed by Compute Engine. Labels keys with the prefix 'google-' are reserved for use by Google. Labels applied at creation time to the VM. Applied on a best-effort basis to attached disk resources shortly after VM creation.", + "type": "object" + }, + "machineType": { + "description": "Required. The machine type of the virtual machine to create. Must be the short name of a standard machine type (such as \"n1-standard-1\") or a custom machine type (such as \"custom-1-4096\", where \"1\" indicates the number of vCPUs and \"4096\" indicates the memory in MB). See [Creating an instance with a custom machine type](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create) for more specifications on creating a custom machine type.", + "type": "string" + }, + "network": { + "$ref": "Network", + "description": "The VM network configuration." + }, + "nvidiaDriverVersion": { + "description": "The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator. The version specified here must be compatible with the GPU libraries contained in the container being executed, and must be one of the drivers hosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.", + "type": "string" + }, + "preemptible": { + "description": "If true, allocate a preemptible VM.", + "type": "boolean" + }, + "serviceAccount": { + "$ref": "ServiceAccount", + "description": "The service account to install on the VM. This account does not need any permissions other than those required by the pipeline." + }, + "volumes": { + "description": "The list of disks and other storage to create or attach to the VM. Specify either the `volumes[]` field or the `disks[]` field, but not both.", + "items": { + "$ref": "Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Volume": { + "description": "Carries information about storage that can be attached to a VM. Specify either `Volume` or `Disk`, but not both.", + "id": "Volume", + "properties": { + "existingDisk": { + "$ref": "ExistingDisk", + "description": "Configuration for a existing disk." + }, + "nfsMount": { + "$ref": "NFSMount", + "description": "Configuration for an NFS mount." + }, + "persistentDisk": { + "$ref": "PersistentDisk", + "description": "Configuration for a persistent disk." + }, + "volume": { + "description": "A user-supplied name for the volume. Used when mounting the volume into `Actions`. The name must contain only upper and lowercase alphanumeric characters and hyphens and cannot start with a hyphen.", + "type": "string" + } + }, + "type": "object" + }, + "WorkerAssignedEvent": { + "description": "An event generated after a worker VM has been assigned to run the pipeline.", + "id": "WorkerAssignedEvent", + "properties": { + "instance": { + "description": "The worker's instance name.", + "type": "string" + }, + "machineType": { + "description": "The machine type that was assigned for the worker.", + "type": "string" + }, + "zone": { + "description": "The zone the worker is running in.", + "type": "string" + } + }, + "type": "object" + }, + "WorkerReleasedEvent": { + "description": "An event generated when the worker VM that was assigned to the pipeline has been released (deleted).", + "id": "WorkerReleasedEvent", + "properties": { + "instance": { + "description": "The worker's instance name.", + "type": "string" + }, + "zone": { + "description": "The zone the worker was running in.", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Genomics API", + "version": "v1", + "version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gmail.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gmail.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..5e59feb4f3b24520b68eb04ad259c41f5e42e334 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gmail.v1.json @@ -0,0 +1,4444 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://mail.google.com/": { +"description": "Read, compose, send, and permanently delete all your email from Gmail" +}, +"https://www.googleapis.com/auth/gmail.addons.current.action.compose": { +"description": "Manage drafts and send emails when you interact with the add-on" +}, +"https://www.googleapis.com/auth/gmail.addons.current.message.action": { +"description": "View your email messages when you interact with the add-on" +}, +"https://www.googleapis.com/auth/gmail.addons.current.message.metadata": { +"description": "View your email message metadata when the add-on is running" +}, +"https://www.googleapis.com/auth/gmail.addons.current.message.readonly": { +"description": "View your email messages when the add-on is running" +}, +"https://www.googleapis.com/auth/gmail.compose": { +"description": "Manage drafts and send emails" +}, +"https://www.googleapis.com/auth/gmail.insert": { +"description": "Add emails into your Gmail mailbox" +}, +"https://www.googleapis.com/auth/gmail.labels": { +"description": "See and edit your email labels" +}, +"https://www.googleapis.com/auth/gmail.metadata": { +"description": "View your email message metadata such as labels and headers, but not the email body" +}, +"https://www.googleapis.com/auth/gmail.modify": { +"description": "Read, compose, and send emails from your Gmail account" +}, +"https://www.googleapis.com/auth/gmail.readonly": { +"description": "View your email messages and settings" +}, +"https://www.googleapis.com/auth/gmail.send": { +"description": "Send email on your behalf" +}, +"https://www.googleapis.com/auth/gmail.settings.basic": { +"description": "See, edit, create, or change your email settings and filters in Gmail" +}, +"https://www.googleapis.com/auth/gmail.settings.sharing": { +"description": "Manage your sensitive mail settings, including who can manage your mail" +} +} +} +}, +"basePath": "", +"baseUrl": "https://gmail.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Gmail", +"description": "The Gmail API lets you view and manage Gmail mailbox data like threads, messages, and labels.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/gmail/api/", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "gmail:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://gmail.mtls.googleapis.com/", +"name": "gmail", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"users": { +"methods": { +"getProfile": { +"description": "Gets the current user's Gmail profile.", +"flatPath": "gmail/v1/users/{userId}/profile", +"httpMethod": "GET", +"id": "gmail.users.getProfile", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/profile", +"response": { +"$ref": "Profile" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.compose", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"stop": { +"description": "Stop receiving push notifications for the given user mailbox.", +"flatPath": "gmail/v1/users/{userId}/stop", +"httpMethod": "POST", +"id": "gmail.users.stop", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/stop", +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"watch": { +"description": "Set up or update a push notification watch on the given user mailbox.", +"flatPath": "gmail/v1/users/{userId}/watch", +"httpMethod": "POST", +"id": "gmail.users.watch", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/watch", +"request": { +"$ref": "WatchRequest" +}, +"response": { +"$ref": "WatchResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +} +}, +"resources": { +"drafts": { +"methods": { +"create": { +"description": "Creates a new draft with the `DRAFT` label.", +"flatPath": "gmail/v1/users/{userId}/drafts", +"httpMethod": "POST", +"id": "gmail.users.drafts.create", +"mediaUpload": { +"accept": [ +"message/*" +], +"maxSize": "36700160", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/gmail/v1/users/{userId}/drafts" +}, +"simple": { +"multipart": true, +"path": "/upload/gmail/v1/users/{userId}/drafts" +} +} +}, +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/drafts", +"request": { +"$ref": "Draft" +}, +"response": { +"$ref": "Draft" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.addons.current.action.compose", +"https://www.googleapis.com/auth/gmail.compose", +"https://www.googleapis.com/auth/gmail.modify" +], +"supportsMediaUpload": true +}, +"delete": { +"description": "Immediately and permanently deletes the specified draft. Does not simply trash it.", +"flatPath": "gmail/v1/users/{userId}/drafts/{id}", +"httpMethod": "DELETE", +"id": "gmail.users.drafts.delete", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the draft to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/drafts/{id}", +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.addons.current.action.compose", +"https://www.googleapis.com/auth/gmail.compose", +"https://www.googleapis.com/auth/gmail.modify" +] +}, +"get": { +"description": "Gets the specified draft.", +"flatPath": "gmail/v1/users/{userId}/drafts/{id}", +"httpMethod": "GET", +"id": "gmail.users.drafts.get", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"format": { +"default": "full", +"description": "The format to return the draft in.", +"enum": [ +"minimal", +"full", +"raw", +"metadata" +], +"enumDescriptions": [ +"Returns only email message ID and labels; does not return the email headers, body, or payload.", +"Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.", +"Returns the full email message data with body content in the `raw` field as a base64url encoded string; the `payload` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.", +"Returns only email message ID, labels, and email headers." +], +"location": "query", +"type": "string" +}, +"id": { +"description": "The ID of the draft to retrieve.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/drafts/{id}", +"response": { +"$ref": "Draft" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.compose", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"list": { +"description": "Lists the drafts in the user's mailbox.", +"flatPath": "gmail/v1/users/{userId}/drafts", +"httpMethod": "GET", +"id": "gmail.users.drafts.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"includeSpamTrash": { +"default": "false", +"description": "Include drafts from `SPAM` and `TRASH` in the results.", +"location": "query", +"type": "boolean" +}, +"maxResults": { +"default": "100", +"description": "Maximum number of drafts to return. This field defaults to 100. The maximum allowed value for this field is 500.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to retrieve a specific page of results in the list.", +"location": "query", +"type": "string" +}, +"q": { +"description": "Only return draft messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`.", +"location": "query", +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/drafts", +"response": { +"$ref": "ListDraftsResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.compose", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"send": { +"description": "Sends the specified, existing draft to the recipients in the `To`, `Cc`, and `Bcc` headers.", +"flatPath": "gmail/v1/users/{userId}/drafts/send", +"httpMethod": "POST", +"id": "gmail.users.drafts.send", +"mediaUpload": { +"accept": [ +"message/*" +], +"maxSize": "36700160", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/gmail/v1/users/{userId}/drafts/send" +}, +"simple": { +"multipart": true, +"path": "/upload/gmail/v1/users/{userId}/drafts/send" +} +} +}, +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/drafts/send", +"request": { +"$ref": "Draft" +}, +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.addons.current.action.compose", +"https://www.googleapis.com/auth/gmail.compose", +"https://www.googleapis.com/auth/gmail.modify" +], +"supportsMediaUpload": true +}, +"update": { +"description": "Replaces a draft's content.", +"flatPath": "gmail/v1/users/{userId}/drafts/{id}", +"httpMethod": "PUT", +"id": "gmail.users.drafts.update", +"mediaUpload": { +"accept": [ +"message/*" +], +"maxSize": "36700160", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/gmail/v1/users/{userId}/drafts/{id}" +}, +"simple": { +"multipart": true, +"path": "/upload/gmail/v1/users/{userId}/drafts/{id}" +} +} +}, +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the draft to update.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/drafts/{id}", +"request": { +"$ref": "Draft" +}, +"response": { +"$ref": "Draft" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.addons.current.action.compose", +"https://www.googleapis.com/auth/gmail.compose", +"https://www.googleapis.com/auth/gmail.modify" +], +"supportsMediaUpload": true +} +} +}, +"history": { +"methods": { +"list": { +"description": "Lists the history of all changes to the given mailbox. History results are returned in chronological order (increasing `historyId`).", +"flatPath": "gmail/v1/users/{userId}/history", +"httpMethod": "GET", +"id": "gmail.users.history.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"historyTypes": { +"description": "History types to be returned by the function", +"enum": [ +"messageAdded", +"messageDeleted", +"labelAdded", +"labelRemoved" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"location": "query", +"repeated": true, +"type": "string" +}, +"labelId": { +"description": "Only return messages with a label matching the ID.", +"location": "query", +"type": "string" +}, +"maxResults": { +"default": "100", +"description": "Maximum number of history records to return. This field defaults to 100. The maximum allowed value for this field is 500.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to retrieve a specific page of results in the list.", +"location": "query", +"type": "string" +}, +"startHistoryId": { +"description": "Required. Returns history records after the specified `startHistoryId`. The supplied `startHistoryId` should be obtained from the `historyId` of a message, thread, or previous `list` response. History IDs increase chronologically but are not contiguous with random gaps in between valid IDs. Supplying an invalid or out of date `startHistoryId` typically returns an `HTTP 404` error code. A `historyId` is typically valid for at least a week, but in some rare circumstances may be valid for only a few hours. If you receive an `HTTP 404` error response, your application should perform a full sync. If you receive no `nextPageToken` in the response, there are no updates to retrieve and you can store the returned `historyId` for a future request.", +"format": "uint64", +"location": "query", +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/history", +"response": { +"$ref": "ListHistoryResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +} +} +}, +"labels": { +"methods": { +"create": { +"description": "Creates a new label.", +"flatPath": "gmail/v1/users/{userId}/labels", +"httpMethod": "POST", +"id": "gmail.users.labels.create", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/labels", +"request": { +"$ref": "Label" +}, +"response": { +"$ref": "Label" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.labels", +"https://www.googleapis.com/auth/gmail.modify" +] +}, +"delete": { +"description": "Immediately and permanently deletes the specified label and removes it from any messages and threads that it is applied to.", +"flatPath": "gmail/v1/users/{userId}/labels/{id}", +"httpMethod": "DELETE", +"id": "gmail.users.labels.delete", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the label to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/labels/{id}", +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.labels", +"https://www.googleapis.com/auth/gmail.modify" +] +}, +"get": { +"description": "Gets the specified label.", +"flatPath": "gmail/v1/users/{userId}/labels/{id}", +"httpMethod": "GET", +"id": "gmail.users.labels.get", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the label to retrieve.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/labels/{id}", +"response": { +"$ref": "Label" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.labels", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"list": { +"description": "Lists all labels in the user's mailbox.", +"flatPath": "gmail/v1/users/{userId}/labels", +"httpMethod": "GET", +"id": "gmail.users.labels.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/labels", +"response": { +"$ref": "ListLabelsResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.labels", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"patch": { +"description": "Patch the specified label.", +"flatPath": "gmail/v1/users/{userId}/labels/{id}", +"httpMethod": "PATCH", +"id": "gmail.users.labels.patch", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the label to update.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/labels/{id}", +"request": { +"$ref": "Label" +}, +"response": { +"$ref": "Label" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.labels", +"https://www.googleapis.com/auth/gmail.modify" +] +}, +"update": { +"description": "Updates the specified label.", +"flatPath": "gmail/v1/users/{userId}/labels/{id}", +"httpMethod": "PUT", +"id": "gmail.users.labels.update", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the label to update.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/labels/{id}", +"request": { +"$ref": "Label" +}, +"response": { +"$ref": "Label" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.labels", +"https://www.googleapis.com/auth/gmail.modify" +] +} +} +}, +"messages": { +"methods": { +"batchDelete": { +"description": "Deletes many messages by message ID. Provides no guarantees that messages were not already deleted or even existed at all.", +"flatPath": "gmail/v1/users/{userId}/messages/batchDelete", +"httpMethod": "POST", +"id": "gmail.users.messages.batchDelete", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/batchDelete", +"request": { +"$ref": "BatchDeleteMessagesRequest" +}, +"scopes": [ +"https://mail.google.com/" +] +}, +"batchModify": { +"description": "Modifies the labels on the specified messages.", +"flatPath": "gmail/v1/users/{userId}/messages/batchModify", +"httpMethod": "POST", +"id": "gmail.users.messages.batchModify", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/batchModify", +"request": { +"$ref": "BatchModifyMessagesRequest" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify" +] +}, +"delete": { +"description": "Immediately and permanently deletes the specified message. This operation cannot be undone. Prefer `messages.trash` instead.", +"flatPath": "gmail/v1/users/{userId}/messages/{id}", +"httpMethod": "DELETE", +"id": "gmail.users.messages.delete", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the message to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/{id}", +"scopes": [ +"https://mail.google.com/" +] +}, +"get": { +"description": "Gets the specified message.", +"flatPath": "gmail/v1/users/{userId}/messages/{id}", +"httpMethod": "GET", +"id": "gmail.users.messages.get", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"format": { +"default": "full", +"description": "The format to return the message in.", +"enum": [ +"minimal", +"full", +"raw", +"metadata" +], +"enumDescriptions": [ +"Returns only email message ID and labels; does not return the email headers, body, or payload.", +"Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.", +"Returns the full email message data with body content in the `raw` field as a base64url encoded string; the `payload` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.", +"Returns only email message ID, labels, and email headers." +], +"location": "query", +"type": "string" +}, +"id": { +"description": "The ID of the message to retrieve. This ID is usually retrieved using `messages.list`. The ID is also contained in the result when a message is inserted (`messages.insert`) or imported (`messages.import`).", +"location": "path", +"required": true, +"type": "string" +}, +"metadataHeaders": { +"description": "When given and format is `METADATA`, only include headers specified.", +"location": "query", +"repeated": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/{id}", +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.addons.current.message.action", +"https://www.googleapis.com/auth/gmail.addons.current.message.metadata", +"https://www.googleapis.com/auth/gmail.addons.current.message.readonly", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"import": { +"description": "Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages, such as those attempting to perform domain spoofing. This method does not send a message.", +"flatPath": "gmail/v1/users/{userId}/messages/import", +"httpMethod": "POST", +"id": "gmail.users.messages.import", +"mediaUpload": { +"accept": [ +"message/*" +], +"maxSize": "52428800", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/gmail/v1/users/{userId}/messages/import" +}, +"simple": { +"multipart": true, +"path": "/upload/gmail/v1/users/{userId}/messages/import" +} +} +}, +"parameterOrder": [ +"userId" +], +"parameters": { +"deleted": { +"default": "false", +"description": "Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts.", +"location": "query", +"type": "boolean" +}, +"internalDateSource": { +"default": "dateHeader", +"description": "Source for Gmail's internal date of the message.", +"enum": [ +"receivedTime", +"dateHeader" +], +"enumDescriptions": [ +"Internal message date set to current time when received by Gmail.", +"Internal message time based on 'Date' header in email, when valid." +], +"location": "query", +"type": "string" +}, +"neverMarkSpam": { +"default": "false", +"description": "Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox.", +"location": "query", +"type": "boolean" +}, +"processForCalendar": { +"default": "false", +"description": "Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user.", +"location": "query", +"type": "boolean" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/import", +"request": { +"$ref": "Message" +}, +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.insert", +"https://www.googleapis.com/auth/gmail.modify" +], +"supportsMediaUpload": true +}, +"insert": { +"description": "Directly inserts a message into only this user's mailbox similar to `IMAP APPEND`, bypassing most scanning and classification. Does not send a message.", +"flatPath": "gmail/v1/users/{userId}/messages", +"httpMethod": "POST", +"id": "gmail.users.messages.insert", +"mediaUpload": { +"accept": [ +"message/*" +], +"maxSize": "52428800", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/gmail/v1/users/{userId}/messages" +}, +"simple": { +"multipart": true, +"path": "/upload/gmail/v1/users/{userId}/messages" +} +} +}, +"parameterOrder": [ +"userId" +], +"parameters": { +"deleted": { +"default": "false", +"description": "Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts.", +"location": "query", +"type": "boolean" +}, +"internalDateSource": { +"default": "receivedTime", +"description": "Source for Gmail's internal date of the message.", +"enum": [ +"receivedTime", +"dateHeader" +], +"enumDescriptions": [ +"Internal message date set to current time when received by Gmail.", +"Internal message time based on 'Date' header in email, when valid." +], +"location": "query", +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages", +"request": { +"$ref": "Message" +}, +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.insert", +"https://www.googleapis.com/auth/gmail.modify" +], +"supportsMediaUpload": true +}, +"list": { +"description": "Lists the messages in the user's mailbox.", +"flatPath": "gmail/v1/users/{userId}/messages", +"httpMethod": "GET", +"id": "gmail.users.messages.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"includeSpamTrash": { +"default": "false", +"description": "Include messages from `SPAM` and `TRASH` in the results.", +"location": "query", +"type": "boolean" +}, +"labelIds": { +"description": "Only return messages with labels that match all of the specified label IDs. Messages in a thread might have labels that other messages in the same thread don't have. To learn more, see [Manage labels on messages and threads](https://developers.google.com/gmail/api/guides/labels#manage_labels_on_messages_threads).", +"location": "query", +"repeated": true, +"type": "string" +}, +"maxResults": { +"default": "100", +"description": "Maximum number of messages to return. This field defaults to 100. The maximum allowed value for this field is 500.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to retrieve a specific page of results in the list.", +"location": "query", +"type": "string" +}, +"q": { +"description": "Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`. Parameter cannot be used when accessing the api using the gmail.metadata scope.", +"location": "query", +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages", +"response": { +"$ref": "ListMessagesResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"modify": { +"description": "Modifies the labels on the specified message.", +"flatPath": "gmail/v1/users/{userId}/messages/{id}/modify", +"httpMethod": "POST", +"id": "gmail.users.messages.modify", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the message to modify.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/{id}/modify", +"request": { +"$ref": "ModifyMessageRequest" +}, +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify" +] +}, +"send": { +"description": "Sends the specified message to the recipients in the `To`, `Cc`, and `Bcc` headers. For example usage, see [Sending email](https://developers.google.com/gmail/api/guides/sending).", +"flatPath": "gmail/v1/users/{userId}/messages/send", +"httpMethod": "POST", +"id": "gmail.users.messages.send", +"mediaUpload": { +"accept": [ +"message/*" +], +"maxSize": "36700160", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/gmail/v1/users/{userId}/messages/send" +}, +"simple": { +"multipart": true, +"path": "/upload/gmail/v1/users/{userId}/messages/send" +} +} +}, +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/send", +"request": { +"$ref": "Message" +}, +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.addons.current.action.compose", +"https://www.googleapis.com/auth/gmail.compose", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.send" +], +"supportsMediaUpload": true +}, +"trash": { +"description": "Moves the specified message to the trash.", +"flatPath": "gmail/v1/users/{userId}/messages/{id}/trash", +"httpMethod": "POST", +"id": "gmail.users.messages.trash", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the message to Trash.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/{id}/trash", +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify" +] +}, +"untrash": { +"description": "Removes the specified message from the trash.", +"flatPath": "gmail/v1/users/{userId}/messages/{id}/untrash", +"httpMethod": "POST", +"id": "gmail.users.messages.untrash", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the message to remove from Trash.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/{id}/untrash", +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify" +] +} +}, +"resources": { +"attachments": { +"methods": { +"get": { +"description": "Gets the specified message attachment.", +"flatPath": "gmail/v1/users/{userId}/messages/{messageId}/attachments/{id}", +"httpMethod": "GET", +"id": "gmail.users.messages.attachments.get", +"parameterOrder": [ +"userId", +"messageId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the attachment.", +"location": "path", +"required": true, +"type": "string" +}, +"messageId": { +"description": "The ID of the message containing the attachment.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/messages/{messageId}/attachments/{id}", +"response": { +"$ref": "MessagePartBody" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.addons.current.message.action", +"https://www.googleapis.com/auth/gmail.addons.current.message.readonly", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +} +} +} +} +}, +"settings": { +"methods": { +"getAutoForwarding": { +"description": "Gets the auto-forwarding setting for the specified account.", +"flatPath": "gmail/v1/users/{userId}/settings/autoForwarding", +"httpMethod": "GET", +"id": "gmail.users.settings.getAutoForwarding", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/autoForwarding", +"response": { +"$ref": "AutoForwarding" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"getImap": { +"description": "Gets IMAP settings.", +"flatPath": "gmail/v1/users/{userId}/settings/imap", +"httpMethod": "GET", +"id": "gmail.users.settings.getImap", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/imap", +"response": { +"$ref": "ImapSettings" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"getLanguage": { +"description": "Gets language settings.", +"flatPath": "gmail/v1/users/{userId}/settings/language", +"httpMethod": "GET", +"id": "gmail.users.settings.getLanguage", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/language", +"response": { +"$ref": "LanguageSettings" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"getPop": { +"description": "Gets POP settings.", +"flatPath": "gmail/v1/users/{userId}/settings/pop", +"httpMethod": "GET", +"id": "gmail.users.settings.getPop", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/pop", +"response": { +"$ref": "PopSettings" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"getVacation": { +"description": "Gets vacation responder settings.", +"flatPath": "gmail/v1/users/{userId}/settings/vacation", +"httpMethod": "GET", +"id": "gmail.users.settings.getVacation", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/vacation", +"response": { +"$ref": "VacationSettings" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"updateAutoForwarding": { +"description": "Updates the auto-forwarding setting for the specified account. A verified forwarding address must be specified when auto-forwarding is enabled. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/autoForwarding", +"httpMethod": "PUT", +"id": "gmail.users.settings.updateAutoForwarding", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/autoForwarding", +"request": { +"$ref": "AutoForwarding" +}, +"response": { +"$ref": "AutoForwarding" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"updateImap": { +"description": "Updates IMAP settings.", +"flatPath": "gmail/v1/users/{userId}/settings/imap", +"httpMethod": "PUT", +"id": "gmail.users.settings.updateImap", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/imap", +"request": { +"$ref": "ImapSettings" +}, +"response": { +"$ref": "ImapSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"updateLanguage": { +"description": "Updates language settings. If successful, the return object contains the `displayLanguage` that was saved for the user, which may differ from the value passed into the request. This is because the requested `displayLanguage` may not be directly supported by Gmail but have a close variant that is, and so the variant may be chosen and saved instead.", +"flatPath": "gmail/v1/users/{userId}/settings/language", +"httpMethod": "PUT", +"id": "gmail.users.settings.updateLanguage", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/language", +"request": { +"$ref": "LanguageSettings" +}, +"response": { +"$ref": "LanguageSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"updatePop": { +"description": "Updates POP settings.", +"flatPath": "gmail/v1/users/{userId}/settings/pop", +"httpMethod": "PUT", +"id": "gmail.users.settings.updatePop", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/pop", +"request": { +"$ref": "PopSettings" +}, +"response": { +"$ref": "PopSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"updateVacation": { +"description": "Updates vacation responder settings.", +"flatPath": "gmail/v1/users/{userId}/settings/vacation", +"httpMethod": "PUT", +"id": "gmail.users.settings.updateVacation", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/vacation", +"request": { +"$ref": "VacationSettings" +}, +"response": { +"$ref": "VacationSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic" +] +} +}, +"resources": { +"cse": { +"resources": { +"identities": { +"methods": { +"create": { +"description": "Creates and configures a client-side encryption identity that's authorized to send mail from the user account. Google publishes the S/MIME certificate to a shared domain-wide directory so that people within a Google Workspace organization can encrypt and send mail to the identity.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/identities", +"httpMethod": "POST", +"id": "gmail.users.settings.cse.identities.create", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/identities", +"request": { +"$ref": "CseIdentity" +}, +"response": { +"$ref": "CseIdentity" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"delete": { +"description": "Deletes a client-side encryption identity. The authenticated user can no longer use the identity to send encrypted messages. You cannot restore the identity after you delete it. Instead, use the CreateCseIdentity method to create another identity with the same configuration.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", +"httpMethod": "DELETE", +"id": "gmail.users.settings.cse.identities.delete", +"parameterOrder": [ +"userId", +"cseEmailAddress" +], +"parameters": { +"cseEmailAddress": { +"description": "The primary email address associated with the client-side encryption identity configuration that's removed.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"get": { +"description": "Retrieves a client-side encryption identity configuration.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", +"httpMethod": "GET", +"id": "gmail.users.settings.cse.identities.get", +"parameterOrder": [ +"userId", +"cseEmailAddress" +], +"parameters": { +"cseEmailAddress": { +"description": "The primary email address associated with the client-side encryption identity configuration that's retrieved.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", +"response": { +"$ref": "CseIdentity" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"list": { +"description": "Lists the client-side encrypted identities for an authenticated user.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/identities", +"httpMethod": "GET", +"id": "gmail.users.settings.cse.identities.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"pageSize": { +"default": "20", +"description": "The number of identities to return. If not provided, the page size will default to 20 entries.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token indicating which page of identities to return. If the token is not supplied, then the API will return the first page of results.", +"location": "query", +"type": "string" +}, +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/identities", +"response": { +"$ref": "ListCseIdentitiesResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"patch": { +"description": "Associates a different key pair with an existing client-side encryption identity. The updated key pair must validate against Google's [S/MIME certificate profiles](https://support.google.com/a/answer/7300887).", +"flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{emailAddress}", +"httpMethod": "PATCH", +"id": "gmail.users.settings.cse.identities.patch", +"parameterOrder": [ +"userId", +"emailAddress" +], +"parameters": { +"emailAddress": { +"description": "The email address of the client-side encryption identity to update.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/identities/{emailAddress}", +"request": { +"$ref": "CseIdentity" +}, +"response": { +"$ref": "CseIdentity" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +} +} +}, +"keypairs": { +"methods": { +"create": { +"description": "Creates and uploads a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs", +"httpMethod": "POST", +"id": "gmail.users.settings.cse.keypairs.create", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/keypairs", +"request": { +"$ref": "CseKeyPair" +}, +"response": { +"$ref": "CseKeyPair" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"disable": { +"description": "Turns off a client-side encryption key pair. The authenticated user can no longer use the key pair to decrypt incoming CSE message texts or sign outgoing CSE mail. To regain access, use the EnableCseKeyPair to turn on the key pair. After 30 days, you can permanently delete the key pair by using the ObliterateCseKeyPair method.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:disable", +"httpMethod": "POST", +"id": "gmail.users.settings.cse.keypairs.disable", +"parameterOrder": [ +"userId", +"keyPairId" +], +"parameters": { +"keyPairId": { +"description": "The identifier of the key pair to turn off.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:disable", +"request": { +"$ref": "DisableCseKeyPairRequest" +}, +"response": { +"$ref": "CseKeyPair" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"enable": { +"description": "Turns on a client-side encryption key pair that was turned off. The key pair becomes active again for any associated client-side encryption identities.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:enable", +"httpMethod": "POST", +"id": "gmail.users.settings.cse.keypairs.enable", +"parameterOrder": [ +"userId", +"keyPairId" +], +"parameters": { +"keyPairId": { +"description": "The identifier of the key pair to turn on.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:enable", +"request": { +"$ref": "EnableCseKeyPairRequest" +}, +"response": { +"$ref": "CseKeyPair" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"get": { +"description": "Retrieves an existing client-side encryption key pair.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}", +"httpMethod": "GET", +"id": "gmail.users.settings.cse.keypairs.get", +"parameterOrder": [ +"userId", +"keyPairId" +], +"parameters": { +"keyPairId": { +"description": "The identifier of the key pair to retrieve.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}", +"response": { +"$ref": "CseKeyPair" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"list": { +"description": "Lists client-side encryption key pairs for an authenticated user.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs", +"httpMethod": "GET", +"id": "gmail.users.settings.cse.keypairs.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"pageSize": { +"default": "20", +"description": "The number of key pairs to return. If not provided, the page size will default to 20 entries.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Pagination token indicating which page of key pairs to return. If the token is not supplied, then the API will return the first page of results.", +"location": "query", +"type": "string" +}, +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/keypairs", +"response": { +"$ref": "ListCseKeyPairsResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"obliterate": { +"description": "Deletes a client-side encryption key pair permanently and immediately. You can only permanently delete key pairs that have been turned off for more than 30 days. To turn off a key pair, use the DisableCseKeyPair method. Gmail can't restore or decrypt any messages that were encrypted by an obliterated key. Authenticated users and Google Workspace administrators lose access to reading the encrypted messages.", +"flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:obliterate", +"httpMethod": "POST", +"id": "gmail.users.settings.cse.keypairs.obliterate", +"parameterOrder": [ +"userId", +"keyPairId" +], +"parameters": { +"keyPairId": { +"description": "The identifier of the key pair to obliterate.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:obliterate", +"request": { +"$ref": "ObliterateCseKeyPairRequest" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +} +} +} +} +}, +"delegates": { +"methods": { +"create": { +"description": "Adds a delegate with its verification status set directly to `accepted`, without sending any verification email. The delegate user must be a member of the same Google Workspace organization as the delegator user. Gmail imposes limitations on the number of delegates and delegators each user in a Google Workspace organization can have. These limits depend on your organization, but in general each user can have up to 25 delegates and up to 10 delegators. Note that a delegate user must be referred to by their primary email address, and not an email alias. Also note that when a new delegate is created, there may be up to a one minute delay before the new delegate is available for use. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/delegates", +"httpMethod": "POST", +"id": "gmail.users.settings.delegates.create", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/delegates", +"request": { +"$ref": "Delegate" +}, +"response": { +"$ref": "Delegate" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"delete": { +"description": "Removes the specified delegate (which can be of any verification status), and revokes any verification that may have been required for using it. Note that a delegate user must be referred to by their primary email address, and not an email alias. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}", +"httpMethod": "DELETE", +"id": "gmail.users.settings.delegates.delete", +"parameterOrder": [ +"userId", +"delegateEmail" +], +"parameters": { +"delegateEmail": { +"description": "The email address of the user to be removed as a delegate.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}", +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"get": { +"description": "Gets the specified delegate. Note that a delegate user must be referred to by their primary email address, and not an email alias. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}", +"httpMethod": "GET", +"id": "gmail.users.settings.delegates.get", +"parameterOrder": [ +"userId", +"delegateEmail" +], +"parameters": { +"delegateEmail": { +"description": "The email address of the user whose delegate relationship is to be retrieved.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}", +"response": { +"$ref": "Delegate" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"list": { +"description": "Lists the delegates for the specified account. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/delegates", +"httpMethod": "GET", +"id": "gmail.users.settings.delegates.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/delegates", +"response": { +"$ref": "ListDelegatesResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +} +} +}, +"filters": { +"methods": { +"create": { +"description": "Creates a filter. Note: you can only create a maximum of 1,000 filters.", +"flatPath": "gmail/v1/users/{userId}/settings/filters", +"httpMethod": "POST", +"id": "gmail.users.settings.filters.create", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/filters", +"request": { +"$ref": "Filter" +}, +"response": { +"$ref": "Filter" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"delete": { +"description": "Immediately and permanently deletes the specified filter.", +"flatPath": "gmail/v1/users/{userId}/settings/filters/{id}", +"httpMethod": "DELETE", +"id": "gmail.users.settings.filters.delete", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the filter to be deleted.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/filters/{id}", +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"get": { +"description": "Gets a filter.", +"flatPath": "gmail/v1/users/{userId}/settings/filters/{id}", +"httpMethod": "GET", +"id": "gmail.users.settings.filters.get", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the filter to be fetched.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/filters/{id}", +"response": { +"$ref": "Filter" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"list": { +"description": "Lists the message filters of a Gmail user.", +"flatPath": "gmail/v1/users/{userId}/settings/filters", +"httpMethod": "GET", +"id": "gmail.users.settings.filters.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/filters", +"response": { +"$ref": "ListFiltersResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +} +} +}, +"forwardingAddresses": { +"methods": { +"create": { +"description": "Creates a forwarding address. If ownership verification is required, a message will be sent to the recipient and the resource's verification status will be set to `pending`; otherwise, the resource will be created with verification status set to `accepted`. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/forwardingAddresses", +"httpMethod": "POST", +"id": "gmail.users.settings.forwardingAddresses.create", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/forwardingAddresses", +"request": { +"$ref": "ForwardingAddress" +}, +"response": { +"$ref": "ForwardingAddress" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"delete": { +"description": "Deletes the specified forwarding address and revokes any verification that may have been required. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}", +"httpMethod": "DELETE", +"id": "gmail.users.settings.forwardingAddresses.delete", +"parameterOrder": [ +"userId", +"forwardingEmail" +], +"parameters": { +"forwardingEmail": { +"description": "The forwarding address to be deleted.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}", +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"get": { +"description": "Gets the specified forwarding address.", +"flatPath": "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}", +"httpMethod": "GET", +"id": "gmail.users.settings.forwardingAddresses.get", +"parameterOrder": [ +"userId", +"forwardingEmail" +], +"parameters": { +"forwardingEmail": { +"description": "The forwarding address to be retrieved.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}", +"response": { +"$ref": "ForwardingAddress" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"list": { +"description": "Lists the forwarding addresses for the specified account.", +"flatPath": "gmail/v1/users/{userId}/settings/forwardingAddresses", +"httpMethod": "GET", +"id": "gmail.users.settings.forwardingAddresses.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/forwardingAddresses", +"response": { +"$ref": "ListForwardingAddressesResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +} +} +}, +"sendAs": { +"methods": { +"create": { +"description": "Creates a custom \"from\" send-as alias. If an SMTP MSA is specified, Gmail will attempt to connect to the SMTP service to validate the configuration before creating the alias. If ownership verification is required for the alias, a message will be sent to the email address and the resource's verification status will be set to `pending`; otherwise, the resource will be created with verification status set to `accepted`. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs", +"httpMethod": "POST", +"id": "gmail.users.settings.sendAs.create", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs", +"request": { +"$ref": "SendAs" +}, +"response": { +"$ref": "SendAs" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"delete": { +"description": "Deletes the specified send-as alias. Revokes any verification that may have been required for using it. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}", +"httpMethod": "DELETE", +"id": "gmail.users.settings.sendAs.delete", +"parameterOrder": [ +"userId", +"sendAsEmail" +], +"parameters": { +"sendAsEmail": { +"description": "The send-as alias to be deleted.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}", +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"get": { +"description": "Gets the specified send-as alias. Fails with an HTTP 404 error if the specified address is not a member of the collection.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}", +"httpMethod": "GET", +"id": "gmail.users.settings.sendAs.get", +"parameterOrder": [ +"userId", +"sendAsEmail" +], +"parameters": { +"sendAsEmail": { +"description": "The send-as alias to be retrieved.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}", +"response": { +"$ref": "SendAs" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"list": { +"description": "Lists the send-as aliases for the specified account. The result includes the primary send-as address associated with the account as well as any custom \"from\" aliases.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs", +"httpMethod": "GET", +"id": "gmail.users.settings.sendAs.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs", +"response": { +"$ref": "ListSendAsResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic" +] +}, +"patch": { +"description": "Patch the specified send-as alias.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}", +"httpMethod": "PATCH", +"id": "gmail.users.settings.sendAs.patch", +"parameterOrder": [ +"userId", +"sendAsEmail" +], +"parameters": { +"sendAsEmail": { +"description": "The send-as alias to be updated.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}", +"request": { +"$ref": "SendAs" +}, +"response": { +"$ref": "SendAs" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"update": { +"description": "Updates a send-as alias. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias. Addresses other than the primary address for the account can only be updated by service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}", +"httpMethod": "PUT", +"id": "gmail.users.settings.sendAs.update", +"parameterOrder": [ +"userId", +"sendAsEmail" +], +"parameters": { +"sendAsEmail": { +"description": "The send-as alias to be updated.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}", +"request": { +"$ref": "SendAs" +}, +"response": { +"$ref": "SendAs" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"verify": { +"description": "Sends a verification email to the specified send-as alias address. The verification status must be `pending`. This method is only available to service account clients that have been delegated domain-wide authority.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/verify", +"httpMethod": "POST", +"id": "gmail.users.settings.sendAs.verify", +"parameterOrder": [ +"userId", +"sendAsEmail" +], +"parameters": { +"sendAsEmail": { +"description": "The send-as alias to be verified.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/verify", +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +} +}, +"resources": { +"smimeInfo": { +"methods": { +"delete": { +"description": "Deletes the specified S/MIME config for the specified send-as alias.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}", +"httpMethod": "DELETE", +"id": "gmail.users.settings.sendAs.smimeInfo.delete", +"parameterOrder": [ +"userId", +"sendAsEmail", +"id" +], +"parameters": { +"id": { +"description": "The immutable ID for the SmimeInfo.", +"location": "path", +"required": true, +"type": "string" +}, +"sendAsEmail": { +"description": "The email address that appears in the \"From:\" header for mail sent using this alias.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}", +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"get": { +"description": "Gets the specified S/MIME config for the specified send-as alias.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}", +"httpMethod": "GET", +"id": "gmail.users.settings.sendAs.smimeInfo.get", +"parameterOrder": [ +"userId", +"sendAsEmail", +"id" +], +"parameters": { +"id": { +"description": "The immutable ID for the SmimeInfo.", +"location": "path", +"required": true, +"type": "string" +}, +"sendAsEmail": { +"description": "The email address that appears in the \"From:\" header for mail sent using this alias.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}", +"response": { +"$ref": "SmimeInfo" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"insert": { +"description": "Insert (upload) the given S/MIME config for the specified send-as alias. Note that pkcs12 format is required for the key.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo", +"httpMethod": "POST", +"id": "gmail.users.settings.sendAs.smimeInfo.insert", +"parameterOrder": [ +"userId", +"sendAsEmail" +], +"parameters": { +"sendAsEmail": { +"description": "The email address that appears in the \"From:\" header for mail sent using this alias.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo", +"request": { +"$ref": "SmimeInfo" +}, +"response": { +"$ref": "SmimeInfo" +}, +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"list": { +"description": "Lists S/MIME configs for the specified send-as alias.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo", +"httpMethod": "GET", +"id": "gmail.users.settings.sendAs.smimeInfo.list", +"parameterOrder": [ +"userId", +"sendAsEmail" +], +"parameters": { +"sendAsEmail": { +"description": "The email address that appears in the \"From:\" header for mail sent using this alias.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo", +"response": { +"$ref": "ListSmimeInfoResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly", +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +}, +"setDefault": { +"description": "Sets the default S/MIME config for the specified send-as alias.", +"flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault", +"httpMethod": "POST", +"id": "gmail.users.settings.sendAs.smimeInfo.setDefault", +"parameterOrder": [ +"userId", +"sendAsEmail", +"id" +], +"parameters": { +"id": { +"description": "The immutable ID for the SmimeInfo.", +"location": "path", +"required": true, +"type": "string" +}, +"sendAsEmail": { +"description": "The email address that appears in the \"From:\" header for mail sent using this alias.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault", +"scopes": [ +"https://www.googleapis.com/auth/gmail.settings.basic", +"https://www.googleapis.com/auth/gmail.settings.sharing" +] +} +} +} +} +} +} +}, +"threads": { +"methods": { +"delete": { +"description": "Immediately and permanently deletes the specified thread. Any messages that belong to the thread are also deleted. This operation cannot be undone. Prefer `threads.trash` instead.", +"flatPath": "gmail/v1/users/{userId}/threads/{id}", +"httpMethod": "DELETE", +"id": "gmail.users.threads.delete", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "ID of the Thread to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/threads/{id}", +"scopes": [ +"https://mail.google.com/" +] +}, +"get": { +"description": "Gets the specified thread.", +"flatPath": "gmail/v1/users/{userId}/threads/{id}", +"httpMethod": "GET", +"id": "gmail.users.threads.get", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"format": { +"default": "full", +"description": "The format to return the messages in.", +"enum": [ +"full", +"metadata", +"minimal" +], +"enumDescriptions": [ +"Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.", +"Returns only email message IDs, labels, and email headers.", +"Returns only email message IDs and labels; does not return the email headers, body, or payload." +], +"location": "query", +"type": "string" +}, +"id": { +"description": "The ID of the thread to retrieve.", +"location": "path", +"required": true, +"type": "string" +}, +"metadataHeaders": { +"description": "When given and format is METADATA, only include headers specified.", +"location": "query", +"repeated": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/threads/{id}", +"response": { +"$ref": "Thread" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.addons.current.message.action", +"https://www.googleapis.com/auth/gmail.addons.current.message.metadata", +"https://www.googleapis.com/auth/gmail.addons.current.message.readonly", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"list": { +"description": "Lists the threads in the user's mailbox.", +"flatPath": "gmail/v1/users/{userId}/threads", +"httpMethod": "GET", +"id": "gmail.users.threads.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"includeSpamTrash": { +"default": "false", +"description": "Include threads from `SPAM` and `TRASH` in the results.", +"location": "query", +"type": "boolean" +}, +"labelIds": { +"description": "Only return threads with labels that match all of the specified label IDs.", +"location": "query", +"repeated": true, +"type": "string" +}, +"maxResults": { +"default": "100", +"description": "Maximum number of threads to return. This field defaults to 100. The maximum allowed value for this field is 500.", +"format": "uint32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token to retrieve a specific page of results in the list.", +"location": "query", +"type": "string" +}, +"q": { +"description": "Only return threads matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`. Parameter cannot be used when accessing the api using the gmail.metadata scope.", +"location": "query", +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/threads", +"response": { +"$ref": "ListThreadsResponse" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.metadata", +"https://www.googleapis.com/auth/gmail.modify", +"https://www.googleapis.com/auth/gmail.readonly" +] +}, +"modify": { +"description": "Modifies the labels applied to the thread. This applies to all messages in the thread.", +"flatPath": "gmail/v1/users/{userId}/threads/{id}/modify", +"httpMethod": "POST", +"id": "gmail.users.threads.modify", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the thread to modify.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/threads/{id}/modify", +"request": { +"$ref": "ModifyThreadRequest" +}, +"response": { +"$ref": "Thread" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify" +] +}, +"trash": { +"description": "Moves the specified thread to the trash. Any messages that belong to the thread are also moved to the trash.", +"flatPath": "gmail/v1/users/{userId}/threads/{id}/trash", +"httpMethod": "POST", +"id": "gmail.users.threads.trash", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the thread to Trash.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/threads/{id}/trash", +"response": { +"$ref": "Thread" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify" +] +}, +"untrash": { +"description": "Removes the specified thread from the trash. Any messages that belong to the thread are also removed from the trash.", +"flatPath": "gmail/v1/users/{userId}/threads/{id}/untrash", +"httpMethod": "POST", +"id": "gmail.users.threads.untrash", +"parameterOrder": [ +"userId", +"id" +], +"parameters": { +"id": { +"description": "The ID of the thread to remove from Trash.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"default": "me", +"description": "The user's email address. The special value `me` can be used to indicate the authenticated user.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "gmail/v1/users/{userId}/threads/{id}/untrash", +"response": { +"$ref": "Thread" +}, +"scopes": [ +"https://mail.google.com/", +"https://www.googleapis.com/auth/gmail.modify" +] +} +} +} +} +} +}, +"revision": "20240701", +"rootUrl": "https://gmail.googleapis.com/", +"schemas": { +"AutoForwarding": { +"description": "Auto-forwarding settings for an account.", +"id": "AutoForwarding", +"properties": { +"disposition": { +"description": "The state that a message should be left in after it has been forwarded.", +"enum": [ +"dispositionUnspecified", +"leaveInInbox", +"archive", +"trash", +"markRead" +], +"enumDescriptions": [ +"Unspecified disposition.", +"Leave the message in the `INBOX`.", +"Archive the message.", +"Move the message to the `TRASH`.", +"Leave the message in the `INBOX` and mark it as read." +], +"type": "string" +}, +"emailAddress": { +"description": "Email address to which all incoming messages are forwarded. This email address must be a verified member of the forwarding addresses.", +"type": "string" +}, +"enabled": { +"description": "Whether all incoming mail is automatically forwarded to another address.", +"type": "boolean" +} +}, +"type": "object" +}, +"BatchDeleteMessagesRequest": { +"id": "BatchDeleteMessagesRequest", +"properties": { +"ids": { +"description": "The IDs of the messages to delete.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchModifyMessagesRequest": { +"id": "BatchModifyMessagesRequest", +"properties": { +"addLabelIds": { +"description": "A list of label IDs to add to messages.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ids": { +"description": "The IDs of the messages to modify. There is a limit of 1000 ids per request.", +"items": { +"type": "string" +}, +"type": "array" +}, +"removeLabelIds": { +"description": "A list of label IDs to remove from messages.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CseIdentity": { +"description": "The client-side encryption (CSE) configuration for the email address of an authenticated user. Gmail uses CSE configurations to save drafts of client-side encrypted email messages, and to sign and send encrypted email messages.", +"id": "CseIdentity", +"properties": { +"emailAddress": { +"description": "The email address for the sending identity. The email address must be the primary email address of the authenticated user.", +"type": "string" +}, +"primaryKeyPairId": { +"description": "If a key pair is associated, the ID of the key pair, CseKeyPair.", +"type": "string" +}, +"signAndEncryptKeyPairs": { +"$ref": "SignAndEncryptKeyPairs", +"description": "The configuration of a CSE identity that uses different key pairs for signing and encryption." +} +}, +"type": "object" +}, +"CseKeyPair": { +"description": "A client-side encryption S/MIME key pair, which is comprised of a public key, its certificate chain, and metadata for its paired private key. Gmail uses the key pair to complete the following tasks: - Sign outgoing client-side encrypted messages. - Save and reopen drafts of client-side encrypted messages. - Save and reopen sent messages. - Decrypt incoming or archived S/MIME messages.", +"id": "CseKeyPair", +"properties": { +"disableTime": { +"description": "Output only. If a key pair is set to `DISABLED`, the time that the key pair's state changed from `ENABLED` to `DISABLED`. This field is present only when the key pair is in state `DISABLED`.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"enablementState": { +"description": "Output only. The current state of the key pair.", +"enum": [ +"stateUnspecified", +"enabled", +"disabled" +], +"enumDescriptions": [ +"The current state of the key pair is not set. The key pair is neither turned on nor turned off.", +"The key pair is turned on. For any email messages that this key pair encrypts, Gmail decrypts the messages and signs any outgoing mail with the private key. To turn on a key pair, use the EnableCseKeyPair method.", +"The key pair is turned off. Authenticated users cannot decrypt email messages nor sign outgoing messages. If a key pair is turned off for more than 30 days, you can permanently delete it. To turn off a key pair, use the DisableCseKeyPair method." +], +"readOnly": true, +"type": "string" +}, +"keyPairId": { +"description": "Output only. The immutable ID for the client-side encryption S/MIME key pair.", +"readOnly": true, +"type": "string" +}, +"pem": { +"description": "Output only. The public key and its certificate chain, in [PEM](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) format.", +"readOnly": true, +"type": "string" +}, +"pkcs7": { +"description": "Input only. The public key and its certificate chain. The chain must be in [PKCS#7](https://en.wikipedia.org/wiki/PKCS_7) format and use PEM encoding and ASCII armor.", +"type": "string" +}, +"privateKeyMetadata": { +"description": "Metadata for instances of this key pair's private key.", +"items": { +"$ref": "CsePrivateKeyMetadata" +}, +"type": "array" +}, +"subjectEmailAddresses": { +"description": "Output only. The email address identities that are specified on the leaf certificate.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"CsePrivateKeyMetadata": { +"description": "Metadata for a private key instance.", +"id": "CsePrivateKeyMetadata", +"properties": { +"hardwareKeyMetadata": { +"$ref": "HardwareKeyMetadata", +"description": "Metadata for hardware keys." +}, +"kaclsKeyMetadata": { +"$ref": "KaclsKeyMetadata", +"description": "Metadata for a private key instance managed by an external key access control list service." +}, +"privateKeyMetadataId": { +"description": "Output only. The immutable ID for the private key metadata instance.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Delegate": { +"description": "Settings for a delegate. Delegates can read, send, and delete messages, as well as view and add contacts, for the delegator's account. See \"Set up mail delegation\" for more information about delegates.", +"id": "Delegate", +"properties": { +"delegateEmail": { +"description": "The email address of the delegate.", +"type": "string" +}, +"verificationStatus": { +"description": "Indicates whether this address has been verified and can act as a delegate for the account. Read-only.", +"enum": [ +"verificationStatusUnspecified", +"accepted", +"pending", +"rejected", +"expired" +], +"enumDescriptions": [ +"Unspecified verification status.", +"The address can act a delegate for the account.", +"A verification request was mailed to the address, and the owner has not yet accepted it.", +"A verification request was mailed to the address, and the owner rejected it.", +"A verification request was mailed to the address, and it expired without verification." +], +"type": "string" +} +}, +"type": "object" +}, +"DisableCseKeyPairRequest": { +"description": "Requests to turn off a client-side encryption key pair.", +"id": "DisableCseKeyPairRequest", +"properties": {}, +"type": "object" +}, +"Draft": { +"description": "A draft email in the user's mailbox.", +"id": "Draft", +"properties": { +"id": { +"annotations": { +"required": [ +"gmail.users.drafts.send" +] +}, +"description": "The immutable ID of the draft.", +"type": "string" +}, +"message": { +"$ref": "Message", +"description": "The message content of the draft." +} +}, +"type": "object" +}, +"EnableCseKeyPairRequest": { +"description": "Requests to turn on a client-side encryption key pair.", +"id": "EnableCseKeyPairRequest", +"properties": {}, +"type": "object" +}, +"Filter": { +"description": "Resource definition for Gmail filters. Filters apply to specific messages instead of an entire email thread.", +"id": "Filter", +"properties": { +"action": { +"$ref": "FilterAction", +"description": "Action that the filter performs." +}, +"criteria": { +"$ref": "FilterCriteria", +"description": "Matching criteria for the filter." +}, +"id": { +"description": "The server assigned ID of the filter.", +"type": "string" +} +}, +"type": "object" +}, +"FilterAction": { +"description": "A set of actions to perform on a message.", +"id": "FilterAction", +"properties": { +"addLabelIds": { +"description": "List of labels to add to the message.", +"items": { +"type": "string" +}, +"type": "array" +}, +"forward": { +"description": "Email address that the message should be forwarded to.", +"type": "string" +}, +"removeLabelIds": { +"description": "List of labels to remove from the message.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"FilterCriteria": { +"description": "Message matching criteria.", +"id": "FilterCriteria", +"properties": { +"excludeChats": { +"description": "Whether the response should exclude chats.", +"type": "boolean" +}, +"from": { +"description": "The sender's display name or email address.", +"type": "string" +}, +"hasAttachment": { +"description": "Whether the message has any attachment.", +"type": "boolean" +}, +"negatedQuery": { +"description": "Only return messages not matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`.", +"type": "string" +}, +"query": { +"description": "Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`.", +"type": "string" +}, +"size": { +"description": "The size of the entire RFC822 message in bytes, including all headers and attachments.", +"format": "int32", +"type": "integer" +}, +"sizeComparison": { +"description": "How the message size in bytes should be in relation to the size field.", +"enum": [ +"unspecified", +"smaller", +"larger" +], +"enumDescriptions": [ +"", +"Find messages smaller than the given size.", +"Find messages larger than the given size." +], +"type": "string" +}, +"subject": { +"description": "Case-insensitive phrase found in the message's subject. Trailing and leading whitespace are be trimmed and adjacent spaces are collapsed.", +"type": "string" +}, +"to": { +"description": "The recipient's display name or email address. Includes recipients in the \"to\", \"cc\", and \"bcc\" header fields. You can use simply the local part of the email address. For example, \"example\" and \"example@\" both match \"example@gmail.com\". This field is case-insensitive.", +"type": "string" +} +}, +"type": "object" +}, +"ForwardingAddress": { +"description": "Settings for a forwarding address.", +"id": "ForwardingAddress", +"properties": { +"forwardingEmail": { +"description": "An email address to which messages can be forwarded.", +"type": "string" +}, +"verificationStatus": { +"description": "Indicates whether this address has been verified and is usable for forwarding. Read-only.", +"enum": [ +"verificationStatusUnspecified", +"accepted", +"pending" +], +"enumDescriptions": [ +"Unspecified verification status.", +"The address is ready to use for forwarding.", +"The address is awaiting verification by the owner." +], +"type": "string" +} +}, +"type": "object" +}, +"HardwareKeyMetadata": { +"description": "Metadata for hardware keys.", +"id": "HardwareKeyMetadata", +"properties": { +"description": { +"description": "Description about the hardware key.", +"type": "string" +} +}, +"type": "object" +}, +"History": { +"description": "A record of a change to the user's mailbox. Each history change may affect multiple messages in multiple ways.", +"id": "History", +"properties": { +"id": { +"description": "The mailbox sequence ID.", +"format": "uint64", +"type": "string" +}, +"labelsAdded": { +"description": "Labels added to messages in this history record.", +"items": { +"$ref": "HistoryLabelAdded" +}, +"type": "array" +}, +"labelsRemoved": { +"description": "Labels removed from messages in this history record.", +"items": { +"$ref": "HistoryLabelRemoved" +}, +"type": "array" +}, +"messages": { +"description": "List of messages changed in this history record. The fields for specific change types, such as `messagesAdded` may duplicate messages in this field. We recommend using the specific change-type fields instead of this.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"messagesAdded": { +"description": "Messages added to the mailbox in this history record.", +"items": { +"$ref": "HistoryMessageAdded" +}, +"type": "array" +}, +"messagesDeleted": { +"description": "Messages deleted (not Trashed) from the mailbox in this history record.", +"items": { +"$ref": "HistoryMessageDeleted" +}, +"type": "array" +} +}, +"type": "object" +}, +"HistoryLabelAdded": { +"id": "HistoryLabelAdded", +"properties": { +"labelIds": { +"description": "Label IDs added to the message.", +"items": { +"type": "string" +}, +"type": "array" +}, +"message": { +"$ref": "Message" +} +}, +"type": "object" +}, +"HistoryLabelRemoved": { +"id": "HistoryLabelRemoved", +"properties": { +"labelIds": { +"description": "Label IDs removed from the message.", +"items": { +"type": "string" +}, +"type": "array" +}, +"message": { +"$ref": "Message" +} +}, +"type": "object" +}, +"HistoryMessageAdded": { +"id": "HistoryMessageAdded", +"properties": { +"message": { +"$ref": "Message" +} +}, +"type": "object" +}, +"HistoryMessageDeleted": { +"id": "HistoryMessageDeleted", +"properties": { +"message": { +"$ref": "Message" +} +}, +"type": "object" +}, +"ImapSettings": { +"description": "IMAP settings for an account.", +"id": "ImapSettings", +"properties": { +"autoExpunge": { +"description": "If this value is true, Gmail will immediately expunge a message when it is marked as deleted in IMAP. Otherwise, Gmail will wait for an update from the client before expunging messages marked as deleted.", +"type": "boolean" +}, +"enabled": { +"description": "Whether IMAP is enabled for the account.", +"type": "boolean" +}, +"expungeBehavior": { +"description": "The action that will be executed on a message when it is marked as deleted and expunged from the last visible IMAP folder.", +"enum": [ +"expungeBehaviorUnspecified", +"archive", +"trash", +"deleteForever" +], +"enumDescriptions": [ +"Unspecified behavior.", +"Archive messages marked as deleted.", +"Move messages marked as deleted to the trash.", +"Immediately and permanently delete messages marked as deleted. The expunged messages cannot be recovered." +], +"type": "string" +}, +"maxFolderSize": { +"description": "An optional limit on the number of messages that an IMAP folder may contain. Legal values are 0, 1000, 2000, 5000 or 10000. A value of zero is interpreted to mean that there is no limit.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"KaclsKeyMetadata": { +"description": "Metadata for private keys managed by an external key access control list service. For details about managing key access, see [Google Workspace CSE API Reference](https://developers.google.com/workspace/cse/reference).", +"id": "KaclsKeyMetadata", +"properties": { +"kaclsData": { +"description": "Opaque data generated and used by the key access control list service. Maximum size: 8 KiB.", +"type": "string" +}, +"kaclsUri": { +"description": "The URI of the key access control list service that manages the private key.", +"type": "string" +} +}, +"type": "object" +}, +"Label": { +"description": "Labels are used to categorize messages and threads within the user's mailbox. The maximum number of labels supported for a user's mailbox is 10,000.", +"id": "Label", +"properties": { +"color": { +"$ref": "LabelColor", +"description": "The color to assign to the label. Color is only available for labels that have their `type` set to `user`." +}, +"id": { +"annotations": { +"required": [ +"gmail.users.labels.update" +] +}, +"description": "The immutable ID of the label.", +"type": "string" +}, +"labelListVisibility": { +"annotations": { +"required": [ +"gmail.users.labels.create", +"gmail.users.labels.update" +] +}, +"description": "The visibility of the label in the label list in the Gmail web interface.", +"enum": [ +"labelShow", +"labelShowIfUnread", +"labelHide" +], +"enumDescriptions": [ +"Show the label in the label list.", +"Show the label if there are any unread messages with that label.", +"Do not show the label in the label list." +], +"type": "string" +}, +"messageListVisibility": { +"annotations": { +"required": [ +"gmail.users.labels.create", +"gmail.users.labels.update" +] +}, +"description": "The visibility of messages with this label in the message list in the Gmail web interface.", +"enum": [ +"show", +"hide" +], +"enumDescriptions": [ +"Show the label in the message list.", +"Do not show the label in the message list." +], +"type": "string" +}, +"messagesTotal": { +"description": "The total number of messages with the label.", +"format": "int32", +"type": "integer" +}, +"messagesUnread": { +"description": "The number of unread messages with the label.", +"format": "int32", +"type": "integer" +}, +"name": { +"annotations": { +"required": [ +"gmail.users.labels.create", +"gmail.users.labels.update" +] +}, +"description": "The display name of the label.", +"type": "string" +}, +"threadsTotal": { +"description": "The total number of threads with the label.", +"format": "int32", +"type": "integer" +}, +"threadsUnread": { +"description": "The number of unread threads with the label.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "The owner type for the label. User labels are created by the user and can be modified and deleted by the user and can be applied to any message or thread. System labels are internally created and cannot be added, modified, or deleted. System labels may be able to be applied to or removed from messages and threads under some circumstances but this is not guaranteed. For example, users can apply and remove the `INBOX` and `UNREAD` labels from messages and threads, but cannot apply or remove the `DRAFTS` or `SENT` labels from messages or threads.", +"enum": [ +"system", +"user" +], +"enumDescriptions": [ +"Labels created by Gmail.", +"Custom labels created by the user or application." +], +"type": "string" +} +}, +"type": "object" +}, +"LabelColor": { +"id": "LabelColor", +"properties": { +"backgroundColor": { +"description": "The background color represented as hex string #RRGGBB (ex #000000). This field is required in order to set the color of a label. Only the following predefined set of color values are allowed: \\#000000, #434343, #666666, #999999, #cccccc, #efefef, #f3f3f3, #ffffff, \\#fb4c2f, #ffad47, #fad165, #16a766, #43d692, #4a86e8, #a479e2, #f691b3, \\#f6c5be, #ffe6c7, #fef1d1, #b9e4d0, #c6f3de, #c9daf8, #e4d7f5, #fcdee8, \\#efa093, #ffd6a2, #fce8b3, #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \\#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, #6d9eeb, #b694e8, #f7a7c0, \\#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, \\#ac2b16, #cf8933, #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \\#822111, #a46a21, #aa8831, #076239, #1a764d, #1c4587, #41236d, #83334c \\#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \\#711a36, #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \\#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, #b3efd3, #04502e, #a2dcc1, \\#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, \\#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765", +"type": "string" +}, +"textColor": { +"description": "The text color of the label, represented as hex string. This field is required in order to set the color of a label. Only the following predefined set of color values are allowed: \\#000000, #434343, #666666, #999999, #cccccc, #efefef, #f3f3f3, #ffffff, \\#fb4c2f, #ffad47, #fad165, #16a766, #43d692, #4a86e8, #a479e2, #f691b3, \\#f6c5be, #ffe6c7, #fef1d1, #b9e4d0, #c6f3de, #c9daf8, #e4d7f5, #fcdee8, \\#efa093, #ffd6a2, #fce8b3, #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \\#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, #6d9eeb, #b694e8, #f7a7c0, \\#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, \\#ac2b16, #cf8933, #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \\#822111, #a46a21, #aa8831, #076239, #1a764d, #1c4587, #41236d, #83334c \\#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \\#711a36, #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \\#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, #b3efd3, #04502e, #a2dcc1, \\#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, \\#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765", +"type": "string" +} +}, +"type": "object" +}, +"LanguageSettings": { +"description": "Language settings for an account. These settings correspond to the \"Language settings\" feature in the web interface.", +"id": "LanguageSettings", +"properties": { +"displayLanguage": { +"description": "The language to display Gmail in, formatted as an RFC 3066 Language Tag (for example `en-GB`, `fr` or `ja` for British English, French, or Japanese respectively). The set of languages supported by Gmail evolves over time, so please refer to the \"Language\" dropdown in the Gmail settings for all available options, as described in the language settings help article. A table of sample values is also provided in the Managing Language Settings guide Not all Gmail clients can display the same set of languages. In the case that a user's display language is not available for use on a particular client, said client automatically chooses to display in the closest supported variant (or a reasonable default).", +"type": "string" +} +}, +"type": "object" +}, +"ListCseIdentitiesResponse": { +"id": "ListCseIdentitiesResponse", +"properties": { +"cseIdentities": { +"description": "One page of the list of CSE identities configured for the user.", +"items": { +"$ref": "CseIdentity" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token to be passed to a subsequent ListCseIdentities call in order to retrieve the next page of identities. If this value is not returned or is the empty string, then no further pages remain.", +"type": "string" +} +}, +"type": "object" +}, +"ListCseKeyPairsResponse": { +"id": "ListCseKeyPairsResponse", +"properties": { +"cseKeyPairs": { +"description": "One page of the list of CSE key pairs installed for the user.", +"items": { +"$ref": "CseKeyPair" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token to be passed to a subsequent ListCseKeyPairs call in order to retrieve the next page of key pairs. If this value is not returned, then no further pages remain.", +"type": "string" +} +}, +"type": "object" +}, +"ListDelegatesResponse": { +"description": "Response for the ListDelegates method.", +"id": "ListDelegatesResponse", +"properties": { +"delegates": { +"description": "List of the user's delegates (with any verification status). If an account doesn't have delegates, this field doesn't appear.", +"items": { +"$ref": "Delegate" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListDraftsResponse": { +"id": "ListDraftsResponse", +"properties": { +"drafts": { +"description": "List of drafts. Note that the `Message` property in each `Draft` resource only contains an `id` and a `threadId`. The messages.get method can fetch additional message details.", +"items": { +"$ref": "Draft" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results in the list.", +"type": "string" +}, +"resultSizeEstimate": { +"description": "Estimated total number of results.", +"format": "uint32", +"type": "integer" +} +}, +"type": "object" +}, +"ListFiltersResponse": { +"description": "Response for the ListFilters method.", +"id": "ListFiltersResponse", +"properties": { +"filter": { +"description": "List of a user's filters.", +"items": { +"$ref": "Filter" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListForwardingAddressesResponse": { +"description": "Response for the ListForwardingAddresses method.", +"id": "ListForwardingAddressesResponse", +"properties": { +"forwardingAddresses": { +"description": "List of addresses that may be used for forwarding.", +"items": { +"$ref": "ForwardingAddress" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListHistoryResponse": { +"id": "ListHistoryResponse", +"properties": { +"history": { +"description": "List of history records. Any `messages` contained in the response will typically only have `id` and `threadId` fields populated.", +"items": { +"$ref": "History" +}, +"type": "array" +}, +"historyId": { +"description": "The ID of the mailbox's current history record.", +"format": "uint64", +"type": "string" +}, +"nextPageToken": { +"description": "Page token to retrieve the next page of results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ListLabelsResponse": { +"id": "ListLabelsResponse", +"properties": { +"labels": { +"description": "List of labels. Note that each label resource only contains an `id`, `name`, `messageListVisibility`, `labelListVisibility`, and `type`. The labels.get method can fetch additional label details.", +"items": { +"$ref": "Label" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListMessagesResponse": { +"id": "ListMessagesResponse", +"properties": { +"messages": { +"description": "List of messages. Note that each message resource contains only an `id` and a `threadId`. Additional message details can be fetched using the messages.get method.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Token to retrieve the next page of results in the list.", +"type": "string" +}, +"resultSizeEstimate": { +"description": "Estimated total number of results.", +"format": "uint32", +"type": "integer" +} +}, +"type": "object" +}, +"ListSendAsResponse": { +"description": "Response for the ListSendAs method.", +"id": "ListSendAsResponse", +"properties": { +"sendAs": { +"description": "List of send-as aliases.", +"items": { +"$ref": "SendAs" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSmimeInfoResponse": { +"id": "ListSmimeInfoResponse", +"properties": { +"smimeInfo": { +"description": "List of SmimeInfo.", +"items": { +"$ref": "SmimeInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListThreadsResponse": { +"id": "ListThreadsResponse", +"properties": { +"nextPageToken": { +"description": "Page token to retrieve the next page of results in the list.", +"type": "string" +}, +"resultSizeEstimate": { +"description": "Estimated total number of results.", +"format": "uint32", +"type": "integer" +}, +"threads": { +"description": "List of threads. Note that each thread resource does not contain a list of `messages`. The list of `messages` for a given thread can be fetched using the threads.get method.", +"items": { +"$ref": "Thread" +}, +"type": "array" +} +}, +"type": "object" +}, +"Message": { +"description": "An email message.", +"id": "Message", +"properties": { +"historyId": { +"description": "The ID of the last history record that modified this message.", +"format": "uint64", +"type": "string" +}, +"id": { +"description": "The immutable ID of the message.", +"type": "string" +}, +"internalDate": { +"description": "The internal message creation timestamp (epoch ms), which determines ordering in the inbox. For normal SMTP-received email, this represents the time the message was originally accepted by Google, which is more reliable than the `Date` header. However, for API-migrated mail, it can be configured by client to be based on the `Date` header.", +"format": "int64", +"type": "string" +}, +"labelIds": { +"description": "List of IDs of labels applied to this message.", +"items": { +"type": "string" +}, +"type": "array" +}, +"payload": { +"$ref": "MessagePart", +"description": "The parsed email structure in the message parts." +}, +"raw": { +"annotations": { +"required": [ +"gmail.users.drafts.create", +"gmail.users.drafts.update", +"gmail.users.messages.insert", +"gmail.users.messages.send" +] +}, +"description": "The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in `messages.get` and `drafts.get` responses when the `format=RAW` parameter is supplied.", +"format": "byte", +"type": "string" +}, +"sizeEstimate": { +"description": "Estimated size in bytes of the message.", +"format": "int32", +"type": "integer" +}, +"snippet": { +"description": "A short part of the message text.", +"type": "string" +}, +"threadId": { +"description": "The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met: 1. The requested `threadId` must be specified on the `Message` or `Draft.Message` you supply with your request. 2. The `References` and `In-Reply-To` headers must be set in compliance with the [RFC 2822](https://tools.ietf.org/html/rfc2822) standard. 3. The `Subject` headers must match. ", +"type": "string" +} +}, +"type": "object" +}, +"MessagePart": { +"description": "A single MIME message part.", +"id": "MessagePart", +"properties": { +"body": { +"$ref": "MessagePartBody", +"description": "The message part body for this part, which may be empty for container MIME message parts." +}, +"filename": { +"description": "The filename of the attachment. Only present if this message part represents an attachment.", +"type": "string" +}, +"headers": { +"description": "List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as `To`, `From`, and `Subject`.", +"items": { +"$ref": "MessagePartHeader" +}, +"type": "array" +}, +"mimeType": { +"description": "The MIME type of the message part.", +"type": "string" +}, +"partId": { +"description": "The immutable ID of the message part.", +"type": "string" +}, +"parts": { +"description": "The child MIME message parts of this part. This only applies to container MIME message parts, for example `multipart/*`. For non- container MIME message part types, such as `text/plain`, this field is empty. For more information, see RFC 1521.", +"items": { +"$ref": "MessagePart" +}, +"type": "array" +} +}, +"type": "object" +}, +"MessagePartBody": { +"description": "The body of a single MIME message part.", +"id": "MessagePartBody", +"properties": { +"attachmentId": { +"description": "When present, contains the ID of an external attachment that can be retrieved in a separate `messages.attachments.get` request. When not present, the entire content of the message part body is contained in the data field.", +"type": "string" +}, +"data": { +"description": "The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.", +"format": "byte", +"type": "string" +}, +"size": { +"description": "Number of bytes for the message part data (encoding notwithstanding).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"MessagePartHeader": { +"id": "MessagePartHeader", +"properties": { +"name": { +"description": "The name of the header before the `:` separator. For example, `To`.", +"type": "string" +}, +"value": { +"description": "The value of the header after the `:` separator. For example, `someuser@example.com`.", +"type": "string" +} +}, +"type": "object" +}, +"ModifyMessageRequest": { +"id": "ModifyMessageRequest", +"properties": { +"addLabelIds": { +"description": "A list of IDs of labels to add to this message. You can add up to 100 labels with each update.", +"items": { +"type": "string" +}, +"type": "array" +}, +"removeLabelIds": { +"description": "A list IDs of labels to remove from this message. You can remove up to 100 labels with each update.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ModifyThreadRequest": { +"id": "ModifyThreadRequest", +"properties": { +"addLabelIds": { +"description": "A list of IDs of labels to add to this thread. You can add up to 100 labels with each update.", +"items": { +"type": "string" +}, +"type": "array" +}, +"removeLabelIds": { +"description": "A list of IDs of labels to remove from this thread. You can remove up to 100 labels with each update.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ObliterateCseKeyPairRequest": { +"description": "Request to obliterate a CSE key pair.", +"id": "ObliterateCseKeyPairRequest", +"properties": {}, +"type": "object" +}, +"PopSettings": { +"description": "POP settings for an account.", +"id": "PopSettings", +"properties": { +"accessWindow": { +"description": "The range of messages which are accessible via POP.", +"enum": [ +"accessWindowUnspecified", +"disabled", +"fromNowOn", +"allMail" +], +"enumDescriptions": [ +"Unspecified range.", +"Indicates that no messages are accessible via POP.", +"Indicates that unfetched messages received after some past point in time are accessible via POP.", +"Indicates that all unfetched messages are accessible via POP." +], +"type": "string" +}, +"disposition": { +"description": "The action that will be executed on a message after it has been fetched via POP.", +"enum": [ +"dispositionUnspecified", +"leaveInInbox", +"archive", +"trash", +"markRead" +], +"enumDescriptions": [ +"Unspecified disposition.", +"Leave the message in the `INBOX`.", +"Archive the message.", +"Move the message to the `TRASH`.", +"Leave the message in the `INBOX` and mark it as read." +], +"type": "string" +} +}, +"type": "object" +}, +"Profile": { +"description": "Profile for a Gmail user.", +"id": "Profile", +"properties": { +"emailAddress": { +"description": "The user's email address.", +"type": "string" +}, +"historyId": { +"description": "The ID of the mailbox's current history record.", +"format": "uint64", +"type": "string" +}, +"messagesTotal": { +"description": "The total number of messages in the mailbox.", +"format": "int32", +"type": "integer" +}, +"threadsTotal": { +"description": "The total number of threads in the mailbox.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SendAs": { +"description": "Settings associated with a send-as alias, which can be either the primary login address associated with the account or a custom \"from\" address. Send-as aliases correspond to the \"Send Mail As\" feature in the web interface.", +"id": "SendAs", +"properties": { +"displayName": { +"description": "A name that appears in the \"From:\" header for mail sent using this alias. For custom \"from\" addresses, when this is empty, Gmail will populate the \"From:\" header with the name that is used for the primary address associated with the account. If the admin has disabled the ability for users to update their name format, requests to update this field for the primary login will silently fail.", +"type": "string" +}, +"isDefault": { +"description": "Whether this address is selected as the default \"From:\" address in situations such as composing a new message or sending a vacation auto-reply. Every Gmail account has exactly one default send-as address, so the only legal value that clients may write to this field is `true`. Changing this from `false` to `true` for an address will result in this field becoming `false` for the other previous default address.", +"type": "boolean" +}, +"isPrimary": { +"description": "Whether this address is the primary address used to login to the account. Every Gmail account has exactly one primary address, and it cannot be deleted from the collection of send-as aliases. This field is read-only.", +"type": "boolean" +}, +"replyToAddress": { +"description": "An optional email address that is included in a \"Reply-To:\" header for mail sent using this alias. If this is empty, Gmail will not generate a \"Reply-To:\" header.", +"type": "string" +}, +"sendAsEmail": { +"description": "The email address that appears in the \"From:\" header for mail sent using this alias. This is read-only for all operations except create.", +"type": "string" +}, +"signature": { +"description": "An optional HTML signature that is included in messages composed with this alias in the Gmail web UI. This signature is added to new emails only.", +"type": "string" +}, +"smtpMsa": { +"$ref": "SmtpMsa", +"description": "An optional SMTP service that will be used as an outbound relay for mail sent using this alias. If this is empty, outbound mail will be sent directly from Gmail's servers to the destination SMTP service. This setting only applies to custom \"from\" aliases." +}, +"treatAsAlias": { +"description": "Whether Gmail should treat this address as an alias for the user's primary email address. This setting only applies to custom \"from\" aliases.", +"type": "boolean" +}, +"verificationStatus": { +"description": "Indicates whether this address has been verified for use as a send-as alias. Read-only. This setting only applies to custom \"from\" aliases.", +"enum": [ +"verificationStatusUnspecified", +"accepted", +"pending" +], +"enumDescriptions": [ +"Unspecified verification status.", +"The address is ready to use as a send-as alias.", +"The address is awaiting verification by the owner." +], +"type": "string" +} +}, +"type": "object" +}, +"SignAndEncryptKeyPairs": { +"description": "The configuration of a CSE identity that uses different key pairs for signing and encryption.", +"id": "SignAndEncryptKeyPairs", +"properties": { +"encryptionKeyPairId": { +"description": "The ID of the CseKeyPair that encrypts signed outgoing mail.", +"type": "string" +}, +"signingKeyPairId": { +"description": "The ID of the CseKeyPair that signs outgoing mail.", +"type": "string" +} +}, +"type": "object" +}, +"SmimeInfo": { +"description": "An S/MIME email config.", +"id": "SmimeInfo", +"properties": { +"encryptedKeyPassword": { +"description": "Encrypted key password, when key is encrypted.", +"type": "string" +}, +"expiration": { +"description": "When the certificate expires (in milliseconds since epoch).", +"format": "int64", +"type": "string" +}, +"id": { +"description": "The immutable ID for the SmimeInfo.", +"type": "string" +}, +"isDefault": { +"description": "Whether this SmimeInfo is the default one for this user's send-as address.", +"type": "boolean" +}, +"issuerCn": { +"description": "The S/MIME certificate issuer's common name.", +"type": "string" +}, +"pem": { +"description": "PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).", +"type": "string" +}, +"pkcs12": { +"description": "PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"SmtpMsa": { +"description": "Configuration for communication with an SMTP service.", +"id": "SmtpMsa", +"properties": { +"host": { +"description": "The hostname of the SMTP service. Required.", +"type": "string" +}, +"password": { +"description": "The password that will be used for authentication with the SMTP service. This is a write-only field that can be specified in requests to create or update SendAs settings; it is never populated in responses.", +"type": "string" +}, +"port": { +"description": "The port of the SMTP service. Required.", +"format": "int32", +"type": "integer" +}, +"securityMode": { +"description": "The protocol that will be used to secure communication with the SMTP service. Required.", +"enum": [ +"securityModeUnspecified", +"none", +"ssl", +"starttls" +], +"enumDescriptions": [ +"Unspecified security mode.", +"Communication with the remote SMTP service is unsecured. Requires port 25.", +"Communication with the remote SMTP service is secured using SSL.", +"Communication with the remote SMTP service is secured using STARTTLS." +], +"type": "string" +}, +"username": { +"description": "The username that will be used for authentication with the SMTP service. This is a write-only field that can be specified in requests to create or update SendAs settings; it is never populated in responses.", +"type": "string" +} +}, +"type": "object" +}, +"Thread": { +"description": "A collection of messages representing a conversation.", +"id": "Thread", +"properties": { +"historyId": { +"description": "The ID of the last history record that modified this thread.", +"format": "uint64", +"type": "string" +}, +"id": { +"description": "The unique ID of the thread.", +"type": "string" +}, +"messages": { +"description": "The list of messages in the thread.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"snippet": { +"description": "A short part of the message text.", +"type": "string" +} +}, +"type": "object" +}, +"VacationSettings": { +"description": "Vacation auto-reply settings for an account. These settings correspond to the \"Vacation responder\" feature in the web interface.", +"id": "VacationSettings", +"properties": { +"enableAutoReply": { +"description": "Flag that controls whether Gmail automatically replies to messages.", +"type": "boolean" +}, +"endTime": { +"description": "An optional end time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives before the end time. If both `startTime` and `endTime` are specified, `startTime` must precede `endTime`.", +"format": "int64", +"type": "string" +}, +"responseBodyHtml": { +"description": "Response body in HTML format. Gmail will sanitize the HTML before storing it. If both `response_body_plain_text` and `response_body_html` are specified, `response_body_html` will be used.", +"type": "string" +}, +"responseBodyPlainText": { +"description": "Response body in plain text format. If both `response_body_plain_text` and `response_body_html` are specified, `response_body_html` will be used.", +"type": "string" +}, +"responseSubject": { +"description": "Optional text to prepend to the subject line in vacation responses. In order to enable auto-replies, either the response subject or the response body must be nonempty.", +"type": "string" +}, +"restrictToContacts": { +"description": "Flag that determines whether responses are sent to recipients who are not in the user's list of contacts.", +"type": "boolean" +}, +"restrictToDomain": { +"description": "Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for Google Workspace users.", +"type": "boolean" +}, +"startTime": { +"description": "An optional start time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives after the start time. If both `startTime` and `endTime` are specified, `startTime` must precede `endTime`.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"WatchRequest": { +"description": "Set up or update a new push notification watch on this user's mailbox.", +"id": "WatchRequest", +"properties": { +"labelFilterAction": { +"deprecated": true, +"description": "Filtering behavior of `labelIds list` specified. This field is deprecated because it caused incorrect behavior in some cases; use `label_filter_behavior` instead.", +"enum": [ +"include", +"exclude" +], +"enumDescriptions": [ +"Only get push notifications for message changes relating to labelIds specified.", +"Get push notifications for all message changes except those relating to labelIds specified." +], +"type": "string" +}, +"labelFilterBehavior": { +"description": "Filtering behavior of `labelIds list` specified. This field replaces `label_filter_action`; if set, `label_filter_action` is ignored.", +"enum": [ +"include", +"exclude" +], +"enumDescriptions": [ +"Only get push notifications for message changes relating to labelIds specified.", +"Get push notifications for all message changes except those relating to labelIds specified." +], +"type": "string" +}, +"labelIds": { +"description": "List of label_ids to restrict notifications about. By default, if unspecified, all changes are pushed out. If specified then dictates which labels are required for a push notification to be generated.", +"items": { +"type": "string" +}, +"type": "array" +}, +"topicName": { +"description": "A fully qualified Google Cloud Pub/Sub API topic name to publish the events to. This topic name **must** already exist in Cloud Pub/Sub and you **must** have already granted gmail \"publish\" permission on it. For example, \"projects/my-project-identifier/topics/my-topic-name\" (using the Cloud Pub/Sub \"v1\" topic naming format). Note that the \"my-project-identifier\" portion must exactly match your Google developer project id (the one executing this watch request).", +"type": "string" +} +}, +"type": "object" +}, +"WatchResponse": { +"description": "Push notification watch response.", +"id": "WatchResponse", +"properties": { +"expiration": { +"description": "When Gmail will stop sending notifications for mailbox updates (epoch millis). Call `watch` again before this time to renew the watch.", +"format": "int64", +"type": "string" +}, +"historyId": { +"description": "The ID of the mailbox's current history record.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Gmail API", +"version": "v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/iam.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/iam.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..f1456369eb24e841e27c1176f00f3bfa26e76efd --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/iam.v1.json @@ -0,0 +1,5337 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://iam.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Iam", +"description": "Manages identity and access control for Google Cloud resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls. Enabling this API also enables the IAM Service Account Credentials API (iamcredentials.googleapis.com). However, disabling this API doesn't disable the IAM Service Account Credentials API. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/iam/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "iam:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://iam.mtls.googleapis.com/", +"name": "iam", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"iamPolicies": { +"methods": { +"lintPolicy": { +"description": "Lints, or validates, an IAM policy. Currently checks the google.iam.v1.Binding.condition field, which contains a condition expression for a role binding. Successful calls to this method always return an HTTP `200 OK` status code, even if the linter detects an issue in the IAM policy.", +"flatPath": "v1/iamPolicies:lintPolicy", +"httpMethod": "POST", +"id": "iam.iamPolicies.lintPolicy", +"parameterOrder": [], +"parameters": {}, +"path": "v1/iamPolicies:lintPolicy", +"request": { +"$ref": "LintPolicyRequest" +}, +"response": { +"$ref": "LintPolicyResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryAuditableServices": { +"description": "Returns a list of services that allow you to opt into audit logs that are not generated by default. To learn more about audit logs, see the [Logging documentation](https://cloud.google.com/logging/docs/audit).", +"flatPath": "v1/iamPolicies:queryAuditableServices", +"httpMethod": "POST", +"id": "iam.iamPolicies.queryAuditableServices", +"parameterOrder": [], +"parameters": {}, +"path": "v1/iamPolicies:queryAuditableServices", +"request": { +"$ref": "QueryAuditableServicesRequest" +}, +"response": { +"$ref": "QueryAuditableServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"resources": { +"workforcePools": { +"methods": { +"create": { +"description": "Creates a new WorkforcePool. You cannot reuse the name of a deleted pool until 30 days after deletion.", +"flatPath": "v1/locations/{locationsId}/workforcePools", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.create", +"parameterOrder": [ +"location" +], +"parameters": { +"location": { +"description": "Optional. The location of the pool to create. Format: `locations/{location}`.", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +}, +"workforcePoolId": { +"description": "Optional. The ID to use for the pool, which becomes the final component of the resource name. The IDs must be a globally unique string of 6 to 63 lowercase letters, digits, or hyphens. It must start with a letter, and cannot have a trailing hyphen. The prefix `gcp-` is reserved for use by Google, and may not be specified.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+location}/workforcePools", +"request": { +"$ref": "WorkforcePool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a WorkforcePool. You cannot use a deleted WorkforcePool to exchange external credentials for Google Cloud credentials. However, deletion does not revoke credentials that have already been issued. Credentials issued for a deleted pool do not grant access to resources. If the pool is undeleted, and the credentials are not expired, they grant access again. You can undelete a pool for 30 days. After 30 days, deletion is permanent. You cannot update deleted pools. However, you can view and list them.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}", +"httpMethod": "DELETE", +"id": "iam.locations.workforcePools.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the pool to delete. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an individual WorkforcePool.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the pool to retrieve. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "WorkforcePool" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets IAM policies on a WorkforcePool.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}:getIamPolicy", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all non-deleted WorkforcePools under the specified parent. If `show_deleted` is set to `true`, then deleted pools are also listed.", +"flatPath": "v1/locations/{locationsId}/workforcePools", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.list", +"parameterOrder": [ +"location" +], +"parameters": { +"location": { +"description": "The location of the pool. Format: `locations/{location}`.", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of pools to return. If unspecified, at most 50 pools will be returned. The maximum value is 1000; values above 1000 are truncated to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkforcePools` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource to list pools for. Format: `organizations/{org-id}`.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Whether to return soft-deleted pools.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+location}/workforcePools", +"response": { +"$ref": "ListWorkforcePoolsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing WorkforcePool.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}", +"httpMethod": "PATCH", +"id": "iam.locations.workforcePools.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the pool. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "WorkforcePool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets IAM policies on a WorkforcePool.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}:setIamPolicy", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns the caller's permissions on the WorkforcePool. If the pool doesn't exist, this call returns an empty set of permissions. It doesn't return a `NOT_FOUND` error.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}:testIamPermissions", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes a WorkforcePool, as long as it was deleted fewer than 30 days ago.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}:undelete", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the pool to undelete. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteWorkforcePoolRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"providers": { +"methods": { +"create": { +"description": "Creates a new WorkforcePoolProvider in a WorkforcePool. You cannot reuse the name of a deleted provider until 30 days after deletion.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.providers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The pool to create this provider in. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+$", +"required": true, +"type": "string" +}, +"workforcePoolProviderId": { +"description": "Required. The ID for the provider, which becomes the final component of the resource name. This value must be 4-32 characters, and may contain the characters [a-z0-9-]. The prefix `gcp-` is reserved for use by Google, and may not be specified.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/providers", +"request": { +"$ref": "WorkforcePoolProvider" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a WorkforcePoolProvider. Deleting a provider does not revoke credentials that have already been issued; they continue to grant access. You can undelete a provider for 30 days. After 30 days, deletion is permanent. You cannot update deleted providers. However, you can view and list them.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}", +"httpMethod": "DELETE", +"id": "iam.locations.workforcePools.providers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the provider to delete. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an individual WorkforcePoolProvider.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.providers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the provider to retrieve. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "WorkforcePoolProvider" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all non-deleted WorkforcePoolProviders in a WorkforcePool. If `show_deleted` is set to `true`, then deleted providers are also listed.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.providers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of providers to return. If unspecified, at most 50 providers are returned. The maximum value is 100; values above 100 are truncated to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkforcePoolProviders` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The pool to list providers for. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "Whether to return soft-deleted providers.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/providers", +"response": { +"$ref": "ListWorkforcePoolProvidersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing WorkforcePoolProvider.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}", +"httpMethod": "PATCH", +"id": "iam.locations.workforcePools.providers.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the provider. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "WorkforcePoolProvider" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes a WorkforcePoolProvider, as long as it was deleted fewer than 30 days ago.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}:undelete", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.providers.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the provider to undelete. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteWorkforcePoolProviderRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"keys": { +"methods": { +"create": { +"description": "Creates a new WorkforcePoolProviderKey in a WorkforcePoolProvider.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.providers.keys.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The provider to create this key in.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +}, +"workforcePoolProviderKeyId": { +"description": "Required. The ID to use for the key, which becomes the final component of the resource name. This value must be 4-32 characters, and may contain the characters [a-z0-9-].", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/keys", +"request": { +"$ref": "WorkforcePoolProviderKey" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a WorkforcePoolProviderKey. You can undelete a key for 30 days. After 30 days, deletion is permanent.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys/{keysId}", +"httpMethod": "DELETE", +"id": "iam.locations.workforcePools.providers.keys.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the key to delete.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a WorkforcePoolProviderKey.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys/{keysId}", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.providers.keys.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the key to retrieve.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "WorkforcePoolProviderKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all non-deleted WorkforcePoolProviderKeys in a WorkforcePoolProvider. If `show_deleted` is set to `true`, then deleted keys are also listed.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.providers.keys.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of keys to return. If unspecified, all keys are returned. The maximum value is 10; values above 10 are truncated to 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkforcePoolProviderKeys` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The provider resource to list encryption keys for. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "Whether to return soft-deleted keys.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/keys", +"response": { +"$ref": "ListWorkforcePoolProviderKeysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes a WorkforcePoolProviderKey, as long as it was deleted fewer than 30 days ago.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys/{keysId}:undelete", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.providers.keys.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the key to undelete.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteWorkforcePoolProviderKeyRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys/{keysId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.providers.keys.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+/keys/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.providers.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"subjects": { +"methods": { +"delete": { +"description": "Deletes a WorkforcePoolSubject. Subject must not already be in a deleted state. A WorkforcePoolSubject is automatically created the first time an external credential is exchanged for a Google Cloud credential using a mapped `google.subject` attribute. There is no endpoint to manually create a WorkforcePoolSubject. For 30 days after a WorkforcePoolSubject is deleted, using the same `google.subject` attribute in token exchanges with Google Cloud STS fails. Call UndeleteWorkforcePoolSubject to undelete a WorkforcePoolSubject that has been deleted, within within 30 days of deleting it. After 30 days, the WorkforcePoolSubject is permanently deleted. At this point, a token exchange with Google Cloud STS that uses the same mapped `google.subject` attribute automatically creates a new WorkforcePoolSubject that is unrelated to the previously deleted WorkforcePoolSubject but has the same `google.subject` value.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/subjects/{subjectsId}", +"httpMethod": "DELETE", +"id": "iam.locations.workforcePools.subjects.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the WorkforcePoolSubject. Special characters, like `/` and `:`, must be escaped, because all URLs need to conform to the \"When to Escape and Unescape\" section of [RFC3986](https://www.ietf.org/rfc/rfc2396.txt). Format: `locations/{location}/workforcePools/{workforce_pool_id}/subjects/{subject_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/subjects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes a WorkforcePoolSubject, as long as it was deleted fewer than 30 days ago.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/subjects/{subjectsId}:undelete", +"httpMethod": "POST", +"id": "iam.locations.workforcePools.subjects.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the WorkforcePoolSubject. Special characters, like `/` and `:`, must be escaped, because all URLs need to conform to the \"When to Escape and Unescape\" section of [RFC3986](https://www.ietf.org/rfc/rfc2396.txt). Format: `locations/{location}/workforcePools/{workforce_pool_id}/subjects/{subject_id}`", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/subjects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteWorkforcePoolSubjectRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/subjects/{subjectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.locations.workforcePools.subjects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^locations/[^/]+/workforcePools/[^/]+/subjects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"organizations": { +"resources": { +"roles": { +"methods": { +"create": { +"description": "Creates a new custom Role.", +"flatPath": "v1/organizations/{organizationsId}/roles", +"httpMethod": "POST", +"id": "iam.organizations.roles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The `parent` parameter's value depends on the target resource for the request, namely [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles) or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `parent` value format is described below: * [projects.roles.create](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/create): `projects/{PROJECT_ID}`. This method creates project-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * [organizations.roles.create](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/create): `organizations/{ORGANIZATION_ID}`. This method creates organization-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/roles", +"request": { +"$ref": "CreateRoleRequest" +}, +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a custom Role. When you delete a custom role, the following changes occur immediately: * You cannot bind a principal to the custom role in an IAM Policy. * Existing bindings to the custom role are not changed, but they have no effect. * By default, the response from ListRoles does not include the custom role. A deleted custom role still counts toward the [custom role limit](https://cloud.google.com/iam/help/limits) until it is permanently deleted. You have 7 days to undelete the custom role. After 7 days, the following changes occur: * The custom role is permanently deleted and cannot be recovered. * If an IAM policy contains a binding to the custom role, the binding is permanently removed. * The custom role no longer counts toward your custom role limit.", +"flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}", +"httpMethod": "DELETE", +"id": "iam.organizations.roles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Used to perform a consistent read-modify-write.", +"format": "byte", +"location": "query", +"type": "string" +}, +"name": { +"description": "The `name` parameter's value depends on the target resource for the request, namely [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles) or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `name` value format is described below: * [projects.roles.delete](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/delete): `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method deletes only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the project level. Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` * [organizations.roles.delete](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/delete): `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method deletes only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the organization level. Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^organizations/[^/]+/roles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the definition of a Role.", +"flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}", +"httpMethod": "GET", +"id": "iam.organizations.roles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The `name` parameter's value depends on the target resource for the request, namely [roles](https://cloud.google.com/iam/docs/reference/rest/v1/roles), [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles), or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `name` value format is described below: * [roles.get](https://cloud.google.com/iam/docs/reference/rest/v1/roles/get): `roles/{ROLE_NAME}`. This method returns results from all [predefined roles](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles) in IAM. Example request URL: `https://iam.googleapis.com/v1/roles/{ROLE_NAME}` * [projects.roles.get](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/get): `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the project level. Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` * [organizations.roles.get](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/get): `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the organization level. Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^organizations/[^/]+/roles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists every predefined Role that IAM supports, or every custom role that is defined for an organization or project.", +"flatPath": "v1/organizations/{organizationsId}/roles", +"httpMethod": "GET", +"id": "iam.organizations.roles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional limit on the number of roles to include in the response. The default is 300, and the maximum is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional pagination token returned in an earlier ListRolesResponse.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The `parent` parameter's value depends on the target resource for the request, namely [roles](https://cloud.google.com/iam/docs/reference/rest/v1/roles), [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles), or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `parent` value format is described below: * [roles.list](https://cloud.google.com/iam/docs/reference/rest/v1/roles/list): An empty string. This method doesn't require a resource; it simply returns all [predefined roles](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles) in IAM. Example request URL: `https://iam.googleapis.com/v1/roles` * [projects.roles.list](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/list): `projects/{PROJECT_ID}`. This method lists all project-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * [organizations.roles.list](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/list): `organizations/{ORGANIZATION_ID}`. This method lists all organization-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "Include Roles that have been deleted.", +"location": "query", +"type": "boolean" +}, +"view": { +"description": "Optional view for the returned Role objects. When `FULL` is specified, the `includedPermissions` field is returned, which includes a list of all permissions in the role. The default value is `BASIC`, which does not return the `includedPermissions` field.", +"enum": [ +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Omits the `included_permissions` field. This is the default value.", +"Returns all fields." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/roles", +"response": { +"$ref": "ListRolesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the definition of a custom Role.", +"flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}", +"httpMethod": "PATCH", +"id": "iam.organizations.roles.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The `name` parameter's value depends on the target resource for the request, namely [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles) or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `name` value format is described below: * [projects.roles.patch](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/patch): `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method updates only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the project level. Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` * [organizations.roles.patch](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/patch): `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method updates only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the organization level. Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^organizations/[^/]+/roles/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A mask describing which fields in the Role have changed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Role" +}, +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes a custom Role.", +"flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}:undelete", +"httpMethod": "POST", +"id": "iam.organizations.roles.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The `name` parameter's value depends on the target resource for the request, namely [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles) or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `name` value format is described below: * [projects.roles.undelete](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/undelete): `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method undeletes only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the project level. Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` * [organizations.roles.undelete](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/undelete): `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method undeletes only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the organization level. Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^organizations/[^/]+/roles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteRoleRequest" +}, +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"permissions": { +"methods": { +"queryTestablePermissions": { +"description": "Lists every permission that you can test on a resource. A permission is testable if you can check whether a principal has that permission on the resource.", +"flatPath": "v1/permissions:queryTestablePermissions", +"httpMethod": "POST", +"id": "iam.permissions.queryTestablePermissions", +"parameterOrder": [], +"parameters": {}, +"path": "v1/permissions:queryTestablePermissions", +"request": { +"$ref": "QueryTestablePermissionsRequest" +}, +"response": { +"$ref": "QueryTestablePermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projects": { +"resources": { +"locations": { +"resources": { +"oauthClients": { +"methods": { +"create": { +"description": "Creates a new OauthClient. You cannot reuse the name of a deleted OauthClient until 30 days after deletion.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients", +"httpMethod": "POST", +"id": "iam.projects.locations.oauthClients.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"oauthClientId": { +"description": "Required. The ID to use for the OauthClient, which becomes the final component of the resource name. This value should be a string of 6 to 63 lowercase letters, digits, or hyphens. It must start with a letter, and cannot have a trailing hyphen. The prefix `gcp-` is reserved for use by Google, and may not be specified.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource to create the OauthClient in. The only supported location is `global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/oauthClients", +"request": { +"$ref": "OauthClient" +}, +"response": { +"$ref": "OauthClient" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an OauthClient. You cannot use a deleted OauthClient. However, deletion does not revoke access tokens that have already been issued. They continue to grant access. Deletion does revoke refresh tokens that have already been issued. They cannot be used to renew an access token. If the OauthClient is undeleted, and the refresh tokens are not expired, they are valid for token exchange again. You can undelete an OauthClient for 30 days. After 30 days, deletion is permanent. You cannot update deleted OauthClients. However, you can view and list them.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}", +"httpMethod": "DELETE", +"id": "iam.projects.locations.oauthClients.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OauthClient to delete. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "OauthClient" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an individual OauthClient.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}", +"httpMethod": "GET", +"id": "iam.projects.locations.oauthClients.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OauthClient to retrieve. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "OauthClient" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all non-deleted OauthClients in a project. If `show_deleted` is set to `true`, then deleted OauthClients are also listed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients", +"httpMethod": "GET", +"id": "iam.projects.locations.oauthClients.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of OauthClients to return. If unspecified, at most 50 OauthClients will be returned. The maximum value is 100; values above 100 are truncated to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListOauthClients` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent to list OauthClients for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "Optional. Whether to return soft-deleted OauthClients.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/oauthClients", +"response": { +"$ref": "ListOauthClientsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing OauthClient.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}", +"httpMethod": "PATCH", +"id": "iam.projects.locations.oauthClients.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. The resource name of the OauthClient. Format:`projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "OauthClient" +}, +"response": { +"$ref": "OauthClient" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes an OauthClient, as long as it was deleted fewer than 30 days ago.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}:undelete", +"httpMethod": "POST", +"id": "iam.projects.locations.oauthClients.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OauthClient to undelete. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteOauthClientRequest" +}, +"response": { +"$ref": "OauthClient" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"credentials": { +"methods": { +"create": { +"description": "Creates a new OauthClientCredential.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials", +"httpMethod": "POST", +"id": "iam.projects.locations.oauthClients.credentials.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"oauthClientCredentialId": { +"description": "Required. The ID to use for the OauthClientCredential, which becomes the final component of the resource name. This value should be 4-32 characters, and may contain the characters [a-z0-9-]. The prefix `gcp-` is reserved for use by Google, and may not be specified.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource to create the OauthClientCredential in.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/credentials", +"request": { +"$ref": "OauthClientCredential" +}, +"response": { +"$ref": "OauthClientCredential" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an OauthClientCredential. Before deleting an OauthClientCredential, it should first be disabled.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials/{credentialsId}", +"httpMethod": "DELETE", +"id": "iam.projects.locations.oauthClients.credentials.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OauthClientCredential to delete. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}/credentials/{credential}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+/credentials/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an individual OauthClientCredential.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials/{credentialsId}", +"httpMethod": "GET", +"id": "iam.projects.locations.oauthClients.credentials.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OauthClientCredential to retrieve. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}/credentials/{credential}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+/credentials/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "OauthClientCredential" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all OauthClientCredentials in an OauthClient.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials", +"httpMethod": "GET", +"id": "iam.projects.locations.oauthClients.credentials.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent to list OauthClientCredentials for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/credentials", +"response": { +"$ref": "ListOauthClientCredentialsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing OauthClientCredential.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials/{credentialsId}", +"httpMethod": "PATCH", +"id": "iam.projects.locations.oauthClients.credentials.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Identifier. The resource name of the OauthClientCredential. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}/credentials/{credential}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+/credentials/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "OauthClientCredential" +}, +"response": { +"$ref": "OauthClientCredential" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"workloadIdentityPools": { +"methods": { +"create": { +"description": "Creates a new WorkloadIdentityPool. You cannot reuse the name of a deleted pool until 30 days after deletion.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools", +"httpMethod": "POST", +"id": "iam.projects.locations.workloadIdentityPools.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource to create the pool in. The only supported location is `global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"workloadIdentityPoolId": { +"description": "Required. The ID to use for the pool, which becomes the final component of the resource name. This value should be 4-32 characters, and may contain the characters [a-z0-9-]. The prefix `gcp-` is reserved for use by Google, and may not be specified.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/workloadIdentityPools", +"request": { +"$ref": "WorkloadIdentityPool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a WorkloadIdentityPool. You cannot use a deleted pool to exchange external credentials for Google Cloud credentials. However, deletion does not revoke credentials that have already been issued. Credentials issued for a deleted pool do not grant access to resources. If the pool is undeleted, and the credentials are not expired, they grant access again. You can undelete a pool for 30 days. After 30 days, deletion is permanent. You cannot update deleted pools. However, you can view and list them.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}", +"httpMethod": "DELETE", +"id": "iam.projects.locations.workloadIdentityPools.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the pool to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an individual WorkloadIdentityPool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the pool to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "WorkloadIdentityPool" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all non-deleted WorkloadIdentityPools in a project. If `show_deleted` is set to `true`, then deleted pools are also listed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of pools to return. If unspecified, at most 50 pools are returned. The maximum value is 1000; values above are 1000 truncated to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkloadIdentityPools` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource to list pools for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "Whether to return soft-deleted pools.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/workloadIdentityPools", +"response": { +"$ref": "ListWorkloadIdentityPoolsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing WorkloadIdentityPool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}", +"httpMethod": "PATCH", +"id": "iam.projects.locations.workloadIdentityPools.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the pool.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "WorkloadIdentityPool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes a WorkloadIdentityPool, as long as it was deleted fewer than 30 days ago.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}:undelete", +"httpMethod": "POST", +"id": "iam.projects.locations.workloadIdentityPools.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the pool to undelete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteWorkloadIdentityPoolRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"namespaces": { +"resources": { +"managedIdentities": { +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/namespaces/{namespacesId}/managedIdentities/{managedIdentitiesId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.namespaces.managedIdentities.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/namespaces/[^/]+/managedIdentities/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workloadSources": { +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/namespaces/{namespacesId}/managedIdentities/{managedIdentitiesId}/workloadSources/{workloadSourcesId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.namespaces.managedIdentities.workloadSources.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/namespaces/[^/]+/managedIdentities/[^/]+/workloadSources/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/namespaces/{namespacesId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.namespaces.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/namespaces/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"providers": { +"methods": { +"create": { +"description": "Creates a new WorkloadIdentityPoolProvider in a WorkloadIdentityPool. You cannot reuse the name of a deleted provider until 30 days after deletion.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers", +"httpMethod": "POST", +"id": "iam.projects.locations.workloadIdentityPools.providers.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The pool to create this provider in.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$", +"required": true, +"type": "string" +}, +"workloadIdentityPoolProviderId": { +"description": "Required. The ID for the provider, which becomes the final component of the resource name. This value must be 4-32 characters, and may contain the characters [a-z0-9-]. The prefix `gcp-` is reserved for use by Google, and may not be specified.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/providers", +"request": { +"$ref": "WorkloadIdentityPoolProvider" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a WorkloadIdentityPoolProvider. Deleting a provider does not revoke credentials that have already been issued; they continue to grant access. You can undelete a provider for 30 days. After 30 days, deletion is permanent. You cannot update deleted providers. However, you can view and list them.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}", +"httpMethod": "DELETE", +"id": "iam.projects.locations.workloadIdentityPools.providers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the provider to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an individual WorkloadIdentityPoolProvider.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.providers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the provider to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "WorkloadIdentityPoolProvider" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all non-deleted WorkloadIdentityPoolProviders in a WorkloadIdentityPool. If `show_deleted` is set to `true`, then deleted providers are also listed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.providers.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of providers to return. If unspecified, at most 50 providers are returned. The maximum value is 100; values above 100 are truncated to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkloadIdentityPoolProviders` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The pool to list providers for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "Whether to return soft-deleted providers.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/providers", +"response": { +"$ref": "ListWorkloadIdentityPoolProvidersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing WorkloadIdentityPoolProvider.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}", +"httpMethod": "PATCH", +"id": "iam.projects.locations.workloadIdentityPools.providers.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the provider.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "WorkloadIdentityPoolProvider" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes a WorkloadIdentityPoolProvider, as long as it was deleted fewer than 30 days ago.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}:undelete", +"httpMethod": "POST", +"id": "iam.projects.locations.workloadIdentityPools.providers.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the provider to undelete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteWorkloadIdentityPoolProviderRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"keys": { +"methods": { +"create": { +"description": "Create a new WorkloadIdentityPoolProviderKey in a WorkloadIdentityPoolProvider.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys", +"httpMethod": "POST", +"id": "iam.projects.locations.workloadIdentityPools.providers.keys.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent provider resource to create the key in.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +}, +"workloadIdentityPoolProviderKeyId": { +"description": "Required. The ID to use for the key, which becomes the final component of the resource name. This value should be 4-32 characters, and may contain the characters [a-z0-9-].", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/keys", +"request": { +"$ref": "WorkloadIdentityPoolProviderKey" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an WorkloadIdentityPoolProviderKey. You can undelete a key for 30 days. After 30 days, deletion is permanent.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys/{keysId}", +"httpMethod": "DELETE", +"id": "iam.projects.locations.workloadIdentityPools.providers.keys.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the encryption key to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an individual WorkloadIdentityPoolProviderKey.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys/{keysId}", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.providers.keys.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the key to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "WorkloadIdentityPoolProviderKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all non-deleted WorkloadIdentityPoolProviderKeys in a project. If show_deleted is set to `true`, then deleted pools are also listed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.providers.keys.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of keys to return. If unspecified, all keys are returned. The maximum value is 10; values above 10 are truncated to 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkloadIdentityPoolProviderKeys` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent provider resource to list encryption keys for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "Whether to return soft deleted resources as well.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/keys", +"response": { +"$ref": "ListWorkloadIdentityPoolProviderKeysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes an WorkloadIdentityPoolProviderKey, as long as it was deleted fewer than 30 days ago.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys/{keysId}:undelete", +"httpMethod": "POST", +"id": "iam.projects.locations.workloadIdentityPools.providers.keys.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the encryption key to undelete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteWorkloadIdentityPoolProviderKeyRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/keys/{keysId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.providers.keys.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+/keys/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "iam.projects.locations.workloadIdentityPools.providers.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"roles": { +"methods": { +"create": { +"description": "Creates a new custom Role.", +"flatPath": "v1/projects/{projectsId}/roles", +"httpMethod": "POST", +"id": "iam.projects.roles.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The `parent` parameter's value depends on the target resource for the request, namely [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles) or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `parent` value format is described below: * [projects.roles.create](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/create): `projects/{PROJECT_ID}`. This method creates project-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * [organizations.roles.create](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/create): `organizations/{ORGANIZATION_ID}`. This method creates organization-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/roles", +"request": { +"$ref": "CreateRoleRequest" +}, +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a custom Role. When you delete a custom role, the following changes occur immediately: * You cannot bind a principal to the custom role in an IAM Policy. * Existing bindings to the custom role are not changed, but they have no effect. * By default, the response from ListRoles does not include the custom role. A deleted custom role still counts toward the [custom role limit](https://cloud.google.com/iam/help/limits) until it is permanently deleted. You have 7 days to undelete the custom role. After 7 days, the following changes occur: * The custom role is permanently deleted and cannot be recovered. * If an IAM policy contains a binding to the custom role, the binding is permanently removed. * The custom role no longer counts toward your custom role limit.", +"flatPath": "v1/projects/{projectsId}/roles/{rolesId}", +"httpMethod": "DELETE", +"id": "iam.projects.roles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Used to perform a consistent read-modify-write.", +"format": "byte", +"location": "query", +"type": "string" +}, +"name": { +"description": "The `name` parameter's value depends on the target resource for the request, namely [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles) or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `name` value format is described below: * [projects.roles.delete](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/delete): `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method deletes only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the project level. Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` * [organizations.roles.delete](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/delete): `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method deletes only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the organization level. Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^projects/[^/]+/roles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the definition of a Role.", +"flatPath": "v1/projects/{projectsId}/roles/{rolesId}", +"httpMethod": "GET", +"id": "iam.projects.roles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The `name` parameter's value depends on the target resource for the request, namely [roles](https://cloud.google.com/iam/docs/reference/rest/v1/roles), [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles), or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `name` value format is described below: * [roles.get](https://cloud.google.com/iam/docs/reference/rest/v1/roles/get): `roles/{ROLE_NAME}`. This method returns results from all [predefined roles](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles) in IAM. Example request URL: `https://iam.googleapis.com/v1/roles/{ROLE_NAME}` * [projects.roles.get](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/get): `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the project level. Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` * [organizations.roles.get](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/get): `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the organization level. Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^projects/[^/]+/roles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists every predefined Role that IAM supports, or every custom role that is defined for an organization or project.", +"flatPath": "v1/projects/{projectsId}/roles", +"httpMethod": "GET", +"id": "iam.projects.roles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional limit on the number of roles to include in the response. The default is 300, and the maximum is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional pagination token returned in an earlier ListRolesResponse.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The `parent` parameter's value depends on the target resource for the request, namely [roles](https://cloud.google.com/iam/docs/reference/rest/v1/roles), [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles), or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `parent` value format is described below: * [roles.list](https://cloud.google.com/iam/docs/reference/rest/v1/roles/list): An empty string. This method doesn't require a resource; it simply returns all [predefined roles](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles) in IAM. Example request URL: `https://iam.googleapis.com/v1/roles` * [projects.roles.list](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/list): `projects/{PROJECT_ID}`. This method lists all project-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * [organizations.roles.list](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/list): `organizations/{ORGANIZATION_ID}`. This method lists all organization-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"showDeleted": { +"description": "Include Roles that have been deleted.", +"location": "query", +"type": "boolean" +}, +"view": { +"description": "Optional view for the returned Role objects. When `FULL` is specified, the `includedPermissions` field is returned, which includes a list of all permissions in the role. The default value is `BASIC`, which does not return the `includedPermissions` field.", +"enum": [ +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Omits the `included_permissions` field. This is the default value.", +"Returns all fields." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/roles", +"response": { +"$ref": "ListRolesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the definition of a custom Role.", +"flatPath": "v1/projects/{projectsId}/roles/{rolesId}", +"httpMethod": "PATCH", +"id": "iam.projects.roles.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The `name` parameter's value depends on the target resource for the request, namely [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles) or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `name` value format is described below: * [projects.roles.patch](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/patch): `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method updates only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the project level. Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` * [organizations.roles.patch](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/patch): `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method updates only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the organization level. Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^projects/[^/]+/roles/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A mask describing which fields in the Role have changed.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Role" +}, +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Undeletes a custom Role.", +"flatPath": "v1/projects/{projectsId}/roles/{rolesId}:undelete", +"httpMethod": "POST", +"id": "iam.projects.roles.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The `name` parameter's value depends on the target resource for the request, namely [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles) or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `name` value format is described below: * [projects.roles.undelete](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/undelete): `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method undeletes only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the project level. Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` * [organizations.roles.undelete](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/undelete): `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method undeletes only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the organization level. Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^projects/[^/]+/roles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteRoleRequest" +}, +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"serviceAccounts": { +"methods": { +"create": { +"description": "Creates a ServiceAccount.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.create", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the project associated with the service accounts, such as `projects/my-project-123`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/serviceAccounts", +"request": { +"$ref": "CreateServiceAccountRequest" +}, +"response": { +"$ref": "ServiceAccount" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a ServiceAccount. **Warning:** After you delete a service account, you might not be able to undelete it. If you know that you need to re-enable the service account in the future, use DisableServiceAccount instead. If you delete a service account, IAM permanently removes the service account 30 days later. Google Cloud cannot recover the service account after it is permanently removed, even if you file a support request. To help avoid unplanned outages, we recommend that you disable the service account before you delete it. Use DisableServiceAccount to disable the service account, then wait at least 24 hours and watch for unintended consequences. If there are no unintended consequences, you can delete the service account.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", +"httpMethod": "DELETE", +"id": "iam.projects.serviceAccounts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"disable": { +"description": "Disables a ServiceAccount immediately. If an application uses the service account to authenticate, that application can no longer call Google APIs or access Google Cloud resources. Existing access tokens for the service account are rejected, and requests for new access tokens will fail. To re-enable the service account, use EnableServiceAccount. After you re-enable the service account, its existing access tokens will be accepted, and you can request new access tokens. To help avoid unplanned outages, we recommend that you disable the service account before you delete it. Use this method to disable the service account, then wait at least 24 hours and watch for unintended consequences. If there are no unintended consequences, you can delete the service account with DeleteServiceAccount.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:disable", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.disable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:disable", +"request": { +"$ref": "DisableServiceAccountRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enable": { +"description": "Enables a ServiceAccount that was disabled by DisableServiceAccount. If the service account is already enabled, then this method has no effect. If the service account was disabled by other means\u2014for example, if Google disabled the service account because it was compromised\u2014you cannot use this method to enable the service account.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:enable", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.enable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:enable", +"request": { +"$ref": "EnableServiceAccountRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a ServiceAccount.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", +"httpMethod": "GET", +"id": "iam.projects.serviceAccounts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ServiceAccount" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the IAM policy that is attached to a ServiceAccount. This IAM policy specifies which principals have access to the service account. This method does not tell you whether the service account has been granted any roles on other resources. To check whether a service account has role grants on a resource, use the `getIamPolicy` method for that resource. For example, to view the role grants for a project, call the Resource Manager API's [projects.getIamPolicy](https://cloud.google.com/resource-manager/reference/rest/v1/projects/getIamPolicy) method.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:getIamPolicy", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists every ServiceAccount that belongs to a specific project.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts", +"httpMethod": "GET", +"id": "iam.projects.serviceAccounts.list", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the project associated with the service accounts, such as `projects/my-project-123`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional limit on the number of service accounts to include in the response. Further accounts can subsequently be obtained by including the ListServiceAccountsResponse.next_page_token in a subsequent request. The default is 20, and the maximum is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional pagination token returned in an earlier ListServiceAccountsResponse.next_page_token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/serviceAccounts", +"response": { +"$ref": "ListServiceAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Patches a ServiceAccount.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", +"httpMethod": "PATCH", +"id": "iam.projects.serviceAccounts.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "PatchServiceAccountRequest" +}, +"response": { +"$ref": "ServiceAccount" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM policy that is attached to a ServiceAccount. Use this method to grant or revoke access to the service account. For example, you could grant a principal the ability to impersonate the service account. This method does not enable the service account to access other resources. To grant roles to a service account on a resource, follow these steps: 1. Call the resource's `getIamPolicy` method to get its current IAM policy. 2. Edit the policy so that it binds the service account to an IAM role for the resource. 3. Call the resource's `setIamPolicy` method to update its IAM policy. For detailed instructions, see [Manage access to project, folders, and organizations](https://cloud.google.com/iam/help/service-accounts/granting-access-to-service-accounts) or [Manage access to other resources](https://cloud.google.com/iam/help/access/manage-other-resources).", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:setIamPolicy", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signBlob": { +"deprecated": true, +"description": "**Note:** This method is deprecated. Use the [signBlob](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signBlob) method in the IAM Service Account Credentials API instead. If you currently use this method, see the [migration guide](https://cloud.google.com/iam/help/credentials/migrate-api) for instructions. Signs a blob using the system-managed private key for a ServiceAccount.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signBlob", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.signBlob", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:signBlob", +"request": { +"$ref": "SignBlobRequest" +}, +"response": { +"$ref": "SignBlobResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signJwt": { +"deprecated": true, +"description": "**Note:** This method is deprecated. Use the [signJwt](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signJwt) method in the IAM Service Account Credentials API instead. If you currently use this method, see the [migration guide](https://cloud.google.com/iam/help/credentials/migrate-api) for instructions. Signs a JSON Web Token (JWT) using the system-managed private key for a ServiceAccount.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signJwt", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.signJwt", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:signJwt", +"request": { +"$ref": "SignJwtRequest" +}, +"response": { +"$ref": "SignJwtResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Tests whether the caller has the specified permissions on a ServiceAccount.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:testIamPermissions", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"undelete": { +"description": "Restores a deleted ServiceAccount. **Important:** It is not always possible to restore a deleted service account. Use this method only as a last resort. After you delete a service account, IAM permanently removes the service account 30 days later. There is no way to restore a deleted service account that has been permanently removed.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:undelete", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.undelete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:undelete", +"request": { +"$ref": "UndeleteServiceAccountRequest" +}, +"response": { +"$ref": "UndeleteServiceAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "**Note:** We are in the process of deprecating this method. Use PatchServiceAccount instead. Updates a ServiceAccount. You can update only the `display_name` field.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", +"httpMethod": "PUT", +"id": "iam.projects.serviceAccounts.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ServiceAccount" +}, +"response": { +"$ref": "ServiceAccount" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"keys": { +"methods": { +"create": { +"description": "Creates a ServiceAccountKey.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.keys.create", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/keys", +"request": { +"$ref": "CreateServiceAccountKeyRequest" +}, +"response": { +"$ref": "ServiceAccountKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a ServiceAccountKey. Deleting a service account key does not revoke short-lived credentials that have been issued based on the service account key.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}", +"httpMethod": "DELETE", +"id": "iam.projects.serviceAccounts.keys.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/-/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account key `projects/-/serviceAccounts/fake@example.com/keys/fake-key`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"disable": { +"description": "Disable a ServiceAccountKey. A disabled service account key can be re-enabled with EnableServiceAccountKey.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}:disable", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.keys.disable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/-/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account key `projects/-/serviceAccounts/fake@example.com/keys/fake-key`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:disable", +"request": { +"$ref": "DisableServiceAccountKeyRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enable": { +"description": "Enable a ServiceAccountKey.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}:enable", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.keys.enable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/-/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account key `projects/-/serviceAccounts/fake@example.com/keys/fake-key`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:enable", +"request": { +"$ref": "EnableServiceAccountKeyRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a ServiceAccountKey.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}", +"httpMethod": "GET", +"id": "iam.projects.serviceAccounts.keys.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/-/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account key `projects/-/serviceAccounts/fake@example.com/keys/fake-key`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", +"required": true, +"type": "string" +}, +"publicKeyType": { +"description": "Optional. The output format of the public key. The default is `TYPE_NONE`, which means that the public key is not returned.", +"enum": [ +"TYPE_NONE", +"TYPE_X509_PEM_FILE", +"TYPE_RAW_PUBLIC_KEY" +], +"enumDescriptions": [ +"Do not return the public key.", +"X509 PEM format.", +"Raw public key." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ServiceAccountKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists every ServiceAccountKey for a service account.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", +"httpMethod": "GET", +"id": "iam.projects.serviceAccounts.keys.list", +"parameterOrder": [ +"name" +], +"parameters": { +"keyTypes": { +"description": "Filters the types of keys the user wants to include in the list response. Duplicate key types are not allowed. If no key type is provided, all keys are returned.", +"enum": [ +"KEY_TYPE_UNSPECIFIED", +"USER_MANAGED", +"SYSTEM_MANAGED" +], +"enumDescriptions": [ +"Unspecified key type. The presence of this in the message will immediately result in an error.", +"User-managed keys (managed and rotated by the user).", +"System-managed keys (managed and rotated by Google)." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "Required. The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/keys", +"response": { +"$ref": "ListServiceAccountKeysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upload": { +"description": "Uploads the public key portion of a key pair that you manage, and associates the public key with a ServiceAccount. After you upload the public key, you can use the private key from the key pair as a service account key.", +"flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys:upload", +"httpMethod": "POST", +"id": "iam.projects.serviceAccounts.keys.upload", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"location": "path", +"pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/keys:upload", +"request": { +"$ref": "UploadServiceAccountKeyRequest" +}, +"response": { +"$ref": "ServiceAccountKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"roles": { +"methods": { +"get": { +"description": "Gets the definition of a Role.", +"flatPath": "v1/roles/{rolesId}", +"httpMethod": "GET", +"id": "iam.roles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The `name` parameter's value depends on the target resource for the request, namely [roles](https://cloud.google.com/iam/docs/reference/rest/v1/roles), [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles), or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `name` value format is described below: * [roles.get](https://cloud.google.com/iam/docs/reference/rest/v1/roles/get): `roles/{ROLE_NAME}`. This method returns results from all [predefined roles](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles) in IAM. Example request URL: `https://iam.googleapis.com/v1/roles/{ROLE_NAME}` * [projects.roles.get](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/get): `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the project level. Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` * [organizations.roles.get](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/get): `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles) that have been created at the organization level. Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "path", +"pattern": "^roles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Role" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists every predefined Role that IAM supports, or every custom role that is defined for an organization or project.", +"flatPath": "v1/roles", +"httpMethod": "GET", +"id": "iam.roles.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional limit on the number of roles to include in the response. The default is 300, and the maximum is 1,000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional pagination token returned in an earlier ListRolesResponse.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The `parent` parameter's value depends on the target resource for the request, namely [roles](https://cloud.google.com/iam/docs/reference/rest/v1/roles), [projects](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles), or [organizations](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles). Each resource type's `parent` value format is described below: * [roles.list](https://cloud.google.com/iam/docs/reference/rest/v1/roles/list): An empty string. This method doesn't require a resource; it simply returns all [predefined roles](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles) in IAM. Example request URL: `https://iam.googleapis.com/v1/roles` * [projects.roles.list](https://cloud.google.com/iam/docs/reference/rest/v1/projects.roles/list): `projects/{PROJECT_ID}`. This method lists all project-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` * [organizations.roles.list](https://cloud.google.com/iam/docs/reference/rest/v1/organizations.roles/list): `organizations/{ORGANIZATION_ID}`. This method lists all organization-level [custom roles](https://cloud.google.com/iam/docs/understanding-custom-roles). Example request URL: `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Include Roles that have been deleted.", +"location": "query", +"type": "boolean" +}, +"view": { +"description": "Optional view for the returned Role objects. When `FULL` is specified, the `includedPermissions` field is returned, which includes a list of all permissions in the role. The default value is `BASIC`, which does not return the `includedPermissions` field.", +"enum": [ +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Omits the `included_permissions` field. This is the default value.", +"Returns all fields." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/roles", +"response": { +"$ref": "ListRolesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryGrantableRoles": { +"description": "Lists roles that can be granted on a Google Cloud resource. A role is grantable if the IAM policy for the resource can contain bindings to the role.", +"flatPath": "v1/roles:queryGrantableRoles", +"httpMethod": "POST", +"id": "iam.roles.queryGrantableRoles", +"parameterOrder": [], +"parameters": {}, +"path": "v1/roles:queryGrantableRoles", +"request": { +"$ref": "QueryGrantableRolesRequest" +}, +"response": { +"$ref": "QueryGrantableRolesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20250102", +"rootUrl": "https://iam.googleapis.com/", +"schemas": { +"AccessRestrictions": { +"description": "Access related restrictions on the workforce pool.", +"id": "AccessRestrictions", +"properties": { +"allowedServices": { +"description": "Optional. Immutable. Services allowed for web sign-in with the workforce pool. If not set by default there are no restrictions.", +"items": { +"$ref": "ServiceConfig" +}, +"type": "array" +}, +"disableProgrammaticSignin": { +"description": "Optional. Disable programmatic sign-in by disabling token issue via the Security Token API endpoint. See [Security Token Service API] (https://cloud.google.com/iam/docs/reference/sts/rest).", +"type": "boolean" +} +}, +"type": "object" +}, +"AdminAuditData": { +"description": "Audit log information specific to Cloud IAM admin APIs. This message is serialized as an `Any` type in the `ServiceData` message of an `AuditLog` message.", +"id": "AdminAuditData", +"properties": { +"permissionDelta": { +"$ref": "PermissionDelta", +"description": "The permission_delta when when creating or updating a Role." +} +}, +"type": "object" +}, +"AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"AuditData": { +"description": "Audit log information specific to Cloud IAM. This message is serialized as an `Any` type in the `ServiceData` message of an `AuditLog` message.", +"id": "AuditData", +"properties": { +"policyDelta": { +"$ref": "PolicyDelta", +"description": "Policy delta between the original policy and the newly set policy." +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"AuditableService": { +"description": "Contains information about an auditable service.", +"id": "AuditableService", +"properties": { +"name": { +"description": "Public name of the service. For example, the service name for IAM is 'iam.googleapis.com'.", +"type": "string" +} +}, +"type": "object" +}, +"Aws": { +"description": "Represents an Amazon Web Services identity provider.", +"id": "Aws", +"properties": { +"accountId": { +"description": "Required. The AWS account ID.", +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"BindingDelta": { +"description": "One delta entry for Binding. Each individual change (only one member in each entry) to a binding will be a separate entry.", +"id": "BindingDelta", +"properties": { +"action": { +"description": "The action that was performed on a Binding. Required", +"enum": [ +"ACTION_UNSPECIFIED", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"Unspecified.", +"Addition of a Binding.", +"Removal of a Binding." +], +"type": "string" +}, +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding." +}, +"member": { +"description": "A single identity requesting access for a Google Cloud resource. Follows the same format of Binding.members. Required", +"type": "string" +}, +"role": { +"description": "Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required", +"type": "string" +} +}, +"type": "object" +}, +"CreateRoleRequest": { +"description": "The request to create a new role.", +"id": "CreateRoleRequest", +"properties": { +"role": { +"$ref": "Role", +"description": "The Role resource to create." +}, +"roleId": { +"description": "The role ID to use for this role. A role ID may contain alphanumeric characters, underscores (`_`), and periods (`.`). It must contain a minimum of 3 characters and a maximum of 64 characters.", +"type": "string" +} +}, +"type": "object" +}, +"CreateServiceAccountKeyRequest": { +"description": "The service account key create request.", +"id": "CreateServiceAccountKeyRequest", +"properties": { +"keyAlgorithm": { +"description": "Which type of key and algorithm to use for the key. The default is currently a 2K RSA key. However this may change in the future.", +"enum": [ +"KEY_ALG_UNSPECIFIED", +"KEY_ALG_RSA_1024", +"KEY_ALG_RSA_2048" +], +"enumDescriptions": [ +"An unspecified key algorithm.", +"1k RSA Key.", +"2k RSA Key." +], +"type": "string" +}, +"privateKeyType": { +"description": "The output format of the private key. The default value is `TYPE_GOOGLE_CREDENTIALS_FILE`, which is the Google Credentials File format.", +"enum": [ +"TYPE_UNSPECIFIED", +"TYPE_PKCS12_FILE", +"TYPE_GOOGLE_CREDENTIALS_FILE" +], +"enumDescriptions": [ +"Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.", +"PKCS12 format. The password for the PKCS12 file is `notasecret`. For more information, see https://tools.ietf.org/html/rfc7292.", +"Google Credentials File format." +], +"type": "string" +} +}, +"type": "object" +}, +"CreateServiceAccountRequest": { +"description": "The service account create request.", +"id": "CreateServiceAccountRequest", +"properties": { +"accountId": { +"description": "Required. The account id that is used to generate the service account email address and a stable unique id. It is unique within a project, must be 6-30 characters long, and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.", +"type": "string" +}, +"serviceAccount": { +"$ref": "ServiceAccount", +"description": "The ServiceAccount resource to create. Currently, only the following values are user assignable: `display_name` and `description`." +} +}, +"type": "object" +}, +"DisableServiceAccountKeyRequest": { +"description": "The service account key disable request.", +"id": "DisableServiceAccountKeyRequest", +"properties": { +"extendedStatusMessage": { +"description": "Optional. Usable by internal google services only. An extended_status_message can be used to include additional information about the key, such as its private key data being exposed on a public repository like GitHub.", +"type": "string" +}, +"serviceAccountKeyDisableReason": { +"description": "Optional. Describes the reason this key is being disabled. If unspecified, the default value of SERVICE_ACCOUNT_KEY_DISABLE_REASON_USER_INITIATED will be used.", +"enum": [ +"SERVICE_ACCOUNT_KEY_DISABLE_REASON_UNSPECIFIED", +"SERVICE_ACCOUNT_KEY_DISABLE_REASON_USER_INITIATED", +"SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED", +"SERVICE_ACCOUNT_KEY_DISABLE_REASON_COMPROMISE_DETECTED" +], +"enumDescriptions": [ +"Unspecified disable reason", +"Disabled by the user", +"Google detected this Service Account external key's private key data as exposed, typically in a public repository on GitHub or similar.", +"This service account external key was detected as compromised and used by an attacker." +], +"type": "string" +} +}, +"type": "object" +}, +"DisableServiceAccountRequest": { +"description": "The service account disable request.", +"id": "DisableServiceAccountRequest", +"properties": {}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EnableServiceAccountKeyRequest": { +"description": "The service account key enable request.", +"id": "EnableServiceAccountKeyRequest", +"properties": {}, +"type": "object" +}, +"EnableServiceAccountRequest": { +"description": "The service account enable request.", +"id": "EnableServiceAccountRequest", +"properties": {}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"ExtendedStatus": { +"description": "Extended status can store additional metadata. For example, for keys disabled due to their private key data being expoesed we may include a message with more information about the exposure.", +"id": "ExtendedStatus", +"properties": { +"key": { +"description": "The key for this extended status.", +"enum": [ +"SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_UNSPECIFIED", +"SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED", +"SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_COMPROMISE_DETECTED" +], +"enumDescriptions": [ +"Unspecified extended status, should not be used.", +"This key has been detected as exposed. extended_status_value may contain information about the exposure (public GitHub repo, open internet, etc.)", +"This key was implicated in a compromise or other attack. extended_status_value may contain information about the abuse perpetrated." +], +"type": "string" +}, +"value": { +"description": "The value for the extended status.", +"type": "string" +} +}, +"type": "object" +}, +"GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GetPolicyOptions", +"properties": { +"requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2Client": { +"description": "Represents the OAuth 2.0 client credential configuration for retrieving additional user attributes that are not present in the initial authentication credentials from the identity provider, e.g. groups. See https://datatracker.ietf.org/doc/html/rfc6749#section-4.4 for more details on client credentials grant flow.", +"id": "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2Client", +"properties": { +"attributesType": { +"description": "Required. Represents the IdP and type of claims that should be fetched.", +"enum": [ +"ATTRIBUTES_TYPE_UNSPECIFIED", +"AZURE_AD_GROUPS_MAIL" +], +"enumDescriptions": [ +"No AttributesType specified.", +"Used to get the user's group claims from the Microsoft Entra ID identity provider using configuration provided in ExtraAttributesOAuth2Client and `mail` property of the `microsoft.graph.group` object is used for claim mapping. See https://learn.microsoft.com/en-us/graph/api/resources/group?view=graph-rest-1.0#properties for more details on `microsoft.graph.group` properties. The attributes obtained from idntity provider are mapped to `assertion.groups`." +], +"type": "string" +}, +"clientId": { +"description": "Required. The OAuth 2.0 client ID for retrieving extra attributes from the identity provider. Required to get the Access Token using client credentials grant flow.", +"type": "string" +}, +"clientSecret": { +"$ref": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret", +"description": "Required. The OAuth 2.0 client secret for retrieving extra attributes from the identity provider. Required to get the Access Token using client credentials grant flow." +}, +"issuerUri": { +"description": "Required. The OIDC identity provider's issuer URI. Must be a valid URI using the `https` scheme. Required to get the OIDC discovery document.", +"type": "string" +}, +"queryParameters": { +"$ref": "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2ClientQueryParameters", +"description": "Optional. Represents the parameters to control which claims are fetched from an IdP." +} +}, +"type": "object" +}, +"GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2ClientQueryParameters": { +"description": "Represents the parameters to control which claims are fetched from an IdP.", +"id": "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2ClientQueryParameters", +"properties": { +"filter": { +"description": "Optional. The filter used to request specific records from IdP. In case of attributes type as AZURE_AD_GROUPS_MAIL, it represents the filter used to request specific groups for users from IdP. By default, all of the groups associated with the user are fetched. The groups should be mail enabled and security enabled. See https://learn.microsoft.com/en-us/graph/search-query-parameter for more details.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamAdminV1WorkforcePoolProviderOidc": { +"description": "Represents an OpenId Connect 1.0 identity provider.", +"id": "GoogleIamAdminV1WorkforcePoolProviderOidc", +"properties": { +"clientId": { +"description": "Required. The client ID. Must match the audience claim of the JWT issued by the identity provider.", +"type": "string" +}, +"clientSecret": { +"$ref": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret", +"description": "Optional. The optional client secret. Required to enable Authorization Code flow for web sign-in." +}, +"issuerUri": { +"description": "Required. The OIDC issuer URI. Must be a valid URI using the `https` scheme.", +"type": "string" +}, +"jwksJson": { +"description": "Optional. OIDC JWKs in JSON String format. For details on the definition of a JWK, see https://tools.ietf.org/html/rfc7517. If not set, the `jwks_uri` from the discovery document(fetched from the .well-known path of the `issuer_uri`) will be used. Currently, RSA and EC asymmetric keys are supported. The JWK must use following format and include only the following fields: { \"keys\": [ { \"kty\": \"RSA/EC\", \"alg\": \"\", \"use\": \"sig\", \"kid\": \"\", \"n\": \"\", \"e\": \"\", \"x\": \"\", \"y\": \"\", \"crv\": \"\" } ] }", +"type": "string" +}, +"webSsoConfig": { +"$ref": "GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfig", +"description": "Required. Configuration for web single sign-on for the OIDC provider. Here, web sign-in refers to console sign-in and gcloud sign-in through the browser." +} +}, +"type": "object" +}, +"GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret": { +"description": "Representation of a client secret configured for the OIDC provider.", +"id": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret", +"properties": { +"value": { +"$ref": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValue", +"description": "The value of the client secret." +} +}, +"type": "object" +}, +"GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValue": { +"description": "Representation of the value of the client secret.", +"id": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValue", +"properties": { +"plainText": { +"description": "Optional. Input only. The plain text of the client secret value. For security reasons, this field is only used for input and will never be populated in any response.", +"type": "string" +}, +"thumbprint": { +"description": "Output only. A thumbprint to represent the current client secret value.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfig": { +"description": "Configuration for web single sign-on for the OIDC provider.", +"id": "GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfig", +"properties": { +"additionalScopes": { +"description": "Optional. Additional scopes to request for in the OIDC authentication request on top of scopes requested by default. By default, the `openid`, `profile` and `email` scopes that are supported by the identity provider are requested. Each additional scope may be at most 256 characters. A maximum of 10 additional scopes may be configured.", +"items": { +"type": "string" +}, +"type": "array" +}, +"assertionClaimsBehavior": { +"description": "Required. The behavior for how OIDC Claims are included in the `assertion` object used for attribute mapping and attribute condition.", +"enum": [ +"ASSERTION_CLAIMS_BEHAVIOR_UNSPECIFIED", +"MERGE_USER_INFO_OVER_ID_TOKEN_CLAIMS", +"ONLY_ID_TOKEN_CLAIMS" +], +"enumDescriptions": [ +"No assertion claims behavior specified.", +"Merge the UserInfo Endpoint Claims with ID Token Claims, preferring UserInfo Claim Values for the same Claim Name. This option is available only for the Authorization Code Flow.", +"Only include ID Token Claims." +], +"type": "string" +}, +"responseType": { +"description": "Required. The Response Type to request for in the OIDC Authorization Request for web sign-in. The `CODE` Response Type is recommended to avoid the Implicit Flow, for security reasons.", +"enum": [ +"RESPONSE_TYPE_UNSPECIFIED", +"CODE", +"ID_TOKEN" +], +"enumDescriptions": [ +"No Response Type specified.", +"The `response_type=code` selection uses the Authorization Code Flow for web sign-in. Requires a configured client secret.", +"The `response_type=id_token` selection uses the Implicit Flow for web sign-in." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamAdminV1WorkforcePoolProviderSaml": { +"description": "Represents a SAML identity provider.", +"id": "GoogleIamAdminV1WorkforcePoolProviderSaml", +"properties": { +"idpMetadataXml": { +"description": "Required. SAML Identity provider configuration metadata xml doc. The xml document should comply with [SAML 2.0 specification](https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf). The max size of the acceptable xml document will be bounded to 128k characters. The metadata xml document should satisfy the following constraints: 1) Must contain an Identity Provider Entity ID. 2) Must contain at least one non-expired signing key certificate. 3) For each signing key: a) Valid from should be no more than 7 days from now. b) Valid to should be no more than 20 years in the future. 4) Up to 3 IdP signing keys are allowed in the metadata xml. When updating the provider's metadata xml, at least one non-expired signing key must overlap with the existing metadata. This requirement is skipped if there are no non-expired signing keys present in the existing metadata.", +"type": "string" +} +}, +"type": "object" +}, +"KeyData": { +"description": "Represents a public key data along with its format.", +"id": "KeyData", +"properties": { +"format": { +"description": "Output only. The format of the key.", +"enum": [ +"KEY_FORMAT_UNSPECIFIED", +"RSA_X509_PEM" +], +"enumDescriptions": [ +"No format has been specified. This is an invalid format and must not be used.", +"A RSA public key wrapped in an X.509v3 certificate ([RFC5280] ( https://www.ietf.org/rfc/rfc5280.txt)), encoded in base64, and wrapped in [public certificate label](https://datatracker.ietf.org/doc/html/rfc7468#section-5.1)." +], +"readOnly": true, +"type": "string" +}, +"key": { +"description": "Output only. The key data. The format of the key is represented by the format field.", +"readOnly": true, +"type": "string" +}, +"keySpec": { +"description": "Required. The specifications for the key.", +"enum": [ +"KEY_SPEC_UNSPECIFIED", +"RSA_2048", +"RSA_3072", +"RSA_4096" +], +"enumDescriptions": [ +"No key specification specified.", +"A 2048 bit RSA key.", +"A 3072 bit RSA key.", +"A 4096 bit RSA key." +], +"type": "string" +}, +"notAfterTime": { +"description": "Output only. Latest timestamp when this key is valid. Attempts to use this key after this time will fail. Only present if the key data represents a X.509 certificate.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"notBeforeTime": { +"description": "Output only. Earliest timestamp when this key is valid. Attempts to use this key before this time will fail. Only present if the key data represents a X.509 certificate.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"LintPolicyRequest": { +"description": "The request to lint an IAM policy object.", +"id": "LintPolicyRequest", +"properties": { +"condition": { +"$ref": "Expr", +"description": "google.iam.v1.Binding.condition object to be linted." +}, +"fullResourceName": { +"description": "The full resource name of the policy this lint request is about. The name follows the Google Cloud format for full resource names. For example, a Google Cloud project with ID `my-project` will be named `//cloudresourcemanager.googleapis.com/projects/my-project`. The resource name is not used to read a policy from IAM. Only the data in the request object is linted.", +"type": "string" +} +}, +"type": "object" +}, +"LintPolicyResponse": { +"description": "The response of a lint operation. An empty response indicates the operation was able to fully execute and no lint issue was found.", +"id": "LintPolicyResponse", +"properties": { +"lintResults": { +"description": "List of lint results sorted by `severity` in descending order.", +"items": { +"$ref": "LintResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"LintResult": { +"description": "Structured response of a single validation unit.", +"id": "LintResult", +"properties": { +"debugMessage": { +"description": "Human readable debug message associated with the issue.", +"type": "string" +}, +"fieldName": { +"description": "The name of the field for which this lint result is about. For nested messages `field_name` consists of names of the embedded fields separated by period character. The top-level qualifier is the input object to lint in the request. For example, the `field_name` value `condition.expression` identifies a lint result for the `expression` field of the provided condition.", +"type": "string" +}, +"level": { +"description": "The validation unit level.", +"enum": [ +"LEVEL_UNSPECIFIED", +"CONDITION" +], +"enumDescriptions": [ +"Level is unspecified.", +"A validation unit which operates on an individual condition within a binding." +], +"type": "string" +}, +"locationOffset": { +"description": "0-based character position of problematic construct within the object identified by `field_name`. Currently, this is populated only for condition expression.", +"format": "int32", +"type": "integer" +}, +"severity": { +"description": "The validation unit severity.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"ERROR", +"WARNING", +"NOTICE", +"INFO", +"DEPRECATED" +], +"enumDescriptions": [ +"Severity is unspecified.", +"A validation unit returns an error only for critical issues. If an attempt is made to set the problematic policy without rectifying the critical issue, it causes the `setPolicy` operation to fail.", +"Any issue which is severe enough but does not cause an error. For example, suspicious constructs in the input object will not necessarily fail `setPolicy`, but there is a high likelihood that they won't behave as expected during policy evaluation in `checkPolicy`. This includes the following common scenarios: - Unsatisfiable condition: Expired timestamp in date/time condition. - Ineffective condition: Condition on a pair which is granted unconditionally in another binding of the same policy.", +"Reserved for the issues that are not severe as `ERROR`/`WARNING`, but need special handling. For instance, messages about skipped validation units are issued as `NOTICE`.", +"Any informative statement which is not severe enough to raise `ERROR`/`WARNING`/`NOTICE`, like auto-correction recommendations on the input content. Note that current version of the linter does not utilize `INFO`.", +"Deprecated severity level." +], +"type": "string" +}, +"validationUnitName": { +"description": "The validation unit name, for instance \"lintValidationUnits/ConditionComplexityCheck\".", +"type": "string" +} +}, +"type": "object" +}, +"ListOauthClientCredentialsResponse": { +"description": "Response message for ListOauthClientCredentials.", +"id": "ListOauthClientCredentialsResponse", +"properties": { +"oauthClientCredentials": { +"description": "A list of OauthClientCredentials.", +"items": { +"$ref": "OauthClientCredential" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOauthClientsResponse": { +"description": "Response message for ListOauthClients.", +"id": "ListOauthClientsResponse", +"properties": { +"nextPageToken": { +"description": "Optional. 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" +}, +"oauthClients": { +"description": "A list of OauthClients.", +"items": { +"$ref": "OauthClient" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRolesResponse": { +"description": "The response containing the roles defined under a resource.", +"id": "ListRolesResponse", +"properties": { +"nextPageToken": { +"description": "To retrieve the next page of results, set `ListRolesRequest.page_token` to this value.", +"type": "string" +}, +"roles": { +"description": "The Roles defined on this resource.", +"items": { +"$ref": "Role" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServiceAccountKeysResponse": { +"description": "The service account keys list response.", +"id": "ListServiceAccountKeysResponse", +"properties": { +"keys": { +"description": "The public keys for the service account.", +"items": { +"$ref": "ServiceAccountKey" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServiceAccountsResponse": { +"description": "The service account list response.", +"id": "ListServiceAccountsResponse", +"properties": { +"accounts": { +"description": "The list of matching service accounts.", +"items": { +"$ref": "ServiceAccount" +}, +"type": "array" +}, +"nextPageToken": { +"description": "To retrieve the next page of results, set ListServiceAccountsRequest.page_token to this value.", +"type": "string" +} +}, +"type": "object" +}, +"ListWorkforcePoolProviderKeysResponse": { +"description": "Response message for ListWorkforcePoolProviderKeys.", +"id": "ListWorkforcePoolProviderKeysResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"workforcePoolProviderKeys": { +"description": "A list of WorkforcePoolProviderKeys.", +"items": { +"$ref": "WorkforcePoolProviderKey" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkforcePoolProvidersResponse": { +"description": "Response message for ListWorkforcePoolProviders.", +"id": "ListWorkforcePoolProvidersResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"workforcePoolProviders": { +"description": "A list of providers.", +"items": { +"$ref": "WorkforcePoolProvider" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkforcePoolsResponse": { +"description": "Response message for ListWorkforcePools.", +"id": "ListWorkforcePoolsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"workforcePools": { +"description": "A list of pools.", +"items": { +"$ref": "WorkforcePool" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkloadIdentityPoolProviderKeysResponse": { +"description": "Response message for ListWorkloadIdentityPoolProviderKeys.", +"id": "ListWorkloadIdentityPoolProviderKeysResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"workloadIdentityPoolProviderKeys": { +"description": "A list of WorkloadIdentityPoolProviderKey", +"items": { +"$ref": "WorkloadIdentityPoolProviderKey" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkloadIdentityPoolProvidersResponse": { +"description": "Response message for ListWorkloadIdentityPoolProviders.", +"id": "ListWorkloadIdentityPoolProvidersResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"workloadIdentityPoolProviders": { +"description": "A list of providers.", +"items": { +"$ref": "WorkloadIdentityPoolProvider" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkloadIdentityPoolsResponse": { +"description": "Response message for ListWorkloadIdentityPools.", +"id": "ListWorkloadIdentityPoolsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"workloadIdentityPools": { +"description": "A list of pools.", +"items": { +"$ref": "WorkloadIdentityPool" +}, +"type": "array" +} +}, +"type": "object" +}, +"OauthClient": { +"description": "Represents an OauthClient. Used to access Google Cloud resources on behalf of a Workforce Identity Federation user by using OAuth 2.0 Protocol to obtain an access token from Google Cloud.", +"id": "OauthClient", +"properties": { +"allowedGrantTypes": { +"description": "Required. The list of OAuth grant types is allowed for the OauthClient.", +"items": { +"enum": [ +"GRANT_TYPE_UNSPECIFIED", +"AUTHORIZATION_CODE_GRANT", +"REFRESH_TOKEN_GRANT" +], +"enumDescriptions": [ +"Should not be used.", +"Authorization code grant.", +"Refresh token grant." +], +"type": "string" +}, +"type": "array" +}, +"allowedRedirectUris": { +"description": "Required. The list of redirect uris that is allowed to redirect back when authorization process is completed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowedScopes": { +"description": "Required. The list of scopes that the OauthClient is allowed to request during OAuth flows. The following scopes are supported: * `https://www.googleapis.com/auth/cloud-platform`: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.", +"items": { +"type": "string" +}, +"type": "array" +}, +"clientId": { +"description": "Output only. The system-generated OauthClient id.", +"readOnly": true, +"type": "string" +}, +"clientType": { +"description": "Immutable. The type of OauthClient. Either public or private. For private clients, the client secret can be managed using the dedicated OauthClientCredential resource.", +"enum": [ +"CLIENT_TYPE_UNSPECIFIED", +"PUBLIC_CLIENT", +"CONFIDENTIAL_CLIENT" +], +"enumDescriptions": [ +"Should not be used.", +"Public client has no secret.", +"Private client." +], +"type": "string" +}, +"description": { +"description": "Optional. A user-specified description of the OauthClient. Cannot exceed 256 characters.", +"type": "string" +}, +"disabled": { +"description": "Optional. Whether the OauthClient is disabled. You cannot use a disabled OAuth client.", +"type": "boolean" +}, +"displayName": { +"description": "Optional. A user-specified display name of the OauthClient. Cannot exceed 32 characters.", +"type": "string" +}, +"expireTime": { +"description": "Output only. Time after which the OauthClient will be permanently purged and cannot be recovered.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. Identifier. The resource name of the OauthClient. Format:`projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", +"type": "string" +}, +"state": { +"description": "Output only. The state of the OauthClient.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The OauthClient is active.", +"The OauthClient is soft-deleted. Soft-deleted OauthClient is permanently deleted after approximately 30 days unless restored via `UndeleteOauthClient`." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OauthClientCredential": { +"description": "Represents an OauthClientCredential. Used to authenticate an OauthClient while accessing Google Cloud resources on behalf of a user by using OAuth 2.0 Protocol.", +"id": "OauthClientCredential", +"properties": { +"clientSecret": { +"description": "Output only. The system-generated OAuth client secret. The client secret must be stored securely. If the client secret is leaked, you must delete and re-create the client credential. To learn more, see [OAuth client and credential security risks and mitigations](https://cloud.google.com/iam/docs/workforce-oauth-app#security)", +"readOnly": true, +"type": "string" +}, +"disabled": { +"description": "Optional. Whether the OauthClientCredential is disabled. You cannot use a disabled OauthClientCredential.", +"type": "boolean" +}, +"displayName": { +"description": "Optional. A user-specified display name of the OauthClientCredential. Cannot exceed 32 characters.", +"type": "string" +}, +"name": { +"description": "Immutable. Identifier. The resource name of the OauthClientCredential. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}/credentials/{credential}`", +"type": "string" +} +}, +"type": "object" +}, +"Oidc": { +"description": "Represents an OpenId Connect 1.0 identity provider.", +"id": "Oidc", +"properties": { +"allowedAudiences": { +"description": "Optional. Acceptable values for the `aud` field (audience) in the OIDC token. Token exchange requests are rejected if the token audience does not match one of the configured values. Each audience may be at most 256 characters. A maximum of 10 audiences may be configured. If this list is empty, the OIDC token audience must be equal to the full canonical resource name of the WorkloadIdentityPoolProvider, with or without the HTTPS prefix. For example: ``` //iam.googleapis.com/projects//locations//workloadIdentityPools//providers/ https://iam.googleapis.com/projects//locations//workloadIdentityPools//providers/ ```", +"items": { +"type": "string" +}, +"type": "array" +}, +"issuerUri": { +"description": "Required. The OIDC issuer URL. Must be an HTTPS endpoint.", +"type": "string" +}, +"jwksJson": { +"description": "Optional. OIDC JWKs in JSON String format. For details on the definition of a JWK, see https://tools.ietf.org/html/rfc7517. If not set, the `jwks_uri` from the discovery document(fetched from the .well-known path of the `issuer_uri`) will be used. Currently, RSA and EC asymmetric keys are supported. The JWK must use following format and include only the following fields: { \"keys\": [ { \"kty\": \"RSA/EC\", \"alg\": \"\", \"use\": \"sig\", \"kid\": \"\", \"n\": \"\", \"e\": \"\", \"x\": \"\", \"y\": \"\", \"crv\": \"\" } ] }", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"cancelRequested": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PatchServiceAccountRequest": { +"description": "The service account patch request. You can patch only the `display_name` and `description` fields. You must use the `update_mask` field to specify which of these fields you want to patch. Only the fields specified in the request are guaranteed to be returned in the response. Other fields may be empty in the response.", +"id": "PatchServiceAccountRequest", +"properties": { +"serviceAccount": { +"$ref": "ServiceAccount" +}, +"updateMask": { +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Permission": { +"description": "A permission which can be included by a role.", +"id": "Permission", +"properties": { +"apiDisabled": { +"description": "The service API associated with the permission is not enabled.", +"type": "boolean" +}, +"customRolesSupportLevel": { +"description": "The current custom role support level.", +"enum": [ +"SUPPORTED", +"TESTING", +"NOT_SUPPORTED" +], +"enumDescriptions": [ +"Default state. Permission is fully supported for custom role use.", +"Permission is being tested to check custom role compatibility.", +"Permission is not supported for custom role use." +], +"type": "string" +}, +"description": { +"description": "A brief description of what this Permission is used for.", +"type": "string" +}, +"name": { +"description": "The name of this Permission.", +"type": "string" +}, +"onlyInPredefinedRoles": { +"deprecated": true, +"type": "boolean" +}, +"primaryPermission": { +"description": "The preferred name for this permission. If present, then this permission is an alias of, and equivalent to, the listed primary_permission.", +"type": "string" +}, +"stage": { +"description": "The current launch stage of the permission.", +"enum": [ +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"The permission is currently in an alpha phase.", +"The permission is currently in a beta phase.", +"The permission is generally available.", +"The permission is being deprecated." +], +"type": "string" +}, +"title": { +"description": "The title of this Permission.", +"type": "string" +} +}, +"type": "object" +}, +"PermissionDelta": { +"description": "A PermissionDelta message to record the added_permissions and removed_permissions inside a role.", +"id": "PermissionDelta", +"properties": { +"addedPermissions": { +"description": "Added permissions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"removedPermissions": { +"description": "Removed permissions.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PolicyDelta": { +"description": "The difference delta between two policies.", +"id": "PolicyDelta", +"properties": { +"bindingDeltas": { +"description": "The delta for Bindings between two policies.", +"items": { +"$ref": "BindingDelta" +}, +"type": "array" +} +}, +"type": "object" +}, +"QueryAuditableServicesRequest": { +"description": "A request to get the list of auditable services for a resource.", +"id": "QueryAuditableServicesRequest", +"properties": { +"fullResourceName": { +"description": "Required. The full resource name to query from the list of auditable services. The name follows the Google Cloud Platform resource format. For example, a Cloud Platform project with id `my-project` will be named `//cloudresourcemanager.googleapis.com/projects/my-project`.", +"type": "string" +} +}, +"type": "object" +}, +"QueryAuditableServicesResponse": { +"description": "A response containing a list of auditable services for a resource.", +"id": "QueryAuditableServicesResponse", +"properties": { +"services": { +"description": "The auditable services for a resource.", +"items": { +"$ref": "AuditableService" +}, +"type": "array" +} +}, +"type": "object" +}, +"QueryGrantableRolesRequest": { +"description": "The grantable role query request.", +"id": "QueryGrantableRolesRequest", +"properties": { +"fullResourceName": { +"description": "Required. The full resource name to query from the list of grantable roles. The name follows the Google Cloud Platform resource format. For example, a Cloud Platform project with id `my-project` will be named `//cloudresourcemanager.googleapis.com/projects/my-project`.", +"type": "string" +}, +"pageSize": { +"description": "Optional limit on the number of roles to include in the response. The default is 300, and the maximum is 2,000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional pagination token returned in an earlier QueryGrantableRolesResponse.", +"type": "string" +}, +"view": { +"enum": [ +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Omits the `included_permissions` field. This is the default value.", +"Returns all fields." +], +"type": "string" +} +}, +"type": "object" +}, +"QueryGrantableRolesResponse": { +"description": "The grantable role query response.", +"id": "QueryGrantableRolesResponse", +"properties": { +"nextPageToken": { +"description": "To retrieve the next page of results, set `QueryGrantableRolesRequest.page_token` to this value.", +"type": "string" +}, +"roles": { +"description": "The list of matching roles.", +"items": { +"$ref": "Role" +}, +"type": "array" +} +}, +"type": "object" +}, +"QueryTestablePermissionsRequest": { +"description": "A request to get permissions which can be tested on a resource.", +"id": "QueryTestablePermissionsRequest", +"properties": { +"fullResourceName": { +"description": "Required. The full resource name to query from the list of testable permissions. The name follows the Google Cloud Platform resource format. For example, a Cloud Platform project with id `my-project` will be named `//cloudresourcemanager.googleapis.com/projects/my-project`.", +"type": "string" +}, +"pageSize": { +"description": "Optional limit on the number of permissions to include in the response. The default is 100, and the maximum is 1,000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional pagination token returned in an earlier QueryTestablePermissionsRequest.", +"type": "string" +} +}, +"type": "object" +}, +"QueryTestablePermissionsResponse": { +"description": "The response containing permissions which can be tested on a resource.", +"id": "QueryTestablePermissionsResponse", +"properties": { +"nextPageToken": { +"description": "To retrieve the next page of results, set `QueryTestableRolesRequest.page_token` to this value.", +"type": "string" +}, +"permissions": { +"description": "The Permissions testable on the requested resource.", +"items": { +"$ref": "Permission" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReconciliationOperationMetadata": { +"description": "Operation metadata returned by the CLH during resource state reconciliation.", +"id": "ReconciliationOperationMetadata", +"properties": { +"deleteResource": { +"deprecated": true, +"description": "DEPRECATED. Use exclusive_action instead.", +"type": "boolean" +}, +"exclusiveAction": { +"description": "Excluisive action returned by the CLH.", +"enum": [ +"UNKNOWN_REPAIR_ACTION", +"DELETE", +"RETRY" +], +"enumDeprecated": [ +false, +true, +false +], +"enumDescriptions": [ +"Unknown repair action.", +"The resource has to be deleted. When using this bit, the CLH should fail the operation. DEPRECATED. Instead use DELETE_RESOURCE OperationSignal in SideChannel.", +"This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource." +], +"type": "string" +} +}, +"type": "object" +}, +"Role": { +"description": "A role in the Identity and Access Management API.", +"id": "Role", +"properties": { +"deleted": { +"description": "The current deleted state of the role. This field is read only. It will be ignored in calls to CreateRole and UpdateRole.", +"type": "boolean" +}, +"description": { +"description": "Optional. A human-readable description for the role.", +"type": "string" +}, +"etag": { +"description": "Used to perform a consistent read-modify-write.", +"format": "byte", +"type": "string" +}, +"includedPermissions": { +"description": "The names of the permissions this role grants when bound in an IAM policy.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the role. When `Role` is used in `CreateRole`, the role name must not be set. When `Role` is used in output and other input such as `UpdateRole`, the role name is the complete path. For example, `roles/logging.viewer` for predefined roles, `organizations/{ORGANIZATION_ID}/roles/myRole` for organization-level custom roles, and `projects/{PROJECT_ID}/roles/myRole` for project-level custom roles.", +"type": "string" +}, +"stage": { +"description": "The current launch stage of the role. If the `ALPHA` launch stage has been selected for a role, the `stage` field will not be included in the returned definition for the role.", +"enum": [ +"ALPHA", +"BETA", +"GA", +"DEPRECATED", +"DISABLED", +"EAP" +], +"enumDescriptions": [ +"The user has indicated this role is currently in an Alpha phase. If this launch stage is selected, the `stage` field will not be included when requesting the definition for a given role.", +"The user has indicated this role is currently in a Beta phase.", +"The user has indicated this role is generally available.", +"The user has indicated this role is being deprecated.", +"This role is disabled and will not contribute permissions to any principals it is granted to in policies.", +"The user has indicated this role is currently in an EAP phase." +], +"type": "string" +}, +"title": { +"description": "Optional. A human-readable title for the role. Typically this is limited to 100 UTF-8 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"Saml": { +"description": "Represents an SAML 2.0 identity provider.", +"id": "Saml", +"properties": { +"idpMetadataXml": { +"description": "Required. SAML identity provider (IdP) configuration metadata XML doc. The XML document must comply with the [SAML 2.0 specification](https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf). The maximum size of an acceptable XML document is 128K characters. The SAML metadata XML document must satisfy the following constraints: * Must contain an IdP Entity ID. * Must contain at least one non-expired signing certificate. * For each signing certificate, the expiration must be: * From no more than 7 days in the future. * To no more than 20 years in the future. * Up to three IdP signing keys are allowed. When updating the provider's metadata XML, at least one non-expired signing key must overlap with the existing metadata. This requirement is skipped if there are no non-expired signing keys present in the existing metadata.", +"type": "string" +} +}, +"type": "object" +}, +"ServiceAccount": { +"description": "An IAM service account. A service account is an account for an application or a virtual machine (VM) instance, not a person. You can use a service account to call Google APIs. To learn more, read the [overview of service accounts](https://cloud.google.com/iam/help/service-accounts/overview). When you create a service account, you specify the project ID that owns the service account, as well as a name that must be unique within the project. IAM uses these values to create an email address that identifies the service account. //", +"id": "ServiceAccount", +"properties": { +"description": { +"description": "Optional. A user-specified, human-readable description of the service account. The maximum length is 256 UTF-8 bytes.", +"type": "string" +}, +"disabled": { +"description": "Output only. Whether the service account is disabled.", +"readOnly": true, +"type": "boolean" +}, +"displayName": { +"description": "Optional. A user-specified, human-readable name for the service account. The maximum length is 100 UTF-8 bytes.", +"type": "string" +}, +"email": { +"description": "Output only. The email address of the service account.", +"readOnly": true, +"type": "string" +}, +"etag": { +"deprecated": true, +"description": "Deprecated. Do not use.", +"format": "byte", +"type": "string" +}, +"name": { +"description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", +"type": "string" +}, +"oauth2ClientId": { +"description": "Output only. The OAuth 2.0 client ID for the service account.", +"readOnly": true, +"type": "string" +}, +"projectId": { +"description": "Output only. The ID of the project that owns the service account.", +"readOnly": true, +"type": "string" +}, +"uniqueId": { +"description": "Output only. The unique, stable numeric ID for the service account. Each service account retains its unique ID even if you delete the service account. For example, if you delete a service account, then create a new service account with the same name, the new service account has a different unique ID than the deleted service account.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ServiceAccountKey": { +"description": "Represents a service account key. A service account has two sets of key-pairs: user-managed, and system-managed. User-managed key-pairs can be created and deleted by users. Users are responsible for rotating these keys periodically to ensure security of their service accounts. Users retain the private key of these key-pairs, and Google retains ONLY the public key. System-managed keys are automatically rotated by Google, and are used for signing for a maximum of two weeks. The rotation process is probabilistic, and usage of the new key will gradually ramp up and down over the key's lifetime. If you cache the public key set for a service account, we recommend that you update the cache every 15 minutes. User-managed keys can be added and removed at any time, so it is important to update the cache frequently. For Google-managed keys, Google will publish a key at least 6 hours before it is first used for signing and will keep publishing it for at least 6 hours after it was last used for signing. Public keys for all service accounts are also published at the OAuth2 Service Account API.", +"id": "ServiceAccountKey", +"properties": { +"disableReason": { +"description": "Output only. optional. If the key is disabled, it may have a DisableReason describing why it was disabled.", +"enum": [ +"SERVICE_ACCOUNT_KEY_DISABLE_REASON_UNSPECIFIED", +"SERVICE_ACCOUNT_KEY_DISABLE_REASON_USER_INITIATED", +"SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED", +"SERVICE_ACCOUNT_KEY_DISABLE_REASON_COMPROMISE_DETECTED" +], +"enumDescriptions": [ +"Unspecified disable reason", +"Disabled by the user", +"Google detected this Service Account external key's private key data as exposed, typically in a public repository on GitHub or similar.", +"This service account external key was detected as compromised and used by an attacker." +], +"readOnly": true, +"type": "string" +}, +"disabled": { +"description": "The key status.", +"type": "boolean" +}, +"extendedStatus": { +"description": "Output only. Extended Status provides permanent information about a service account key. For example, if this key was detected as exposed or compromised, that information will remain for the lifetime of the key in the extended_status.", +"items": { +"$ref": "ExtendedStatus" +}, +"readOnly": true, +"type": "array" +}, +"keyAlgorithm": { +"description": "Specifies the algorithm (and possibly key size) for the key.", +"enum": [ +"KEY_ALG_UNSPECIFIED", +"KEY_ALG_RSA_1024", +"KEY_ALG_RSA_2048" +], +"enumDescriptions": [ +"An unspecified key algorithm.", +"1k RSA Key.", +"2k RSA Key." +], +"type": "string" +}, +"keyOrigin": { +"description": "The key origin.", +"enum": [ +"ORIGIN_UNSPECIFIED", +"USER_PROVIDED", +"GOOGLE_PROVIDED" +], +"enumDescriptions": [ +"Unspecified key origin.", +"Key is provided by user.", +"Key is provided by Google." +], +"type": "string" +}, +"keyType": { +"description": "The key type.", +"enum": [ +"KEY_TYPE_UNSPECIFIED", +"USER_MANAGED", +"SYSTEM_MANAGED" +], +"enumDescriptions": [ +"Unspecified key type. The presence of this in the message will immediately result in an error.", +"User-managed keys (managed and rotated by the user).", +"System-managed keys (managed and rotated by Google)." +], +"type": "string" +}, +"name": { +"description": "The resource name of the service account key in the following format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`.", +"type": "string" +}, +"privateKeyData": { +"description": "The private key data. Only provided in `CreateServiceAccountKey` responses. Make sure to keep the private key data secure because it allows for the assertion of the service account identity. When base64 decoded, the private key data can be used to authenticate with Google API client libraries and with gcloud auth activate-service-account.", +"format": "byte", +"type": "string" +}, +"privateKeyType": { +"description": "The output format for the private key. Only provided in `CreateServiceAccountKey` responses, not in `GetServiceAccountKey` or `ListServiceAccountKey` responses. Google never exposes system-managed private keys, and never retains user-managed private keys.", +"enum": [ +"TYPE_UNSPECIFIED", +"TYPE_PKCS12_FILE", +"TYPE_GOOGLE_CREDENTIALS_FILE" +], +"enumDescriptions": [ +"Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.", +"PKCS12 format. The password for the PKCS12 file is `notasecret`. For more information, see https://tools.ietf.org/html/rfc7292.", +"Google Credentials File format." +], +"type": "string" +}, +"publicKeyData": { +"description": "The public key data. Only provided in `GetServiceAccountKey` responses.", +"format": "byte", +"type": "string" +}, +"validAfterTime": { +"description": "The key can be used after this timestamp.", +"format": "google-datetime", +"type": "string" +}, +"validBeforeTime": { +"description": "The key can be used before this timestamp. For system-managed key pairs, this timestamp is the end time for the private key signing operation. The public key could still be used for verification for a few hours after this time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ServiceConfig": { +"description": "Configuration for a service.", +"id": "ServiceConfig", +"properties": { +"domain": { +"description": "Optional. Domain name of the service. Example: console.cloud.google", +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"SignBlobRequest": { +"description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The service account sign blob request.", +"id": "SignBlobRequest", +"properties": { +"bytesToSign": { +"deprecated": true, +"description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The bytes to sign.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"SignBlobResponse": { +"description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The service account sign blob response.", +"id": "SignBlobResponse", +"properties": { +"keyId": { +"deprecated": true, +"description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The id of the key used to sign the blob.", +"type": "string" +}, +"signature": { +"deprecated": true, +"description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The signed blob.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"SignJwtRequest": { +"description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The service account sign JWT request.", +"id": "SignJwtRequest", +"properties": { +"payload": { +"deprecated": true, +"description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The JWT payload to sign. Must be a serialized JSON object that contains a JWT Claims Set. For example: `{\"sub\": \"user@example.com\", \"iat\": 313435}` If the JWT Claims Set contains an expiration time (`exp`) claim, it must be an integer timestamp that is not in the past and no more than 12 hours in the future. If the JWT Claims Set does not contain an expiration time (`exp`) claim, this claim is added automatically, with a timestamp that is 1 hour in the future.", +"type": "string" +} +}, +"type": "object" +}, +"SignJwtResponse": { +"description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The service account sign JWT response.", +"id": "SignJwtResponse", +"properties": { +"keyId": { +"deprecated": true, +"description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The id of the key used to sign the JWT.", +"type": "string" +}, +"signedJwt": { +"deprecated": true, +"description": "Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The signed JWT.", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UndeleteOauthClientRequest": { +"description": "Request message for UndeleteOauthClient.", +"id": "UndeleteOauthClientRequest", +"properties": {}, +"type": "object" +}, +"UndeleteRoleRequest": { +"description": "The request to undelete an existing role.", +"id": "UndeleteRoleRequest", +"properties": { +"etag": { +"description": "Used to perform a consistent read-modify-write.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"UndeleteServiceAccountRequest": { +"description": "The service account undelete request.", +"id": "UndeleteServiceAccountRequest", +"properties": {}, +"type": "object" +}, +"UndeleteServiceAccountResponse": { +"id": "UndeleteServiceAccountResponse", +"properties": { +"restoredAccount": { +"$ref": "ServiceAccount", +"description": "Metadata for the restored service account." +} +}, +"type": "object" +}, +"UndeleteWorkforcePoolProviderKeyRequest": { +"description": "Request message for UndeleteWorkforcePoolProviderKey.", +"id": "UndeleteWorkforcePoolProviderKeyRequest", +"properties": {}, +"type": "object" +}, +"UndeleteWorkforcePoolProviderRequest": { +"description": "Request message for UndeleteWorkforcePoolProvider.", +"id": "UndeleteWorkforcePoolProviderRequest", +"properties": {}, +"type": "object" +}, +"UndeleteWorkforcePoolRequest": { +"description": "Request message for UndeleteWorkforcePool.", +"id": "UndeleteWorkforcePoolRequest", +"properties": {}, +"type": "object" +}, +"UndeleteWorkforcePoolSubjectRequest": { +"description": "Request message for UndeleteWorkforcePoolSubject.", +"id": "UndeleteWorkforcePoolSubjectRequest", +"properties": {}, +"type": "object" +}, +"UndeleteWorkloadIdentityPoolProviderKeyRequest": { +"description": "Request message for UndeleteWorkloadIdentityPoolProviderKey.", +"id": "UndeleteWorkloadIdentityPoolProviderKeyRequest", +"properties": {}, +"type": "object" +}, +"UndeleteWorkloadIdentityPoolProviderRequest": { +"description": "Request message for UndeleteWorkloadIdentityPoolProvider.", +"id": "UndeleteWorkloadIdentityPoolProviderRequest", +"properties": {}, +"type": "object" +}, +"UndeleteWorkloadIdentityPoolRequest": { +"description": "Request message for UndeleteWorkloadIdentityPool.", +"id": "UndeleteWorkloadIdentityPoolRequest", +"properties": {}, +"type": "object" +}, +"UploadServiceAccountKeyRequest": { +"description": "The service account key upload request.", +"id": "UploadServiceAccountKeyRequest", +"properties": { +"publicKeyData": { +"description": "The public key to associate with the service account. Must be an RSA public key that is wrapped in an X.509 v3 certificate. Include the first line, `-----BEGIN CERTIFICATE-----`, and the last line, `-----END CERTIFICATE-----`.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"WorkforcePool": { +"description": "Represents a collection of external workforces. Provides namespaces for federated users that can be referenced in IAM policies.", +"id": "WorkforcePool", +"properties": { +"accessRestrictions": { +"$ref": "AccessRestrictions", +"description": "Optional. Configure access restrictions on the workforce pool users. This is an optional field. If specified web sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users." +}, +"description": { +"description": "Optional. A user-specified description of the pool. Cannot exceed 256 characters.", +"type": "string" +}, +"disabled": { +"description": "Optional. Disables the workforce pool. You cannot use a disabled pool to exchange tokens, or use existing tokens to access resources. If the pool is re-enabled, existing tokens grant access again.", +"type": "boolean" +}, +"displayName": { +"description": "Optional. A user-specified display name of the pool in Google Cloud Console. Cannot exceed 32 characters.", +"type": "string" +}, +"expireTime": { +"description": "Output only. Time after which the workforce pool will be permanently purged and cannot be recovered.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the pool. Format: `locations/{location}/workforcePools/{workforce_pool_id}`", +"type": "string" +}, +"parent": { +"description": "Immutable. The resource name of the parent. Format: `organizations/{org-id}`.", +"type": "string" +}, +"sessionDuration": { +"description": "Optional. Duration that the Google Cloud access tokens, console sign-in sessions, and `gcloud` sign-in sessions from this pool are valid. Must be greater than 15 minutes (900s) and less than 12 hours (43200s). If `session_duration` is not configured, minted credentials have a default duration of one hour (3600s). For SAML providers, the lifetime of the token is the minimum of the `session_duration` and the `SessionNotOnOrAfter` claim in the SAML assertion.", +"format": "google-duration", +"type": "string" +}, +"state": { +"description": "Output only. The state of the pool.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETED" +], +"enumDescriptions": [ +"State unspecified.", +"The pool is active and may be used in Google Cloud policies.", +"The pool is soft-deleted. Soft-deleted pools are permanently deleted after approximately 30 days. You can restore a soft-deleted pool using UndeleteWorkforcePool. You cannot reuse the ID of a soft-deleted pool until it is permanently deleted. While a pool is deleted, you cannot use it to exchange tokens, or use existing tokens to access resources. If the pool is undeleted, existing tokens grant access again." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WorkforcePoolProvider": { +"description": "A configuration for an external identity provider.", +"id": "WorkforcePoolProvider", +"properties": { +"attributeCondition": { +"description": "Optional. A [Common Expression Language](https://opensource.google/projects/cel) expression, in plain text, to restrict what otherwise valid authentication credentials issued by the provider should not be accepted. The expression must output a boolean representing whether to allow the federation. The following keywords may be referenced in the expressions: * `assertion`: JSON representing the authentication credential issued by the provider. * `google`: The Google attributes mapped from the assertion in the `attribute_mappings`. `google.profile_photo`, `google.display_name` and `google.posix_username` are not supported. * `attribute`: The custom attributes mapped from the assertion in the `attribute_mappings`. The maximum length of the attribute condition expression is 4096 characters. If unspecified, all valid authentication credentials will be accepted. The following example shows how to only allow credentials with a mapped `google.groups` value of `admins`: ``` \"'admins' in google.groups\" ```", +"type": "string" +}, +"attributeMapping": { +"additionalProperties": { +"type": "string" +}, +"description": "Required. Maps attributes from the authentication credentials issued by an external identity provider to Google Cloud attributes, such as `subject` and `segment`. Each key must be a string specifying the Google Cloud IAM attribute to map to. The following keys are supported: * `google.subject`: The principal IAM is authenticating. You can reference this value in IAM bindings. This is also the subject that appears in Cloud Logging logs. This is a required field and the mapped subject cannot exceed 127 bytes. * `google.groups`: Groups the authenticating user belongs to. You can grant groups access to resources using an IAM `principalSet` binding; access applies to all members of the group. * `google.display_name`: The name of the authenticated user. This is an optional field and the mapped display name cannot exceed 100 bytes. If not set, `google.subject` will be displayed instead. This attribute cannot be referenced in IAM bindings. * `google.profile_photo`: The URL that specifies the authenticated user's thumbnail photo. This is an optional field. When set, the image will be visible as the user's profile picture. If not set, a generic user icon will be displayed instead. This attribute cannot be referenced in IAM bindings. * `google.posix_username`: The Linux username used by OS Login. This is an optional field and the mapped POSIX username cannot exceed 32 characters, The key must match the regex \"^a-zA-Z0-9._{0,31}$\". This attribute cannot be referenced in IAM bindings. You can also provide custom attributes by specifying `attribute.{custom_attribute}`, where {custom_attribute} is the name of the custom attribute to be mapped. You can define a maximum of 50 custom attributes. The maximum length of a mapped attribute key is 100 characters, and the key may only contain the characters [a-z0-9_]. You can reference these attributes in IAM policies to define fine-grained access for a workforce pool to Google Cloud resources. For example: * `google.subject`: `principal://iam.googleapis.com/locations/global/workforcePools/{pool}/subject/{value}` * `google.groups`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/group/{value}` * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/attribute.{custom_attribute}/{value}` Each value must be a [Common Expression Language] (https://opensource.google/projects/cel) function that maps an identity provider credential to the normalized attribute specified by the corresponding map key. You can use the `assertion` keyword in the expression to access a JSON representation of the authentication credential issued by the provider. The maximum length of an attribute mapping expression is 2048 characters. When evaluated, the total size of all mapped attributes must not exceed 4KB. For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute. For example, the following maps the `sub` claim of the incoming credential to the `subject` attribute on a Google token: ``` {\"google.subject\": \"assertion.sub\"} ```", +"type": "object" +}, +"description": { +"description": "Optional. A user-specified description of the provider. Cannot exceed 256 characters.", +"type": "string" +}, +"disabled": { +"description": "Optional. Disables the workforce pool provider. You cannot use a disabled provider to exchange tokens. However, existing tokens still grant access.", +"type": "boolean" +}, +"displayName": { +"description": "Optional. A user-specified display name for the provider. Cannot exceed 32 characters.", +"type": "string" +}, +"expireTime": { +"description": "Output only. Time after which the workload pool provider will be permanently purged and cannot be recovered.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"extraAttributesOauth2Client": { +"$ref": "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2Client", +"description": "Optional. The configuration for OAuth 2.0 client used to get the additional user attributes. This should be used when users can't get the desired claims in authentication credentials. Currently this configuration is only supported with OIDC protocol." +}, +"name": { +"description": "Identifier. The resource name of the provider. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", +"type": "string" +}, +"oidc": { +"$ref": "GoogleIamAdminV1WorkforcePoolProviderOidc", +"description": "An OpenId Connect 1.0 identity provider configuration." +}, +"saml": { +"$ref": "GoogleIamAdminV1WorkforcePoolProviderSaml", +"description": "A SAML identity provider configuration." +}, +"state": { +"description": "Output only. The state of the provider.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETED" +], +"enumDescriptions": [ +"State unspecified.", +"The provider is active and may be used to validate authentication credentials.", +"The provider is soft-deleted. Soft-deleted providers are permanently deleted after approximately 30 days. You can restore a soft-deleted provider using UndeleteWorkforcePoolProvider." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WorkforcePoolProviderKey": { +"description": "Represents a public key configuration for a Workforce Pool Provider. The key can be configured in your identity provider to encrypt SAML assertions. Google holds the corresponding private key, which it uses to decrypt encrypted tokens.", +"id": "WorkforcePoolProviderKey", +"properties": { +"expireTime": { +"description": "Output only. The time after which the key will be permanently deleted and cannot be recovered. Note that the key may get purged before this time if the total limit of keys per provider is exceeded.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"keyData": { +"$ref": "KeyData", +"description": "Immutable. Public half of the asymmetric key." +}, +"name": { +"description": "Identifier. The resource name of the key. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}/keys/{key_id}`", +"type": "string" +}, +"state": { +"description": "Output only. The state of the key.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETED" +], +"enumDescriptions": [ +"State unspecified.", +"The key is active.", +"The key is soft-deleted. Soft-deleted keys are permanently deleted after approximately 30 days. You can restore a soft-deleted key using UndeleteWorkforcePoolProviderKey." +], +"readOnly": true, +"type": "string" +}, +"use": { +"description": "Required. The purpose of the key.", +"enum": [ +"KEY_USE_UNSPECIFIED", +"ENCRYPTION" +], +"enumDescriptions": [ +"KeyUse unspecified.", +"The key is used for encryption." +], +"type": "string" +} +}, +"type": "object" +}, +"WorkloadIdentityPool": { +"description": "Represents a collection of workload identities. You can define IAM policies to grant these identities access to Google Cloud resources.", +"id": "WorkloadIdentityPool", +"properties": { +"description": { +"description": "Optional. A description of the pool. Cannot exceed 256 characters.", +"type": "string" +}, +"disabled": { +"description": "Optional. Whether the pool is disabled. You cannot use a disabled pool to exchange tokens, or use existing tokens to access resources. If the pool is re-enabled, existing tokens grant access again.", +"type": "boolean" +}, +"displayName": { +"description": "Optional. A display name for the pool. Cannot exceed 32 characters.", +"type": "string" +}, +"expireTime": { +"description": "Output only. Time after which the workload identity pool will be permanently purged and cannot be recovered.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the pool.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the pool.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETED" +], +"enumDescriptions": [ +"State unspecified.", +"The pool is active, and may be used in Google Cloud policies.", +"The pool is soft-deleted. Soft-deleted pools are permanently deleted after approximately 30 days. You can restore a soft-deleted pool using UndeleteWorkloadIdentityPool. You cannot reuse the ID of a soft-deleted pool until it is permanently deleted. While a pool is deleted, you cannot use it to exchange tokens, or use existing tokens to access resources. If the pool is undeleted, existing tokens grant access again." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WorkloadIdentityPoolOperationMetadata": { +"description": "Metadata for long-running WorkloadIdentityPool operations.", +"id": "WorkloadIdentityPoolOperationMetadata", +"properties": {}, +"type": "object" +}, +"WorkloadIdentityPoolProvider": { +"description": "A configuration for an external identity provider.", +"id": "WorkloadIdentityPoolProvider", +"properties": { +"attributeCondition": { +"description": "Optional. [A Common Expression Language](https://opensource.google/projects/cel) expression, in plain text, to restrict what otherwise valid authentication credentials issued by the provider should not be accepted. The expression must output a boolean representing whether to allow the federation. The following keywords may be referenced in the expressions: * `assertion`: JSON representing the authentication credential issued by the provider. * `google`: The Google attributes mapped from the assertion in the `attribute_mappings`. * `attribute`: The custom attributes mapped from the assertion in the `attribute_mappings`. The maximum length of the attribute condition expression is 4096 characters. If unspecified, all valid authentication credential are accepted. The following example shows how to only allow credentials with a mapped `google.groups` value of `admins`: ``` \"'admins' in google.groups\" ```", +"type": "string" +}, +"attributeMapping": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Maps attributes from authentication credentials issued by an external identity provider to Google Cloud attributes, such as `subject` and `segment`. Each key must be a string specifying the Google Cloud IAM attribute to map to. The following keys are supported: * `google.subject`: The principal IAM is authenticating. You can reference this value in IAM bindings. This is also the subject that appears in Cloud Logging logs. Cannot exceed 127 bytes. * `google.groups`: Groups the external identity belongs to. You can grant groups access to resources using an IAM `principalSet` binding; access applies to all members of the group. You can also provide custom attributes by specifying `attribute.{custom_attribute}`, where `{custom_attribute}` is the name of the custom attribute to be mapped. You can define a maximum of 50 custom attributes. The maximum length of a mapped attribute key is 100 characters, and the key may only contain the characters [a-z0-9_]. You can reference these attributes in IAM policies to define fine-grained access for a workload to Google Cloud resources. For example: * `google.subject`: `principal://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/subject/{value}` * `google.groups`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/group/{value}` * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/attribute.{custom_attribute}/{value}` Each value must be a [Common Expression Language] (https://opensource.google/projects/cel) function that maps an identity provider credential to the normalized attribute specified by the corresponding map key. You can use the `assertion` keyword in the expression to access a JSON representation of the authentication credential issued by the provider. The maximum length of an attribute mapping expression is 2048 characters. When evaluated, the total size of all mapped attributes must not exceed 8KB. For AWS providers, if no attribute mapping is defined, the following default mapping applies: ``` { \"google.subject\":\"assertion.arn\", \"attribute.aws_role\": \"assertion.arn.contains('assumed-role')\" \" ? assertion.arn.extract('{account_arn}assumed-role/')\" \" + 'assumed-role/'\" \" + assertion.arn.extract('assumed-role/{role_name}/')\" \" : assertion.arn\", } ``` If any custom attribute mappings are defined, they must include a mapping to the `google.subject` attribute. For OIDC providers, you must supply a custom mapping, which must include the `google.subject` attribute. For example, the following maps the `sub` claim of the incoming credential to the `subject` attribute on a Google token: ``` {\"google.subject\": \"assertion.sub\"} ```", +"type": "object" +}, +"aws": { +"$ref": "Aws", +"description": "An Amazon Web Services identity provider." +}, +"description": { +"description": "Optional. A description for the provider. Cannot exceed 256 characters.", +"type": "string" +}, +"disabled": { +"description": "Optional. Whether the provider is disabled. You cannot use a disabled provider to exchange tokens. However, existing tokens still grant access.", +"type": "boolean" +}, +"displayName": { +"description": "Optional. A display name for the provider. Cannot exceed 32 characters.", +"type": "string" +}, +"expireTime": { +"description": "Output only. Time after which the workload identity pool provider will be permanently purged and cannot be recovered.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the provider.", +"readOnly": true, +"type": "string" +}, +"oidc": { +"$ref": "Oidc", +"description": "An OpenId Connect 1.0 identity provider." +}, +"saml": { +"$ref": "Saml", +"description": "An SAML 2.0 identity provider." +}, +"state": { +"description": "Output only. The state of the provider.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETED" +], +"enumDescriptions": [ +"State unspecified.", +"The provider is active, and may be used to validate authentication credentials.", +"The provider is soft-deleted. Soft-deleted providers are permanently deleted after approximately 30 days. You can restore a soft-deleted provider using UndeleteWorkloadIdentityPoolProvider. You cannot reuse the ID of a soft-deleted provider until it is permanently deleted." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WorkloadIdentityPoolProviderKey": { +"description": "Represents a public key configuration for your workload identity pool provider. The key can be configured in your identity provider to encrypt the SAML assertions. Google holds the corresponding private key which it uses to decrypt encrypted tokens.", +"id": "WorkloadIdentityPoolProviderKey", +"properties": { +"expireTime": { +"description": "Output only. Time after which the key will be permanently purged and cannot be recovered. Note that the key may get purged before this timestamp if the total limit of keys per provider is crossed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"keyData": { +"$ref": "KeyData", +"description": "Immutable. Public half of the asymmetric key." +}, +"name": { +"description": "Output only. The resource name of the key.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the key.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DELETED" +], +"enumDescriptions": [ +"State unspecified.", +"The key is active.", +"The key is soft-deleted. Soft-deleted keys are permanently deleted after approximately 30 days. You can restore a soft-deleted key using UndeleteWorkloadIdentityPoolProviderKey. While a key is deleted, you cannot use it during the federation." +], +"readOnly": true, +"type": "string" +}, +"use": { +"description": "Required. The purpose of the key.", +"enum": [ +"KEY_USE_UNSPECIFIED", +"ENCRYPTION" +], +"enumDescriptions": [ +"The key use is not known.", +"The public key is used for encryption purposes." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Identity and Access Management (IAM) API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/identitytoolkit.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/identitytoolkit.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..8229714a976b5d95a6e767e0317b9f0f8567de68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/identitytoolkit.v1.json @@ -0,0 +1,3909 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/firebase": { +"description": "View and administer all your Firebase data and settings" +} +} +} +}, +"basePath": "", +"baseUrl": "https://identitytoolkit.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Identity Toolkit", +"description": "The Google Identity Toolkit API lets you use open standards to verify a user's identity.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/identity-platform", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "identitytoolkit:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://identitytoolkit.mtls.googleapis.com/", +"name": "identitytoolkit", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"methods": { +"createAuthUri": { +"description": "If an email identifier is specified, checks and returns if any user account is registered with the email. If there is a registered account, fetches all providers associated with the account's email. If the provider ID of an Identity Provider (IdP) is specified, creates an authorization URI for the IdP. The user can be directed to this URI to sign in with the IdP. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/accounts:createAuthUri", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.createAuthUri", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:createAuthUri", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1CreateAuthUriRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1CreateAuthUriResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a user's account.", +"flatPath": "v1/accounts:delete", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.delete", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:delete", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"issueSamlResponse": { +"description": "Experimental", +"flatPath": "v1/accounts:issueSamlResponse", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.issueSamlResponse", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:issueSamlResponse", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"lookup": { +"description": "Gets account information for all matched accounts. For an end user request, retrieves the account of the end user. For an admin request with Google OAuth 2.0 credential, retrieves one or multiple account(s) with matching criteria.", +"flatPath": "v1/accounts:lookup", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.lookup", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:lookup", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resetPassword": { +"description": "Resets the password of an account either using an out-of-band code generated by sendOobCode or by specifying the email and password of the account to be modified. Can also check the purpose of an out-of-band code without consuming it.", +"flatPath": "v1/accounts:resetPassword", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.resetPassword", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:resetPassword", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1ResetPasswordRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1ResetPasswordResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"sendOobCode": { +"description": "Sends an out-of-band confirmation code for an account. Requests from a authenticated request can optionally return a link including the OOB code instead of sending it.", +"flatPath": "v1/accounts:sendOobCode", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.sendOobCode", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:sendOobCode", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"sendVerificationCode": { +"description": "Sends a SMS verification code for phone number sign-in. To localize the text of the SMS sent to the user, set the HTTP header `X-Firebase-Locale` to the language code that corresponds with the user's locale. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/accounts:sendVerificationCode", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.sendVerificationCode", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:sendVerificationCode", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signInWithCustomToken": { +"description": "Signs in or signs up a user by exchanging a custom Auth token. Upon a successful sign-in or sign-up, a new Identity Platform ID token and refresh token are issued for the user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/accounts:signInWithCustomToken", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.signInWithCustomToken", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:signInWithCustomToken", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signInWithEmailLink": { +"description": "Signs in or signs up a user with a out-of-band code from an email link. If a user does not exist with the given email address, a user record will be created. If the sign-in succeeds, an Identity Platform ID and refresh token are issued for the authenticated user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/accounts:signInWithEmailLink", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.signInWithEmailLink", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:signInWithEmailLink", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signInWithGameCenter": { +"description": "Signs in or signs up a user with iOS Game Center credentials. If the sign-in succeeds, a new Identity Platform ID token and refresh token are issued for the authenticated user. The bundle ID is required in the request header as `x-ios-bundle-identifier`. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project. Apple has [deprecated the `playerID` field](https://developer.apple.com/documentation/gamekit/gkplayer/1521127-playerid/). The Apple platform Firebase SDK will use `gamePlayerID` and `teamPlayerID` from version 10.5.0 and onwards. Upgrading to SDK version 10.5.0 or later updates existing integrations that use `playerID` to instead use `gamePlayerID` and `teamPlayerID`. When making calls to `signInWithGameCenter`, you must include `playerID` along with the new fields `gamePlayerID` and `teamPlayerID` to successfully identify all existing users. Upgrading existing Game Center sign in integrations to SDK version 10.5.0 or later is irreversible.", +"flatPath": "v1/accounts:signInWithGameCenter", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.signInWithGameCenter", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:signInWithGameCenter", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signInWithIdp": { +"description": "Signs in or signs up a user using credentials from an Identity Provider (IdP). This is done by manually providing an IdP credential, or by providing the authorization response obtained via the authorization request from CreateAuthUri. If the sign-in succeeds, a new Identity Platform ID token and refresh token are issued for the authenticated user. A new Identity Platform user account will be created if the user has not previously signed in to the IdP with the same account. In addition, when the \"One account per email address\" setting is enabled, there should not be an existing Identity Platform user account with the same email address for a new user account to be created. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/accounts:signInWithIdp", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.signInWithIdp", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:signInWithIdp", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithIdpRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithIdpResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signInWithPassword": { +"description": "Signs in a user with email and password. If the sign-in succeeds, a new Identity Platform ID token and refresh token are issued for the authenticated user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/accounts:signInWithPassword", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.signInWithPassword", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:signInWithPassword", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signInWithPhoneNumber": { +"description": "Completes a phone number authentication attempt. If a user already exists with the given phone number, an ID token is minted for that user. Otherwise, a new user is created and associated with the phone number. This method may also be used to link a phone number to an existing user. To localize the text of the SMS sent to the user, set the HTTP header `X-Firebase-Locale` to the language code that corresponds with the user's locale. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/accounts:signInWithPhoneNumber", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.signInWithPhoneNumber", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:signInWithPhoneNumber", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"signUp": { +"description": "Signs up a new email and password user or anonymous user, or upgrades an anonymous user to email and password. For an admin request with a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control), creates a new anonymous, email and password, or phone number user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/accounts:signUp", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.signUp", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:signUp", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SignUpRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SignUpResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates account-related information for the specified user by setting specific fields or applying action codes. Requests from administrators and end users are supported.", +"flatPath": "v1/accounts:update", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.update", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:update", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"verifyIosClient": { +"description": "Verifies an iOS client is a real iOS device. If the request is valid, a receipt will be sent in the response and a secret will be sent via Apple Push Notification Service. The client should send both of them back to certain Identity Platform APIs in a later call (for example, /accounts:sendVerificationCode), in order to verify the client. The bundle ID is required in the request header as `x-ios-bundle-identifier`. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/accounts:verifyIosClient", +"httpMethod": "POST", +"id": "identitytoolkit.accounts.verifyIosClient", +"parameterOrder": [], +"parameters": {}, +"path": "v1/accounts:verifyIosClient", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1VerifyIosClientRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1VerifyIosClientResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projects": { +"methods": { +"accounts": { +"description": "Signs up a new email and password user or anonymous user, or upgrades an anonymous user to email and password. For an admin request with a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control), creates a new anonymous, email and password, or phone number user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/projects/{projectsId}/accounts", +"httpMethod": "POST", +"id": "identitytoolkit.projects.accounts", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "The project ID of the project which the user should belong to. Specifying this field requires a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control). If this is not set, the target project is inferred from the scope associated to the Bearer access token.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/accounts", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SignUpRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SignUpResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"createSessionCookie": { +"description": "Creates a session cookie for the given Identity Platform ID token. The session cookie is used by the client to preserve the user's login state.", +"flatPath": "v1/projects/{projectsId}:createSessionCookie", +"httpMethod": "POST", +"id": "identitytoolkit.projects.createSessionCookie", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "The ID of the project that the account belongs to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}:createSessionCookie", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryAccounts": { +"description": "Looks up user accounts within a project or a tenant based on conditions in the request.", +"flatPath": "v1/projects/{projectsId}:queryAccounts", +"httpMethod": "POST", +"id": "identitytoolkit.projects.queryAccounts", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "The ID of the project to which the result is scoped.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}:queryAccounts", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +}, +"resources": { +"accounts": { +"methods": { +"batchCreate": { +"description": "Uploads multiple accounts into the Google Cloud project. If there is a problem uploading one or more of the accounts, the rest will be uploaded, and a list of the errors will be returned. To use this method requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"flatPath": "v1/projects/{projectsId}/accounts:batchCreate", +"httpMethod": "POST", +"id": "identitytoolkit.projects.accounts.batchCreate", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "The Project ID of the Identity Platform project which the account belongs to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/accounts:batchCreate", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1UploadAccountRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1UploadAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"batchDelete": { +"description": "Batch deletes multiple accounts. For accounts that fail to be deleted, error info is contained in the response. The method ignores accounts that do not exist or are duplicated in the request. This method requires a Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control).", +"flatPath": "v1/projects/{projectsId}/accounts:batchDelete", +"httpMethod": "POST", +"id": "identitytoolkit.projects.accounts.batchDelete", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "If `tenant_id` is specified, the ID of the Google Cloud project that the Identity Platform tenant belongs to. Otherwise, the ID of the Google Cloud project that accounts belong to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/accounts:batchDelete", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"batchGet": { +"description": "Download account information for all accounts on the project in a paginated manner. To use this method requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).. Furthermore, additional permissions are needed to get password hash, password salt, and password version from accounts; otherwise these fields are redacted.", +"flatPath": "v1/projects/{projectsId}/accounts:batchGet", +"httpMethod": "GET", +"id": "identitytoolkit.projects.accounts.batchGet", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"delegatedProjectNumber": { +"deprecated": true, +"format": "int64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of results to return. Must be at least 1 and no greater than 1000. By default, it is 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"nextPageToken": { +"description": "The pagination token from the response of a previous request.", +"location": "query", +"type": "string" +}, +"targetProjectId": { +"description": "If `tenant_id` is specified, the ID of the Google Cloud project that the Identity Platform tenant belongs to. Otherwise, the ID of the Google Cloud project that the accounts belong to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the accounts belongs to. If not specified, accounts on the Identity Platform project are returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/accounts:batchGet", +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1DownloadAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes a user's account.", +"flatPath": "v1/projects/{projectsId}/accounts:delete", +"httpMethod": "POST", +"id": "identitytoolkit.projects.accounts.delete", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "The ID of the project which the account belongs to. Should only be specified in authenticated requests that specify local_id of an account.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/accounts:delete", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"lookup": { +"description": "Gets account information for all matched accounts. For an end user request, retrieves the account of the end user. For an admin request with Google OAuth 2.0 credential, retrieves one or multiple account(s) with matching criteria.", +"flatPath": "v1/projects/{projectsId}/accounts:lookup", +"httpMethod": "POST", +"id": "identitytoolkit.projects.accounts.lookup", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "The ID of the Google Cloud project that the account or the Identity Platform tenant specified by `tenant_id` belongs to. Should only be specified by authenticated requests bearing a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/accounts:lookup", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"query": { +"description": "Looks up user accounts within a project or a tenant based on conditions in the request.", +"flatPath": "v1/projects/{projectsId}/accounts:query", +"httpMethod": "POST", +"id": "identitytoolkit.projects.accounts.query", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "The ID of the project to which the result is scoped.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/accounts:query", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"sendOobCode": { +"description": "Sends an out-of-band confirmation code for an account. Requests from a authenticated request can optionally return a link including the OOB code instead of sending it.", +"flatPath": "v1/projects/{projectsId}/accounts:sendOobCode", +"httpMethod": "POST", +"id": "identitytoolkit.projects.accounts.sendOobCode", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "The Project ID of the Identity Platform project which the account belongs to. To specify this field, it requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/accounts:sendOobCode", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates account-related information for the specified user by setting specific fields or applying action codes. Requests from administrators and end users are supported.", +"flatPath": "v1/projects/{projectsId}/accounts:update", +"httpMethod": "POST", +"id": "identitytoolkit.projects.accounts.update", +"parameterOrder": [ +"targetProjectId" +], +"parameters": { +"targetProjectId": { +"description": "The project ID for the project that the account belongs to. Specifying this field requires Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control). Requests from end users should pass an Identity Platform ID token instead.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/accounts:update", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"tenants": { +"methods": { +"accounts": { +"description": "Signs up a new email and password user or anonymous user, or upgrades an anonymous user to email and password. For an admin request with a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control), creates a new anonymous, email and password, or phone number user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts", +"httpMethod": "POST", +"id": "identitytoolkit.projects.tenants.accounts", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"targetProjectId": { +"description": "The project ID of the project which the user should belong to. Specifying this field requires a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control). If this is not set, the target project is inferred from the scope associated to the Bearer access token.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant to create a user under. If not set, the user will be created under the default Identity Platform project.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SignUpRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SignUpResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"createSessionCookie": { +"description": "Creates a session cookie for the given Identity Platform ID token. The session cookie is used by the client to preserve the user's login state.", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}:createSessionCookie", +"httpMethod": "POST", +"id": "identitytoolkit.projects.tenants.createSessionCookie", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"targetProjectId": { +"description": "The ID of the project that the account belongs to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The tenant ID of the Identity Platform tenant the account belongs to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}:createSessionCookie", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"accounts": { +"methods": { +"batchCreate": { +"description": "Uploads multiple accounts into the Google Cloud project. If there is a problem uploading one or more of the accounts, the rest will be uploaded, and a list of the errors will be returned. To use this method requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:batchCreate", +"httpMethod": "POST", +"id": "identitytoolkit.projects.tenants.accounts.batchCreate", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"targetProjectId": { +"description": "The Project ID of the Identity Platform project which the account belongs to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the account belongs to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:batchCreate", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1UploadAccountRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1UploadAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"batchDelete": { +"description": "Batch deletes multiple accounts. For accounts that fail to be deleted, error info is contained in the response. The method ignores accounts that do not exist or are duplicated in the request. This method requires a Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control).", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:batchDelete", +"httpMethod": "POST", +"id": "identitytoolkit.projects.tenants.accounts.batchDelete", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"targetProjectId": { +"description": "If `tenant_id` is specified, the ID of the Google Cloud project that the Identity Platform tenant belongs to. Otherwise, the ID of the Google Cloud project that accounts belong to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "If the accounts belong to an Identity Platform tenant, the ID of the tenant. If the accounts belong to a default Identity Platform project, the field is not needed.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:batchDelete", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"batchGet": { +"description": "Download account information for all accounts on the project in a paginated manner. To use this method requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).. Furthermore, additional permissions are needed to get password hash, password salt, and password version from accounts; otherwise these fields are redacted.", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:batchGet", +"httpMethod": "GET", +"id": "identitytoolkit.projects.tenants.accounts.batchGet", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"delegatedProjectNumber": { +"deprecated": true, +"format": "int64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "The maximum number of results to return. Must be at least 1 and no greater than 1000. By default, it is 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"nextPageToken": { +"description": "The pagination token from the response of a previous request.", +"location": "query", +"type": "string" +}, +"targetProjectId": { +"description": "If `tenant_id` is specified, the ID of the Google Cloud project that the Identity Platform tenant belongs to. Otherwise, the ID of the Google Cloud project that the accounts belong to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the accounts belongs to. If not specified, accounts on the Identity Platform project are returned.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:batchGet", +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1DownloadAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Deletes a user's account.", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:delete", +"httpMethod": "POST", +"id": "identitytoolkit.projects.tenants.accounts.delete", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"targetProjectId": { +"description": "The ID of the project which the account belongs to. Should only be specified in authenticated requests that specify local_id of an account.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The ID of the tenant that the account belongs to, if applicable. Only require to be specified for authenticated requests bearing a Google OAuth 2.0 credential that specify local_id of an account that belongs to an Identity Platform tenant.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:delete", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"lookup": { +"description": "Gets account information for all matched accounts. For an end user request, retrieves the account of the end user. For an admin request with Google OAuth 2.0 credential, retrieves one or multiple account(s) with matching criteria.", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:lookup", +"httpMethod": "POST", +"id": "identitytoolkit.projects.tenants.accounts.lookup", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"targetProjectId": { +"description": "The ID of the Google Cloud project that the account or the Identity Platform tenant specified by `tenant_id` belongs to. Should only be specified by authenticated requests bearing a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The ID of the tenant that the account belongs to. Should only be specified by authenticated requests from a developer.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:lookup", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"query": { +"description": "Looks up user accounts within a project or a tenant based on conditions in the request.", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:query", +"httpMethod": "POST", +"id": "identitytoolkit.projects.tenants.accounts.query", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"targetProjectId": { +"description": "The ID of the project to which the result is scoped.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The ID of the tenant to which the result is scoped.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:query", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"sendOobCode": { +"description": "Sends an out-of-band confirmation code for an account. Requests from a authenticated request can optionally return a link including the OOB code instead of sending it.", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:sendOobCode", +"httpMethod": "POST", +"id": "identitytoolkit.projects.tenants.accounts.sendOobCode", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"targetProjectId": { +"description": "The Project ID of the Identity Platform project which the account belongs to. To specify this field, it requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The tenant ID of the Identity Platform tenant the account belongs to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:sendOobCode", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates account-related information for the specified user by setting specific fields or applying action codes. Requests from administrators and end users are supported.", +"flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:update", +"httpMethod": "POST", +"id": "identitytoolkit.projects.tenants.accounts.update", +"parameterOrder": [ +"targetProjectId", +"tenantId" +], +"parameters": { +"targetProjectId": { +"description": "The project ID for the project that the account belongs to. Specifying this field requires Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control). Requests from end users should pass an Identity Platform ID token instead.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"tenantId": { +"description": "The tenant ID of the Identity Platform tenant that the account belongs to. Requests from end users should pass an Identity Platform ID token rather than setting this field.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:update", +"request": { +"$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoRequest" +}, +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"v1": { +"methods": { +"getProjects": { +"description": "Gets a project's public Identity Toolkit configuration. (Legacy) This method also supports authenticated calls from a developer to retrieve non-public configuration.", +"flatPath": "v1/projects", +"httpMethod": "GET", +"id": "identitytoolkit.getProjects", +"parameterOrder": [], +"parameters": { +"androidPackageName": { +"description": "Android package name to check against the real android package name. If this field is provided, and sha1_cert_hash is not provided, the action will throw an error if this does not match the real android package name.", +"location": "query", +"type": "string" +}, +"clientId": { +"description": "The RP OAuth client ID. If set, a check will be performed to ensure that the OAuth client is valid for the retrieved project and the request rejected with a client error if not valid.", +"location": "query", +"type": "string" +}, +"delegatedProjectNumber": { +"description": "Project Number of the delegated project request. This field should only be used as part of the Firebase V1 migration.", +"format": "int64", +"location": "query", +"type": "string" +}, +"firebaseAppId": { +"description": "The Firebase app ID, for applications that use Firebase. This can be found in the Firebase console for your project. If set, a check will be performed to ensure that the app ID is valid for the retrieved project. If not valid, the request will be rejected with a client error.", +"location": "query", +"type": "string" +}, +"iosBundleId": { +"description": "iOS bundle id to check against the real ios bundle id. If this field is provided, the action will throw an error if this does not match the real iOS bundle id.", +"location": "query", +"type": "string" +}, +"projectNumber": { +"description": "Project number of the configuration to retrieve. This field is deprecated and should not be used by new integrations.", +"format": "int64", +"location": "query", +"type": "string" +}, +"returnDynamicLink": { +"description": "Whether dynamic link should be returned.", +"location": "query", +"type": "boolean" +}, +"sha1Cert": { +"description": "SHA-1 Android application cert hash. If set, a check will be performed to ensure that the cert hash is valid for the retrieved project and android_package_name.", +"location": "query", +"type": "string" +} +}, +"path": "v1/projects", +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1GetProjectConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getPublicKeys": { +"description": "Retrieves public keys of the legacy Identity Toolkit token signer to enable third parties to verify the legacy ID token. For now the X509 pem cert is the only format supported.", +"flatPath": "v1/publicKeys", +"httpMethod": "GET", +"id": "identitytoolkit.getPublicKeys", +"parameterOrder": [], +"parameters": {}, +"path": "v1/publicKeys", +"response": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getRecaptchaParams": { +"description": "Gets parameters needed for generating a reCAPTCHA challenge.", +"flatPath": "v1/recaptchaParams", +"httpMethod": "GET", +"id": "identitytoolkit.getRecaptchaParams", +"parameterOrder": [], +"parameters": {}, +"path": "v1/recaptchaParams", +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSessionCookiePublicKeys": { +"description": "Retrieves the set of public keys of the session cookie JSON Web Token (JWT) signer that can be used to validate the session cookie created through createSessionCookie.", +"flatPath": "v1/sessionCookiePublicKeys", +"httpMethod": "GET", +"id": "identitytoolkit.getSessionCookiePublicKeys", +"parameterOrder": [], +"parameters": {}, +"path": "v1/sessionCookiePublicKeys", +"response": { +"$ref": "GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse" +} +} +} +} +}, +"revision": "20241205", +"rootUrl": "https://identitytoolkit.googleapis.com/", +"schemas": { +"GoogleCloudIdentitytoolkitV1Argon2Parameters": { +"description": "The parameters for Argon2 hashing algorithm.", +"id": "GoogleCloudIdentitytoolkitV1Argon2Parameters", +"properties": { +"associatedData": { +"description": "The additional associated data, if provided, is appended to the hash value to provide an additional layer of security. A base64-encoded string if specified via JSON.", +"format": "byte", +"type": "string" +}, +"hashLengthBytes": { +"description": "Required. The desired hash length in bytes. Minimum is 4 and maximum is 1024.", +"format": "int32", +"type": "integer" +}, +"hashType": { +"description": "Required. Must not be HASH_TYPE_UNSPECIFIED.", +"enum": [ +"HASH_TYPE_UNSPECIFIED", +"ARGON2_D", +"ARGON2_ID", +"ARGON2_I" +], +"enumDescriptions": [ +"The hash type is not specified.", +"An Argon2 variant, Argon2d.", +"An Argon2 variant, Argonid. Recommended.", +"An Argon2 variant, Argon2i." +], +"type": "string" +}, +"iterations": { +"description": "Required. The number of iterations to perform. Minimum is 1, maximum is 16.", +"format": "int32", +"type": "integer" +}, +"memoryCostKib": { +"description": "Required. The memory cost in kibibytes. Maximum is 32768.", +"format": "int32", +"type": "integer" +}, +"parallelism": { +"description": "Required. The degree of parallelism, also called threads or lanes. Minimum is 1, maximum is 16.", +"format": "int32", +"type": "integer" +}, +"version": { +"description": "The version of the Argon2 algorithm. This defaults to VERSION_13 if not specified.", +"enum": [ +"VERSION_UNSPECIFIED", +"VERSION_10", +"VERSION_13" +], +"enumDescriptions": [ +"The version is not specified.", +"The previous version, 0x10.", +"The current version, 0x13. The default value for version." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1AutoRetrievalInfo": { +"description": "The information required to auto-retrieve an SMS.", +"id": "GoogleCloudIdentitytoolkitV1AutoRetrievalInfo", +"properties": { +"appSignatureHash": { +"description": "The Android app's signature hash for Google Play Service's SMS Retriever API.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest": { +"description": "Request message for BatchDeleteAccounts.", +"id": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest", +"properties": { +"force": { +"description": "Whether to force deleting accounts that are not in disabled state. If false, only disabled accounts will be deleted, and accounts that are not disabled will be added to the `errors`.", +"type": "boolean" +}, +"localIds": { +"description": "Required. List of user IDs to be deleted.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tenantId": { +"description": "If the accounts belong to an Identity Platform tenant, the ID of the tenant. If the accounts belong to a default Identity Platform project, the field is not needed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse": { +"description": "Response message to BatchDeleteAccounts.", +"id": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse", +"properties": { +"errors": { +"description": "Detailed error info for accounts that cannot be deleted.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1BatchDeleteErrorInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1BatchDeleteErrorInfo": { +"description": "Error info for account failed to be deleted.", +"id": "GoogleCloudIdentitytoolkitV1BatchDeleteErrorInfo", +"properties": { +"index": { +"description": "The index of the errored item in the original local_ids field.", +"format": "int32", +"type": "integer" +}, +"localId": { +"description": "The corresponding user ID.", +"type": "string" +}, +"message": { +"description": "Detailed error message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1CreateAuthUriRequest": { +"description": "Request message for CreateAuthUri.", +"id": "GoogleCloudIdentitytoolkitV1CreateAuthUriRequest", +"properties": { +"appId": { +"deprecated": true, +"type": "string" +}, +"authFlowType": { +"description": "Used for the Google provider. The type of the authentication flow to be used. If present, this should be `CODE_FLOW` to specify the authorization code flow. Otherwise, the default ID Token flow will be used.", +"type": "string" +}, +"context": { +"description": "An opaque string used to maintain contextual information between the authentication request and the callback from the IdP.", +"type": "string" +}, +"continueUri": { +"description": "A valid URL for the IdP to redirect the user back to. The URL cannot contain fragments or the reserved `state` query parameter.", +"type": "string" +}, +"customParameter": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional customized query parameters to be added to the authorization URI. The following parameters are reserved and cannot be added: `client_id`, `response_type`, `scope`, `redirect_uri`, `state`. For the Microsoft provider, the Azure AD tenant to sign-in to can be specified in the `tenant` custom parameter.", +"type": "object" +}, +"hostedDomain": { +"description": "Used for the Google provider. The G Suite hosted domain of the user in order to restrict sign-in to users at that domain.", +"type": "string" +}, +"identifier": { +"description": "The email identifier of the user account to fetch associated providers for. At least one of the fields `identifier` and `provider_id` must be set. The length of the email address should be less than 256 characters and in the format of `name@domain.tld`. The email address should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec production.", +"type": "string" +}, +"oauthConsumerKey": { +"deprecated": true, +"type": "string" +}, +"oauthScope": { +"description": "Additional space-delimited OAuth 2.0 scopes specifying the scope of the authentication request with the IdP. Used for OAuth 2.0 IdPs. For the Google provider, the authorization code flow will be used if this field is set.", +"type": "string" +}, +"openidRealm": { +"deprecated": true, +"type": "string" +}, +"otaApp": { +"deprecated": true, +"type": "string" +}, +"providerId": { +"description": "The provider ID of the IdP for the user to sign in with. This should be a provider ID enabled for sign-in, which is either from the list of [default supported IdPs](https://cloud.google.com/identity-platform/docs/reference/rest/v2/defaultSupportedIdps/list), or of the format `oidc.*` or `saml.*`. Some examples are `google.com`, `facebook.com`, `oidc.testapp`, and `saml.testapp`. At least one of the fields `identifier` and `provider_id` must be set.", +"type": "string" +}, +"sessionId": { +"description": "A session ID that can be verified against in SignInWithIdp to prevent session fixation attacks. If absent, a random string will be generated and returned as the session ID.", +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant to create an authorization URI or lookup an email identifier for. If not set, the operation will be performed in the default Identity Platform instance in the project.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1CreateAuthUriResponse": { +"description": "Response message for CreateAuthUri.", +"id": "GoogleCloudIdentitytoolkitV1CreateAuthUriResponse", +"properties": { +"allProviders": { +"deprecated": true, +"items": { +"type": "string" +}, +"type": "array" +}, +"authUri": { +"description": "The authorization URI for the requested provider. Present only when a provider ID is set in the request.", +"type": "string" +}, +"captchaRequired": { +"description": "Whether a CAPTCHA is needed because there have been too many failed login attempts by the user. Present only when a registered email identifier is set in the request.", +"type": "boolean" +}, +"forExistingProvider": { +"description": "Whether the user has previously signed in with the provider ID in the request. Present only when a registered email identifier is set in the request.", +"type": "boolean" +}, +"kind": { +"deprecated": true, +"type": "string" +}, +"providerId": { +"description": "The provider ID from the request, if provided.", +"type": "string" +}, +"registered": { +"description": "Whether the email identifier represents an existing account. Present only when an email identifier is set in the request.", +"type": "boolean" +}, +"sessionId": { +"description": "The session ID from the request, or a random string generated by CreateAuthUri if absent. It is used to prevent session fixation attacks.", +"type": "string" +}, +"signinMethods": { +"description": "The list of sign-in methods that the user has previously used. Each element is one of `password`, `emailLink`, or the provider ID of an IdP. Present only when a registered email identifier is set in the request. If [email enumeration protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, this method returns an empty list.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest": { +"description": "Request message for CreateSessionCookie.", +"id": "GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest", +"properties": { +"idToken": { +"description": "Required. A valid Identity Platform ID token.", +"type": "string" +}, +"tenantId": { +"description": "The tenant ID of the Identity Platform tenant the account belongs to.", +"type": "string" +}, +"validDuration": { +"description": "The number of seconds until the session cookie expires. Specify a duration in seconds, between five minutes and fourteen days, inclusively.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse": { +"description": "Response message for CreateSessionCookie.", +"id": "GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse", +"properties": { +"sessionCookie": { +"description": "The session cookie that has been created from the Identity Platform ID token specified in the request. It is in the form of a JSON Web Token (JWT). Always present.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1DeleteAccountRequest": { +"description": "Request message for DeleteAccount.", +"id": "GoogleCloudIdentitytoolkitV1DeleteAccountRequest", +"properties": { +"delegatedProjectNumber": { +"deprecated": true, +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "The Identity Platform ID token of the account to delete. Require to be specified for requests from end users that lack Google OAuth 2.0 credential. Authenticated requests bearing a Google OAuth2 credential with proper permissions may pass local_id to specify the account to delete alternatively.", +"type": "string" +}, +"localId": { +"description": "The ID of user account to delete. Specifying this field requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control). Requests from users lacking the credential should pass an ID token instead.", +"type": "string" +}, +"targetProjectId": { +"description": "The ID of the project which the account belongs to. Should only be specified in authenticated requests that specify local_id of an account.", +"type": "string" +}, +"tenantId": { +"description": "The ID of the tenant that the account belongs to, if applicable. Only require to be specified for authenticated requests bearing a Google OAuth 2.0 credential that specify local_id of an account that belongs to an Identity Platform tenant.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1DeleteAccountResponse": { +"description": "Response message for DeleteAccount.", +"id": "GoogleCloudIdentitytoolkitV1DeleteAccountResponse", +"properties": { +"kind": { +"deprecated": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1DownloadAccountResponse": { +"description": "Response message for DownloadAccount.", +"id": "GoogleCloudIdentitytoolkitV1DownloadAccountResponse", +"properties": { +"kind": { +"deprecated": true, +"type": "string" +}, +"nextPageToken": { +"description": "If there are more accounts to be downloaded, a token that can be passed back to DownloadAccount to get more accounts. Otherwise, this is blank.", +"type": "string" +}, +"users": { +"description": "All accounts belonging to the project/tenant limited by max_results in the request.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1UserInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1EmailInfo": { +"description": "Information about email MFA.", +"id": "GoogleCloudIdentitytoolkitV1EmailInfo", +"properties": { +"emailAddress": { +"description": "Email address that a MFA verification should be sent to.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1EmailTemplate": { +"description": "Email template", +"id": "GoogleCloudIdentitytoolkitV1EmailTemplate", +"properties": { +"body": { +"description": "Email body", +"type": "string" +}, +"customized": { +"description": "Whether the body or subject of the email is customized.", +"type": "boolean" +}, +"disabled": { +"description": "Whether the template is disabled. If true, a default template will be used.", +"type": "boolean" +}, +"format": { +"description": "Email body format", +"enum": [ +"EMAIL_BODY_FORMAT_UNSPECIFIED", +"PLAINTEXT", +"HTML" +], +"enumDescriptions": [ +"Default value. Do not use.", +"Email body is in plain text format.", +"Email body is in HTML format." +], +"type": "string" +}, +"from": { +"description": "From address of the email", +"type": "string" +}, +"fromDisplayName": { +"description": "From display name", +"type": "string" +}, +"fromLocalPart": { +"description": "Local part of From address", +"type": "string" +}, +"locale": { +"description": "Value is in III language code format (e.g. \"zh-CN\", \"es\"). Both '-' and '_' separators are accepted.", +"type": "string" +}, +"replyTo": { +"description": "Reply-to address", +"type": "string" +}, +"subject": { +"description": "Subject of the email", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1ErrorInfo": { +"description": "Error information explaining why an account cannot be uploaded. batch upload.", +"id": "GoogleCloudIdentitytoolkitV1ErrorInfo", +"properties": { +"index": { +"description": "The index of the item, range is [0, request.size - 1]", +"format": "int32", +"type": "integer" +}, +"message": { +"description": "Detailed error message", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1FederatedUserIdentifier": { +"description": "Federated user identifier at an Identity Provider.", +"id": "GoogleCloudIdentitytoolkitV1FederatedUserIdentifier", +"properties": { +"providerId": { +"description": "The ID of supported identity providers. This should be a provider ID enabled for sign-in, which is either from the list of [default supported IdPs](https://cloud.google.com/identity-platform/docs/reference/rest/v2/defaultSupportedIdps/list), or of the format `oidc.*` or `saml.*`. Some examples are `google.com`, `facebook.com`, `oidc.testapp`, and `saml.testapp`.", +"type": "string" +}, +"rawId": { +"description": "The user ID of the account at the third-party Identity Provider specified by `provider_id`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1GetAccountInfoRequest": { +"description": "Request message for GetAccountInfo.", +"id": "GoogleCloudIdentitytoolkitV1GetAccountInfoRequest", +"properties": { +"delegatedProjectNumber": { +"deprecated": true, +"format": "int64", +"type": "string" +}, +"email": { +"description": "The email address of one or more accounts to fetch. The length of email should be less than 256 characters and in the format of `name@domain.tld`. The email should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec production. Should only be specified by authenticated requests from a developer.", +"items": { +"type": "string" +}, +"type": "array" +}, +"federatedUserId": { +"description": "The federated user identifier of one or more accounts to fetch. Should only be specified by authenticated requests bearing a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1FederatedUserIdentifier" +}, +"type": "array" +}, +"idToken": { +"description": "The Identity Platform ID token of the account to fetch. Require to be specified for requests from end users.", +"type": "string" +}, +"initialEmail": { +"description": "The initial email of one or more accounts to fetch. The length of email should be less than 256 characters and in the format of `name@domain.tld`. The email should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec production. Should only be specified by authenticated requests from a developer.", +"items": { +"type": "string" +}, +"type": "array" +}, +"localId": { +"description": "The ID of one or more accounts to fetch. Should only be specified by authenticated requests bearing a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"items": { +"type": "string" +}, +"type": "array" +}, +"phoneNumber": { +"description": "The phone number of one or more accounts to fetch. Should only be specified by authenticated requests from a developer and should be in E.164 format, for example, +15555555555.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetProjectId": { +"description": "The ID of the Google Cloud project that the account or the Identity Platform tenant specified by `tenant_id` belongs to. Should only be specified by authenticated requests bearing a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"type": "string" +}, +"tenantId": { +"description": "The ID of the tenant that the account belongs to. Should only be specified by authenticated requests from a developer.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1GetAccountInfoResponse": { +"description": "Response message for GetAccountInfo.", +"id": "GoogleCloudIdentitytoolkitV1GetAccountInfoResponse", +"properties": { +"kind": { +"deprecated": true, +"type": "string" +}, +"users": { +"description": "The information of specific user account(s) matching the parameters in the request.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1UserInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1GetOobCodeRequest": { +"description": "Request message for GetOobCode.", +"id": "GoogleCloudIdentitytoolkitV1GetOobCodeRequest", +"properties": { +"androidInstallApp": { +"description": "If an associated android app can handle the OOB code, whether or not to install the android app on the device where the link is opened if the app is not already installed.", +"type": "boolean" +}, +"androidMinimumVersion": { +"description": "If an associated android app can handle the OOB code, the minimum version of the app. If the version on the device is lower than this version then the user is taken to Google Play Store to upgrade the app.", +"type": "string" +}, +"androidPackageName": { +"description": "If an associated android app can handle the OOB code, the Android package name of the android app that will handle the callback when this OOB code is used. This will allow the correct app to open if it is already installed, or allow Google Play Store to open to the correct app if it is not yet installed.", +"type": "string" +}, +"canHandleCodeInApp": { +"description": "When set to true, the OOB code link will be be sent as a Universal Link or an Android App Link and will be opened by the corresponding app if installed. If not set, or set to false, the OOB code will be sent to the web widget first and then on continue will redirect to the app if installed.", +"type": "boolean" +}, +"captchaResp": { +"description": "For a PASSWORD_RESET request, a reCaptcha response is required when the system detects possible abuse activity. In those cases, this is the response from the reCaptcha challenge used to verify the caller.", +"type": "string" +}, +"challenge": { +"deprecated": true, +"type": "string" +}, +"clientType": { +"description": "The client type: web, Android or iOS. Required when reCAPTCHA Enterprise protection is enabled.", +"enum": [ +"CLIENT_TYPE_UNSPECIFIED", +"CLIENT_TYPE_WEB", +"CLIENT_TYPE_ANDROID", +"CLIENT_TYPE_IOS" +], +"enumDescriptions": [ +"Client type is not specified.", +"Client type is web.", +"Client type is android.", +"Client type is ios." +], +"type": "string" +}, +"continueUrl": { +"description": "The Url to continue after user clicks the link sent in email. This is the url that will allow the web widget to handle the OOB code.", +"type": "string" +}, +"dynamicLinkDomain": { +"description": "In order to ensure that the url used can be easily opened up in iOS or android, we create a [Firebase Dynamic Link](https://firebase.google.com/docs/dynamic-links). Most Identity Platform projects will only have one Dynamic Link domain enabled, and can leave this field blank. This field contains a specified Dynamic Link domain for projects that have multiple enabled.", +"type": "string" +}, +"email": { +"description": "The account's email address to send the OOB code to, and generally the email address of the account that needs to be updated. Required for PASSWORD_RESET, EMAIL_SIGNIN, and VERIFY_EMAIL. Only required for VERIFY_AND_CHANGE_EMAIL requests when return_oob_link is set to true. In this case, it is the original email of the user.", +"type": "string" +}, +"iOSAppStoreId": { +"description": "If an associated iOS app can handle the OOB code, the App Store id of this app. This will allow App Store to open to the correct app if the app is not yet installed.", +"type": "string" +}, +"iOSBundleId": { +"description": "If an associated iOS app can handle the OOB code, the iOS bundle id of this app. This will allow the correct app to open if it is already installed.", +"type": "string" +}, +"idToken": { +"description": "An ID token for the account. It is required for VERIFY_AND_CHANGE_EMAIL and VERIFY_EMAIL requests unless return_oob_link is set to true.", +"type": "string" +}, +"newEmail": { +"description": "The email address the account is being updated to. Required only for VERIFY_AND_CHANGE_EMAIL requests.", +"type": "string" +}, +"recaptchaVersion": { +"description": "The reCAPTCHA version of the reCAPTCHA token in the captcha_response.", +"enum": [ +"RECAPTCHA_VERSION_UNSPECIFIED", +"RECAPTCHA_ENTERPRISE" +], +"enumDescriptions": [ +"The reCAPTCHA version is not specified.", +"The reCAPTCHA enterprise." +], +"type": "string" +}, +"requestType": { +"description": "Required. The type of out-of-band (OOB) code to send. Depending on this value, other fields in this request will be required and/or have different meanings. There are 4 different OOB codes that can be sent: * PASSWORD_RESET * EMAIL_SIGNIN * VERIFY_EMAIL * VERIFY_AND_CHANGE_EMAIL", +"enum": [ +"OOB_REQ_TYPE_UNSPECIFIED", +"PASSWORD_RESET", +"OLD_EMAIL_AGREE", +"NEW_EMAIL_ACCEPT", +"VERIFY_EMAIL", +"RECOVER_EMAIL", +"EMAIL_SIGNIN", +"VERIFY_AND_CHANGE_EMAIL", +"REVERT_SECOND_FACTOR_ADDITION" +], +"enumDeprecated": [ +false, +false, +true, +true, +false, +true, +false, +false, +true +], +"enumDescriptions": [ +"Oob code type is not specified.", +"reset password", +"", +"", +"verify the account's email address by sending an email", +"", +"sign in with email only", +"This flow sends an email to the specified new email, and when applied by clicking the link in the email changes the account's email to the new email. Used when the account must have verified email at all times, such as MFA accounts.", +"" +], +"type": "string" +}, +"returnOobLink": { +"description": "Whether the confirmation link containing the OOB code should be returned in the response (no email is sent). Used when a developer wants to construct the email template and send it on their own. By default this is false; to specify this field, and to set it to true, it requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control)", +"type": "boolean" +}, +"targetProjectId": { +"description": "The Project ID of the Identity Platform project which the account belongs to. To specify this field, it requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"type": "string" +}, +"tenantId": { +"description": "The tenant ID of the Identity Platform tenant the account belongs to.", +"type": "string" +}, +"userIp": { +"description": "The IP address of the caller. Required only for PASSWORD_RESET requests.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1GetOobCodeResponse": { +"description": "Response message for GetOobCode.", +"id": "GoogleCloudIdentitytoolkitV1GetOobCodeResponse", +"properties": { +"email": { +"description": "If return_oob_link is false in the request, the email address the verification was sent to.", +"type": "string" +}, +"kind": { +"deprecated": true, +"type": "string" +}, +"oobCode": { +"description": "If return_oob_link is true in the request, the OOB code to send.", +"type": "string" +}, +"oobLink": { +"description": "If return_oob_link is true in the request, the OOB link to be sent to the user. This returns the constructed link including [Firebase Dynamic Link](https://firebase.google.com/docs/dynamic-links) related parameters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1GetProjectConfigResponse": { +"description": "Response message for GetProjectConfig.", +"id": "GoogleCloudIdentitytoolkitV1GetProjectConfigResponse", +"properties": { +"allowPasswordUser": { +"description": "Whether to allow password account sign up. This field is only returned for authenticated calls from a developer.", +"type": "boolean" +}, +"apiKey": { +"description": "Google Cloud API key. This field is only returned for authenticated calls from a developer.", +"type": "string" +}, +"authorizedDomains": { +"description": "Authorized domains for widget redirect.", +"items": { +"type": "string" +}, +"type": "array" +}, +"changeEmailTemplate": { +"$ref": "GoogleCloudIdentitytoolkitV1EmailTemplate", +"description": "Email template for change email. This field is only returned for authenticated calls from a developer." +}, +"dynamicLinksDomain": { +"description": "The Firebase Dynamic Links domain used to construct links for redirects to native apps.", +"type": "string" +}, +"enableAnonymousUser": { +"description": "Whether anonymous user is enabled. This field is only returned for authenticated calls from a developer.", +"type": "boolean" +}, +"idpConfig": { +"description": "OAuth2 provider config. This field is only returned for authenticated calls from a developer.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1IdpConfig" +}, +"type": "array" +}, +"legacyResetPasswordTemplate": { +"$ref": "GoogleCloudIdentitytoolkitV1EmailTemplate", +"description": "Reset password email template for legacy Firebase V1 app. This field is only returned for authenticated calls from a developer." +}, +"projectId": { +"description": "The project id of the retrieved configuration.", +"type": "string" +}, +"resetPasswordTemplate": { +"$ref": "GoogleCloudIdentitytoolkitV1EmailTemplate", +"description": "Email template for reset password. This field is only returned for authenticated calls from a developer." +}, +"revertSecondFactorAdditionTemplate": { +"$ref": "GoogleCloudIdentitytoolkitV1EmailTemplate", +"description": "Email template for reverting second factor additions. This field is only returned for authenticated calls from a developer." +}, +"useEmailSending": { +"description": "Whether to use email sending. This field is only returned for authenticated calls from a developer.", +"type": "boolean" +}, +"verifyEmailTemplate": { +"$ref": "GoogleCloudIdentitytoolkitV1EmailTemplate", +"description": "Email template for verify email. This field is only returned for authenticated calls from a developer." +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse": { +"description": "Response message for GetRecaptchaParam.", +"id": "GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse", +"properties": { +"kind": { +"deprecated": true, +"type": "string" +}, +"producerProjectNumber": { +"description": "The producer project number used to generate PIA tokens", +"type": "string" +}, +"recaptchaSiteKey": { +"description": "The reCAPTCHA v2 site key used to invoke the reCAPTCHA service. Always present.", +"type": "string" +}, +"recaptchaStoken": { +"deprecated": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse": { +"description": "Response message for GetSessionCookiePublicKeys.", +"id": "GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse", +"properties": { +"keys": { +"description": "Public keys of the session cookie signer, formatted as [JSON Web Keys (JWK)](https://tools.ietf.org/html/rfc7517).", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1OpenIdConnectKey" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1IdpConfig": { +"description": "Config of an identity provider.", +"id": "GoogleCloudIdentitytoolkitV1IdpConfig", +"properties": { +"clientId": { +"description": "OAuth2 client ID.", +"type": "string" +}, +"enabled": { +"description": "True if allows the user to sign in with the provider.", +"type": "boolean" +}, +"experimentPercent": { +"description": "Percent of users who will be prompted/redirected federated login for this IdP", +"format": "int32", +"type": "integer" +}, +"provider": { +"description": "Name of the identity provider.", +"enum": [ +"PROVIDER_UNSPECIFIED", +"MSLIVE", +"GOOGLE", +"FACEBOOK", +"PAYPAL", +"TWITTER", +"YAHOO", +"AOL", +"GITHUB", +"GOOGLE_PLAY_GAMES", +"LINKEDIN", +"IOS_GAME_CENTER" +], +"enumDescriptions": [ +"", +"Microsoft Live as identity provider.", +"Google as identity provider.", +"Facebook as identity provider.", +"PayPal as identity provider.", +"Twitter as identity provider.", +"Yahoo as identity provider.", +"AOL as identity provider.", +"GitHub as identity provider.", +"Google Play Games as identity provider.", +"LinkedIn as identity provider.", +"iOS Game Center as identity provider." +], +"type": "string" +}, +"secret": { +"description": "OAuth2 client secret.", +"type": "string" +}, +"whitelistedAudiences": { +"description": "Whitelisted client IDs for audience check.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest": { +"description": "Request message for IssueSamlResponse.", +"id": "GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest", +"properties": { +"idToken": { +"description": "The Identity Platform ID token. It will be verified and then converted to a new SAMLResponse.", +"type": "string" +}, +"rpId": { +"description": "Relying Party identifier, which is the audience of issued SAMLResponse.", +"type": "string" +}, +"samlAppEntityId": { +"description": "SAML app entity id specified in Google Admin Console for each app. If developers want to redirect to a third-party app rather than a G Suite app, they'll probably they need this. When it's used, we'll return a RelayState. This includes a SAMLRequest, which can be used to trigger a SP-initiated SAML flow to redirect to the real app.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse": { +"description": "Response for IssueSamlResponse request.", +"id": "GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse", +"properties": { +"acsEndpoint": { +"description": "The ACS endpoint which consumes the returned SAMLResponse.", +"type": "string" +}, +"email": { +"description": "Email of the user.", +"type": "string" +}, +"firstName": { +"description": "First name of the user.", +"type": "string" +}, +"isNewUser": { +"description": "Whether the logged in user was created by this request.", +"type": "boolean" +}, +"lastName": { +"description": "Last name of the user.", +"type": "string" +}, +"relayState": { +"description": "Generated RelayState.", +"type": "string" +}, +"samlResponse": { +"description": "Signed SAMLResponse created for the Relying Party.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1MfaEnrollment": { +"description": "Information on which multi-factor authentication (MFA) providers are enabled for an account.", +"id": "GoogleCloudIdentitytoolkitV1MfaEnrollment", +"properties": { +"displayName": { +"description": "Display name for this mfa option e.g. \"corp cell phone\".", +"type": "string" +}, +"emailInfo": { +"$ref": "GoogleCloudIdentitytoolkitV1EmailInfo", +"description": "Contains information specific to email MFA." +}, +"enrolledAt": { +"description": "Timestamp when the account enrolled this second factor.", +"format": "google-datetime", +"type": "string" +}, +"mfaEnrollmentId": { +"description": "ID of this MFA option.", +"type": "string" +}, +"phoneInfo": { +"description": "Normally this will show the phone number associated with this enrollment. In some situations, such as after a first factor sign in, it will only show the obfuscated version of the associated phone number.", +"type": "string" +}, +"totpInfo": { +"$ref": "GoogleCloudIdentitytoolkitV1TotpInfo", +"description": "Contains information specific to TOTP MFA." +}, +"unobfuscatedPhoneInfo": { +"description": "Output only. Unobfuscated phone_info.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1MfaFactor": { +"id": "GoogleCloudIdentitytoolkitV1MfaFactor", +"properties": { +"displayName": { +"description": "Display name for this mfa option e.g. \"corp cell phone\".", +"type": "string" +}, +"phoneInfo": { +"description": "Phone number to receive OTP for MFA.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1MfaInfo": { +"description": "Multi-factor authentication related information.", +"id": "GoogleCloudIdentitytoolkitV1MfaInfo", +"properties": { +"enrollments": { +"description": "The second factors the user has enrolled.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1MfaEnrollment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1OpenIdConnectKey": { +"description": "Represents a public key of the session cookie signer, formatted as a [JSON Web Key (JWK)](https://tools.ietf.org/html/rfc7517).", +"id": "GoogleCloudIdentitytoolkitV1OpenIdConnectKey", +"properties": { +"alg": { +"description": "Signature algorithm.", +"type": "string" +}, +"e": { +"description": "Exponent for the RSA public key, it is represented as the base64url encoding of the value's big endian representation.", +"type": "string" +}, +"kid": { +"description": "Unique string to identify this key.", +"type": "string" +}, +"kty": { +"description": "Key type.", +"type": "string" +}, +"n": { +"description": "Modulus for the RSA public key, it is represented as the base64url encoding of the value's big endian representation.", +"type": "string" +}, +"use": { +"description": "Key use.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1ProviderUserInfo": { +"description": "Information about the user as provided by various Identity Providers.", +"id": "GoogleCloudIdentitytoolkitV1ProviderUserInfo", +"properties": { +"displayName": { +"description": "The user's display name at the Identity Provider.", +"type": "string" +}, +"email": { +"description": "The user's email address at the Identity Provider.", +"type": "string" +}, +"federatedId": { +"description": "The user's identifier at the Identity Provider.", +"type": "string" +}, +"phoneNumber": { +"description": "The user's phone number at the Identity Provider.", +"type": "string" +}, +"photoUrl": { +"description": "The user's profile photo URL at the Identity Provider.", +"type": "string" +}, +"providerId": { +"description": "The ID of the Identity Provider.", +"type": "string" +}, +"rawId": { +"description": "The user's raw identifier directly returned from Identity Provider.", +"type": "string" +}, +"screenName": { +"description": "The user's screen_name at Twitter or login name at GitHub.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1QueryUserInfoRequest": { +"description": "Request message for QueryUserInfo.", +"id": "GoogleCloudIdentitytoolkitV1QueryUserInfoRequest", +"properties": { +"expression": { +"description": "Query conditions used to filter results. If more than one is passed, only the first SqlExpression is evaluated.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1SqlExpression" +}, +"type": "array" +}, +"limit": { +"description": "The maximum number of accounts to return with an upper limit of __500__. Defaults to _500_. Only valid when `return_user_info` is set to `true`.", +"format": "int64", +"type": "string" +}, +"offset": { +"description": "The number of accounts to skip from the beginning of matching records. Only valid when `return_user_info` is set to `true`.", +"format": "int64", +"type": "string" +}, +"order": { +"description": "The order for sorting query result. Defaults to __ascending__ order. Only valid when `return_user_info` is set to `true`.", +"enum": [ +"ORDER_UNSPECIFIED", +"ASC", +"DESC" +], +"enumDescriptions": [ +"Order is not specified.", +"Sort on ascending order.", +"Sort on descending order." +], +"type": "string" +}, +"returnUserInfo": { +"description": "If `true`, this request will return the accounts matching the query. If `false`, only the __count__ of accounts matching the query will be returned. Defaults to `true`.", +"type": "boolean" +}, +"sortBy": { +"description": "The field to use for sorting user accounts. Defaults to `USER_ID`. Note: when `phone_number` is specified in `expression`, the result ignores the sorting. Only valid when `return_user_info` is set to `true`.", +"enum": [ +"SORT_BY_FIELD_UNSPECIFIED", +"USER_ID", +"NAME", +"CREATED_AT", +"LAST_LOGIN_AT", +"USER_EMAIL" +], +"enumDescriptions": [ +"Sort field is not specified.", +"Sort result by userId.", +"Sort result by name.", +"Sort result by createdAt.", +"Sort result by lastLoginAt.", +"Sort result by userEmail." +], +"type": "string" +}, +"tenantId": { +"description": "The ID of the tenant to which the result is scoped.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1QueryUserInfoResponse": { +"description": "Response message for QueryUserInfo.", +"id": "GoogleCloudIdentitytoolkitV1QueryUserInfoResponse", +"properties": { +"recordsCount": { +"description": "If `return_user_info` in the request is true, this is the number of returned accounts in this message. Otherwise, this is the total number of accounts matching the query.", +"format": "int64", +"type": "string" +}, +"userInfo": { +"description": "If `return_user_info` in the request is true, this is the accounts matching the query.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1UserInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1ResetPasswordRequest": { +"description": "Request message for ResetPassword.", +"id": "GoogleCloudIdentitytoolkitV1ResetPasswordRequest", +"properties": { +"email": { +"description": "Optional. The email of the account to be modified. Specify this and the old password in order to change an account's password without using an out-of-band code.", +"type": "string" +}, +"newPassword": { +"description": "The new password to be set for this account. Specifying this field will result in a change to the account and consume the out-of-band code if one was specified and it was of type PASSWORD_RESET.", +"type": "string" +}, +"oldPassword": { +"description": "The current password of the account to be modified. Specify this and email to change an account's password without using an out-of-band code.", +"type": "string" +}, +"oobCode": { +"description": "An out-of-band (OOB) code generated by GetOobCode request. Specify only this parameter (or only this parameter and a tenant ID) to get the out-of-band code's type in the response without mutating the account's state. Only a PASSWORD_RESET out-of-band code can be consumed via this method.", +"type": "string" +}, +"tenantId": { +"description": "Optional. The tenant ID of the Identity Platform tenant the account belongs to.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1ResetPasswordResponse": { +"description": "Response message for ResetPassword.", +"id": "GoogleCloudIdentitytoolkitV1ResetPasswordResponse", +"properties": { +"email": { +"description": "The email associated with the out-of-band code that was used.", +"type": "string" +}, +"kind": { +"deprecated": true, +"type": "string" +}, +"mfaInfo": { +"$ref": "GoogleCloudIdentitytoolkitV1MfaEnrollment" +}, +"newEmail": { +"type": "string" +}, +"requestType": { +"enum": [ +"OOB_REQ_TYPE_UNSPECIFIED", +"PASSWORD_RESET", +"OLD_EMAIL_AGREE", +"NEW_EMAIL_ACCEPT", +"VERIFY_EMAIL", +"RECOVER_EMAIL", +"EMAIL_SIGNIN", +"VERIFY_AND_CHANGE_EMAIL", +"REVERT_SECOND_FACTOR_ADDITION" +], +"enumDeprecated": [ +false, +false, +true, +true, +false, +true, +false, +false, +true +], +"enumDescriptions": [ +"Oob code type is not specified.", +"reset password", +"", +"", +"verify the account's email address by sending an email", +"", +"sign in with email only", +"This flow sends an email to the specified new email, and when applied by clicking the link in the email changes the account's email to the new email. Used when the account must have verified email at all times, such as MFA accounts.", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest": { +"description": "Request message for SendVerificationCode. 'captcha_response' is required when reCAPTCHA enterprise is enabled, or otherwise at least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `safety_net_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator.", +"id": "GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest", +"properties": { +"autoRetrievalInfo": { +"$ref": "GoogleCloudIdentitytoolkitV1AutoRetrievalInfo", +"description": "Android only. Used by Google Play Services to identify the app for auto-retrieval." +}, +"captchaResponse": { +"description": "Optional. The reCAPTCHA Enterprise token provided by the reCAPTCHA client-side integration. Required when reCAPTCHA enterprise is enabled.", +"type": "string" +}, +"clientType": { +"description": "Optional. The client type, web, android or ios. Required when reCAPTCHA Enterprise is enabled.", +"enum": [ +"CLIENT_TYPE_UNSPECIFIED", +"CLIENT_TYPE_WEB", +"CLIENT_TYPE_ANDROID", +"CLIENT_TYPE_IOS" +], +"enumDescriptions": [ +"Client type is not specified.", +"Client type is web.", +"Client type is android.", +"Client type is ios." +], +"type": "string" +}, +"iosReceipt": { +"description": "Receipt of successful iOS app token validation. At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `safety_net_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator, if 'captcha_response' is not used (reCAPTCHA enterprise is not enabled). This should come from the response of verifyIosClient. If present, the caller should also provide the `ios_secret`, as well as a bundle ID in the `x-ios-bundle-identifier` header, which must match the bundle ID from the verifyIosClient request.", +"type": "string" +}, +"iosSecret": { +"description": "Secret delivered to iOS app as a push notification. Should be passed with an `ios_receipt` as well as the `x-ios-bundle-identifier` header.", +"type": "string" +}, +"phoneNumber": { +"description": "The phone number to send the verification code to in E.164 format.", +"type": "string" +}, +"playIntegrityToken": { +"description": "Android only. Used to assert application identity in place of a recaptcha token (and safety_net_token). At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, , or `play_integrity_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator, if 'captcha_response' is not used (reCAPTCHA enterprise is not enabled). A Play Integrity Token can be generated via the [PlayIntegrity API](https://developer.android.com/google/play/integrity) with applying SHA256 to the `phone_number` field as the nonce.", +"type": "string" +}, +"recaptchaToken": { +"description": "Recaptcha token for app verification. At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `safety_net_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator, if 'captcha_response' is not used (reCAPTCHA enterprise is not enabled). The recaptcha should be generated by calling getRecaptchaParams and the recaptcha token will be generated on user completion of the recaptcha challenge.", +"type": "string" +}, +"recaptchaVersion": { +"description": "Optional. The reCAPTCHA version of the reCAPTCHA token in the captcha_response. Required when reCAPTCHA Enterprise is enabled.", +"enum": [ +"RECAPTCHA_VERSION_UNSPECIFIED", +"RECAPTCHA_ENTERPRISE" +], +"enumDescriptions": [ +"The reCAPTCHA version is not specified.", +"The reCAPTCHA enterprise." +], +"type": "string" +}, +"safetyNetToken": { +"description": "Android only. Used to assert application identity in place of a recaptcha token. At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `safety_net_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator, if 'captcha_response' is not used (reCAPTCHA enterprise is not enabled). A SafetyNet Token can be generated via the [SafetyNet Android Attestation API](https://developer.android.com/training/safetynet/attestation.html), with the Base64 encoding of the `phone_number` field as the nonce.", +"type": "string" +}, +"tenantId": { +"description": "Tenant ID of the Identity Platform tenant the user is signing in to.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse": { +"description": "Response message for SendVerificationCode.", +"id": "GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse", +"properties": { +"sessionInfo": { +"description": "Encrypted session information. This can be used in signInWithPhoneNumber to authenticate the phone number.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SetAccountInfoRequest": { +"description": "Request message for SetAccountInfo.", +"id": "GoogleCloudIdentitytoolkitV1SetAccountInfoRequest", +"properties": { +"captchaChallenge": { +"deprecated": true, +"type": "string" +}, +"captchaResponse": { +"description": "The response from reCaptcha challenge. This is required when the system detects possible abuse activities.", +"type": "string" +}, +"createdAt": { +"description": "The timestamp in milliseconds when the account was created.", +"format": "int64", +"type": "string" +}, +"customAttributes": { +"description": "JSON formatted custom attributes to be stored in the Identity Platform ID token. Specifying this field requires a Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control).", +"type": "string" +}, +"delegatedProjectNumber": { +"deprecated": true, +"format": "int64", +"type": "string" +}, +"deleteAttribute": { +"description": "The account's attributes to be deleted.", +"items": { +"enum": [ +"USER_ATTRIBUTE_NAME_UNSPECIFIED", +"EMAIL", +"DISPLAY_NAME", +"PROVIDER", +"PHOTO_URL", +"PASSWORD", +"RAW_USER_INFO" +], +"enumDescriptions": [ +"User attribute name is not specified.", +"User attribute key name is email.", +"User attribute key name is displayName.", +"User attribute key name is provider.", +"User attribute key name is photoURL.", +"User attribute key name is password.", +"User attribute key name is rawUserInfo." +], +"type": "string" +}, +"type": "array" +}, +"deleteProvider": { +"description": "The Identity Providers to unlink from the user's account.", +"items": { +"type": "string" +}, +"type": "array" +}, +"disableUser": { +"description": "If true, marks the account as disabled, meaning the user will no longer be able to sign-in.", +"type": "boolean" +}, +"displayName": { +"description": "The user's new display name to be updated in the account's attributes. The length of the display name must be less than or equal to 256 characters.", +"type": "string" +}, +"email": { +"description": "The user's new email to be updated in the account's attributes. The length of email should be less than 256 characters and in the format of `name@domain.tld`. The email should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec production. If [email enumeration protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, the email cannot be changed by the user without verifying the email first, but it can be changed by an administrator.", +"type": "string" +}, +"emailVerified": { +"description": "Whether the user's email has been verified. Specifying this field requires a Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control).", +"type": "boolean" +}, +"idToken": { +"description": "A valid Identity Platform ID token. Required when attempting to change user-related information.", +"type": "string" +}, +"instanceId": { +"deprecated": true, +"type": "string" +}, +"lastLoginAt": { +"description": "The timestamp in milliseconds when the account last logged in.", +"format": "int64", +"type": "string" +}, +"linkProviderUserInfo": { +"$ref": "GoogleCloudIdentitytoolkitV1ProviderUserInfo", +"description": "The provider to be linked to the user's account. Specifying this field requires a Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control)." +}, +"localId": { +"description": "The ID of the user. Specifying this field requires a Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control). For requests from end-users, an ID token should be passed instead.", +"type": "string" +}, +"mfa": { +"$ref": "GoogleCloudIdentitytoolkitV1MfaInfo", +"description": "The multi-factor authentication related information to be set on the user's account. This will overwrite any previous multi-factor related information on the account. Specifying this field requires a Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control)." +}, +"oobCode": { +"description": "The out-of-band code to be applied on the user's account. The following out-of-band code types are supported: * VERIFY_EMAIL * RECOVER_EMAIL * REVERT_SECOND_FACTOR_ADDITION * VERIFY_AND_CHANGE_EMAIL", +"type": "string" +}, +"password": { +"description": "The user's new password to be updated in the account's attributes. The password must be at least 6 characters long.", +"type": "string" +}, +"phoneNumber": { +"description": "The phone number to be updated in the account's attributes.", +"type": "string" +}, +"photoUrl": { +"description": "The user's new photo URL for the account's profile photo to be updated in the account's attributes. The length of the URL must be less than or equal to 2048 characters.", +"type": "string" +}, +"provider": { +"description": "The Identity Providers that the account should be associated with.", +"items": { +"type": "string" +}, +"type": "array" +}, +"returnSecureToken": { +"description": "Whether or not to return an ID and refresh token. Should always be true.", +"type": "boolean" +}, +"targetProjectId": { +"description": "The project ID for the project that the account belongs to. Specifying this field requires Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control). Requests from end users should pass an Identity Platform ID token instead.", +"type": "string" +}, +"tenantId": { +"description": "The tenant ID of the Identity Platform tenant that the account belongs to. Requests from end users should pass an Identity Platform ID token rather than setting this field.", +"type": "string" +}, +"upgradeToFederatedLogin": { +"description": "Whether the account should be restricted to only using federated login.", +"type": "boolean" +}, +"validSince": { +"description": "Specifies the minimum timestamp in seconds for an Identity Platform ID token to be considered valid.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SetAccountInfoResponse": { +"description": "Response message for SetAccountInfo", +"id": "GoogleCloudIdentitytoolkitV1SetAccountInfoResponse", +"properties": { +"displayName": { +"deprecated": true, +"description": "The account's display name.", +"type": "string" +}, +"email": { +"deprecated": true, +"description": "The account's email address.", +"type": "string" +}, +"emailVerified": { +"description": "Whether the account's email has been verified.", +"type": "boolean" +}, +"expiresIn": { +"description": "The number of seconds until the Identity Platform ID token expires.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "An Identity Platform ID token for the account. This is used for legacy user sign up.", +"type": "string" +}, +"kind": { +"deprecated": true, +"type": "string" +}, +"localId": { +"description": "The ID of the authenticated user.", +"type": "string" +}, +"newEmail": { +"description": "The new email that has been set on the user's account attributes.", +"type": "string" +}, +"passwordHash": { +"deprecated": true, +"description": "Deprecated. No actual password hash is currently returned.", +"type": "string" +}, +"photoUrl": { +"deprecated": true, +"description": "The user's photo URL for the account's profile photo.", +"type": "string" +}, +"providerUserInfo": { +"description": "The linked Identity Providers on the account.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1ProviderUserInfo" +}, +"type": "array" +}, +"refreshToken": { +"description": "A refresh token for the account. This is used for legacy user sign up.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest": { +"description": "Request message for SignInWithCustomToken.", +"id": "GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest", +"properties": { +"delegatedProjectNumber": { +"deprecated": true, +"format": "int64", +"type": "string" +}, +"instanceId": { +"deprecated": true, +"type": "string" +}, +"returnSecureToken": { +"description": "Should always be true.", +"type": "boolean" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the user is signing in to. If present, the ID should match the tenant_id in the token.", +"type": "string" +}, +"token": { +"description": "Required. The custom Auth token asserted by the developer. The token should be a [JSON Web Token (JWT)](https://tools.ietf.org/html/rfc7519) that includes the claims listed in the [API reference](https://cloud.google.com/identity-platform/docs/reference/rest/client/) under the \"Custom Token Claims\" section.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse": { +"description": "Response message for SignInWithCustomToken.", +"id": "GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse", +"properties": { +"expiresIn": { +"description": "The number of seconds until the ID token expires.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "An Identity Platform ID token for the authenticated user.", +"type": "string" +}, +"isNewUser": { +"description": "Whether the authenticated user was created by this request.", +"type": "boolean" +}, +"kind": { +"deprecated": true, +"type": "string" +}, +"refreshToken": { +"description": "An Identity Platform refresh token for the authenticated user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest": { +"description": "Request message for SignInWithEmailLink", +"id": "GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest", +"properties": { +"email": { +"description": "Required. The email address the sign-in link was sent to. The length of email should be less than 256 characters and in the format of `name@domain.tld`. The email should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec production.", +"type": "string" +}, +"idToken": { +"description": "A valid ID token for an Identity Platform account. If passed, this request will link the email address to the user represented by this ID token and enable sign-in with email link on the account for the future.", +"type": "string" +}, +"oobCode": { +"description": "Required. The out-of-band code from the email link.", +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the user is signing in to. If not set, the user will sign in to the default Identity Platform project.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse": { +"description": "Response message for SignInWithEmailLink.", +"id": "GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse", +"properties": { +"email": { +"description": "The email the user signed in with. Always present in the response.", +"type": "string" +}, +"expiresIn": { +"description": "The number of seconds until the ID token expires.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "An Identity Platform ID token for the authenticated user.", +"type": "string" +}, +"isNewUser": { +"description": "Whether the authenticated user was created by this request.", +"type": "boolean" +}, +"kind": { +"deprecated": true, +"type": "string" +}, +"localId": { +"description": "The ID of the authenticated user. Always present in the response.", +"type": "string" +}, +"mfaInfo": { +"description": "Info on which multi-factor authentication providers are enabled. Present if the user needs to complete the sign-in using multi-factor authentication.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1MfaEnrollment" +}, +"type": "array" +}, +"mfaPendingCredential": { +"description": "An opaque string that functions as proof that the user has successfully passed the first factor check.", +"type": "string" +}, +"refreshToken": { +"description": "Refresh token for the authenticated user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest": { +"description": "Request message for SignInWithGameCenter", +"id": "GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest", +"properties": { +"displayName": { +"description": "The user's Game Center display name.", +"type": "string" +}, +"gamePlayerId": { +"description": "The user's Game Center game player ID. A unique identifier for a player of the game. https://developer.apple.com/documentation/gamekit/gkplayer/3113960-gameplayerid", +"type": "string" +}, +"idToken": { +"description": "A valid ID token for an Identity Platform account. If present, this request will link the Game Center player ID to the account represented by this ID token.", +"type": "string" +}, +"playerId": { +"description": "Required. The user's Game Center player ID. Deprecated by Apple. Pass `playerID` along with `gamePlayerID` and `teamPlayerID` to initiate the migration of a user's Game Center player ID to `gamePlayerID`.", +"type": "string" +}, +"publicKeyUrl": { +"description": "Required. The URL to fetch the Apple public key in order to verify the given signature is signed by Apple.", +"type": "string" +}, +"salt": { +"description": "Required. A random string used to generate the given signature.", +"type": "string" +}, +"signature": { +"description": "Required. The verification signature data generated by Apple.", +"type": "string" +}, +"teamPlayerId": { +"description": "The user's Game Center team player ID. A unique identifier for a player of all the games that you distribute using your developer account. https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid", +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the user is signing in to.", +"type": "string" +}, +"timestamp": { +"description": "Required. The time when the signature was created by Apple, in milliseconds since the epoch.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse": { +"description": "Response message for SignInWithGameCenter", +"id": "GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse", +"properties": { +"displayName": { +"description": "Display name of the authenticated user.", +"type": "string" +}, +"expiresIn": { +"description": "The number of seconds until the ID token expires.", +"format": "int64", +"type": "string" +}, +"gamePlayerId": { +"description": "The user's Game Center game player ID. A unique identifier for a player of the game. https://developer.apple.com/documentation/gamekit/gkplayer/3113960-gameplayerid", +"type": "string" +}, +"idToken": { +"description": "An Identity Platform ID token for the authenticated user.", +"type": "string" +}, +"isNewUser": { +"description": "Whether the logged in user was created by this request.", +"type": "boolean" +}, +"localId": { +"description": "The ID of the authenticated user. Always present in the response.", +"type": "string" +}, +"playerId": { +"description": "The user's Game Center player ID. Pass `playerID` along with `gamePlayerID` and `teamPlayerID` to initiate the migration of a user's Game Center player ID to `gamePlayerID`.", +"type": "string" +}, +"refreshToken": { +"description": "An Identity Platform refresh token for the authenticated user.", +"type": "string" +}, +"teamPlayerId": { +"description": "The user's Game Center team player ID. A unique identifier for a player of all the games that you distribute using your developer account. https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithIdpRequest": { +"description": "Request message for SignInWithIdp.", +"id": "GoogleCloudIdentitytoolkitV1SignInWithIdpRequest", +"properties": { +"autoCreate": { +"deprecated": true, +"type": "boolean" +}, +"delegatedProjectNumber": { +"deprecated": true, +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "A valid Identity Platform ID token. If passed, the user's account at the IdP will be linked to the account represented by this ID token.", +"type": "string" +}, +"pendingIdToken": { +"deprecated": true, +"type": "string" +}, +"pendingToken": { +"description": "An opaque string from a previous SignInWithIdp response. If set, it can be used to repeat the sign-in operation from the previous SignInWithIdp operation. This may be present if the user needs to confirm their account information as part of a previous federated login attempt, or perform account linking.", +"type": "string" +}, +"postBody": { +"description": "If the user is signing in with an authorization response obtained via a previous CreateAuthUri authorization request, this is the body of the HTTP POST callback from the IdP, if present. Otherwise, if the user is signing in with a manually provided IdP credential, this should be a URL-encoded form that contains the credential (e.g. an ID token or access token for OAuth 2.0 IdPs) and the provider ID of the IdP that issued the credential. For example, if the user is signing in to the Google provider using a Google ID token, this should be set to id_token`=[GOOGLE_ID_TOKEN]&providerId=google.com`, where `[GOOGLE_ID_TOKEN]` should be replaced with the Google ID token. If the user is signing in to the Facebook provider using a Facebook authentication token, this should be set to id_token`=[FACEBOOK_AUTHENTICATION_TOKEN]&providerId=facebook. com&nonce= [NONCE]`, where `[FACEBOOK_AUTHENTICATION_TOKEN]` should be replaced with the Facebook authentication token. Nonce is required for validating the token. The request will fail if no nonce is provided. If the user is signing in to the Facebook provider using a Facebook access token, this should be set to access_token`=[FACEBOOK_ACCESS_TOKEN]&providerId=facebook. com`, where `[FACEBOOK_ACCESS_TOKEN]` should be replaced with the Facebook access token. If the user is signing in to the Twitter provider using a Twitter OAuth 1.0 credential, this should be set to access_token`=[TWITTER_ACCESS_TOKEN]&oauth_token_secret= [TWITTER_TOKEN_SECRET]&providerId=twitter.com`, where `[TWITTER_ACCESS_TOKEN]` and `[TWITTER_TOKEN_SECRET]` should be replaced with the Twitter OAuth access token and Twitter OAuth token secret respectively.", +"type": "string" +}, +"requestUri": { +"description": "Required. The URL to which the IdP redirects the user back. This can be set to `http://localhost` if the user is signing in with a manually provided IdP credential.", +"type": "string" +}, +"returnIdpCredential": { +"description": "Whether or not to return OAuth credentials from the IdP on the following errors: `FEDERATED_USER_ID_ALREADY_LINKED` and `EMAIL_EXISTS`.", +"type": "boolean" +}, +"returnRefreshToken": { +"description": "Whether or not to return the OAuth refresh token from the IdP, if available.", +"type": "boolean" +}, +"returnSecureToken": { +"description": "Should always be true.", +"type": "boolean" +}, +"sessionId": { +"description": "The session ID returned from a previous CreateAuthUri call. This field is verified against that session ID to prevent session fixation attacks. Required if the user is signing in with an authorization response from a previous CreateAuthUri authorization request.", +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the user is signing in to. If not set, the user will sign in to the default Identity Platform project.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithIdpResponse": { +"description": "Response message for SignInWithIdp.", +"id": "GoogleCloudIdentitytoolkitV1SignInWithIdpResponse", +"properties": { +"context": { +"description": "The opaque string set in CreateAuthUri that is used to maintain contextual information between the authentication request and the callback from the IdP.", +"type": "string" +}, +"dateOfBirth": { +"description": "The date of birth for the user's account at the IdP.", +"type": "string" +}, +"displayName": { +"description": "The display name for the user's account at the IdP.", +"type": "string" +}, +"email": { +"description": "The email address of the user's account at the IdP.", +"type": "string" +}, +"emailRecycled": { +"description": "Whether or not there is an existing Identity Platform user account with the same email address but linked to a different account at the same IdP. Only present if the \"One account per email address\" setting is enabled and the email address at the IdP is verified.", +"type": "boolean" +}, +"emailVerified": { +"description": "Whether the user account's email address is verified.", +"type": "boolean" +}, +"errorMessage": { +"description": "The error message returned if `return_idp_credential` is set to `true` and either the `FEDERATED_USER_ID_ALREADY_LINKED` or `EMAIL_EXISTS` error is encountered. This field's value is either `FEDERATED_USER_ID_ALREADY_LINKED` or `EMAIL_EXISTS`.", +"type": "string" +}, +"expiresIn": { +"description": "The number of seconds until the Identity Platform ID token expires.", +"format": "int64", +"type": "string" +}, +"federatedId": { +"description": "The user's account ID at the IdP. Always present in the response.", +"type": "string" +}, +"firstName": { +"description": "The first name for the user's account at the IdP.", +"type": "string" +}, +"fullName": { +"description": "The full name for the user's account at the IdP.", +"type": "string" +}, +"idToken": { +"description": "An Identity Platform ID token for the authenticated user.", +"type": "string" +}, +"inputEmail": { +"deprecated": true, +"type": "string" +}, +"isNewUser": { +"description": "Whether or not a new Identity Platform account was created for the authenticated user.", +"type": "boolean" +}, +"kind": { +"deprecated": true, +"type": "string" +}, +"language": { +"description": "The language preference for the user's account at the IdP.", +"type": "string" +}, +"lastName": { +"description": "The last name for the user's account at the IdP.", +"type": "string" +}, +"localId": { +"description": "The ID of the authenticated Identity Platform user. Always present in the response.", +"type": "string" +}, +"mfaInfo": { +"description": "Info on which multi-factor authentication providers are enabled for the account. Present if the user needs to complete the sign-in using multi-factor authentication.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1MfaEnrollment" +}, +"type": "array" +}, +"mfaPendingCredential": { +"description": "An opaque string that functions as proof that the user has successfully passed the first factor authentication.", +"type": "string" +}, +"needConfirmation": { +"description": "Whether or not there is an existing Identity Platform user account with the same email address as the current account signed in at the IdP, and the account's email address is not verified at the IdP. The user will need to sign in to the existing Identity Platform account and then link the current credential from the IdP to it. Only present if the \"One account per email address\" setting is enabled.", +"type": "boolean" +}, +"needEmail": { +"deprecated": true, +"type": "boolean" +}, +"nickName": { +"description": "The nickname for the user's account at the IdP.", +"type": "string" +}, +"oauthAccessToken": { +"description": "The OAuth access token from the IdP, if available.", +"type": "string" +}, +"oauthAuthorizationCode": { +"description": "The OAuth 2.0 authorization code, if available. Only present for the Google provider.", +"type": "string" +}, +"oauthExpireIn": { +"description": "The number of seconds until the OAuth access token from the IdP expires.", +"format": "int32", +"type": "integer" +}, +"oauthIdToken": { +"description": "The OpenID Connect ID token from the IdP, if available.", +"type": "string" +}, +"oauthRefreshToken": { +"description": "The OAuth 2.0 refresh token from the IdP, if available and `return_refresh_token` is set to `true`.", +"type": "string" +}, +"oauthTokenSecret": { +"description": "The OAuth 1.0 token secret from the IdP, if available. Only present for the Twitter provider.", +"type": "string" +}, +"originalEmail": { +"description": "The main (top-level) email address of the user's Identity Platform account, if different from the email address at the IdP. Only present if the \"One account per email address\" setting is enabled.", +"type": "string" +}, +"pendingToken": { +"description": "An opaque string that can be used as a credential from the IdP the user is signing into. The pending token obtained here can be set in a future SignInWithIdp request to sign the same user in with the IdP again.", +"type": "string" +}, +"photoUrl": { +"description": "The URL of the user's profile picture at the IdP.", +"type": "string" +}, +"providerId": { +"description": "The provider ID of the IdP that the user is signing in to. Always present in the response.", +"type": "string" +}, +"rawUserInfo": { +"description": "The stringified JSON response containing all the data corresponding to the user's account at the IdP.", +"type": "string" +}, +"refreshToken": { +"description": "An Identity Platform refresh token for the authenticated user.", +"type": "string" +}, +"screenName": { +"description": "The screen name for the user's account at the Twitter IdP or the login name for the user's account at the GitHub IdP.", +"type": "string" +}, +"tenantId": { +"description": "The value of the `tenant_id` field in the request.", +"type": "string" +}, +"timeZone": { +"description": "The time zone for the user's account at the IdP.", +"type": "string" +}, +"verifiedProvider": { +"description": "A list of provider IDs that the user can sign in to in order to resolve a `need_confirmation` error. Only present if `need_confirmation` is set to `true`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest": { +"description": "Request message for SignInWithPassword.", +"id": "GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest", +"properties": { +"captchaChallenge": { +"deprecated": true, +"type": "string" +}, +"captchaResponse": { +"description": "The reCAPTCHA token provided by the reCAPTCHA client-side integration. reCAPTCHA Enterprise uses it for risk assessment. Required when reCAPTCHA Enterprise is enabled.", +"type": "string" +}, +"clientType": { +"description": "The client type, web, android or ios. Required when reCAPTCHA Enterprise is enabled.", +"enum": [ +"CLIENT_TYPE_UNSPECIFIED", +"CLIENT_TYPE_WEB", +"CLIENT_TYPE_ANDROID", +"CLIENT_TYPE_IOS" +], +"enumDescriptions": [ +"Client type is not specified.", +"Client type is web.", +"Client type is android.", +"Client type is ios." +], +"type": "string" +}, +"delegatedProjectNumber": { +"deprecated": true, +"format": "int64", +"type": "string" +}, +"email": { +"description": "Required. The email the user is signing in with. The length of email should be less than 256 characters and in the format of `name@domain.tld`. The email should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec production.", +"type": "string" +}, +"idToken": { +"deprecated": true, +"type": "string" +}, +"instanceId": { +"deprecated": true, +"type": "string" +}, +"password": { +"description": "Required. The password the user provides to sign in to the account.", +"type": "string" +}, +"pendingIdToken": { +"deprecated": true, +"type": "string" +}, +"recaptchaVersion": { +"description": "The reCAPTCHA version of the reCAPTCHA token in the captcha_response.", +"enum": [ +"RECAPTCHA_VERSION_UNSPECIFIED", +"RECAPTCHA_ENTERPRISE" +], +"enumDescriptions": [ +"The reCAPTCHA version is not specified.", +"The reCAPTCHA enterprise." +], +"type": "string" +}, +"returnSecureToken": { +"description": "Should always be true.", +"type": "boolean" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the user is signing in to. If not set, the user will sign in to the default Identity Platform instance in the project.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse": { +"description": "Response message for SignInWithPassword.", +"id": "GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse", +"properties": { +"displayName": { +"description": "The user's display name stored in the account's attributes.", +"type": "string" +}, +"email": { +"description": "The email of the authenticated user. Always present in the response.", +"type": "string" +}, +"expiresIn": { +"description": "The number of seconds until the Identity Platform ID token expires.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "An Identity Platform ID token for the authenticated user.", +"type": "string" +}, +"kind": { +"deprecated": true, +"type": "string" +}, +"localId": { +"description": "The ID of the authenticated user. Always present in the response.", +"type": "string" +}, +"mfaInfo": { +"description": "Info on which multi-factor authentication providers are enabled for the account. Present if the user needs to complete the sign-in using multi-factor authentication.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1MfaEnrollment" +}, +"type": "array" +}, +"mfaPendingCredential": { +"description": "An opaque string that functions as proof that the user has successfully passed the first factor authentication.", +"type": "string" +}, +"oauthAccessToken": { +"deprecated": true, +"description": "The OAuth2 access token.", +"type": "string" +}, +"oauthAuthorizationCode": { +"deprecated": true, +"type": "string" +}, +"oauthExpireIn": { +"deprecated": true, +"description": "The access token expiration time in seconds.", +"format": "int32", +"type": "integer" +}, +"profilePicture": { +"description": "The user's profile picture stored in the account's attributes.", +"type": "string" +}, +"refreshToken": { +"description": "An Identity Platform refresh token for the authenticated user.", +"type": "string" +}, +"registered": { +"deprecated": true, +"description": "Whether the email is for an existing account. Always true.", +"type": "boolean" +}, +"userNotifications": { +"description": "Warning notifications for the user.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1UserNotification" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest": { +"description": "Request message for SignInWithPhoneNumber.", +"id": "GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest", +"properties": { +"code": { +"description": "User-entered verification code from an SMS sent to the user's phone.", +"type": "string" +}, +"idToken": { +"description": "A valid ID token for an Identity Platform account. If passed, this request will link the phone number to the user represented by this ID token if the phone number is not in use, or will reauthenticate the user if the phone number is already linked to the user.", +"type": "string" +}, +"operation": { +"deprecated": true, +"enum": [ +"VERIFY_OP_UNSPECIFIED", +"SIGN_UP_OR_IN", +"REAUTH", +"UPDATE", +"LINK" +], +"enumDescriptions": [ +"Operation is not specified.", +"Verify operation is to sign up/sign in.", +"Verify operation is to reauth.", +"Verify operation is to update.", +"Verify operation is to link." +], +"type": "string" +}, +"phoneNumber": { +"description": "The user's phone number to sign in with. This is necessary in the case of uing a temporary proof, in which case it must match the phone number that was authenticated in the request that generated the temporary proof. This field is ignored if a session info is passed.", +"type": "string" +}, +"sessionInfo": { +"description": "Encrypted session information from the response of sendVerificationCode. In the case of authenticating with an SMS code this must be specified, but in the case of using a temporary proof it can be unspecified.", +"type": "string" +}, +"temporaryProof": { +"description": "A proof of the phone number verification, provided from a previous signInWithPhoneNumber request. If this is passed, the caller must also pass in the phone_number field the phone number that was verified in the previous request.", +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the user is signing in to. If not set, the user will sign in to the default Identity Platform project.", +"type": "string" +}, +"verificationProof": { +"description": "Do not use.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse": { +"description": "Response message for SignInWithPhoneNumber.", +"id": "GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse", +"properties": { +"expiresIn": { +"description": "The number of seconds until the ID token expires.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "Identity Platform ID token for the authenticated user.", +"type": "string" +}, +"isNewUser": { +"description": "Whether the authenticated user was created by this request.", +"type": "boolean" +}, +"localId": { +"description": "The id of the authenticated user. Present in the case of a successful authentication. In the case when the phone could be verified but the account operation could not be performed, a temporary proof will be returned instead.", +"type": "string" +}, +"phoneNumber": { +"description": "Phone number of the authenticated user. Always present in the response.", +"type": "string" +}, +"refreshToken": { +"description": "Refresh token for the authenticated user.", +"type": "string" +}, +"temporaryProof": { +"description": "A proof of the phone number verification, provided if a phone authentication is successful but the user operation fails. This happens when the request tries to link a phone number to a user with an ID token or reauthenticate with an ID token but the phone number is linked to a different user.", +"type": "string" +}, +"temporaryProofExpiresIn": { +"description": "The number of seconds until the temporary proof expires.", +"format": "int64", +"type": "string" +}, +"verificationProof": { +"description": "Do not use.", +"type": "string" +}, +"verificationProofExpiresIn": { +"description": "Do not use.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignUpRequest": { +"description": "Request message for SignUp.", +"id": "GoogleCloudIdentitytoolkitV1SignUpRequest", +"properties": { +"captchaChallenge": { +"deprecated": true, +"type": "string" +}, +"captchaResponse": { +"description": "The reCAPTCHA token provided by the reCAPTCHA client-side integration. reCAPTCHA Enterprise uses it for assessment. Required when reCAPTCHA enterprise is enabled.", +"type": "string" +}, +"clientType": { +"description": "The client type: web, Android or iOS. Required when enabling reCAPTCHA enterprise protection.", +"enum": [ +"CLIENT_TYPE_UNSPECIFIED", +"CLIENT_TYPE_WEB", +"CLIENT_TYPE_ANDROID", +"CLIENT_TYPE_IOS" +], +"enumDescriptions": [ +"Client type is not specified.", +"Client type is web.", +"Client type is android.", +"Client type is ios." +], +"type": "string" +}, +"disabled": { +"description": "Whether the user will be disabled upon creation. Disabled accounts are inaccessible except for requests bearing a Google OAuth2 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"type": "boolean" +}, +"displayName": { +"description": "The display name of the user to be created.", +"type": "string" +}, +"email": { +"description": "The email to assign to the created user. The length of the email should be less than 256 characters and in the format of `name@domain.tld`. The email should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec production. An anonymous user will be created if not provided.", +"type": "string" +}, +"emailVerified": { +"description": "Whether the user's email is verified. Specifying this field requires a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"type": "boolean" +}, +"idToken": { +"description": "A valid ID token for an Identity Platform user. If set, this request will link the authentication credential to the user represented by this ID token. For a non-admin request, both the `email` and `password` fields must be set. For an admin request, `local_id` must not be set.", +"type": "string" +}, +"instanceId": { +"deprecated": true, +"type": "string" +}, +"localId": { +"description": "The ID of the user to create. The ID must be unique within the project that the user is being created under. Specifying this field requires a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"type": "string" +}, +"mfaInfo": { +"description": "The multi-factor authentication providers for the user to create.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1MfaFactor" +}, +"type": "array" +}, +"password": { +"description": "The password to assign to the created user. The password must be be at least 6 characters long. If set, the `email` field must also be set.", +"type": "string" +}, +"phoneNumber": { +"description": "The phone number of the user to create. Specifying this field requires a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"type": "string" +}, +"photoUrl": { +"description": "The profile photo url of the user to create.", +"type": "string" +}, +"recaptchaVersion": { +"description": "The reCAPTCHA version of the reCAPTCHA token in the captcha_response.", +"enum": [ +"RECAPTCHA_VERSION_UNSPECIFIED", +"RECAPTCHA_ENTERPRISE" +], +"enumDescriptions": [ +"The reCAPTCHA version is not specified.", +"The reCAPTCHA enterprise." +], +"type": "string" +}, +"targetProjectId": { +"description": "The project ID of the project which the user should belong to. Specifying this field requires a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control). If this is not set, the target project is inferred from the scope associated to the Bearer access token.", +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant to create a user under. If not set, the user will be created under the default Identity Platform project.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SignUpResponse": { +"description": "Response message for SignUp.", +"id": "GoogleCloudIdentitytoolkitV1SignUpResponse", +"properties": { +"displayName": { +"description": "The created user's display name.", +"type": "string" +}, +"email": { +"description": "The created user's email.", +"type": "string" +}, +"expiresIn": { +"description": "The number of seconds until the ID token expires.", +"format": "int64", +"type": "string" +}, +"idToken": { +"description": "An Identity Platform ID token for the created user. This field is only set for non-admin requests.", +"type": "string" +}, +"kind": { +"type": "string" +}, +"localId": { +"description": "The ID of the created user. Always present in the response.", +"type": "string" +}, +"refreshToken": { +"description": "An Identity Platform refresh token for the created user. This field is only set for non-admin requests.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1SqlExpression": { +"description": "Query conditions used to filter results.", +"id": "GoogleCloudIdentitytoolkitV1SqlExpression", +"properties": { +"email": { +"description": "A case insensitive string that the account's email should match. Only one of `email`, `phone_number`, or `user_id` should be specified in a SqlExpression. If more than one is specified, only the first (in that order) will be applied.", +"type": "string" +}, +"phoneNumber": { +"description": "A string that the account's phone number should match. Only one of `email`, `phone_number`, or `user_id` should be specified in a SqlExpression. If more than one is specified, only the first (in that order) will be applied.", +"type": "string" +}, +"userId": { +"description": "A string that the account's local ID should match. Only one of `email`, `phone_number`, or `user_id` should be specified in a SqlExpression If more than one is specified, only the first (in that order) will be applied.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1TotpInfo": { +"description": "Information about TOTP MFA.", +"id": "GoogleCloudIdentitytoolkitV1TotpInfo", +"properties": {}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1UploadAccountRequest": { +"description": "Request message for UploadAccount.", +"id": "GoogleCloudIdentitytoolkitV1UploadAccountRequest", +"properties": { +"allowOverwrite": { +"description": "Whether to overwrite an existing account in Identity Platform with a matching `local_id` in the request. If true, the existing account will be overwritten. If false, an error will be returned.", +"type": "boolean" +}, +"argon2Parameters": { +"$ref": "GoogleCloudIdentitytoolkitV1Argon2Parameters", +"description": "The parameters for Argon2 hashing algorithm." +}, +"blockSize": { +"description": "The block size parameter used by the STANDARD_SCRYPT hashing function. This parameter, along with parallelization and cpu_mem_cost help tune the resources needed to hash a password, and should be tuned as processor speeds and memory technologies advance.", +"format": "int32", +"type": "integer" +}, +"cpuMemCost": { +"description": "The CPU memory cost parameter to be used by the STANDARD_SCRYPT hashing function. This parameter, along with block_size and cpu_mem_cost help tune the resources needed to hash a password, and should be tuned as processor speeds and memory technologies advance.", +"format": "int32", +"type": "integer" +}, +"delegatedProjectNumber": { +"deprecated": true, +"format": "int64", +"type": "string" +}, +"dkLen": { +"description": "The desired key length for the STANDARD_SCRYPT hashing function. Must be at least 1.", +"format": "int32", +"type": "integer" +}, +"hashAlgorithm": { +"description": "Required. The hashing function used to hash the account passwords. Must be one of the following: * HMAC_SHA256 * HMAC_SHA1 * HMAC_MD5 * SCRYPT * PBKDF_SHA1 * MD5 * HMAC_SHA512 * SHA1 * BCRYPT * PBKDF2_SHA256 * SHA256 * SHA512 * STANDARD_SCRYPT * ARGON2", +"type": "string" +}, +"memoryCost": { +"description": "Memory cost for hash calculation. Only required when the hashing function is SCRYPT.", +"format": "int32", +"type": "integer" +}, +"parallelization": { +"description": "The parallelization cost parameter to be used by the STANDARD_SCRYPT hashing function. This parameter, along with block_size and cpu_mem_cost help tune the resources needed to hash a password, and should be tuned as processor speeds and memory technologies advance.", +"format": "int32", +"type": "integer" +}, +"passwordHashOrder": { +"description": "Password and salt order when verify password.", +"enum": [ +"UNSPECIFIED_ORDER", +"SALT_AND_PASSWORD", +"PASSWORD_AND_SALT" +], +"enumDescriptions": [ +"The order is not specified.", +"The order is salt first, and then password.", +"The order is password first, and then salt." +], +"type": "string" +}, +"rounds": { +"description": "The number of rounds used for hash calculation. Only required for the following hashing functions: * MD5 * SHA1 * SHA256 * SHA512 * PBKDF_SHA1 * PBKDF2_SHA256 * SCRYPT", +"format": "int32", +"type": "integer" +}, +"saltSeparator": { +"description": "One or more bytes to be inserted between the salt and plain text password. For stronger security, this should be a single non-printable character.", +"format": "byte", +"type": "string" +}, +"sanityCheck": { +"description": "If true, the service will do the following list of checks before an account is uploaded: * Duplicate emails * Duplicate federated IDs * Federated ID provider validation If the duplication exists within the list of accounts to be uploaded, it will prevent the entire list from being uploaded. If the email or federated ID is a duplicate of a user already within the project/tenant, the account will not be uploaded, but the rest of the accounts will be unaffected. If false, these checks will be skipped.", +"type": "boolean" +}, +"signerKey": { +"description": "The signer key used to hash the password. Required for the following hashing functions: * SCRYPT, * HMAC_MD5, * HMAC_SHA1, * HMAC_SHA256, * HMAC_SHA512", +"format": "byte", +"type": "string" +}, +"tenantId": { +"description": "The ID of the Identity Platform tenant the account belongs to.", +"type": "string" +}, +"users": { +"description": "A list of accounts to upload. `local_id` is required for each user; everything else is optional.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1UserInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1UploadAccountResponse": { +"description": "Response message for UploadAccount.", +"id": "GoogleCloudIdentitytoolkitV1UploadAccountResponse", +"properties": { +"error": { +"description": "Detailed error info for accounts that cannot be uploaded.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1ErrorInfo" +}, +"type": "array" +}, +"kind": { +"deprecated": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1UserInfo": { +"description": "An Identity Platform account's information.", +"id": "GoogleCloudIdentitytoolkitV1UserInfo", +"properties": { +"createdAt": { +"description": "The time, in milliseconds from epoch, when the account was created.", +"format": "int64", +"type": "string" +}, +"customAttributes": { +"description": "Custom claims to be added to any ID tokens minted for the account. Should be at most 1,000 characters in length and in valid JSON format.", +"type": "string" +}, +"customAuth": { +"description": "Output only. Whether this account has been authenticated using SignInWithCustomToken.", +"readOnly": true, +"type": "boolean" +}, +"dateOfBirth": { +"description": "Output only. The date of birth set for the account. This account attribute is not used by Identity Platform. It is available for informational purposes only.", +"readOnly": true, +"type": "string" +}, +"disabled": { +"description": "Whether the account is disabled. Disabled accounts are inaccessible except for requests bearing a Google OAuth2 credential with proper permissions.", +"type": "boolean" +}, +"displayName": { +"description": "The display name of the account. This account attribute is not used by Identity Platform. It is available for informational purposes only.", +"type": "string" +}, +"email": { +"description": "The account's email address. The length of the email should be less than 256 characters and in the format of `name@domain.tld`. The email should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec.", +"type": "string" +}, +"emailLinkSignin": { +"description": "Output only. Whether the account can authenticate with email link.", +"readOnly": true, +"type": "boolean" +}, +"emailVerified": { +"description": "Whether the account's email address has been verified.", +"type": "boolean" +}, +"initialEmail": { +"description": "The first email address associated with this account. The account's initial email cannot be changed once set and is used to recover access to this account if lost via the RECOVER_EMAIL flow in GetOobCode. Should match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec.", +"type": "string" +}, +"language": { +"description": "Output only. The language preference of the account. This account attribute is not used by Identity Platform. It is available for informational purposes only.", +"readOnly": true, +"type": "string" +}, +"lastLoginAt": { +"description": "The last time, in milliseconds from epoch, this account was logged into.", +"format": "int64", +"type": "string" +}, +"lastRefreshAt": { +"description": "Timestamp when an ID token was last minted for this account.", +"format": "google-datetime", +"type": "string" +}, +"localId": { +"description": "Immutable. The unique ID of the account.", +"type": "string" +}, +"mfaInfo": { +"description": "Information on which multi-factor authentication providers are enabled for this account.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1MfaEnrollment" +}, +"type": "array" +}, +"passwordHash": { +"description": "The account's hashed password. Only accessible by requests bearing a Google OAuth2 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).", +"format": "byte", +"type": "string" +}, +"passwordUpdatedAt": { +"description": "The timestamp, in milliseconds from the epoch of 1970-01-01T00:00:00Z, when the account's password was last updated.", +"format": "double", +"type": "number" +}, +"phoneNumber": { +"description": "The account's phone number.", +"type": "string" +}, +"photoUrl": { +"description": "The URL of the account's profile photo. This account attribute is not used by Identity Platform. It is available for informational purposes only.", +"type": "string" +}, +"providerUserInfo": { +"description": "Information about the user as provided by various Identity Providers.", +"items": { +"$ref": "GoogleCloudIdentitytoolkitV1ProviderUserInfo" +}, +"type": "array" +}, +"rawPassword": { +"description": "Input only. Plain text password used to update a account's password. This field is only ever used as input in a request. Identity Platform uses cryptographically secure hashing when managing passwords and will never store or transmit a user's password in plain text.", +"type": "string" +}, +"salt": { +"description": "The account's password salt. Only accessible by requests bearing a Google OAuth2 credential with proper permissions.", +"format": "byte", +"type": "string" +}, +"screenName": { +"description": "Output only. This account's screen name at Twitter or login name at GitHub.", +"readOnly": true, +"type": "string" +}, +"tenantId": { +"description": "ID of the tenant this account belongs to. Only set if this account belongs to a tenant.", +"type": "string" +}, +"timeZone": { +"description": "Output only. The time zone preference of the account. This account attribute is not used by Identity Platform. It is available for informational purposes only.", +"readOnly": true, +"type": "string" +}, +"validSince": { +"description": "Oldest timestamp, in seconds since epoch, that an ID token should be considered valid. All ID tokens issued before this time are considered invalid.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "The version of the account's password. Only accessible by requests bearing a Google OAuth2 credential with proper permissions.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1UserNotification": { +"description": "Warning notifications for the user.", +"id": "GoogleCloudIdentitytoolkitV1UserNotification", +"properties": { +"notificationCode": { +"description": "Warning notification enum. Can be used for localization.", +"enum": [ +"NOTIFICATION_CODE_UNSPECIFIED", +"MISSING_LOWERCASE_CHARACTER", +"MISSING_UPPERCASE_CHARACTER", +"MISSING_NUMERIC_CHARACTER", +"MISSING_NON_ALPHANUMERIC_CHARACTER", +"MINIMUM_PASSWORD_LENGTH", +"MAXIMUM_PASSWORD_LENGTH" +], +"enumDescriptions": [ +"No notification specified.", +"Password missing lowercase character.", +"Password missing uppercase character.", +"Password missing numeric character.", +"Password missing non alphanumeric character.", +"Password less than minimum required length.", +"Password greater than maximum required length." +], +"type": "string" +}, +"notificationMessage": { +"description": "Warning notification string. Can be used as fallback.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1VerifyIosClientRequest": { +"description": "Request message for VerifyIosClient", +"id": "GoogleCloudIdentitytoolkitV1VerifyIosClientRequest", +"properties": { +"appToken": { +"description": "A device token that the iOS client gets after registering to APNs (Apple Push Notification service).", +"type": "string" +}, +"isSandbox": { +"description": "Whether the app token is in the iOS sandbox. If false, the app token is in the production environment.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudIdentitytoolkitV1VerifyIosClientResponse": { +"description": "Response message for VerifyIosClient.", +"id": "GoogleCloudIdentitytoolkitV1VerifyIosClientResponse", +"properties": { +"receipt": { +"description": "Receipt of successful app token validation.", +"type": "string" +}, +"suggestedTimeout": { +"description": "Suggested time that the client should wait in seconds for delivery of the push notification.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Identity Toolkit API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/kgsearch.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/kgsearch.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..7785f009fb66cb083b16d28828a2dad14d22e890 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/kgsearch.v1.json @@ -0,0 +1,184 @@ +{ +"basePath": "", +"baseUrl": "https://kgsearch.googleapis.com/", +"batchPath": "batch", +"description": "Searches the Google Knowledge Graph for entities.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/knowledge-graph/", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "kgsearch:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://kgsearch.mtls.googleapis.com/", +"name": "kgsearch", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"entities": { +"methods": { +"search": { +"description": "Searches Knowledge Graph for entities that match the constraints. A list of matched entities will be returned in response, which will be in JSON-LD format and compatible with http://schema.org", +"flatPath": "v1/entities:search", +"httpMethod": "GET", +"id": "kgsearch.entities.search", +"parameterOrder": [], +"parameters": { +"ids": { +"description": "The list of entity id to be used for search instead of query string. To specify multiple ids in the HTTP request, repeat the parameter in the URL as in ...?ids=A&ids=B", +"location": "query", +"repeated": true, +"type": "string" +}, +"indent": { +"description": "Enables indenting of json results.", +"location": "query", +"type": "boolean" +}, +"languages": { +"description": "The list of language codes (defined in ISO 693) to run the query with, e.g. 'en'.", +"location": "query", +"repeated": true, +"type": "string" +}, +"limit": { +"description": "Limits the number of entities to be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"prefix": { +"description": "Enables prefix match against names and aliases of entities", +"location": "query", +"type": "boolean" +}, +"query": { +"description": "The literal query string for search.", +"location": "query", +"type": "string" +}, +"types": { +"description": "Restricts returned entities with these types, e.g. Person (as defined in http://schema.org/Person). If multiple types are specified, returned entities will contain one or more of these types.", +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/entities:search", +"response": { +"$ref": "SearchResponse" +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://kgsearch.googleapis.com/", +"schemas": { +"SearchResponse": { +"description": "Response message includes the context and a list of matching results which contain the detail of associated entities.", +"id": "SearchResponse", +"properties": { +"@context": { +"description": "The local context applicable for the response. See more details at http://www.w3.org/TR/json-ld/#context-definitions.", +"type": "any" +}, +"@type": { +"description": "The schema type of top-level JSON-LD object, e.g. ItemList.", +"type": "any" +}, +"itemListElement": { +"description": "The item list of search results.", +"items": { +"type": "any" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Knowledge Graph Search API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.datasources_v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.datasources_v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..6487a8bc43dcbbed2987d41cc350f6e49dd78356 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.datasources_v1beta.json @@ -0,0 +1,980 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/content": { +"description": "Manage your product listings and accounts for Google Shopping" +} +} +} +}, +"basePath": "", +"baseUrl": "https://merchantapi.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Merchant", +"description": "Programmatically manage your Merchant Center Accounts.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.devsite.corp.google.com/merchant/api", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "merchantapi:datasources_v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://merchantapi.mtls.googleapis.com/", +"name": "merchantapi", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"resources": { +"dataSources": { +"methods": { +"create": { +"description": "Creates the new data source configuration for the given account.", +"flatPath": "datasources/v1beta/accounts/{accountsId}/dataSources", +"httpMethod": "POST", +"id": "merchantapi.accounts.dataSources.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The account where this data source will be created. Format: `accounts/{account}`", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "datasources/v1beta/{+parent}/dataSources", +"request": { +"$ref": "DataSource" +}, +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"delete": { +"description": "Deletes a data source from your Merchant Center account.", +"flatPath": "datasources/v1beta/accounts/{accountsId}/dataSources/{dataSourcesId}", +"httpMethod": "DELETE", +"id": "merchantapi.accounts.dataSources.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the data source to delete. Format: `accounts/{account}/dataSources/{datasource}`", +"location": "path", +"pattern": "^accounts/[^/]+/dataSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "datasources/v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"fetch": { +"description": "Performs the data fetch immediately (even outside fetch schedule) on a data source from your Merchant Center Account. If you need to call this method more than once per day, you should use the Products service to update your product data instead. This method only works on data sources with a file input set.", +"flatPath": "datasources/v1beta/accounts/{accountsId}/dataSources/{dataSourcesId}:fetch", +"httpMethod": "POST", +"id": "merchantapi.accounts.dataSources.fetch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the data source resource to fetch. Format: `accounts/{account}/dataSources/{datasource}`", +"location": "path", +"pattern": "^accounts/[^/]+/dataSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "datasources/v1beta/{+name}:fetch", +"request": { +"$ref": "FetchDataSourceRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Retrieves the data source configuration for the given account.", +"flatPath": "datasources/v1beta/accounts/{accountsId}/dataSources/{dataSourcesId}", +"httpMethod": "GET", +"id": "merchantapi.accounts.dataSources.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the data source to retrieve. Format: `accounts/{account}/dataSources/{datasource}`", +"location": "path", +"pattern": "^accounts/[^/]+/dataSources/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "datasources/v1beta/{+name}", +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the configurations for data sources for the given account.", +"flatPath": "datasources/v1beta/accounts/{accountsId}/dataSources", +"httpMethod": "GET", +"id": "merchantapi.accounts.dataSources.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of data sources to return. The service may return fewer than this value. The maximum value is 1000; values above 1000 will be coerced to 1000. If unspecified, the maximum number of data sources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListDataSources` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDataSources` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account to list data sources for. Format: `accounts/{account}`", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "datasources/v1beta/{+parent}/dataSources", +"response": { +"$ref": "ListDataSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"patch": { +"description": "Updates the existing data source configuration. The fields that are set in the update mask but not provided in the resource will be deleted.", +"flatPath": "datasources/v1beta/accounts/{accountsId}/dataSources/{dataSourcesId}", +"httpMethod": "PATCH", +"id": "merchantapi.accounts.dataSources.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The name of the data source. Format: `{datasource.name=accounts/{account}/dataSources/{datasource}}`", +"location": "path", +"pattern": "^accounts/[^/]+/dataSources/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of data source fields to be updated. Fields specified in the update mask without a value specified in the body will be deleted from the data source. Providing special \"*\" value for full data source replacement is not supported.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "datasources/v1beta/{+name}", +"request": { +"$ref": "DataSource" +}, +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +}, +"resources": { +"fileUploads": { +"methods": { +"get": { +"description": "Gets the latest data source file upload. Only the `latest` alias is accepted for a file upload.", +"flatPath": "datasources/v1beta/accounts/{accountsId}/dataSources/{dataSourcesId}/fileUploads/{fileUploadsId}", +"httpMethod": "GET", +"id": "merchantapi.accounts.dataSources.fileUploads.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the data source file upload to retrieve. Format: `accounts/{account}/dataSources/{datasource}/fileUploads/latest`", +"location": "path", +"pattern": "^accounts/[^/]+/dataSources/[^/]+/fileUploads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "datasources/v1beta/{+name}", +"response": { +"$ref": "FileUpload" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +} +} +} +} +} +}, +"revision": "20250108", +"rootUrl": "https://merchantapi.googleapis.com/", +"schemas": { +"DataSource": { +"description": "The [data source](https://support.google.com/merchants/answer/7439058) for the Merchant Center account.", +"id": "DataSource", +"properties": { +"dataSourceId": { +"description": "Output only. The data source id.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The displayed data source name in the Merchant Center UI.", +"type": "string" +}, +"fileInput": { +"$ref": "FileInput", +"description": "Optional. The field is used only when data is managed through a file." +}, +"input": { +"description": "Output only. Determines the type of input to the data source. Based on the input some settings might not work. Only generic data sources can be created through the API.", +"enum": [ +"INPUT_UNSPECIFIED", +"API", +"FILE", +"UI", +"AUTOFEED" +], +"enumDescriptions": [ +"Input unspecified.", +"Represents data sources for which the data is primarily provided through the API.", +"Represents data sources for which the data is primarily provided through file input. Data can still be provided through the API.", +"The data source for products added directly in Merchant Center. This type of data source can not be created or updated through this API, only by Merchant Center UI. This type of data source is read only.", +"This is also known as [Automated feeds](https://support.google.com/merchants/answer/12158480) used to automatically build your product data. This type of data source can be enabled or disabled through the Accounts bundle." +], +"readOnly": true, +"type": "string" +}, +"localInventoryDataSource": { +"$ref": "LocalInventoryDataSource", +"description": "The [local inventory](https://support.google.com/merchants/answer/7023001) data source." +}, +"merchantReviewDataSource": { +"$ref": "MerchantReviewDataSource", +"description": "The [merchant review](https://support.google.com/merchants/answer/7045996) data source." +}, +"name": { +"description": "Identifier. The name of the data source. Format: `{datasource.name=accounts/{account}/dataSources/{datasource}}`", +"type": "string" +}, +"primaryProductDataSource": { +"$ref": "PrimaryProductDataSource", +"description": "The [primary data source](https://support.google.com/merchants/answer/7439058) for local and online products." +}, +"productReviewDataSource": { +"$ref": "ProductReviewDataSource", +"description": "The [product review](https://support.google.com/merchants/answer/7045996) data source." +}, +"promotionDataSource": { +"$ref": "PromotionDataSource", +"description": "The [promotion](https://support.google.com/merchants/answer/2906014) data source." +}, +"regionalInventoryDataSource": { +"$ref": "RegionalInventoryDataSource", +"description": "The [regional inventory](https://support.google.com/merchants/answer/7439058) data source." +}, +"supplementalProductDataSource": { +"$ref": "SupplementalProductDataSource", +"description": "The [supplemental data source](https://support.google.com/merchants/answer/7439058) for local and online products." +} +}, +"type": "object" +}, +"DataSourceReference": { +"description": "Data source reference can be used to manage related data sources within the data source service.", +"id": "DataSourceReference", +"properties": { +"primaryDataSourceName": { +"description": "Optional. The name of the primary data source. Format: `accounts/{account}/dataSources/{datasource}`", +"type": "string" +}, +"self": { +"description": "Self should be used to reference the primary data source itself.", +"type": "boolean" +}, +"supplementalDataSourceName": { +"description": "Optional. The name of the supplemental data source. Format: `accounts/{account}/dataSources/{datasource}`", +"type": "string" +} +}, +"type": "object" +}, +"DefaultRule": { +"description": "Default rule management of the data source.", +"id": "DefaultRule", +"properties": { +"takeFromDataSources": { +"description": "Required. The list of data sources linked in the [default rule](https://support.google.com/merchants/answer/7450276). This list is ordered by the default rule priority of joining the data. It might include none or multiple references to `self` and supplemental data sources. The list must not be empty. To link the data source to the default rule, you need to add a new reference to this list (in sequential order). To unlink the data source from the default rule, you need to remove the given reference from this list. Changing the order of this list will result in changing the priority of data sources in the default rule. For example, providing the following list: [`1001`, `self`] will take attribute values from supplemental data source `1001`, and fallback to `self` if the attribute is not set in `1001`.", +"items": { +"$ref": "DataSourceReference" +}, +"type": "array" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"FetchDataSourceRequest": { +"description": "Request message for the FetchDataSource method.", +"id": "FetchDataSourceRequest", +"properties": {}, +"type": "object" +}, +"FetchSettings": { +"description": "Fetch details to deliver the data source.", +"id": "FetchSettings", +"properties": { +"dayOfMonth": { +"description": "Optional. The day of the month when the data source file should be fetched (1-31). This field can only be set for monthly frequency.", +"format": "int32", +"type": "integer" +}, +"dayOfWeek": { +"description": "Optional. The day of the week when the data source file should be fetched. This field can only be set for weekly frequency.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"enabled": { +"description": "Optional. Enables or pauses the fetch schedule.", +"type": "boolean" +}, +"fetchUri": { +"description": "Optional. The URL where the data source file can be fetched. Google Merchant Center supports automatic scheduled uploads using the HTTP, HTTPS or SFTP protocols, so the value will need to be a valid link using one of those three protocols. Immutable for Google Sheets files.", +"type": "string" +}, +"frequency": { +"description": "Required. The frequency describing fetch schedule.", +"enum": [ +"FREQUENCY_UNSPECIFIED", +"FREQUENCY_DAILY", +"FREQUENCY_WEEKLY", +"FREQUENCY_MONTHLY" +], +"enumDescriptions": [ +"Frequency unspecified.", +"The fetch happens every day.", +"The fetch happens every week.", +"The fetch happens every month." +], +"type": "string" +}, +"password": { +"description": "Optional. An optional password for fetch_uri. Used for [submitting data sources through SFTP](https://support.google.com/merchants/answer/13813117).", +"type": "string" +}, +"timeOfDay": { +"$ref": "TimeOfDay", +"description": "Optional. The hour of the day when the data source file should be fetched. Minutes and seconds are not supported and will be ignored." +}, +"timeZone": { +"description": "Optional. [Time zone](https://cldr.unicode.org) used for schedule. UTC by default. For example, \"America/Los_Angeles\".", +"type": "string" +}, +"username": { +"description": "Optional. An optional user name for fetch_uri. Used for [submitting data sources through SFTP](https://support.google.com/merchants/answer/13813117).", +"type": "string" +} +}, +"type": "object" +}, +"FileInput": { +"description": "The data specific for file data sources. This field is empty for other data source inputs.", +"id": "FileInput", +"properties": { +"fetchSettings": { +"$ref": "FetchSettings", +"description": "Optional. Fetch details to deliver the data source. It contains settings for `FETCH` and `GOOGLE_SHEETS` file input types. The required fields vary based on the frequency of fetching." +}, +"fileInputType": { +"description": "Output only. The type of file input.", +"enum": [ +"FILE_INPUT_TYPE_UNSPECIFIED", +"UPLOAD", +"FETCH", +"GOOGLE_SHEETS" +], +"enumDescriptions": [ +"File input type unspecified.", +"The file is uploaded through SFTP, Google Cloud Storage or manually in the Merchant Center.", +"The file is fetched from the configured fetch_uri.", +"The file is fetched from Google Sheets specified in the fetch_uri." +], +"readOnly": true, +"type": "string" +}, +"fileName": { +"description": "Optional. The file name of the data source. Required for `UPLOAD` file input type.", +"type": "string" +} +}, +"type": "object" +}, +"FileUpload": { +"description": "The file upload of a specific data source, that is, the result of the retrieval of the data source at a certain timestamp computed asynchronously when the data source processing is finished. Only applicable to file data sources.", +"id": "FileUpload", +"properties": { +"dataSourceId": { +"description": "Output only. The data source id.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"issues": { +"description": "Output only. The list of issues occurring in the data source.", +"items": { +"$ref": "Issue" +}, +"readOnly": true, +"type": "array" +}, +"itemsCreated": { +"description": "Output only. The number of items in the data source that were created.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"itemsTotal": { +"description": "Output only. The number of items in the data source that were processed.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"itemsUpdated": { +"description": "Output only. The number of items in the data source that were updated.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The name of the data source file upload. Format: `{datasource.name=accounts/{account}/dataSources/{datasource}/fileUploads/{fileupload}}`", +"type": "string" +}, +"processingState": { +"description": "Output only. The processing state of the data source.", +"enum": [ +"PROCESSING_STATE_UNSPECIFIED", +"FAILED", +"IN_PROGRESS", +"SUCCEEDED" +], +"enumDescriptions": [ +"Processing state unspecified.", +"The data source could not be processed or all the items had errors.", +"The data source is being processed.", +"The data source was processed successfully, though some items might have had errors." +], +"readOnly": true, +"type": "string" +}, +"uploadTime": { +"description": "Output only. The date at which the file of the data source was uploaded.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Issue": { +"description": "An error occurring in the data source, like \"invalid price\".", +"id": "Issue", +"properties": { +"code": { +"description": "Output only. The code of the error, for example, \"validation/invalid_value\". Returns \"?\" if the code is unknown.", +"readOnly": true, +"type": "string" +}, +"count": { +"description": "Output only. The number of occurrences of the error in the file upload.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Output only. The error description, for example, \"Your data source contains items which have too many attributes, or are too big. These items will be dropped\".", +"readOnly": true, +"type": "string" +}, +"documentationUri": { +"description": "Output only. Link to the documentation explaining the issue in more details, if available.", +"readOnly": true, +"type": "string" +}, +"severity": { +"description": "Output only. The severity of the issue.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"Severity unspecified.", +"The issue is the warning.", +"The issue is an error." +], +"readOnly": true, +"type": "string" +}, +"title": { +"description": "Output only. The title of the issue, for example, \"Item too big\".", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListDataSourcesResponse": { +"description": "Response message for the ListDataSources method.", +"id": "ListDataSourcesResponse", +"properties": { +"dataSources": { +"description": "The data sources from the specified account.", +"items": { +"$ref": "DataSource" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"LocalInventoryDataSource": { +"description": "The local inventory data source.", +"id": "LocalInventoryDataSource", +"properties": { +"contentLanguage": { +"description": "Required. Immutable. The two-letter ISO 639-1 language of the items to which the local inventory is provided.", +"type": "string" +}, +"feedLabel": { +"description": "Required. Immutable. The feed label of the offers to which the local inventory is provided. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-). See also [migration to feed labels](https://developers.google.com/shopping-content/guides/products/feed-labels).", +"type": "string" +} +}, +"type": "object" +}, +"MerchantReviewDataSource": { +"description": "The merchant review data source.", +"id": "MerchantReviewDataSource", +"properties": {}, +"type": "object" +}, +"PrimaryProductDataSource": { +"description": "The primary data source for local and online products.", +"id": "PrimaryProductDataSource", +"properties": { +"channel": { +"description": "Required. Immutable. Specifies the type of data source channel.", +"enum": [ +"CHANNEL_UNSPECIFIED", +"ONLINE_PRODUCTS", +"LOCAL_PRODUCTS", +"PRODUCTS" +], +"enumDescriptions": [ +"Not specified.", +"Online product.", +"Local product.", +"Unified data source for both local and online products. Note: Products management through the API is not possible for this channel." +], +"type": "string" +}, +"contentLanguage": { +"description": "Optional. Immutable. The two-letter ISO 639-1 language of the items in the data source. `feedLabel` and `contentLanguage` must be either both set or unset. The fields can only be unset for data sources without file input. If set, the data source will only accept products matching this combination. If unset, the data source will accept products without that restriction.", +"type": "string" +}, +"countries": { +"description": "Optional. The countries where the items may be displayed. Represented as a [CLDR territory code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml).", +"items": { +"type": "string" +}, +"type": "array" +}, +"defaultRule": { +"$ref": "DefaultRule", +"description": "Optional. Default rule management of the data source. If set, the linked data sources will be replaced." +}, +"feedLabel": { +"description": "Optional. Immutable. The feed label that is specified on the data source level. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-). See also [migration to feed labels](https://developers.google.com/shopping-content/guides/products/feed-labels). `feedLabel` and `contentLanguage` must be either both set or unset for data sources with product content type. They must be set for data sources with a file input. If set, the data source will only accept products matching this combination. If unset, the data source will accept products without that restriction.", +"type": "string" +} +}, +"type": "object" +}, +"ProductChange": { +"description": "The change that happened to the product including old value, new value, country code as the region code and reporting context.", +"id": "ProductChange", +"properties": { +"newValue": { +"description": "The new value of the changed resource or attribute.", +"type": "string" +}, +"oldValue": { +"description": "The old value of the changed resource or attribute.", +"type": "string" +}, +"regionCode": { +"description": "Countries that have the change (if applicable)", +"type": "string" +}, +"reportingContext": { +"description": "Reporting contexts that have the change (if applicable)", +"enum": [ +"REPORTING_CONTEXT_ENUM_UNSPECIFIED", +"SHOPPING_ADS", +"DISCOVERY_ADS", +"DEMAND_GEN_ADS", +"DEMAND_GEN_ADS_DISCOVER_SURFACE", +"VIDEO_ADS", +"DISPLAY_ADS", +"LOCAL_INVENTORY_ADS", +"VEHICLE_INVENTORY_ADS", +"FREE_LISTINGS", +"FREE_LOCAL_LISTINGS", +"FREE_LOCAL_VEHICLE_LISTINGS", +"YOUTUBE_SHOPPING", +"CLOUD_RETAIL", +"LOCAL_CLOUD_RETAIL", +"PRODUCT_REVIEWS", +"MERCHANT_REVIEWS", +"YOUTUBE_CHECKOUT" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"[Shopping ads](https://support.google.com/merchants/answer/6149970).", +"Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).", +"[Video ads](https://support.google.com/google-ads/answer/6340491).", +"[Display ads](https://support.google.com/merchants/answer/6069387).", +"[Local inventory ads](https://support.google.com/merchants/answer/3271956).", +"[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).", +"[Free product listings](https://support.google.com/merchants/answer/9199328).", +"[Free local product listings](https://support.google.com/merchants/answer/9825611).", +"[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).", +"[YouTube Shopping](https://support.google.com/merchants/answer/13478370).", +"[Cloud retail](https://cloud.google.com/solutions/retail).", +"[Local cloud retail](https://cloud.google.com/solutions/retail).", +"[Product Reviews](https://support.google.com/merchants/answer/14620732).", +"[Merchant Reviews](https://developers.google.com/merchant-review-feeds).", +"[YouTube Checkout](" +], +"type": "string" +} +}, +"type": "object" +}, +"ProductReviewDataSource": { +"description": "The product review data source.", +"id": "ProductReviewDataSource", +"properties": {}, +"type": "object" +}, +"ProductStatusChangeMessage": { +"description": "The message that the merchant will receive to notify about product status change event", +"id": "ProductStatusChangeMessage", +"properties": { +"account": { +"description": "The target account that owns the entity that changed. Format : `accounts/{merchant_id}`", +"type": "string" +}, +"attribute": { +"description": "The attribute in the resource that changed, in this case it will be always `Status`.", +"enum": [ +"ATTRIBUTE_UNSPECIFIED", +"STATUS" +], +"enumDescriptions": [ +"Unspecified attribute", +"Status of the changed entity" +], +"type": "string" +}, +"changes": { +"description": "A message to describe the change that happened to the product", +"items": { +"$ref": "ProductChange" +}, +"type": "array" +}, +"expirationTime": { +"description": "The product expiration time. This field will not bet set if the notification is sent for a product deletion event.", +"format": "google-datetime", +"type": "string" +}, +"managingAccount": { +"description": "The account that manages the merchant's account. can be the same as merchant id if it is standalone account. Format : `accounts/{service_provider_id}`", +"type": "string" +}, +"resource": { +"description": "The product name. Format: `{product.name=accounts/{account}/products/{product}}`", +"type": "string" +}, +"resourceId": { +"description": "The product id.", +"type": "string" +}, +"resourceType": { +"description": "The resource that changed, in this case it will always be `Product`.", +"enum": [ +"RESOURCE_UNSPECIFIED", +"PRODUCT" +], +"enumDescriptions": [ +"Unspecified resource", +"Resource type : product" +], +"type": "string" +} +}, +"type": "object" +}, +"PromotionDataSource": { +"description": "The promotion data source.", +"id": "PromotionDataSource", +"properties": { +"contentLanguage": { +"description": "Required. Immutable. The two-letter ISO 639-1 language of the items in the data source.", +"type": "string" +}, +"targetCountry": { +"description": "Required. Immutable. The target country used as part of the unique identifier. Represented as a [CLDR territory code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml). Promotions are only available in selected [countries](https://support.google.com/merchants/answer/4588460).", +"type": "string" +} +}, +"type": "object" +}, +"RegionalInventoryDataSource": { +"description": "The regional inventory data source.", +"id": "RegionalInventoryDataSource", +"properties": { +"contentLanguage": { +"description": "Required. Immutable. The two-letter ISO 639-1 language of the items to which the regional inventory is provided.", +"type": "string" +}, +"feedLabel": { +"description": "Required. Immutable. The feed label of the offers to which the regional inventory is provided. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-). See also [migration to feed labels](https://developers.google.com/shopping-content/guides/products/feed-labels).", +"type": "string" +} +}, +"type": "object" +}, +"SupplementalProductDataSource": { +"description": "The supplemental data source for local and online products. After creation, you should make sure to link the supplemental product data source into one or more primary product data sources.", +"id": "SupplementalProductDataSource", +"properties": { +"contentLanguage": { +"description": "Optional. Immutable. The two-letter ISO 639-1 language of the items in the data source. `feedLabel` and `contentLanguage` must be either both set or unset. The fields can only be unset for data sources without file input. If set, the data source will only accept products matching this combination. If unset, the data source will accept produts without that restriction.", +"type": "string" +}, +"feedLabel": { +"description": "Optional. Immutable. The feed label that is specified on the data source level. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-). See also [migration to feed labels](https://developers.google.com/shopping-content/guides/products/feed-labels). `feedLabel` and `contentLanguage` must be either both set or unset for data sources with product content type. They must be set for data sources with a file input. The fields must be unset for data sources without file input. If set, the data source will only accept products matching this combination. If unset, the data source will accept produts without that restriction.", +"type": "string" +}, +"referencingPrimaryDataSources": { +"description": "Output only. The (unordered and deduplicated) list of all primary data sources linked to this data source in either default or custom rules. Supplemental data source cannot be deleted before all links are removed.", +"items": { +"$ref": "DataSourceReference" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Merchant API", +"version": "datasources_v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.quota_v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.quota_v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..033574a8bf5ed22e2174d4879c7ca847939f0b4d --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.quota_v1beta.json @@ -0,0 +1,385 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/content": { +"description": "Manage your product listings and accounts for Google Shopping" +} +} +} +}, +"basePath": "", +"baseUrl": "https://merchantapi.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Merchant", +"description": "Programmatically manage your Merchant Center Accounts.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.devsite.corp.google.com/merchant/api", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "merchantapi:quota_v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://merchantapi.mtls.googleapis.com/", +"name": "merchantapi", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"resources": { +"quotas": { +"methods": { +"list": { +"description": "Lists the daily call quota and usage per group for your Merchant Center account.", +"flatPath": "quota/v1beta/accounts/{accountsId}/quotas", +"httpMethod": "GET", +"id": "merchantapi.accounts.quotas.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of quotas to return in the response, used for paging. Defaults to 500; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token (if provided) to retrieve the subsequent page. All other parameters must match the original call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The merchant account who owns the collection of method quotas Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "quota/v1beta/{+parent}/quotas", +"response": { +"$ref": "ListQuotaGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +} +} +} +}, +"revision": "20241119", +"rootUrl": "https://merchantapi.googleapis.com/", +"schemas": { +"ListQuotaGroupsResponse": { +"description": "Response message for the ListMethodGroups method.", +"id": "ListQuotaGroupsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"quotaGroups": { +"description": "The methods, current quota usage and limits per each group. The quota is shared between all methods in the group. The groups are sorted in descending order based on quota_usage.", +"items": { +"$ref": "QuotaGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"MethodDetails": { +"description": "The method details per method in the Merchant API.", +"id": "MethodDetails", +"properties": { +"method": { +"description": "Output only. The name of the method for example `products.list`.", +"readOnly": true, +"type": "string" +}, +"path": { +"description": "Output only. The path for the method such as `products/v1/productInputs.insert`", +"readOnly": true, +"type": "string" +}, +"subapi": { +"description": "Output only. The sub-API that the method belongs to.", +"readOnly": true, +"type": "string" +}, +"version": { +"description": "Output only. The API version that the method belongs to.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ProductChange": { +"description": "The change that happened to the product including old value, new value, country code as the region code and reporting context.", +"id": "ProductChange", +"properties": { +"newValue": { +"description": "The new value of the changed resource or attribute.", +"type": "string" +}, +"oldValue": { +"description": "The old value of the changed resource or attribute.", +"type": "string" +}, +"regionCode": { +"description": "Countries that have the change (if applicable)", +"type": "string" +}, +"reportingContext": { +"description": "Reporting contexts that have the change (if applicable)", +"enum": [ +"REPORTING_CONTEXT_ENUM_UNSPECIFIED", +"SHOPPING_ADS", +"DISCOVERY_ADS", +"DEMAND_GEN_ADS", +"DEMAND_GEN_ADS_DISCOVER_SURFACE", +"VIDEO_ADS", +"DISPLAY_ADS", +"LOCAL_INVENTORY_ADS", +"VEHICLE_INVENTORY_ADS", +"FREE_LISTINGS", +"FREE_LOCAL_LISTINGS", +"FREE_LOCAL_VEHICLE_LISTINGS", +"YOUTUBE_SHOPPING", +"CLOUD_RETAIL", +"LOCAL_CLOUD_RETAIL", +"PRODUCT_REVIEWS", +"MERCHANT_REVIEWS", +"YOUTUBE_CHECKOUT" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"[Shopping ads](https://support.google.com/merchants/answer/6149970).", +"Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).", +"[Video ads](https://support.google.com/google-ads/answer/6340491).", +"[Display ads](https://support.google.com/merchants/answer/6069387).", +"[Local inventory ads](https://support.google.com/merchants/answer/3271956).", +"[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).", +"[Free product listings](https://support.google.com/merchants/answer/9199328).", +"[Free local product listings](https://support.google.com/merchants/answer/9825611).", +"[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).", +"[YouTube Shopping](https://support.google.com/merchants/answer/13478370).", +"[Cloud retail](https://cloud.google.com/solutions/retail).", +"[Local cloud retail](https://cloud.google.com/solutions/retail).", +"[Product Reviews](https://support.google.com/merchants/answer/14620732).", +"[Merchant Reviews](https://developers.google.com/merchant-review-feeds).", +"[YouTube Checkout](" +], +"type": "string" +} +}, +"type": "object" +}, +"ProductStatusChangeMessage": { +"description": "The message that the merchant will receive to notify about product status change event", +"id": "ProductStatusChangeMessage", +"properties": { +"account": { +"description": "The target account that owns the entity that changed. Format : `accounts/{merchant_id}`", +"type": "string" +}, +"attribute": { +"description": "The attribute in the resource that changed, in this case it will be always `Status`.", +"enum": [ +"ATTRIBUTE_UNSPECIFIED", +"STATUS" +], +"enumDescriptions": [ +"Unspecified attribute", +"Status of the changed entity" +], +"type": "string" +}, +"changes": { +"description": "A message to describe the change that happened to the product", +"items": { +"$ref": "ProductChange" +}, +"type": "array" +}, +"expirationTime": { +"description": "The product expiration time. This field will not bet set if the notification is sent for a product deletion event.", +"format": "google-datetime", +"type": "string" +}, +"managingAccount": { +"description": "The account that manages the merchant's account. can be the same as merchant id if it is standalone account. Format : `accounts/{service_provider_id}`", +"type": "string" +}, +"resource": { +"description": "The product name. Format: `{product.name=accounts/{account}/products/{product}}`", +"type": "string" +}, +"resourceId": { +"description": "The product id.", +"type": "string" +}, +"resourceType": { +"description": "The resource that changed, in this case it will always be `Product`.", +"enum": [ +"RESOURCE_UNSPECIFIED", +"PRODUCT" +], +"enumDescriptions": [ +"Unspecified resource", +"Resource type : product" +], +"type": "string" +} +}, +"type": "object" +}, +"QuotaGroup": { +"description": "The group information for methods in the Merchant API. The quota is shared between all methods in the group. Even if none of the methods within the group have usage the information for the group is returned.", +"id": "QuotaGroup", +"properties": { +"methodDetails": { +"description": "Output only. List of all methods group quota applies to.", +"items": { +"$ref": "MethodDetails" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Identifier. The resource name of the quota group. Format: accounts/{account}/quotas/{group} Note: There is no guarantee on the format of {group}", +"type": "string" +}, +"quotaLimit": { +"description": "Output only. The maximum number of calls allowed per day for the group.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"quotaMinuteLimit": { +"description": "Output only. The maximum number of calls allowed per minute for the group.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"quotaUsage": { +"description": "Output only. The current quota usage, meaning the number of calls already made on a given day to the methods in the group. The daily quota limits reset at at 12:00 PM midday UTC.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Merchant API", +"version": "quota_v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.reviews_v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.reviews_v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..937fd4216ef21d45d27f6d9ad29d590720869179 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.reviews_v1beta.json @@ -0,0 +1,1372 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/content": { +"description": "Manage your product listings and accounts for Google Shopping" +} +} +} +}, +"basePath": "", +"baseUrl": "https://merchantapi.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Merchant", +"description": "Programmatically manage your Merchant Center Accounts.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.devsite.corp.google.com/merchant/api", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "merchantapi:reviews_v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://merchantapi.mtls.googleapis.com/", +"name": "merchantapi", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"resources": { +"merchantReviews": { +"methods": { +"delete": { +"description": "Deletes merchant review.", +"flatPath": "reviews/v1beta/accounts/{accountsId}/merchantReviews/{merchantReviewsId}", +"httpMethod": "DELETE", +"id": "merchantapi.accounts.merchantReviews.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The ID of the merchant review. Format: accounts/{account}/merchantReviews/{merchantReview}", +"location": "path", +"pattern": "^accounts/[^/]+/merchantReviews/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "reviews/v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Gets a merchant review.", +"flatPath": "reviews/v1beta/accounts/{accountsId}/merchantReviews/{merchantReviewsId}", +"httpMethod": "GET", +"id": "merchantapi.accounts.merchantReviews.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The ID of the merchant review. Format: accounts/{account}/merchantReviews/{merchantReview}", +"location": "path", +"pattern": "^accounts/[^/]+/merchantReviews/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "reviews/v1beta/{+name}", +"response": { +"$ref": "MerchantReview" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Inserts a review for your Merchant Center account. If the review already exists, then the review is replaced with the new instance.", +"flatPath": "reviews/v1beta/accounts/{accountsId}/merchantReviews:insert", +"httpMethod": "POST", +"id": "merchantapi.accounts.merchantReviews.insert", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataSource": { +"description": "Required. The data source of the [merchantreview](https://support.google.com/merchants/answer/7045996?sjid=5253581244217581976-EU) Format: `accounts/{account}/dataSources/{datasource}`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account where the merchant review will be inserted. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "reviews/v1beta/{+parent}/merchantReviews:insert", +"request": { +"$ref": "MerchantReview" +}, +"response": { +"$ref": "MerchantReview" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists merchant reviews.", +"flatPath": "reviews/v1beta/accounts/{accountsId}/merchantReviews", +"httpMethod": "GET", +"id": "merchantapi.accounts.merchantReviews.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of merchant reviews to return. The service can return fewer than this value. The maximum value is 1000; values above 1000 are coerced to 1000. If unspecified, the maximum number of reviews is returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListMerchantReviews` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListMerchantReviews` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account to list merchant reviews for. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "reviews/v1beta/{+parent}/merchantReviews", +"response": { +"$ref": "ListMerchantReviewsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"productReviews": { +"methods": { +"delete": { +"description": "Deletes a product review.", +"flatPath": "reviews/v1beta/accounts/{accountsId}/productReviews/{productReviewsId}", +"httpMethod": "DELETE", +"id": "merchantapi.accounts.productReviews.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The ID of the Product review. Format: accounts/{account}/productReviews/{productReview}", +"location": "path", +"pattern": "^accounts/[^/]+/productReviews/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "reviews/v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"get": { +"description": "Gets a product review.", +"flatPath": "reviews/v1beta/accounts/{accountsId}/productReviews/{productReviewsId}", +"httpMethod": "GET", +"id": "merchantapi.accounts.productReviews.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The ID of the merchant review. Format: accounts/{account}/productReviews/{productReview}", +"location": "path", +"pattern": "^accounts/[^/]+/productReviews/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "reviews/v1beta/{+name}", +"response": { +"$ref": "ProductReview" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Inserts a product review.", +"flatPath": "reviews/v1beta/accounts/{accountsId}/productReviews:insert", +"httpMethod": "POST", +"id": "merchantapi.accounts.productReviews.insert", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataSource": { +"description": "Required. Format: `accounts/{account}/dataSources/{datasource}`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account where the product review will be inserted. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "reviews/v1beta/{+parent}/productReviews:insert", +"request": { +"$ref": "ProductReview" +}, +"response": { +"$ref": "ProductReview" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists product reviews.", +"flatPath": "reviews/v1beta/accounts/{accountsId}/productReviews", +"httpMethod": "GET", +"id": "merchantapi.accounts.productReviews.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of products to return. The service may return fewer than this value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListProductReviews` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListProductReviews` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account to list product reviews for. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "reviews/v1beta/{+parent}/productReviews", +"response": { +"$ref": "ListProductReviewsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +} +} +} +}, +"revision": "20241119", +"rootUrl": "https://merchantapi.googleapis.com/", +"schemas": { +"CustomAttribute": { +"description": "A message that represents custom attributes. Exactly one of `value` or `group_values` must not be empty.", +"id": "CustomAttribute", +"properties": { +"groupValues": { +"description": "Subattributes within this attribute group. If `group_values` is not empty, `value` must be empty.", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"name": { +"description": "The name of the attribute.", +"type": "string" +}, +"value": { +"description": "The value of the attribute. If `value` is not empty, `group_values` must be empty.", +"type": "string" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"ListMerchantReviewsResponse": { +"description": "Response message for the `ListMerchantsReview` method.", +"id": "ListMerchantReviewsResponse", +"properties": { +"merchantReviews": { +"description": "The merchant review.", +"items": { +"$ref": "MerchantReview" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListProductReviewsResponse": { +"description": "response message for the ListProductReviews method.", +"id": "ListProductReviewsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"productReviews": { +"description": "The product review.", +"items": { +"$ref": "ProductReview" +}, +"type": "array" +} +}, +"type": "object" +}, +"MerchantReview": { +"description": "A review for a merchant. For more information, see [Introduction to Merchant Review Feeds](https://developers.google.com/merchant-review-feeds)", +"id": "MerchantReview", +"properties": { +"attributes": { +"$ref": "MerchantReviewAttributes", +"description": "Optional. A list of merchant review attributes." +}, +"customAttributes": { +"description": "Required. A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the data specification in its generic form (for example, `{ \"name\": \"size type\", \"value\": \"regular\" }`). This is useful for submitting attributes not explicitly exposed by the API, such as experimental attributes. Maximum allowed number of characters for each custom attribute is 10240 (represents sum of characters for name and value). Maximum 2500 custom attributes can be set per product, with total size of 102.4kB. Underscores in custom attribute names are replaced by spaces upon insertion.", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"dataSource": { +"description": "Output only. The primary data source of the merchant review.", +"readOnly": true, +"type": "string" +}, +"merchantReviewId": { +"description": "Required. The user provided merchant review ID to uniquely identify the merchant review.", +"type": "string" +}, +"merchantReviewStatus": { +"$ref": "MerchantReviewStatus", +"description": "Output only. The status of a merchant review, data validation issues, that is, information about a merchant review computed asynchronously.", +"readOnly": true +}, +"name": { +"description": "Identifier. The name of the merchant review. Format: `\"{merchantreview.name=accounts/{account}/merchantReviews/{merchantReview}}\"`", +"type": "string" +} +}, +"type": "object" +}, +"MerchantReviewAttributes": { +"description": "Attributes.", +"id": "MerchantReviewAttributes", +"properties": { +"collectionMethod": { +"description": "Optional. The method used to collect the review.", +"enum": [ +"COLLECTION_METHOD_UNSPECIFIED", +"MERCHANT_UNSOLICITED", +"POINT_OF_SALE", +"AFTER_FULFILLMENT" +], +"enumDescriptions": [ +"Collection method unspecified.", +"The user was not responding to a specific solicitation when they submitted the review.", +"The user submitted the review in response to a solicitation when the user placed an order.", +"The user submitted the review in response to a solicitation after fulfillment of the user's order." +], +"type": "string" +}, +"content": { +"description": "Required. This should be any freeform text provided by the user and should not be truncated. If multiple responses to different questions are provided, all responses should be included, with the minimal context for the responses to make sense. Context should not be provided if questions were left unanswered.", +"type": "string" +}, +"isAnonymous": { +"description": "Optional. Set to true if the reviewer should remain anonymous.", +"type": "boolean" +}, +"maxRating": { +"description": "Optional. The maximum possible number for the rating. The value of the max rating must be greater than the value of the min rating.", +"format": "int64", +"type": "string" +}, +"merchantDisplayName": { +"description": "Optional. Human-readable display name for the merchant.", +"type": "string" +}, +"merchantId": { +"description": "Required. Must be unique and stable across all requests. In other words, if a request today and another 90 days ago refer to the same merchant, they must have the same id.", +"type": "string" +}, +"merchantLink": { +"description": "Optional. URL to the merchant's main website. Do not use a redirect URL for this value. In other words, the value should point directly to the merchant's site.", +"type": "string" +}, +"merchantRatingLink": { +"description": "Optional. URL to the landing page that hosts the reviews for this merchant. Do not use a redirect URL.", +"type": "string" +}, +"minRating": { +"description": "Optional. The minimum possible number for the rating. This should be the worst possible rating and should not be a value for no rating.", +"format": "int64", +"type": "string" +}, +"rating": { +"description": "Optional. The reviewer's overall rating of the merchant.", +"format": "double", +"type": "number" +}, +"reviewCountry": { +"description": "Optional. The country where the reviewer made the order defined by ISO 3166-1 Alpha-2 Country Code.", +"type": "string" +}, +"reviewLanguage": { +"description": "Required. The language of the review defined by BCP-47 language code.", +"type": "string" +}, +"reviewTime": { +"description": "Required. The timestamp indicating when the review was written.", +"format": "google-datetime", +"type": "string" +}, +"reviewerId": { +"description": "Optional. A permanent, unique identifier for the author of the review in the publisher's system.", +"type": "string" +}, +"reviewerUsername": { +"description": "Optional. Display name of the review author.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the review.", +"type": "string" +} +}, +"type": "object" +}, +"MerchantReviewDestinationStatus": { +"description": "The destination status of the merchant review status.", +"id": "MerchantReviewDestinationStatus", +"properties": { +"reportingContext": { +"description": "Output only. The name of the reporting context.", +"enum": [ +"REPORTING_CONTEXT_ENUM_UNSPECIFIED", +"SHOPPING_ADS", +"DISCOVERY_ADS", +"DEMAND_GEN_ADS", +"DEMAND_GEN_ADS_DISCOVER_SURFACE", +"VIDEO_ADS", +"DISPLAY_ADS", +"LOCAL_INVENTORY_ADS", +"VEHICLE_INVENTORY_ADS", +"FREE_LISTINGS", +"FREE_LOCAL_LISTINGS", +"FREE_LOCAL_VEHICLE_LISTINGS", +"YOUTUBE_SHOPPING", +"CLOUD_RETAIL", +"LOCAL_CLOUD_RETAIL", +"PRODUCT_REVIEWS", +"MERCHANT_REVIEWS", +"YOUTUBE_CHECKOUT" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"[Shopping ads](https://support.google.com/merchants/answer/6149970).", +"Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).", +"[Video ads](https://support.google.com/google-ads/answer/6340491).", +"[Display ads](https://support.google.com/merchants/answer/6069387).", +"[Local inventory ads](https://support.google.com/merchants/answer/3271956).", +"[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).", +"[Free product listings](https://support.google.com/merchants/answer/9199328).", +"[Free local product listings](https://support.google.com/merchants/answer/9825611).", +"[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).", +"[YouTube Shopping](https://support.google.com/merchants/answer/13478370).", +"[Cloud retail](https://cloud.google.com/solutions/retail).", +"[Local cloud retail](https://cloud.google.com/solutions/retail).", +"[Product Reviews](https://support.google.com/merchants/answer/14620732).", +"[Merchant Reviews](https://developers.google.com/merchant-review-feeds).", +"[YouTube Checkout](" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MerchantReviewItemLevelIssue": { +"description": "The ItemLevelIssue of the merchant review status.", +"id": "MerchantReviewItemLevelIssue", +"properties": { +"attribute": { +"description": "Output only. The attribute's name, if the issue is caused by a single attribute.", +"readOnly": true, +"type": "string" +}, +"code": { +"description": "Output only. The error code of the issue.", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Output only. A short issue description in English.", +"readOnly": true, +"type": "string" +}, +"detail": { +"description": "Output only. A detailed issue description in English.", +"readOnly": true, +"type": "string" +}, +"documentation": { +"description": "Output only. The URL of a web page to help with resolving this issue.", +"readOnly": true, +"type": "string" +}, +"reportingContext": { +"description": "Output only. The reporting context the issue applies to.", +"enum": [ +"REPORTING_CONTEXT_ENUM_UNSPECIFIED", +"SHOPPING_ADS", +"DISCOVERY_ADS", +"DEMAND_GEN_ADS", +"DEMAND_GEN_ADS_DISCOVER_SURFACE", +"VIDEO_ADS", +"DISPLAY_ADS", +"LOCAL_INVENTORY_ADS", +"VEHICLE_INVENTORY_ADS", +"FREE_LISTINGS", +"FREE_LOCAL_LISTINGS", +"FREE_LOCAL_VEHICLE_LISTINGS", +"YOUTUBE_SHOPPING", +"CLOUD_RETAIL", +"LOCAL_CLOUD_RETAIL", +"PRODUCT_REVIEWS", +"MERCHANT_REVIEWS", +"YOUTUBE_CHECKOUT" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"[Shopping ads](https://support.google.com/merchants/answer/6149970).", +"Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).", +"[Video ads](https://support.google.com/google-ads/answer/6340491).", +"[Display ads](https://support.google.com/merchants/answer/6069387).", +"[Local inventory ads](https://support.google.com/merchants/answer/3271956).", +"[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).", +"[Free product listings](https://support.google.com/merchants/answer/9199328).", +"[Free local product listings](https://support.google.com/merchants/answer/9825611).", +"[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).", +"[YouTube Shopping](https://support.google.com/merchants/answer/13478370).", +"[Cloud retail](https://cloud.google.com/solutions/retail).", +"[Local cloud retail](https://cloud.google.com/solutions/retail).", +"[Product Reviews](https://support.google.com/merchants/answer/14620732).", +"[Merchant Reviews](https://developers.google.com/merchant-review-feeds).", +"[YouTube Checkout](" +], +"readOnly": true, +"type": "string" +}, +"resolution": { +"description": "Output only. Whether the issue can be resolved by the merchant.", +"readOnly": true, +"type": "string" +}, +"severity": { +"description": "Output only. How this issue affects serving of the merchant review.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"NOT_IMPACTED", +"DISAPPROVED" +], +"enumDescriptions": [ +"Not specified.", +"This issue represents a warning and does not have a direct affect on the merchant review.", +"Issue disapproves the merchant review." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MerchantReviewStatus": { +"description": "The status of a merchant review, data validation issues, that is, information about a merchant review computed asynchronously.", +"id": "MerchantReviewStatus", +"properties": { +"createTime": { +"description": "Output only. Date on which the item has been created, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"destinationStatuses": { +"description": "Output only. The intended destinations for the merchant review.", +"items": { +"$ref": "MerchantReviewDestinationStatus" +}, +"readOnly": true, +"type": "array" +}, +"itemLevelIssues": { +"description": "Output only. A list of all issues associated with the merchant review.", +"items": { +"$ref": "MerchantReviewItemLevelIssue" +}, +"readOnly": true, +"type": "array" +}, +"lastUpdateTime": { +"description": "Output only. Date on which the item has been last updated, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ProductChange": { +"description": "The change that happened to the product including old value, new value, country code as the region code and reporting context.", +"id": "ProductChange", +"properties": { +"newValue": { +"description": "The new value of the changed resource or attribute.", +"type": "string" +}, +"oldValue": { +"description": "The old value of the changed resource or attribute.", +"type": "string" +}, +"regionCode": { +"description": "Countries that have the change (if applicable)", +"type": "string" +}, +"reportingContext": { +"description": "Reporting contexts that have the change (if applicable)", +"enum": [ +"REPORTING_CONTEXT_ENUM_UNSPECIFIED", +"SHOPPING_ADS", +"DISCOVERY_ADS", +"DEMAND_GEN_ADS", +"DEMAND_GEN_ADS_DISCOVER_SURFACE", +"VIDEO_ADS", +"DISPLAY_ADS", +"LOCAL_INVENTORY_ADS", +"VEHICLE_INVENTORY_ADS", +"FREE_LISTINGS", +"FREE_LOCAL_LISTINGS", +"FREE_LOCAL_VEHICLE_LISTINGS", +"YOUTUBE_SHOPPING", +"CLOUD_RETAIL", +"LOCAL_CLOUD_RETAIL", +"PRODUCT_REVIEWS", +"MERCHANT_REVIEWS", +"YOUTUBE_CHECKOUT" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"[Shopping ads](https://support.google.com/merchants/answer/6149970).", +"Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).", +"[Video ads](https://support.google.com/google-ads/answer/6340491).", +"[Display ads](https://support.google.com/merchants/answer/6069387).", +"[Local inventory ads](https://support.google.com/merchants/answer/3271956).", +"[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).", +"[Free product listings](https://support.google.com/merchants/answer/9199328).", +"[Free local product listings](https://support.google.com/merchants/answer/9825611).", +"[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).", +"[YouTube Shopping](https://support.google.com/merchants/answer/13478370).", +"[Cloud retail](https://cloud.google.com/solutions/retail).", +"[Local cloud retail](https://cloud.google.com/solutions/retail).", +"[Product Reviews](https://support.google.com/merchants/answer/14620732).", +"[Merchant Reviews](https://developers.google.com/merchant-review-feeds).", +"[YouTube Checkout](" +], +"type": "string" +} +}, +"type": "object" +}, +"ProductReview": { +"description": "A review for a product. For more information, see [Introduction to Product Review Feeds](https://developers.google.com/product-review-feeds)", +"id": "ProductReview", +"properties": { +"attributes": { +"$ref": "ProductReviewAttributes", +"description": "Optional. A list of product review attributes." +}, +"customAttributes": { +"description": "Optional. A list of custom (merchant-provided) attributes.", +"items": { +"$ref": "CustomAttribute" +}, +"type": "array" +}, +"dataSource": { +"description": "Output only. The primary data source of the product review.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The name of the product review. Format: `\"{productreview.name=accounts/{account}/productReviews/{productReview}}\"`", +"type": "string" +}, +"productReviewId": { +"description": "Required. The permanent, unique identifier for the product review in the publisher\u2019s system.", +"type": "string" +}, +"productReviewStatus": { +"$ref": "ProductReviewStatus", +"description": "Output only. The status of a product review, data validation issues, that is, information about a product review computed asynchronously.", +"readOnly": true +} +}, +"type": "object" +}, +"ProductReviewAttributes": { +"description": "Attributes.", +"id": "ProductReviewAttributes", +"properties": { +"aggregatorName": { +"description": "Optional. The name of the aggregator of the product reviews. A publisher may use a reviews aggregator to manage reviews and provide the feeds. This element indicates the use of an aggregator and contains information about the aggregator.", +"type": "string" +}, +"asins": { +"description": "Optional. Contains ASINs (Amazon Standard Identification Numbers) associated with a product.", +"items": { +"type": "string" +}, +"type": "array" +}, +"brands": { +"description": "Optional. Contains brand names associated with a product.", +"items": { +"type": "string" +}, +"type": "array" +}, +"collectionMethod": { +"description": "Optional. The method used to collect the review.", +"enum": [ +"COLLECTION_METHOD_UNSPECIFIED", +"UNSOLICITED", +"POST_FULFILLMENT" +], +"enumDescriptions": [ +"Collection method unspecified.", +"The user was not responding to a specific solicitation when they submitted the review.", +"The user submitted the review in response to a solicitation after fulfillment of the user's order." +], +"type": "string" +}, +"cons": { +"description": "Optional. Contains the disadvantages based on the opinion of the reviewer. Omit boilerplate text like \"con:\" unless it was written by the reviewer.", +"items": { +"type": "string" +}, +"type": "array" +}, +"content": { +"description": "Required. The content of the review.", +"type": "string" +}, +"gtins": { +"description": "Optional. Contains GTINs (global trade item numbers) associated with a product. Sub-types of GTINs (e.g. UPC, EAN, ISBN, JAN) are supported.", +"items": { +"type": "string" +}, +"type": "array" +}, +"isSpam": { +"description": "Optional. Indicates whether the review is marked as spam in the publisher's system.", +"type": "boolean" +}, +"maxRating": { +"description": "Optional. The maximum possible number for the rating. The value of the max rating must be greater than the value of the min attribute.", +"format": "int64", +"type": "string" +}, +"minRating": { +"description": "Optional. Contains the ratings associated with the review. The minimum possible number for the rating. This should be the worst possible rating and should not be a value for no rating.", +"format": "int64", +"type": "string" +}, +"mpns": { +"description": "Optional. Contains MPNs (manufacturer part numbers) associated with a product.", +"items": { +"type": "string" +}, +"type": "array" +}, +"productLinks": { +"description": "Optional. The URI of the product. This URI can have the same value as the `review_link` element, if the review URI and the product URI are the same.", +"items": { +"type": "string" +}, +"type": "array" +}, +"productNames": { +"description": "Optional. Descriptive name of a product.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pros": { +"description": "Optional. Contains the advantages based on the opinion of the reviewer. Omit boilerplate text like \"pro:\" unless it was written by the reviewer.", +"items": { +"type": "string" +}, +"type": "array" +}, +"publisherFavicon": { +"description": "Optional. A link to the company favicon of the publisher. The image dimensions should be favicon size: 16x16 pixels. The image format should be GIF, JPG or PNG.", +"type": "string" +}, +"publisherName": { +"description": "Optional. The name of the publisher of the product reviews. The information about the publisher, which may be a retailer, manufacturer, reviews service company, or any entity that publishes product reviews.", +"type": "string" +}, +"rating": { +"description": "Optional. The reviewer's overall rating of the product.", +"format": "double", +"type": "number" +}, +"reviewCountry": { +"description": "Optional. The country of the review defined by ISO 3166-1 Alpha-2 Country Code.", +"type": "string" +}, +"reviewLanguage": { +"description": "Optional. The language of the review defined by BCP-47 language code.", +"type": "string" +}, +"reviewLink": { +"$ref": "ReviewLink", +"description": "Optional. The URI of the review landing page." +}, +"reviewTime": { +"description": "Required. The timestamp indicating when the review was written.", +"format": "google-datetime", +"type": "string" +}, +"reviewerId": { +"description": "Optional. The author of the product review. A permanent, unique identifier for the author of the review in the publisher's system.", +"type": "string" +}, +"reviewerImageLinks": { +"description": "Optional. A URI to an image of the reviewed product created by the review author. The URI does not have to end with an image file extension.", +"items": { +"type": "string" +}, +"type": "array" +}, +"reviewerIsAnonymous": { +"description": "Optional. Set to true if the reviewer should remain anonymous.", +"type": "boolean" +}, +"reviewerUsername": { +"description": "Optional. The name of the reviewer of the product review.", +"type": "string" +}, +"skus": { +"description": "Optional. Contains SKUs (stock keeping units) associated with a product. Often this matches the product Offer Id in the product feed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"subclientName": { +"description": "Optional. The name of the subclient of the product reviews. The subclient is an identifier of the product review source. It should be equivalent to the directory provided in the file data source path.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the review.", +"type": "string" +}, +"transactionId": { +"description": "Optional. A permanent, unique identifier for the transaction associated with the review in the publisher's system. This ID can be used to indicate that multiple reviews are associated with the same transaction.", +"type": "string" +} +}, +"type": "object" +}, +"ProductReviewDestinationStatus": { +"description": "The destination status of the product review status.", +"id": "ProductReviewDestinationStatus", +"properties": { +"reportingContext": { +"description": "Output only. The name of the reporting context.", +"enum": [ +"REPORTING_CONTEXT_ENUM_UNSPECIFIED", +"SHOPPING_ADS", +"DISCOVERY_ADS", +"DEMAND_GEN_ADS", +"DEMAND_GEN_ADS_DISCOVER_SURFACE", +"VIDEO_ADS", +"DISPLAY_ADS", +"LOCAL_INVENTORY_ADS", +"VEHICLE_INVENTORY_ADS", +"FREE_LISTINGS", +"FREE_LOCAL_LISTINGS", +"FREE_LOCAL_VEHICLE_LISTINGS", +"YOUTUBE_SHOPPING", +"CLOUD_RETAIL", +"LOCAL_CLOUD_RETAIL", +"PRODUCT_REVIEWS", +"MERCHANT_REVIEWS", +"YOUTUBE_CHECKOUT" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"[Shopping ads](https://support.google.com/merchants/answer/6149970).", +"Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).", +"[Video ads](https://support.google.com/google-ads/answer/6340491).", +"[Display ads](https://support.google.com/merchants/answer/6069387).", +"[Local inventory ads](https://support.google.com/merchants/answer/3271956).", +"[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).", +"[Free product listings](https://support.google.com/merchants/answer/9199328).", +"[Free local product listings](https://support.google.com/merchants/answer/9825611).", +"[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).", +"[YouTube Shopping](https://support.google.com/merchants/answer/13478370).", +"[Cloud retail](https://cloud.google.com/solutions/retail).", +"[Local cloud retail](https://cloud.google.com/solutions/retail).", +"[Product Reviews](https://support.google.com/merchants/answer/14620732).", +"[Merchant Reviews](https://developers.google.com/merchant-review-feeds).", +"[YouTube Checkout](" +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ProductReviewItemLevelIssue": { +"description": "The ItemLevelIssue of the product review status.", +"id": "ProductReviewItemLevelIssue", +"properties": { +"attribute": { +"description": "Output only. The attribute's name, if the issue is caused by a single attribute.", +"readOnly": true, +"type": "string" +}, +"code": { +"description": "Output only. The error code of the issue.", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Output only. A short issue description in English.", +"readOnly": true, +"type": "string" +}, +"detail": { +"description": "Output only. A detailed issue description in English.", +"readOnly": true, +"type": "string" +}, +"documentation": { +"description": "Output only. The URL of a web page to help with resolving this issue.", +"readOnly": true, +"type": "string" +}, +"reportingContext": { +"description": "Output only. The reporting context the issue applies to.", +"enum": [ +"REPORTING_CONTEXT_ENUM_UNSPECIFIED", +"SHOPPING_ADS", +"DISCOVERY_ADS", +"DEMAND_GEN_ADS", +"DEMAND_GEN_ADS_DISCOVER_SURFACE", +"VIDEO_ADS", +"DISPLAY_ADS", +"LOCAL_INVENTORY_ADS", +"VEHICLE_INVENTORY_ADS", +"FREE_LISTINGS", +"FREE_LOCAL_LISTINGS", +"FREE_LOCAL_VEHICLE_LISTINGS", +"YOUTUBE_SHOPPING", +"CLOUD_RETAIL", +"LOCAL_CLOUD_RETAIL", +"PRODUCT_REVIEWS", +"MERCHANT_REVIEWS", +"YOUTUBE_CHECKOUT" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"[Shopping ads](https://support.google.com/merchants/answer/6149970).", +"Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads](https://support.google.com/merchants/answer/13389785).", +"[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).", +"[Video ads](https://support.google.com/google-ads/answer/6340491).", +"[Display ads](https://support.google.com/merchants/answer/6069387).", +"[Local inventory ads](https://support.google.com/merchants/answer/3271956).", +"[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).", +"[Free product listings](https://support.google.com/merchants/answer/9199328).", +"[Free local product listings](https://support.google.com/merchants/answer/9825611).", +"[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).", +"[YouTube Shopping](https://support.google.com/merchants/answer/13478370).", +"[Cloud retail](https://cloud.google.com/solutions/retail).", +"[Local cloud retail](https://cloud.google.com/solutions/retail).", +"[Product Reviews](https://support.google.com/merchants/answer/14620732).", +"[Merchant Reviews](https://developers.google.com/merchant-review-feeds).", +"[YouTube Checkout](" +], +"readOnly": true, +"type": "string" +}, +"resolution": { +"description": "Output only. Whether the issue can be resolved by the merchant.", +"readOnly": true, +"type": "string" +}, +"severity": { +"description": "Output only. How this issue affects serving of the product review.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"NOT_IMPACTED", +"DISAPPROVED" +], +"enumDescriptions": [ +"Not specified.", +"This issue represents a warning and does not have a direct affect on the product review.", +"Issue disapproves the product review." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ProductReviewStatus": { +"description": "Product review status.", +"id": "ProductReviewStatus", +"properties": { +"createTime": { +"description": "Output only. Date on which the item has been created, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"destinationStatuses": { +"description": "Output only. The intended destinations for the product review.", +"items": { +"$ref": "ProductReviewDestinationStatus" +}, +"readOnly": true, +"type": "array" +}, +"itemLevelIssues": { +"description": "Output only. A list of all issues associated with the product review.", +"items": { +"$ref": "ProductReviewItemLevelIssue" +}, +"readOnly": true, +"type": "array" +}, +"lastUpdateTime": { +"description": "Output only. Date on which the item has been last updated, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ProductStatusChangeMessage": { +"description": "The message that the merchant will receive to notify about product status change event", +"id": "ProductStatusChangeMessage", +"properties": { +"account": { +"description": "The target account that owns the entity that changed. Format : `accounts/{merchant_id}`", +"type": "string" +}, +"attribute": { +"description": "The attribute in the resource that changed, in this case it will be always `Status`.", +"enum": [ +"ATTRIBUTE_UNSPECIFIED", +"STATUS" +], +"enumDescriptions": [ +"Unspecified attribute", +"Status of the changed entity" +], +"type": "string" +}, +"changes": { +"description": "A message to describe the change that happened to the product", +"items": { +"$ref": "ProductChange" +}, +"type": "array" +}, +"expirationTime": { +"description": "The product expiration time. This field will not bet set if the notification is sent for a product deletion event.", +"format": "google-datetime", +"type": "string" +}, +"managingAccount": { +"description": "The account that manages the merchant's account. can be the same as merchant id if it is standalone account. Format : `accounts/{service_provider_id}`", +"type": "string" +}, +"resource": { +"description": "The product name. Format: `{product.name=accounts/{account}/products/{product}}`", +"type": "string" +}, +"resourceId": { +"description": "The product id.", +"type": "string" +}, +"resourceType": { +"description": "The resource that changed, in this case it will always be `Product`.", +"enum": [ +"RESOURCE_UNSPECIFIED", +"PRODUCT" +], +"enumDescriptions": [ +"Unspecified resource", +"Resource type : product" +], +"type": "string" +} +}, +"type": "object" +}, +"ReviewLink": { +"description": "The URI of the review landing page.", +"id": "ReviewLink", +"properties": { +"link": { +"description": "Optional. The URI of the review landing page. For example: `http://www.example.com/review_5.html`.", +"type": "string" +}, +"type": { +"description": "Optional. Type of the review URI.", +"enum": [ +"TYPE_UNSPECIFIED", +"SINGLETON", +"GROUP" +], +"enumDescriptions": [ +"Type unspecified.", +"The review page contains only this single review.", +"The review page contains a group of reviews including this review." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Merchant API", +"version": "reviews_v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/metastore.v2beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/metastore.v2beta.json new file mode 100644 index 0000000000000000000000000000000000000000..036dc6d81c588ca2004e5071e794bdc739fdb4ac --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/metastore.v2beta.json @@ -0,0 +1,2313 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://metastore.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Dataproc Metastore", +"description": "The Dataproc Metastore API is used to manage the lifecycle and configuration of metastore services.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/dataproc-metastore/docs", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "metastore:v2beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://metastore.mtls.googleapis.com/", +"name": "metastore", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"services": { +"methods": { +"alterLocation": { +"description": "Alter metadata resource location. The metadata resource can be a database, table, or partition. This functionality only updates the parent directory for the respective metadata resource and does not transfer any existing data to the new location.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:alterLocation", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.alterLocation", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to mutate metadata, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+service}:alterLocation", +"request": { +"$ref": "GoogleCloudMetastoreV2betaAlterMetadataResourceLocationRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"alterTableProperties": { +"description": "Alter metadata table properties.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:alterTableProperties", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.alterTableProperties", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the Dataproc Metastore service that's being used to mutate metadata table properties, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+service}:alterTableProperties", +"request": { +"$ref": "GoogleCloudMetastoreV2betaAlterTablePropertiesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"cancelMigration": { +"description": "Cancels the ongoing Managed Migration process.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:cancelMigration", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.cancelMigration", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to cancel the ongoing migration to, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+service}:cancelMigration", +"request": { +"$ref": "GoogleCloudMetastoreV2betaCancelMigrationRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"completeMigration": { +"description": "Completes the managed migration process. The Dataproc Metastore service will switch to using its own backend database after successful migration.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:completeMigration", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.completeMigration", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to complete the migration to, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+service}:completeMigration", +"request": { +"$ref": "GoogleCloudMetastoreV2betaCompleteMigrationRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a metastore service in a project and location.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The relative resource name of the location in which to create a metastore service, in the following form:projects/{project_number}/locations/{location_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +}, +"serviceId": { +"description": "Required. The ID of the metastore service, which is used as the final component of the metastore service's name.This value must be between 2 and 63 characters long inclusive, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+parent}/services", +"request": { +"$ref": "GoogleCloudMetastoreV2betaService" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", +"httpMethod": "DELETE", +"id": "metastore.projects.locations.services.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the metastore service to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"exportMetadata": { +"description": "Exports metadata from a service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:exportMetadata", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.exportMetadata", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to run export, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+service}:exportMetadata", +"request": { +"$ref": "GoogleCloudMetastoreV2betaExportMetadataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a single service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the metastore service to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudMetastoreV2betaService" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"importMetadata": { +"description": "Imports Metadata into a Dataproc Metastore service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:importMetadata", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.importMetadata", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The relative resource name of the metastore service to run import, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:importMetadata", +"request": { +"$ref": "GoogleCloudMetastoreV2betaImportMetadataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists services in a project and location.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The filter to apply to list results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of services to return. The response may contain less than the maximum number. If unspecified, no more than 500 services are returned. The maximum value is 1000; values above 1000 are changed to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous DataprocMetastore.ListServices call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListServices must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The relative resource name of the location of metastore services to list, in the following form:projects/{project_number}/locations/{location_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/services", +"response": { +"$ref": "GoogleCloudMetastoreV2betaListServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"moveTableToDatabase": { +"description": "Move a table to another database.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:moveTableToDatabase", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.moveTableToDatabase", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to mutate metadata, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+service}:moveTableToDatabase", +"request": { +"$ref": "GoogleCloudMetastoreV2betaMoveTableToDatabaseRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", +"httpMethod": "PATCH", +"id": "metastore.projects.locations.services.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. A field mask used to specify the fields to be overwritten in the metastore service resource by the update. Fields specified in the update_mask are relative to the resource (not to the full request). A field is overwritten if it is in the mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "GoogleCloudMetastoreV2betaService" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryMetadata": { +"description": "Query Dataproc Metastore metadata.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:queryMetadata", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.queryMetadata", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to query metadata, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+service}:queryMetadata", +"request": { +"$ref": "GoogleCloudMetastoreV2betaQueryMetadataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeIamPolicy": { +"description": "Removes the attached IAM policies for a resource", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/{servicesId1}:removeIamPolicy", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.removeIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "Required. The relative resource name of the dataplane resource to remove IAM policy, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id} or projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+resource}:removeIamPolicy", +"request": { +"$ref": "GoogleCloudMetastoreV2betaRemoveIamPolicyRequest" +}, +"response": { +"$ref": "GoogleCloudMetastoreV2betaRemoveIamPolicyResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restore": { +"description": "Restores a service from a backup.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:restore", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.restore", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to run restore, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+service}:restore", +"request": { +"$ref": "GoogleCloudMetastoreV2betaRestoreServiceRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"startMigration": { +"description": "Starts the Managed Migration process.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:startMigration", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.startMigration", +"parameterOrder": [ +"service" +], +"parameters": { +"service": { +"description": "Required. The relative resource name of the metastore service to start migrating to, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+service}:startMigration", +"request": { +"$ref": "GoogleCloudMetastoreV2betaStartMigrationRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backups": { +"methods": { +"create": { +"description": "Creates a new backup in a given project and location.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/backups", +"httpMethod": "POST", +"id": "metastore.projects.locations.services.backups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupId": { +"description": "Required. The ID of the backup, which is used as the final component of the backup's name.This value must be between 1 and 64 characters long, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The relative resource name of the service in which to create a backup of the following form:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+parent}/backups", +"request": { +"$ref": "GoogleCloudMetastoreV2betaBackup" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single backup.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "metastore.projects.locations.services.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the backup to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single backup.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the backup to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudMetastoreV2betaBackup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists backups in a service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/backups", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The filter to apply to list results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of backups to return. The response may contain less than the maximum number. If unspecified, no more than 500 backups are returned. The maximum value is 1000; values above 1000 are changed to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous DataprocMetastore.ListBackups call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListBackups must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The relative resource name of the service whose backups to list, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/backups", +"response": { +"$ref": "GoogleCloudMetastoreV2betaListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"migrationExecutions": { +"methods": { +"delete": { +"description": "Deletes a single migration execution.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/migrationExecutions/{migrationExecutionsId}", +"httpMethod": "DELETE", +"id": "metastore.projects.locations.services.migrationExecutions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the migrationExecution to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/migrationExecutions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single migration execution.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/migrationExecutions/{migrationExecutionsId}", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.migrationExecutions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The relative resource name of the migration execution to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/migrationExecutions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "GoogleCloudMetastoreV2betaMigrationExecution" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists migration executions on a service.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/migrationExecutions", +"httpMethod": "GET", +"id": "metastore.projects.locations.services.migrationExecutions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. The filter to apply to list results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of migration executions to return. The response may contain less than the maximum number. If unspecified, no more than 500 migration executions are returned. The maximum value is 1000; values above 1000 are changed to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous DataprocMetastore.ListMigrationExecutions call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListMigrationExecutions must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The relative resource name of the service whose migration executions to list, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/migrationExecutions", +"response": { +"$ref": "GoogleCloudMetastoreV2betaListMigrationExecutionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241203", +"rootUrl": "https://metastore.googleapis.com/", +"schemas": { +"GoogleCloudMetastoreV1AlterMetadataResourceLocationResponse": { +"description": "Response message for DataprocMetastore.AlterMetadataResourceLocation.", +"id": "GoogleCloudMetastoreV1AlterMetadataResourceLocationResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1CustomRegionMetadata": { +"description": "Metadata about a custom region. This is only populated if the region is a custom region. For single/multi regions, it will be empty.", +"id": "GoogleCloudMetastoreV1CustomRegionMetadata", +"properties": { +"optionalReadOnlyRegions": { +"description": "The read-only regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requiredReadWriteRegions": { +"description": "The read-write regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"witnessRegion": { +"description": "The Spanner witness region for this custom region.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1ErrorDetails": { +"description": "Error details in public error message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1ErrorDetails", +"properties": { +"details": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional structured details about this error.Keys define the failure items. Value describes the exception or details of the item.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1HiveMetastoreVersion": { +"description": "A specification of a supported version of the Hive Metastore software.", +"id": "GoogleCloudMetastoreV1HiveMetastoreVersion", +"properties": { +"isDefault": { +"description": "Whether version will be chosen by the server if a metastore service is created with a HiveMetastoreConfig that omits the version.", +"type": "boolean" +}, +"version": { +"description": "The semantic version of the Hive Metastore software.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1LocationMetadata": { +"description": "Metadata about the service in a location.", +"id": "GoogleCloudMetastoreV1LocationMetadata", +"properties": { +"customRegionMetadata": { +"description": "Possible configurations supported if the current region is a custom region.", +"items": { +"$ref": "GoogleCloudMetastoreV1CustomRegionMetadata" +}, +"type": "array" +}, +"multiRegionMetadata": { +"$ref": "GoogleCloudMetastoreV1MultiRegionMetadata", +"description": "The multi-region metadata if the current region is a multi-region." +}, +"supportedHiveMetastoreVersions": { +"description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", +"items": { +"$ref": "GoogleCloudMetastoreV1HiveMetastoreVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1MoveTableToDatabaseResponse": { +"description": "Response message for DataprocMetastore.MoveTableToDatabase.", +"id": "GoogleCloudMetastoreV1MoveTableToDatabaseResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1MultiRegionMetadata": { +"description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region or custom dual region, it will be empty.", +"id": "GoogleCloudMetastoreV1MultiRegionMetadata", +"properties": { +"constituentRegions": { +"description": "The regions constituting the multi-region.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1OperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "GoogleCloudMetastoreV1OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the caller has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1QueryMetadataResponse": { +"description": "Response message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1QueryMetadataResponse", +"properties": { +"resultManifestUri": { +"description": "The manifest URI is link to a JSON instance in Cloud Storage. This instance manifests immediately along with QueryMetadataResponse. The content of the URI is not retriable until the long-running operation query against the metadata finishes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaAlterMetadataResourceLocationResponse": { +"description": "Response message for DataprocMetastore.AlterMetadataResourceLocation.", +"id": "GoogleCloudMetastoreV1alphaAlterMetadataResourceLocationResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaCancelMigrationResponse": { +"description": "Response message for DataprocMetastore.CancelMigration.", +"id": "GoogleCloudMetastoreV1alphaCancelMigrationResponse", +"properties": { +"migrationExecution": { +"description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaCompleteMigrationResponse": { +"description": "Response message for DataprocMetastore.CompleteMigration.", +"id": "GoogleCloudMetastoreV1alphaCompleteMigrationResponse", +"properties": { +"migrationExecution": { +"description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaCustomRegionMetadata": { +"description": "Metadata about a custom region. This is only populated if the region is a custom region. For single/multi regions, it will be empty.", +"id": "GoogleCloudMetastoreV1alphaCustomRegionMetadata", +"properties": { +"optionalReadOnlyRegions": { +"description": "The read-only regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requiredReadWriteRegions": { +"description": "The read-write regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"witnessRegion": { +"description": "The Spanner witness region for this custom region.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaErrorDetails": { +"description": "Error details in public error message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1alphaErrorDetails", +"properties": { +"details": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional structured details about this error.Keys define the failure items. Value describes the exception or details of the item.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaHiveMetastoreVersion": { +"description": "A specification of a supported version of the Hive Metastore software.", +"id": "GoogleCloudMetastoreV1alphaHiveMetastoreVersion", +"properties": { +"isDefault": { +"description": "Whether version will be chosen by the server if a metastore service is created with a HiveMetastoreConfig that omits the version.", +"type": "boolean" +}, +"version": { +"description": "The semantic version of the Hive Metastore software.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaLocationMetadata": { +"description": "Metadata about the service in a location.", +"id": "GoogleCloudMetastoreV1alphaLocationMetadata", +"properties": { +"customRegionMetadata": { +"description": "Possible configurations supported if the current region is a custom region.", +"items": { +"$ref": "GoogleCloudMetastoreV1alphaCustomRegionMetadata" +}, +"type": "array" +}, +"multiRegionMetadata": { +"$ref": "GoogleCloudMetastoreV1alphaMultiRegionMetadata", +"description": "The multi-region metadata if the current region is a multi-region." +}, +"supportedHiveMetastoreVersions": { +"description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", +"items": { +"$ref": "GoogleCloudMetastoreV1alphaHiveMetastoreVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaMoveTableToDatabaseResponse": { +"description": "Response message for DataprocMetastore.MoveTableToDatabase.", +"id": "GoogleCloudMetastoreV1alphaMoveTableToDatabaseResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaMultiRegionMetadata": { +"description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region or custom dual region, it will be empty.", +"id": "GoogleCloudMetastoreV1alphaMultiRegionMetadata", +"properties": { +"constituentRegions": { +"description": "The regions constituting the multi-region.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaOperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "GoogleCloudMetastoreV1alphaOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the caller has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1alphaQueryMetadataResponse": { +"description": "Response message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1alphaQueryMetadataResponse", +"properties": { +"resultManifestUri": { +"description": "The manifest URI is link to a JSON instance in Cloud Storage. This instance manifests immediately along with QueryMetadataResponse. The content of the URI is not retriable until the long-running operation query against the metadata finishes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaAlterMetadataResourceLocationResponse": { +"description": "Response message for DataprocMetastore.AlterMetadataResourceLocation.", +"id": "GoogleCloudMetastoreV1betaAlterMetadataResourceLocationResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaCancelMigrationResponse": { +"description": "Response message for DataprocMetastore.CancelMigration.", +"id": "GoogleCloudMetastoreV1betaCancelMigrationResponse", +"properties": { +"migrationExecution": { +"description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaCompleteMigrationResponse": { +"description": "Response message for DataprocMetastore.CompleteMigration.", +"id": "GoogleCloudMetastoreV1betaCompleteMigrationResponse", +"properties": { +"migrationExecution": { +"description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaCustomRegionMetadata": { +"description": "Metadata about a custom region. This is only populated if the region is a custom region. For single/multi regions, it will be empty.", +"id": "GoogleCloudMetastoreV1betaCustomRegionMetadata", +"properties": { +"optionalReadOnlyRegions": { +"description": "The read-only regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requiredReadWriteRegions": { +"description": "The read-write regions for this custom region.", +"items": { +"type": "string" +}, +"type": "array" +}, +"witnessRegion": { +"description": "The Spanner witness region for this custom region.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaErrorDetails": { +"description": "Error details in public error message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1betaErrorDetails", +"properties": { +"details": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional structured details about this error.Keys define the failure items. Value describes the exception or details of the item.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaHiveMetastoreVersion": { +"description": "A specification of a supported version of the Hive Metastore software.", +"id": "GoogleCloudMetastoreV1betaHiveMetastoreVersion", +"properties": { +"isDefault": { +"description": "Whether version will be chosen by the server if a metastore service is created with a HiveMetastoreConfig that omits the version.", +"type": "boolean" +}, +"version": { +"description": "The semantic version of the Hive Metastore software.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaLocationMetadata": { +"description": "Metadata about the service in a location.", +"id": "GoogleCloudMetastoreV1betaLocationMetadata", +"properties": { +"customRegionMetadata": { +"description": "Possible configurations supported if the current region is a custom region.", +"items": { +"$ref": "GoogleCloudMetastoreV1betaCustomRegionMetadata" +}, +"type": "array" +}, +"multiRegionMetadata": { +"$ref": "GoogleCloudMetastoreV1betaMultiRegionMetadata", +"description": "The multi-region metadata if the current region is a multi-region." +}, +"supportedHiveMetastoreVersions": { +"description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", +"items": { +"$ref": "GoogleCloudMetastoreV1betaHiveMetastoreVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaMoveTableToDatabaseResponse": { +"description": "Response message for DataprocMetastore.MoveTableToDatabase.", +"id": "GoogleCloudMetastoreV1betaMoveTableToDatabaseResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaMultiRegionMetadata": { +"description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region or custom dual region, it will be empty.", +"id": "GoogleCloudMetastoreV1betaMultiRegionMetadata", +"properties": { +"constituentRegions": { +"description": "The regions constituting the multi-region.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaOperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "GoogleCloudMetastoreV1betaOperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the caller has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV1betaQueryMetadataResponse": { +"description": "Response message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV1betaQueryMetadataResponse", +"properties": { +"resultManifestUri": { +"description": "The manifest URI is link to a JSON instance in Cloud Storage. This instance manifests immediately along with QueryMetadataResponse. The content of the URI is not retriable until the long-running operation query against the metadata finishes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaAlterMetadataResourceLocationRequest": { +"description": "Request message for DataprocMetastore.AlterMetadataResourceLocation.", +"id": "GoogleCloudMetastoreV2betaAlterMetadataResourceLocationRequest", +"properties": { +"locationUri": { +"description": "Required. The new location URI for the metadata resource.", +"type": "string" +}, +"resourceName": { +"description": "Required. The relative metadata resource name in the following format.databases/{database_id} or databases/{database_id}/tables/{table_id} or databases/{database_id}/tables/{table_id}/partitions/{partition_id}", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaAlterTablePropertiesRequest": { +"description": "Request message for DataprocMetastore.AlterTableProperties.", +"id": "GoogleCloudMetastoreV2betaAlterTablePropertiesRequest", +"properties": { +"properties": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that describes the desired values to mutate. If update_mask is empty, the properties will not update. Otherwise, the properties only alters the value whose associated paths exist in the update mask", +"type": "object" +}, +"tableName": { +"description": "Required. The name of the table containing the properties you're altering in the following format.databases/{database_id}/tables/{table_id}", +"type": "string" +}, +"updateMask": { +"description": "A field mask that specifies the metadata table properties that are overwritten by the update. Fields specified in the update_mask are relative to the resource (not to the full request). A field is overwritten if it is in the mask.For example, given the target properties: properties { a: 1 b: 2 } And an update properties: properties { a: 2 b: 3 c: 4 } then if the field mask is:paths: \"properties.b\", \"properties.c\"then the result will be: properties { a: 1 b: 3 c: 4 } ", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaAutoscalingConfig": { +"description": "Represents the autoscaling configuration of a metastore service.", +"id": "GoogleCloudMetastoreV2betaAutoscalingConfig", +"properties": { +"autoscalingEnabled": { +"description": "Optional. Whether or not autoscaling is enabled for this service.", +"type": "boolean" +}, +"autoscalingFactor": { +"description": "Output only. The scaling factor of a service with autoscaling enabled.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"limitConfig": { +"$ref": "GoogleCloudMetastoreV2betaLimitConfig", +"description": "Optional. The LimitConfig of the service." +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaAuxiliaryVersionConfig": { +"description": "Configuration information for the auxiliary service versions.", +"id": "GoogleCloudMetastoreV2betaAuxiliaryVersionConfig", +"properties": { +"configOverrides": { +"additionalProperties": { +"type": "string" +}, +"description": "A mapping of Hive metastore configuration key-value pairs to apply to the auxiliary Hive metastore (configured in hive-site.xml) in addition to the primary version's overrides. If keys are present in both the auxiliary version's overrides and the primary version's overrides, the value from the auxiliary version's overrides takes precedence.", +"type": "object" +}, +"endpoints": { +"description": "Output only. The list of endpoints used to access the auxiliary metastore service, includes version and region data.", +"items": { +"$ref": "GoogleCloudMetastoreV2betaEndpoint" +}, +"readOnly": true, +"type": "array" +}, +"version": { +"description": "The Hive metastore version of the auxiliary service. It must be less than the primary Hive metastore service's version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaBackup": { +"description": "The details of a backup resource.", +"id": "GoogleCloudMetastoreV2betaBackup", +"properties": { +"createTime": { +"description": "Output only. The time when the backup was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "The description of the backup.", +"type": "string" +}, +"endTime": { +"description": "Output only. The time when the backup finished creating.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The relative resource name of the backup, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}", +"type": "string" +}, +"restoringServices": { +"description": "Output only. Services that are restoring from the backup.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"serviceRevision": { +"$ref": "GoogleCloudMetastoreV2betaService", +"description": "Output only. The revision of the service at the time of backup.", +"readOnly": true +}, +"state": { +"description": "Output only. The current state of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"DELETING", +"ACTIVE", +"FAILED", +"RESTORING" +], +"enumDescriptions": [ +"The state of the backup is unknown.", +"The backup is being created.", +"The backup is being deleted.", +"The backup is active and ready to use.", +"The backup failed.", +"The backup is being restored." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaCancelMigrationRequest": { +"description": "Request message for DataprocMetastore.CancelMigration.", +"id": "GoogleCloudMetastoreV2betaCancelMigrationRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaCdcConfig": { +"description": "Configuration information to start the Change Data Capture (CDC) streams from customer database to backend database of Dataproc Metastore.", +"id": "GoogleCloudMetastoreV2betaCdcConfig", +"properties": { +"bucket": { +"description": "Optional. The bucket to write the intermediate stream event data in. The bucket name must be without any prefix like \"gs://\". See the bucket naming requirements (https://cloud.google.com/storage/docs/buckets#naming). This field is optional. If not set, the Artifacts Cloud Storage bucket will be used.", +"type": "string" +}, +"password": { +"description": "Required. Input only. The password for the user that Datastream service should use for the MySQL connection. This field is not returned on request.", +"type": "string" +}, +"reverseProxySubnet": { +"description": "Required. The URL of the subnetwork resource to create the VM instance hosting the reverse proxy in. More context in https://cloud.google.com/datastream/docs/private-connectivity#reverse-csql-proxy The subnetwork should reside in the network provided in the request that Datastream will peer to and should be in the same region as Datastream, in the following format. projects/{project_id}/regions/{region_id}/subnetworks/{subnetwork_id}", +"type": "string" +}, +"rootPath": { +"description": "Optional. The root path inside the Cloud Storage bucket. The stream event data will be written to this path. The default value is /migration.", +"type": "string" +}, +"subnetIpRange": { +"description": "Required. A /29 CIDR IP range for peering with datastream.", +"type": "string" +}, +"username": { +"description": "Required. The username that the Datastream service should use for the MySQL connection.", +"type": "string" +}, +"vpcNetwork": { +"description": "Required. Fully qualified name of the Cloud SQL instance's VPC network or the shared VPC network that Datastream will peer to, in the following format: projects/{project_id}/locations/global/networks/{network_id}. More context in https://cloud.google.com/datastream/docs/network-connectivity-options#privateconnectivity", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaCloudSQLConnectionConfig": { +"description": "Configuration information to establish customer database connection before the cutover phase of migration", +"id": "GoogleCloudMetastoreV2betaCloudSQLConnectionConfig", +"properties": { +"hiveDatabaseName": { +"description": "Required. The hive database name.", +"type": "string" +}, +"instanceConnectionName": { +"description": "Required. Cloud SQL database connection name (project_id:region:instance_name)", +"type": "string" +}, +"ipAddress": { +"description": "Required. The private IP address of the Cloud SQL instance.", +"type": "string" +}, +"natSubnet": { +"description": "Required. The relative resource name of the subnetwork to be used for Private Service Connect. Note that this cannot be a regular subnet and is used only for NAT. (https://cloud.google.com/vpc/docs/about-vpc-hosted-services#psc-subnets) This subnet is used to publish the SOCKS5 proxy service. The subnet size must be at least /29 and it should reside in a network through which the Cloud SQL instance is accessible. The resource name should be in the format, projects/{project_id}/regions/{region_id}/subnetworks/{subnetwork_id}", +"type": "string" +}, +"password": { +"description": "Required. Input only. The password for the user that Dataproc Metastore service will be using to connect to the database. This field is not returned on request.", +"type": "string" +}, +"port": { +"description": "Required. The network port of the database.", +"format": "int32", +"type": "integer" +}, +"proxySubnet": { +"description": "Required. The relative resource name of the subnetwork to deploy the SOCKS5 proxy service in. The subnetwork should reside in a network through which the Cloud SQL instance is accessible. The resource name should be in the format, projects/{project_id}/regions/{region_id}/subnetworks/{subnetwork_id}", +"type": "string" +}, +"username": { +"description": "Required. The username that Dataproc Metastore service will use to connect to the database.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaCloudSQLMigrationConfig": { +"description": "Configuration information for migrating from self-managed hive metastore on Google Cloud using Cloud SQL as the backend database to Dataproc Metastore.", +"id": "GoogleCloudMetastoreV2betaCloudSQLMigrationConfig", +"properties": { +"cdcConfig": { +"$ref": "GoogleCloudMetastoreV2betaCdcConfig", +"description": "Required. Configuration information to start the Change Data Capture (CDC) streams from customer database to backend database of Dataproc Metastore. Dataproc Metastore switches to using its backend database after the cutover phase of migration." +}, +"cloudSqlConnectionConfig": { +"$ref": "GoogleCloudMetastoreV2betaCloudSQLConnectionConfig", +"description": "Required. Configuration information to establish customer database connection before the cutover phase of migration" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaCompleteMigrationRequest": { +"description": "Request message for DataprocMetastore.CompleteMigration.", +"id": "GoogleCloudMetastoreV2betaCompleteMigrationRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaDataCatalogConfig": { +"description": "Specifies how metastore metadata should be integrated with the Data Catalog service.", +"id": "GoogleCloudMetastoreV2betaDataCatalogConfig", +"properties": { +"enabled": { +"description": "Optional. Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaDatabaseDump": { +"description": "A specification of the location of and metadata about a database dump from a relational database management system.", +"id": "GoogleCloudMetastoreV2betaDatabaseDump", +"properties": { +"gcsUri": { +"description": "Required. A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.", +"type": "string" +}, +"type": { +"description": "Optional. The type of the database dump. If unspecified, defaults to MYSQL.", +"enum": [ +"TYPE_UNSPECIFIED", +"MYSQL", +"AVRO" +], +"enumDescriptions": [ +"The type of the database dump is unknown.", +"Database dump is a MySQL dump file.", +"Database dump contains Avro files." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaEncryptionConfig": { +"description": "Encryption settings for the service.", +"id": "GoogleCloudMetastoreV2betaEncryptionConfig", +"properties": {}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaEndpoint": { +"description": "An endpoint used to access the metastore service.", +"id": "GoogleCloudMetastoreV2betaEndpoint", +"properties": { +"endpointUri": { +"description": "Output only. The URI of the endpoint used to access the metastore service.", +"readOnly": true, +"type": "string" +}, +"region": { +"description": "Output only. The region where the endpoint is located.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaExportMetadataRequest": { +"description": "Request message for DataprocMetastore.ExportMetadata.", +"id": "GoogleCloudMetastoreV2betaExportMetadataRequest", +"properties": { +"databaseDumpType": { +"description": "Optional. The type of the database dump. If unspecified, defaults to MYSQL.", +"enum": [ +"TYPE_UNSPECIFIED", +"MYSQL", +"AVRO" +], +"enumDescriptions": [ +"The type of the database dump is unknown.", +"Database dump is a MySQL dump file.", +"Database dump contains Avro files." +], +"type": "string" +}, +"destinationGcsFolder": { +"description": "A Cloud Storage URI of a folder, in the format gs:///. A sub-folder containing exported files will be created below it.", +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaHiveMetastoreConfig": { +"description": "Specifies configuration information specific to running Hive metastore software as the metastore service.", +"id": "GoogleCloudMetastoreV2betaHiveMetastoreConfig", +"properties": { +"auxiliaryVersions": { +"additionalProperties": { +"$ref": "GoogleCloudMetastoreV2betaAuxiliaryVersionConfig" +}, +"description": "Optional. A mapping of Hive metastore version to the auxiliary version configuration. When specified, a secondary Hive metastore service is created along with the primary service. All auxiliary versions must be less than the service's primary version. The key is the auxiliary service name and it must match the regular expression a-z?. This means that the first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.", +"type": "object" +}, +"configOverrides": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden). These overrides are also applied to auxiliary versions and can be further customized in the auxiliary version's AuxiliaryVersionConfig.", +"type": "object" +}, +"endpointProtocol": { +"description": "Optional. The protocol to use for the metastore service endpoint. If unspecified, defaults to GRPC.", +"enum": [ +"ENDPOINT_PROTOCOL_UNSPECIFIED", +"THRIFT", +"GRPC" +], +"enumDescriptions": [ +"The protocol is not set.", +"Use the legacy Apache Thrift protocol for the metastore service endpoint.", +"Use the modernized gRPC protocol for the metastore service endpoint." +], +"type": "string" +}, +"version": { +"description": "Immutable. The Hive metastore schema version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaImportMetadataRequest": { +"description": "Request message for DataprocMetastore.CreateMetadataImport.", +"id": "GoogleCloudMetastoreV2betaImportMetadataRequest", +"properties": { +"databaseDump": { +"$ref": "GoogleCloudMetastoreV2betaDatabaseDump", +"description": "Immutable. A database dump from a pre-existing metastore's database." +}, +"description": { +"description": "Optional. The description of the metadata import.", +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaLatestBackup": { +"description": "The details of the latest scheduled backup.", +"id": "GoogleCloudMetastoreV2betaLatestBackup", +"properties": { +"backupId": { +"description": "Output only. The ID of an in-progress scheduled backup. Empty if no backup is in progress.", +"readOnly": true, +"type": "string" +}, +"duration": { +"description": "Output only. The duration of the backup completion.", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The time when the backup was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"IN_PROGRESS", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"The state of the backup is unknown.", +"The backup is in progress.", +"The backup completed.", +"The backup failed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaLimitConfig": { +"description": "Represents the autoscaling limit configuration of a metastore service.", +"id": "GoogleCloudMetastoreV2betaLimitConfig", +"properties": { +"maxScalingFactor": { +"description": "Optional. The highest scaling factor that the service should be autoscaled to.", +"format": "int32", +"type": "integer" +}, +"minScalingFactor": { +"description": "Optional. The lowest scaling factor that the service should be autoscaled to.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaListBackupsResponse": { +"description": "Response message for DataprocMetastore.ListBackups.", +"id": "GoogleCloudMetastoreV2betaListBackupsResponse", +"properties": { +"backups": { +"description": "The backups of the specified service.", +"items": { +"$ref": "GoogleCloudMetastoreV2betaBackup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaListMigrationExecutionsResponse": { +"description": "Response message for DataprocMetastore.ListMigrationExecutions.", +"id": "GoogleCloudMetastoreV2betaListMigrationExecutionsResponse", +"properties": { +"migrationExecutions": { +"description": "The migration executions on the specified service.", +"items": { +"$ref": "GoogleCloudMetastoreV2betaMigrationExecution" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaListServicesResponse": { +"description": "Response message for DataprocMetastore.ListServices.", +"id": "GoogleCloudMetastoreV2betaListServicesResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"services": { +"description": "The services in the specified location.", +"items": { +"$ref": "GoogleCloudMetastoreV2betaService" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaMetadataIntegration": { +"description": "Specifies how metastore metadata should be integrated with external services.", +"id": "GoogleCloudMetastoreV2betaMetadataIntegration", +"properties": { +"dataCatalogConfig": { +"$ref": "GoogleCloudMetastoreV2betaDataCatalogConfig", +"description": "Optional. The integration config for the Data Catalog service." +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaMigrationExecution": { +"description": "The details of a migration execution resource.", +"id": "GoogleCloudMetastoreV2betaMigrationExecution", +"properties": { +"cloudSqlMigrationConfig": { +"$ref": "GoogleCloudMetastoreV2betaCloudSQLMigrationConfig", +"description": "Configuration information specific to migrating from self-managed hive metastore on Google Cloud using Cloud SQL as the backend database to Dataproc Metastore." +}, +"createTime": { +"description": "Output only. The time when the migration execution was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time when the migration execution finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The relative resource name of the migration execution, in the following form: projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}", +"readOnly": true, +"type": "string" +}, +"phase": { +"description": "Output only. The current phase of the migration execution.", +"enum": [ +"PHASE_UNSPECIFIED", +"REPLICATION", +"CUTOVER" +], +"enumDescriptions": [ +"The phase of the migration execution is unknown.", +"Replication phase refers to the migration phase when Dataproc Metastore is running a pipeline to replicate changes in the customer database to its backend database. During this phase, Dataproc Metastore uses the customer database as the hive metastore backend database.", +"Cutover phase refers to the migration phase when Dataproc Metastore switches to using its own backend database. Migration enters this phase when customer is done migrating all their clusters/workloads to Dataproc Metastore and triggers CompleteMigration." +], +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the migration execution.", +"enum": [ +"STATE_UNSPECIFIED", +"STARTING", +"RUNNING", +"CANCELLING", +"AWAITING_USER_ACTION", +"SUCCEEDED", +"FAILED", +"CANCELLED", +"DELETING" +], +"enumDescriptions": [ +"The state of the migration execution is unknown.", +"The migration execution is starting.", +"The migration execution is running.", +"The migration execution is in the process of being cancelled.", +"The migration execution is awaiting user action.", +"The migration execution has completed successfully.", +"The migration execution has failed.", +"The migration execution is cancelled.", +"The migration execution is being deleted." +], +"readOnly": true, +"type": "string" +}, +"stateMessage": { +"description": "Output only. Additional information about the current state of the migration execution.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaMoveTableToDatabaseRequest": { +"description": "Request message for DataprocMetastore.MoveTableToDatabase.", +"id": "GoogleCloudMetastoreV2betaMoveTableToDatabaseRequest", +"properties": { +"dbName": { +"description": "Required. The name of the database where the table resides.", +"type": "string" +}, +"destinationDbName": { +"description": "Required. The name of the database where the table should be moved.", +"type": "string" +}, +"tableName": { +"description": "Required. The name of the table to be moved.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaQueryMetadataRequest": { +"description": "Request message for DataprocMetastore.QueryMetadata.", +"id": "GoogleCloudMetastoreV2betaQueryMetadataRequest", +"properties": { +"query": { +"description": "Required. A read-only SQL query to execute against the metadata database. The query cannot change or mutate the data.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaRemoveIamPolicyRequest": { +"description": "Request message for DataprocMetastore.RemoveIamPolicy.", +"id": "GoogleCloudMetastoreV2betaRemoveIamPolicyRequest", +"properties": { +"asynchronous": { +"description": "Optional. Removes IAM policy attached to database or table asynchronously when it is set. The default is false.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaRemoveIamPolicyResponse": { +"description": "Response message for DataprocMetastore.RemoveIamPolicy.", +"id": "GoogleCloudMetastoreV2betaRemoveIamPolicyResponse", +"properties": { +"success": { +"description": "True if the policy is successfully removed.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaRestoreServiceRequest": { +"description": "Request message for DataprocMetastore.Restore.", +"id": "GoogleCloudMetastoreV2betaRestoreServiceRequest", +"properties": { +"backup": { +"description": "Optional. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}. Mutually exclusive with backup_location, and exactly one of the two must be set.", +"type": "string" +}, +"backupLocation": { +"description": "Optional. A Cloud Storage URI specifying the location of the backup artifacts, namely - backup avro files under \"avro/\", backup_metastore.json and service.json, in the following form:gs://. Mutually exclusive with backup, and exactly one of the two must be set.", +"type": "string" +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"type": "string" +}, +"restoreType": { +"description": "Optional. The type of restore. If unspecified, defaults to METADATA_ONLY.", +"enum": [ +"RESTORE_TYPE_UNSPECIFIED", +"FULL", +"METADATA_ONLY" +], +"enumDescriptions": [ +"The restore type is unknown.", +"The service's metadata and configuration are restored.", +"Only the service's metadata is restored." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaScalingConfig": { +"description": "Represents the scaling configuration of a metastore service.", +"id": "GoogleCloudMetastoreV2betaScalingConfig", +"properties": { +"autoscalingConfig": { +"$ref": "GoogleCloudMetastoreV2betaAutoscalingConfig", +"description": "Optional. The autoscaling configuration." +}, +"scalingFactor": { +"description": "Optional. Scaling factor from 1 to 5, increments of 1.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaScheduledBackup": { +"description": "This specifies the configuration of scheduled backup.", +"id": "GoogleCloudMetastoreV2betaScheduledBackup", +"properties": { +"backupLocation": { +"description": "Optional. A Cloud Storage URI of a folder, in the format gs:///. A sub-folder containing backup files will be stored below it.", +"type": "string" +}, +"cronSchedule": { +"description": "Optional. The scheduled interval in Cron format, see https://en.wikipedia.org/wiki/Cron The default is empty: scheduled backup is not enabled. Must be specified to enable scheduled backups.", +"type": "string" +}, +"enabled": { +"description": "Optional. Defines whether the scheduled backup is enabled. The default value is false.", +"type": "boolean" +}, +"latestBackup": { +"$ref": "GoogleCloudMetastoreV2betaLatestBackup", +"description": "Output only. The details of the latest scheduled backup.", +"readOnly": true +}, +"nextScheduledTime": { +"description": "Output only. The time when the next backups execution is scheduled to start.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"timeZone": { +"description": "Optional. Specifies the time zone to be used when interpreting cron_schedule. Must be a time zone name from the time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g. America/Los_Angeles or Africa/Abidjan. If left unspecified, the default is UTC.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaService": { +"description": "A managed metastore service that serves metadata queries.", +"id": "GoogleCloudMetastoreV2betaService", +"properties": { +"createTime": { +"description": "Output only. The time when the metastore service was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"encryptionConfig": { +"$ref": "GoogleCloudMetastoreV2betaEncryptionConfig", +"description": "Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated." +}, +"endpoints": { +"description": "Output only. The list of endpoints used to access the metastore service.", +"items": { +"$ref": "GoogleCloudMetastoreV2betaEndpoint" +}, +"readOnly": true, +"type": "array" +}, +"hiveMetastoreConfig": { +"$ref": "GoogleCloudMetastoreV2betaHiveMetastoreConfig", +"description": "Configuration information specific to running Hive metastore software as the metastore service." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-defined labels for the metastore service.", +"type": "object" +}, +"metadataIntegration": { +"$ref": "GoogleCloudMetastoreV2betaMetadataIntegration", +"description": "Optional. The setting that defines how metastore metadata should be integrated with external services and systems." +}, +"name": { +"description": "Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.", +"type": "string" +}, +"scalingConfig": { +"$ref": "GoogleCloudMetastoreV2betaScalingConfig", +"description": "Optional. Scaling configuration of the metastore service." +}, +"scheduledBackup": { +"$ref": "GoogleCloudMetastoreV2betaScheduledBackup", +"description": "Optional. The configuration of scheduled backup for the metastore service." +}, +"state": { +"description": "Output only. The current state of the metastore service.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"SUSPENDING", +"SUSPENDED", +"UPDATING", +"DELETING", +"ERROR", +"MIGRATING" +], +"enumDescriptions": [ +"The state of the metastore service is unknown.", +"The metastore service is in the process of being created.", +"The metastore service is running and ready to serve queries.", +"The metastore service is entering suspension. Its query-serving availability may cease unexpectedly.", +"The metastore service is suspended and unable to serve queries.", +"The metastore service is being updated. It remains usable but cannot accept additional update requests or be deleted at this time.", +"The metastore service is undergoing deletion. It cannot be used.", +"The metastore service has encountered an error and cannot be used. The metastore service should be deleted.", +"The metastore service is processing a managed migration." +], +"readOnly": true, +"type": "string" +}, +"stateMessage": { +"description": "Output only. Additional information about the current state of the metastore service, if available.", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. The globally unique resource identifier of the metastore service.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the metastore service was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"warehouseGcsUri": { +"description": "Required. A Cloud Storage URI (starting with gs://) that specifies the default warehouse directory of the Hive Metastore.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMetastoreV2betaStartMigrationRequest": { +"description": "Request message for DataprocMetastore.StartMigration.", +"id": "GoogleCloudMetastoreV2betaStartMigrationRequest", +"properties": { +"migrationExecution": { +"$ref": "GoogleCloudMetastoreV2betaMigrationExecution", +"description": "Required. The configuration details for the migration." +}, +"requestId": { +"description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"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": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Dataproc Metastore API", +"version": "v2beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/netapp.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/netapp.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..fcae225d735f043deb22c517fc444ceb48080c9c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/netapp.v1.json @@ -0,0 +1,4220 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://netapp.googleapis.com/", +"batchPath": "batch", +"canonicalName": "NetApp Files", +"description": "Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/netapp/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "netapp:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://netapp.mtls.googleapis.com/", +"name": "netapp", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "netapp.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"activeDirectories": { +"methods": { +"create": { +"description": "CreateActiveDirectory Creates the active directory specified in the request.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/activeDirectories", +"httpMethod": "POST", +"id": "netapp.projects.locations.activeDirectories.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"activeDirectoryId": { +"description": "Required. ID of the active directory to create. Must be unique within the parent resource. Must contain only letters, numbers and hyphen, with the first character a letter , the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/activeDirectories", +"request": { +"$ref": "ActiveDirectory" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete the active directory specified in the request.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/activeDirectories/{activeDirectoriesId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.activeDirectories.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the active directory.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/activeDirectories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Describes a specified active directory.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/activeDirectories/{activeDirectoriesId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.activeDirectories.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the active directory.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/activeDirectories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ActiveDirectory" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists active directories.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/activeDirectories", +"httpMethod": "GET", +"id": "netapp.projects.locations.activeDirectories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListActiveDirectoriesRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/activeDirectories", +"response": { +"$ref": "ListActiveDirectoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update the parameters of an active directories.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/activeDirectories/{activeDirectoriesId}", +"httpMethod": "PATCH", +"id": "netapp.projects.locations.activeDirectories.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the active directory. Format: `projects/{project_number}/locations/{location_id}/activeDirectories/{active_directory_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/activeDirectories/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Active Directory resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ActiveDirectory" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"backupPolicies": { +"methods": { +"create": { +"description": "Creates new backup policy", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPolicies", +"httpMethod": "POST", +"id": "netapp.projects.locations.backupPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupPolicyId": { +"description": "Required. The ID to use for the backup policy. The ID must be unique within the specified location. Must contain only letters, numbers and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location to create the backup policies of, in the format `projects/{project_id}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backupPolicies", +"request": { +"$ref": "BackupPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Warning! This operation will permanently delete the backup policy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPolicies/{backupPoliciesId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.backupPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backup policy resource name, in the format `projects/{project_id}/locations/{location}/backupPolicies/{backup_policy_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the description of the specified backup policy by backup_policy_id.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPolicies/{backupPoliciesId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.backupPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backupPolicy resource name, in the format `projects/{project_id}/locations/{location}/backupPolicies/{backup_policy_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BackupPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns list of all available backup policies.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPolicies", +"httpMethod": "GET", +"id": "netapp.projects.locations.backupPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListBackupPoliciesRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backupPolicies", +"response": { +"$ref": "ListBackupPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates settings of a specific backup policy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupPolicies/{backupPoliciesId}", +"httpMethod": "PATCH", +"id": "netapp.projects.locations.backupPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the backup policy. Format: `projects/{project_id}/locations/{location}/backupPolicies/{backup_policy_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Backup Policy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "BackupPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"backupVaults": { +"methods": { +"create": { +"description": "Creates new backup vault", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults", +"httpMethod": "POST", +"id": "netapp.projects.locations.backupVaults.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupVaultId": { +"description": "Required. The ID to use for the backupVault. The ID must be unique within the specified location. Must contain only letters, numbers and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location to create the backup vaults, in the format `projects/{project_id}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backupVaults", +"request": { +"$ref": "BackupVault" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Warning! This operation will permanently delete the backup vault.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults/{backupVaultsId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.backupVaults.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backupVault resource name, in the format `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupVaults/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the description of the specified backup vault", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults/{backupVaultsId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.backupVaults.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backupVault resource name, in the format `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupVaults/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BackupVault" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns list of all available backup vaults.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults", +"httpMethod": "GET", +"id": "netapp.projects.locations.backupVaults.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location for which to retrieve backupVault information, in the format `projects/{project_id}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backupVaults", +"response": { +"$ref": "ListBackupVaultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the settings of a specific backup vault.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults/{backupVaultsId}", +"httpMethod": "PATCH", +"id": "netapp.projects.locations.backupVaults.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the backup vault. Format: `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupVaults/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Backup resource to be updated. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "BackupVault" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backups": { +"methods": { +"create": { +"description": "Creates a backup from the volume specified in the request The backup can be created from the given snapshot if specified in the request. If no snapshot specified, there'll be a new snapshot taken to initiate the backup creation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults/{backupVaultsId}/backups", +"httpMethod": "POST", +"id": "netapp.projects.locations.backupVaults.backups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupId": { +"description": "Required. The ID to use for the backup. The ID must be unique within the specified backupVault. Must contain only letters, numbers and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The NetApp backupVault to create the backups of, in the format `projects/*/locations/*/backupVaults/{backup_vault_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupVaults/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backups", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Warning! This operation will permanently delete the backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults/{backupVaultsId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.backupVaults.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backup resource name, in the format `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupVaults/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the description of the specified backup", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults/{backupVaultsId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.backupVaults.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backup resource name, in the format `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupVaults/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Backup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns descriptions of all backups for a backupVault.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults/{backupVaultsId}/backups", +"httpMethod": "GET", +"id": "netapp.projects.locations.backupVaults.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The standard list filter. If specified, backups will be returned based on the attribute name that matches the filter expression. If empty, then no backups are filtered out. See https://google.aip.dev/160", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return. The service may return fewer than this value. The maximum value is 1000; values above 1000 will be coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The backupVault for which to retrieve backup information, in the format `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}`. To retrieve backup information for all locations, use \"-\" for the `{location}` value. To retrieve backup information for all backupVaults, use \"-\" for the `{backup_vault_id}` value. To retrieve backup information for a volume, use \"-\" for the `{backup_vault_id}` value and specify volume full name with the filter.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupVaults/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backups", +"response": { +"$ref": "ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update backup with full spec.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults/{backupVaultsId}/backups/{backupsId}", +"httpMethod": "PATCH", +"id": "netapp.projects.locations.backupVaults.backups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the backup. Format: `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}/backups/{backup_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupVaults/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Backup resource to be updated. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"kmsConfigs": { +"methods": { +"create": { +"description": "Creates a new KMS config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/kmsConfigs", +"httpMethod": "POST", +"id": "netapp.projects.locations.kmsConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"kmsConfigId": { +"description": "Required. Id of the requesting KmsConfig. Must be unique within the parent resource. Must contain only letters, numbers and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/kmsConfigs", +"request": { +"$ref": "KmsConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Warning! This operation will permanently delete the Kms config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/kmsConfigs/{kmsConfigsId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.kmsConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the KmsConfig.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/kmsConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"encrypt": { +"description": "Encrypt the existing volumes without CMEK encryption with the desired the KMS config for the whole region.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/kmsConfigs/{kmsConfigsId}:encrypt", +"httpMethod": "POST", +"id": "netapp.projects.locations.kmsConfigs.encrypt", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the KmsConfig.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/kmsConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:encrypt", +"request": { +"$ref": "EncryptVolumesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the description of the specified KMS config by kms_config_id.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/kmsConfigs/{kmsConfigsId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.kmsConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the KmsConfig", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/kmsConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "KmsConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns descriptions of all KMS configs owned by the caller.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/kmsConfigs", +"httpMethod": "GET", +"id": "netapp.projects.locations.kmsConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/kmsConfigs", +"response": { +"$ref": "ListKmsConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the Kms config properties with the full spec", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/kmsConfigs/{kmsConfigsId}", +"httpMethod": "PATCH", +"id": "netapp.projects.locations.kmsConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the KmsConfig.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/kmsConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the KmsConfig resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "KmsConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"verify": { +"description": "Verifies KMS config reachability.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/kmsConfigs/{kmsConfigsId}:verify", +"httpMethod": "POST", +"id": "netapp.projects.locations.kmsConfigs.verify", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the KMS Config to be verified.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/kmsConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:verify", +"request": { +"$ref": "VerifyKmsConfigRequest" +}, +"response": { +"$ref": "VerifyKmsConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "netapp.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "netapp.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"storagePools": { +"methods": { +"create": { +"description": "Creates a new storage pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/storagePools", +"httpMethod": "POST", +"id": "netapp.projects.locations.storagePools.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"storagePoolId": { +"description": "Required. Id of the requesting storage pool. Must be unique within the parent resource. Must contain only letters, numbers and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/storagePools", +"request": { +"$ref": "StoragePool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Warning! This operation will permanently delete the storage pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/storagePools/{storagePoolsId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.storagePools.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the storage pool", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/storagePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the description of the specified storage pool by poolId.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/storagePools/{storagePoolsId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.storagePools.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the storage pool", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/storagePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "StoragePool" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns descriptions of all storage pools owned by the caller.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/storagePools", +"httpMethod": "GET", +"id": "netapp.projects.locations.storagePools.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. List filter.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/storagePools", +"response": { +"$ref": "ListStoragePoolsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the storage pool properties with the full spec", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/storagePools/{storagePoolsId}", +"httpMethod": "PATCH", +"id": "netapp.projects.locations.storagePools.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the storage pool", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/storagePools/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the StoragePool resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "StoragePool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"switch": { +"description": "This operation will switch the active/replica zone for a regional storagePool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/storagePools/{storagePoolsId}:switch", +"httpMethod": "POST", +"id": "netapp.projects.locations.storagePools.switch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the storage pool", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/storagePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:switch", +"request": { +"$ref": "SwitchActiveReplicaZoneRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"validateDirectoryService": { +"description": "ValidateDirectoryService does a connectivity check for a directory service policy attached to the storage pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/storagePools/{storagePoolsId}:validateDirectoryService", +"httpMethod": "POST", +"id": "netapp.projects.locations.storagePools.validateDirectoryService", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the storage pool", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/storagePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:validateDirectoryService", +"request": { +"$ref": "ValidateDirectoryServiceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"volumes": { +"methods": { +"create": { +"description": "Creates a new Volume in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes", +"httpMethod": "POST", +"id": "netapp.projects.locations.volumes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Value for parent.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"volumeId": { +"description": "Required. Id of the requesting volume. Must be unique within the parent resource. Must contain only letters, numbers and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/volumes", +"request": { +"$ref": "Volume" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Volume.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.volumes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "If this field is set as true, CCFE will not block the volume resource deletion even if it has any snapshots resource. (Otherwise, the request will only work if the volume has no snapshots.)", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the volume", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Volume.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.volumes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the volume", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Volume" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Volumes in a given project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes", +"httpMethod": "GET", +"id": "netapp.projects.locations.volumes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListVolumesRequest", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/volumes", +"response": { +"$ref": "ListVolumesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Volume.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}", +"httpMethod": "PATCH", +"id": "netapp.projects.locations.volumes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the volume", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Volume resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Volume" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"revert": { +"description": "Revert an existing volume to a specified snapshot. Warning! This operation will permanently revert all changes made after the snapshot was created.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}:revert", +"httpMethod": "POST", +"id": "netapp.projects.locations.volumes.revert", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the volume, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:revert", +"request": { +"$ref": "RevertVolumeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"replications": { +"methods": { +"create": { +"description": "Create a new replication for a volume.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications", +"httpMethod": "POST", +"id": "netapp.projects.locations.volumes.replications.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The NetApp volume to create the replications of, in the format `projects/{project_id}/locations/{location}/volumes/{volume_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", +"required": true, +"type": "string" +}, +"replicationId": { +"description": "Required. ID of the replication to create. Must be unique within the parent resource. Must contain only letters, numbers and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/replications", +"request": { +"$ref": "Replication" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a replication.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.volumes.replications.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The replication resource name, in the format `projects/*/locations/*/volumes/*/replications/{replication_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"establishPeering": { +"description": "Establish replication peering.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}:establishPeering", +"httpMethod": "POST", +"id": "netapp.projects.locations.volumes.replications.establishPeering", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the replication, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:establishPeering", +"request": { +"$ref": "EstablishPeeringRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Describe a replication for a volume.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.volumes.replications.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The replication resource name, in the format `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Replication" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns descriptions of all replications for a volume.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications", +"httpMethod": "GET", +"id": "netapp.projects.locations.volumes.replications.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The volume for which to retrieve replication information, in the format `projects/{project_id}/locations/{location}/volumes/{volume_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/replications", +"response": { +"$ref": "ListReplicationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the settings of a specific replication.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}", +"httpMethod": "PATCH", +"id": "netapp.projects.locations.volumes.replications.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the Replication. Format: `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Replication" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resume": { +"description": "Resume Cross Region Replication.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}:resume", +"httpMethod": "POST", +"id": "netapp.projects.locations.volumes.replications.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the replication, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:resume", +"request": { +"$ref": "ResumeReplicationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reverseDirection": { +"description": "Reverses direction of replication. Source becomes destination and destination becomes source.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}:reverseDirection", +"httpMethod": "POST", +"id": "netapp.projects.locations.volumes.replications.reverseDirection", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the replication, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:reverseDirection", +"request": { +"$ref": "ReverseReplicationDirectionRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"stop": { +"description": "Stop Cross Region Replication.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}:stop", +"httpMethod": "POST", +"id": "netapp.projects.locations.volumes.replications.stop", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the replication, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:stop", +"request": { +"$ref": "StopReplicationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"sync": { +"description": "Syncs the replication. This will invoke one time volume data transfer from source to destination.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}:sync", +"httpMethod": "POST", +"id": "netapp.projects.locations.volumes.replications.sync", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the replication, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:sync", +"request": { +"$ref": "SyncReplicationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"snapshots": { +"methods": { +"create": { +"description": "Create a new snapshot for a volume.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots", +"httpMethod": "POST", +"id": "netapp.projects.locations.volumes.snapshots.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The NetApp volume to create the snapshots of, in the format `projects/{project_id}/locations/{location}/volumes/{volume_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", +"required": true, +"type": "string" +}, +"snapshotId": { +"description": "Required. ID of the snapshot to create. Must be unique within the parent resource. Must contain only letters, numbers and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/snapshots", +"request": { +"$ref": "Snapshot" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a snapshot.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots/{snapshotsId}", +"httpMethod": "DELETE", +"id": "netapp.projects.locations.volumes.snapshots.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The snapshot resource name, in the format `projects/*/locations/*/volumes/*/snapshots/{snapshot_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/snapshots/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Describe a snapshot for a volume.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots/{snapshotsId}", +"httpMethod": "GET", +"id": "netapp.projects.locations.volumes.snapshots.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The snapshot resource name, in the format `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/snapshots/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Snapshot" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns descriptions of all snapshots for a volume.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots", +"httpMethod": "GET", +"id": "netapp.projects.locations.volumes.snapshots.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value to use if there are additional results to retrieve for this list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The volume for which to retrieve snapshot information, in the format `projects/{project_id}/locations/{location}/volumes/{volume_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/snapshots", +"response": { +"$ref": "ListSnapshotsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the settings of a specific snapshot.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots/{snapshotsId}", +"httpMethod": "PATCH", +"id": "netapp.projects.locations.volumes.snapshots.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the snapshot. Format: `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/snapshots/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Snapshot" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241209", +"rootUrl": "https://netapp.googleapis.com/", +"schemas": { +"ActiveDirectory": { +"description": "ActiveDirectory is the public representation of the active directory config.", +"id": "ActiveDirectory", +"properties": { +"administrators": { +"description": "Optional. Users to be added to the Built-in Admininstrators group.", +"items": { +"type": "string" +}, +"type": "array" +}, +"aesEncryption": { +"description": "If enabled, AES encryption will be enabled for SMB communication.", +"type": "boolean" +}, +"backupOperators": { +"description": "Optional. Users to be added to the Built-in Backup Operator active directory group.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. Create time of the active directory.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of the active directory.", +"type": "string" +}, +"dns": { +"description": "Required. Comma separated list of DNS server IP addresses for the Active Directory domain.", +"type": "string" +}, +"domain": { +"description": "Required. Name of the Active Directory domain", +"type": "string" +}, +"encryptDcConnections": { +"description": "If enabled, traffic between the SMB server to Domain Controller (DC) will be encrypted.", +"type": "boolean" +}, +"kdcHostname": { +"description": "Name of the active directory machine. This optional parameter is used only while creating kerberos volume", +"type": "string" +}, +"kdcIp": { +"description": "KDC server IP address for the active directory machine.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels for the active directory.", +"type": "object" +}, +"ldapSigning": { +"description": "Specifies whether or not the LDAP traffic needs to be signed.", +"type": "boolean" +}, +"name": { +"description": "Identifier. The resource name of the active directory. Format: `projects/{project_number}/locations/{location_id}/activeDirectories/{active_directory_id}`.", +"type": "string" +}, +"netBiosPrefix": { +"description": "Required. NetBIOSPrefix is used as a prefix for SMB server name.", +"type": "string" +}, +"nfsUsersWithLdap": { +"description": "If enabled, will allow access to local users and LDAP users. If access is needed for only LDAP users, it has to be disabled.", +"type": "boolean" +}, +"organizationalUnit": { +"description": "The Organizational Unit (OU) within the Windows Active Directory the user belongs to.", +"type": "string" +}, +"password": { +"description": "Required. Password of the Active Directory domain administrator.", +"type": "string" +}, +"securityOperators": { +"description": "Optional. Domain users to be given the SeSecurityPrivilege.", +"items": { +"type": "string" +}, +"type": "array" +}, +"site": { +"description": "The Active Directory site the service will limit Domain Controller discovery too.", +"type": "string" +}, +"state": { +"description": "Output only. The state of the AD.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"IN_USE", +"DELETING", +"ERROR", +"DIAGNOSING" +], +"enumDescriptions": [ +"Unspecified Active Directory State", +"Active Directory State is Creating", +"Active Directory State is Ready", +"Active Directory State is Updating", +"Active Directory State is In use", +"Active Directory State is Deleting", +"Active Directory State is Error", +"Active Directory State is Diagnosing." +], +"readOnly": true, +"type": "string" +}, +"stateDetails": { +"description": "Output only. The state details of the Active Directory.", +"readOnly": true, +"type": "string" +}, +"username": { +"description": "Required. Username of the Active Directory domain administrator.", +"type": "string" +} +}, +"type": "object" +}, +"Backup": { +"description": "A NetApp Backup.", +"id": "Backup", +"properties": { +"backupType": { +"description": "Output only. Type of backup, manually created or created by a backup policy.", +"enum": [ +"TYPE_UNSPECIFIED", +"MANUAL", +"SCHEDULED" +], +"enumDescriptions": [ +"Unspecified backup type.", +"Manual backup type.", +"Scheduled backup type." +], +"readOnly": true, +"type": "string" +}, +"chainStorageBytes": { +"description": "Output only. Total size of all backups in a chain in bytes = baseline backup size + sum(incremental backup size)", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the backup was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A description of the backup with 2048 characters or less. Requests with longer descriptions will be rejected.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the backup. Format: `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}/backups/{backup_id}`.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use", +"readOnly": true, +"type": "boolean" +}, +"sourceSnapshot": { +"description": "If specified, backup will be created from the given snapshot. If not specified, there will be a new snapshot taken to initiate the backup creation. Format: `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`", +"type": "string" +}, +"sourceVolume": { +"description": "Volume full name of this backup belongs to. Format: `projects/{projects_id}/locations/{location}/volumes/{volume_id}`", +"type": "string" +}, +"state": { +"description": "Output only. The backup state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"UPLOADING", +"READY", +"DELETING", +"ERROR", +"UPDATING" +], +"enumDescriptions": [ +"State not set.", +"Backup is being created. While in this state, the snapshot for the backup point-in-time may not have been created yet, and so the point-in-time may not have been fixed.", +"Backup is being uploaded. While in this state, none of the writes to the volume will be included in the backup.", +"Backup is available for use.", +"Backup is being deleted.", +"Backup is not valid and cannot be used for creating new volumes or restoring existing volumes.", +"Backup is being updated." +], +"readOnly": true, +"type": "string" +}, +"volumeUsageBytes": { +"description": "Output only. Size of the file system when the backup was created. When creating a new volume from the backup, the volume capacity will have to be at least as big.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BackupConfig": { +"description": "BackupConfig contains backup related config on a volume.", +"id": "BackupConfig", +"properties": { +"backupChainBytes": { +"description": "Output only. Total size of all backups in a chain in bytes = baseline backup size + sum(incremental backup size).", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"backupPolicies": { +"description": "Optional. When specified, schedule backups will be created based on the policy configuration.", +"items": { +"type": "string" +}, +"type": "array" +}, +"backupVault": { +"description": "Optional. Name of backup vault. Format: projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}", +"type": "string" +}, +"scheduledBackupEnabled": { +"description": "Optional. When set to true, scheduled backup is enabled on the volume. This field should be nil when there's no backup policy attached.", +"type": "boolean" +} +}, +"type": "object" +}, +"BackupPolicy": { +"description": "Backup Policy.", +"id": "BackupPolicy", +"properties": { +"assignedVolumeCount": { +"description": "Output only. The total number of volumes assigned by this backup policy.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"createTime": { +"description": "Output only. The time when the backup policy was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dailyBackupLimit": { +"description": "Number of daily backups to keep. Note that the minimum daily backup limit is 2.", +"format": "int32", +"type": "integer" +}, +"description": { +"description": "Description of the backup policy.", +"type": "string" +}, +"enabled": { +"description": "If enabled, make backups automatically according to the schedules. This will be applied to all volumes that have this policy attached and enforced on volume level. If not specified, default is true.", +"type": "boolean" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata.", +"type": "object" +}, +"monthlyBackupLimit": { +"description": "Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Identifier. The resource name of the backup policy. Format: `projects/{project_id}/locations/{location}/backupPolicies/{backup_policy_id}`.", +"type": "string" +}, +"state": { +"description": "Output only. The backup policy state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"ERROR", +"UPDATING" +], +"enumDescriptions": [ +"State not set.", +"BackupPolicy is being created.", +"BackupPolicy is available for use.", +"BackupPolicy is being deleted.", +"BackupPolicy is not valid and cannot be used.", +"BackupPolicy is being updated." +], +"readOnly": true, +"type": "string" +}, +"weeklyBackupLimit": { +"description": "Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BackupVault": { +"description": "A NetApp BackupVault.", +"id": "BackupVault", +"properties": { +"createTime": { +"description": "Output only. Create time of the backup vault.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of the backup vault.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the backup vault. Format: `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}`.", +"type": "string" +}, +"state": { +"description": "Output only. The backup vault state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"ERROR", +"UPDATING" +], +"enumDescriptions": [ +"State not set.", +"BackupVault is being created.", +"BackupVault is available for use.", +"BackupVault is being deleted.", +"BackupVault is not valid and cannot be used.", +"BackupVault is being updated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"DailySchedule": { +"description": "Make a snapshot every day e.g. at 04:00, 05:20, 23:50", +"id": "DailySchedule", +"properties": { +"hour": { +"description": "Set the hour to start the snapshot (0-23), defaults to midnight (0).", +"format": "double", +"type": "number" +}, +"minute": { +"description": "Set the minute of the hour to start the snapshot (0-59), defaults to the top of the hour (0).", +"format": "double", +"type": "number" +}, +"snapshotsToKeep": { +"description": "The maximum number of Snapshots to keep for the hourly schedule", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"DestinationVolumeParameters": { +"description": "DestinationVolumeParameters specify input parameters used for creating destination volume.", +"id": "DestinationVolumeParameters", +"properties": { +"description": { +"description": "Description for the destination volume.", +"type": "string" +}, +"shareName": { +"description": "Destination volume's share name. If not specified, source volume's share name will be used.", +"type": "string" +}, +"storagePool": { +"description": "Required. Existing destination StoragePool name.", +"type": "string" +}, +"tieringPolicy": { +"$ref": "TieringPolicy", +"description": "Optional. Tiering policy for the volume." +}, +"volumeId": { +"description": "Desired destination volume resource id. If not specified, source volume's resource id will be used. This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, or hyphens, and cannot end with a hyphen.", +"type": "string" +} +}, +"type": "object" +}, +"EncryptVolumesRequest": { +"description": "EncryptVolumesRequest specifies the KMS config to encrypt existing volumes.", +"id": "EncryptVolumesRequest", +"properties": {}, +"type": "object" +}, +"EstablishPeeringRequest": { +"description": "EstablishPeeringRequest establishes cluster and svm peerings between the source and the destination replications.", +"id": "EstablishPeeringRequest", +"properties": { +"peerClusterName": { +"description": "Required. Name of the user's local source cluster to be peered with the destination cluster.", +"type": "string" +}, +"peerIpAddresses": { +"description": "Optional. List of IPv4 ip addresses to be used for peering.", +"items": { +"type": "string" +}, +"type": "array" +}, +"peerSvmName": { +"description": "Required. Name of the user's local source vserver svm to be peered with the destination vserver svm.", +"type": "string" +}, +"peerVolumeName": { +"description": "Required. Name of the user's local source volume to be peered with the destination volume.", +"type": "string" +} +}, +"type": "object" +}, +"ExportPolicy": { +"description": "Defines the export policy for the volume.", +"id": "ExportPolicy", +"properties": { +"rules": { +"description": "Required. List of export policy rules", +"items": { +"$ref": "SimpleExportPolicyRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"HourlySchedule": { +"description": "Make a snapshot every hour e.g. at 04:00, 05:00, 06:00.", +"id": "HourlySchedule", +"properties": { +"minute": { +"description": "Set the minute of the hour to start the snapshot (0-59), defaults to the top of the hour (0).", +"format": "double", +"type": "number" +}, +"snapshotsToKeep": { +"description": "The maximum number of Snapshots to keep for the hourly schedule", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"HybridPeeringDetails": { +"description": "HybridPeeringDetails contains details about the hybrid peering.", +"id": "HybridPeeringDetails", +"properties": { +"command": { +"description": "Optional. Copy-paste-able commands to be used on user's ONTAP to accept peering requests.", +"type": "string" +}, +"commandExpiryTime": { +"description": "Optional. Expiration time for the peering command to be executed on user's ONTAP.", +"format": "google-datetime", +"type": "string" +}, +"passphrase": { +"description": "Optional. Temporary passphrase generated to accept cluster peering command.", +"type": "string" +}, +"subnetIp": { +"description": "Optional. IP address of the subnet.", +"type": "string" +} +}, +"type": "object" +}, +"HybridReplicationParameters": { +"description": "The Hybrid Replication parameters for the volume.", +"id": "HybridReplicationParameters", +"properties": { +"clusterLocation": { +"description": "Optional. Name of source cluster location associated with the Hybrid replication. This is a free-form field for the display purpose only.", +"type": "string" +}, +"description": { +"description": "Optional. Description of the replication.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels to be added to the replication as the key value pairs.", +"type": "object" +}, +"peerClusterName": { +"description": "Required. Name of the user's local source cluster to be peered with the destination cluster.", +"type": "string" +}, +"peerIpAddresses": { +"description": "Required. List of node ip addresses to be peered with.", +"items": { +"type": "string" +}, +"type": "array" +}, +"peerSvmName": { +"description": "Required. Name of the user's local source vserver svm to be peered with the destination vserver svm.", +"type": "string" +}, +"peerVolumeName": { +"description": "Required. Name of the user's local source volume to be peered with the destination volume.", +"type": "string" +}, +"replication": { +"description": "Required. Desired name for the replication of this volume.", +"type": "string" +} +}, +"type": "object" +}, +"KmsConfig": { +"description": "KmsConfig is the customer managed encryption key(CMEK) configuration.", +"id": "KmsConfig", +"properties": { +"createTime": { +"description": "Output only. Create time of the KmsConfig.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"cryptoKeyName": { +"description": "Required. Customer managed crypto key resource full name. Format: projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}.", +"type": "string" +}, +"description": { +"description": "Description of the KmsConfig.", +"type": "string" +}, +"instructions": { +"description": "Output only. Instructions to provide the access to the customer provided encryption key.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs", +"type": "object" +}, +"name": { +"description": "Identifier. Name of the KmsConfig.", +"type": "string" +}, +"serviceAccount": { +"description": "Output only. The Service account which will have access to the customer provided encryption key.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the KmsConfig.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"CREATING", +"DELETING", +"UPDATING", +"IN_USE", +"ERROR", +"KEY_CHECK_PENDING", +"KEY_NOT_REACHABLE", +"DISABLING", +"DISABLED", +"MIGRATING" +], +"enumDescriptions": [ +"Unspecified KmsConfig State", +"KmsConfig State is Ready", +"KmsConfig State is Creating", +"KmsConfig State is Deleting", +"KmsConfig State is Updating", +"KmsConfig State is In Use.", +"KmsConfig State is Error", +"KmsConfig State is Pending to verify crypto key access.", +"KmsConfig State is Not accessbile by the SDE service account to the crypto key.", +"KmsConfig State is Disabling.", +"KmsConfig State is Disabled.", +"KmsConfig State is Migrating. The existing volumes are migrating from SMEK to CMEK." +], +"readOnly": true, +"type": "string" +}, +"stateDetails": { +"description": "Output only. State details of the KmsConfig.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListActiveDirectoriesResponse": { +"description": "ListActiveDirectoriesResponse contains all the active directories requested.", +"id": "ListActiveDirectoriesResponse", +"properties": { +"activeDirectories": { +"description": "The list of active directories.", +"items": { +"$ref": "ActiveDirectory" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListBackupPoliciesResponse": { +"description": "ListBackupPoliciesResponse contains all the backup policies requested.", +"id": "ListBackupPoliciesResponse", +"properties": { +"backupPolicies": { +"description": "The list of backup policies.", +"items": { +"$ref": "BackupPolicy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListBackupVaultsResponse": { +"description": "ListBackupVaultsResponse is the result of ListBackupVaultsRequest.", +"id": "ListBackupVaultsResponse", +"properties": { +"backupVaults": { +"description": "A list of backupVaults in the project for the specified location.", +"items": { +"$ref": "BackupVault" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token you can use to retrieve the next page of results. Not returned if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListBackupsResponse": { +"description": "ListBackupsResponse is the result of ListBackupsRequest.", +"id": "ListBackupsResponse", +"properties": { +"backups": { +"description": "A list of backups in the project.", +"items": { +"$ref": "Backup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token you can use to retrieve the next page of results. Not returned if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListKmsConfigsResponse": { +"description": "ListKmsConfigsResponse is the response to a ListKmsConfigsRequest.", +"id": "ListKmsConfigsResponse", +"properties": { +"kmsConfigs": { +"description": "The list of KmsConfigs", +"items": { +"$ref": "KmsConfig" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListReplicationsResponse": { +"description": "ListReplicationsResponse is the result of ListReplicationsRequest.", +"id": "ListReplicationsResponse", +"properties": { +"nextPageToken": { +"description": "The token you can use to retrieve the next page of results. Not returned if there are no more results in the list.", +"type": "string" +}, +"replications": { +"description": "A list of replications in the project for the specified volume.", +"items": { +"$ref": "Replication" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSnapshotsResponse": { +"description": "ListSnapshotsResponse is the result of ListSnapshotsRequest.", +"id": "ListSnapshotsResponse", +"properties": { +"nextPageToken": { +"description": "The token you can use to retrieve the next page of results. Not returned if there are no more results in the list.", +"type": "string" +}, +"snapshots": { +"description": "A list of snapshots in the project for the specified volume.", +"items": { +"$ref": "Snapshot" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListStoragePoolsResponse": { +"description": "ListStoragePoolsResponse is the response to a ListStoragePoolsRequest.", +"id": "ListStoragePoolsResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"storagePools": { +"description": "The list of StoragePools", +"items": { +"$ref": "StoragePool" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVolumesResponse": { +"description": "Message for response to listing Volumes", +"id": "ListVolumesResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"volumes": { +"description": "The list of Volume", +"items": { +"$ref": "Volume" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"LocationMetadata": { +"description": "Metadata for a given google.cloud.location.Location.", +"id": "LocationMetadata", +"properties": { +"supportedServiceLevels": { +"description": "Output only. Supported service levels in a location.", +"items": { +"enum": [ +"SERVICE_LEVEL_UNSPECIFIED", +"PREMIUM", +"EXTREME", +"STANDARD", +"FLEX" +], +"enumDescriptions": [ +"Unspecified service level.", +"Premium service level.", +"Extreme service level.", +"Standard service level.", +"Flex service level." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"MonthlySchedule": { +"description": "Make a snapshot once a month e.g. at 2nd 04:00, 7th 05:20, 24th 23:50", +"id": "MonthlySchedule", +"properties": { +"daysOfMonth": { +"description": "Set the day or days of the month to make a snapshot (1-31). Accepts a comma separated number of days. Defaults to '1'.", +"type": "string" +}, +"hour": { +"description": "Set the hour to start the snapshot (0-23), defaults to midnight (0).", +"format": "double", +"type": "number" +}, +"minute": { +"description": "Set the minute of the hour to start the snapshot (0-59), defaults to the top of the hour (0).", +"format": "double", +"type": "number" +}, +"snapshotsToKeep": { +"description": "The maximum number of Snapshots to keep for the hourly schedule", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"MountOption": { +"description": "View only mount options for a volume.", +"id": "MountOption", +"properties": { +"export": { +"description": "Export string", +"type": "string" +}, +"exportFull": { +"description": "Full export string", +"type": "string" +}, +"instructions": { +"description": "Instructions for mounting", +"type": "string" +}, +"protocol": { +"description": "Protocol to mount with.", +"enum": [ +"PROTOCOLS_UNSPECIFIED", +"NFSV3", +"NFSV4", +"SMB" +], +"enumDescriptions": [ +"Unspecified protocol", +"NFS V3 protocol", +"NFS V4 protocol", +"SMB protocol" +], +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been canceled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Replication": { +"description": "Replication is a nested resource under Volume, that describes a cross-region replication relationship between 2 volumes in different regions.", +"id": "Replication", +"properties": { +"clusterLocation": { +"description": "Optional. Location of the user cluster.", +"type": "string" +}, +"createTime": { +"description": "Output only. Replication create time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A description about this replication relationship.", +"type": "string" +}, +"destinationVolume": { +"description": "Output only. Full name of destination volume resource. Example : \"projects/{project}/locations/{location}/volumes/{volume_id}\"", +"readOnly": true, +"type": "string" +}, +"destinationVolumeParameters": { +"$ref": "DestinationVolumeParameters", +"description": "Required. Input only. Destination volume parameters" +}, +"healthy": { +"description": "Output only. Condition of the relationship. Can be one of the following: - true: The replication relationship is healthy. It has not missed the most recent scheduled transfer. - false: The replication relationship is not healthy. It has missed the most recent scheduled transfer.", +"readOnly": true, +"type": "boolean" +}, +"hybridPeeringDetails": { +"$ref": "HybridPeeringDetails", +"description": "Output only. Hybrid peering details.", +"readOnly": true +}, +"hybridReplicationType": { +"description": "Output only. Type of the hybrid replication.", +"enum": [ +"HYBRID_REPLICATION_TYPE_UNSPECIFIED", +"MIGRATION", +"CONTINUOUS_REPLICATION" +], +"enumDescriptions": [ +"Unspecified hybrid replication type.", +"Hybrid replication type for migration.", +"Hybrid replication type for continuous replication." +], +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata.", +"type": "object" +}, +"mirrorState": { +"description": "Output only. Indicates the state of mirroring.", +"enum": [ +"MIRROR_STATE_UNSPECIFIED", +"PREPARING", +"MIRRORED", +"STOPPED", +"TRANSFERRING", +"BASELINE_TRANSFERRING", +"ABORTED" +], +"enumDescriptions": [ +"Unspecified MirrorState", +"Destination volume is being prepared.", +"Destination volume has been initialized and is ready to receive replication transfers.", +"Destination volume is not receiving replication transfers.", +"Incremental replication is in progress.", +"Baseline replication is in progress.", +"Replication is aborted." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the Replication. Format: `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`.", +"type": "string" +}, +"replicationSchedule": { +"description": "Required. Indicates the schedule for replication.", +"enum": [ +"REPLICATION_SCHEDULE_UNSPECIFIED", +"EVERY_10_MINUTES", +"HOURLY", +"DAILY" +], +"enumDescriptions": [ +"Unspecified ReplicationSchedule", +"Replication happens once every 10 minutes.", +"Replication happens once every hour.", +"Replication happens once every day." +], +"type": "string" +}, +"role": { +"description": "Output only. Indicates whether this points to source or destination.", +"enum": [ +"REPLICATION_ROLE_UNSPECIFIED", +"SOURCE", +"DESTINATION" +], +"enumDescriptions": [ +"Unspecified replication role", +"Indicates Source volume.", +"Indicates Destination volume." +], +"readOnly": true, +"type": "string" +}, +"sourceVolume": { +"description": "Output only. Full name of source volume resource. Example : \"projects/{project}/locations/{location}/volumes/{volume_id}\"", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the replication.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"DELETING", +"ERROR", +"PENDING_CLUSTER_PEERING", +"PENDING_SVM_PEERING" +], +"enumDescriptions": [ +"Unspecified replication State", +"Replication is creating.", +"Replication is ready.", +"Replication is updating.", +"Replication is deleting.", +"Replication is in error state.", +"Replication is waiting for cluster peering to be established.", +"Replication is waiting for SVM peering to be established." +], +"readOnly": true, +"type": "string" +}, +"stateDetails": { +"description": "Output only. State details of the replication.", +"readOnly": true, +"type": "string" +}, +"transferStats": { +"$ref": "TransferStats", +"description": "Output only. Replication transfer statistics.", +"readOnly": true +} +}, +"type": "object" +}, +"RestoreParameters": { +"description": "The RestoreParameters if volume is created from a snapshot or backup.", +"id": "RestoreParameters", +"properties": { +"sourceBackup": { +"description": "Full name of the backup resource. Format: projects/{project}/locations/{location}/backupVaults/{backup_vault_id}/backups/{backup_id}", +"type": "string" +}, +"sourceSnapshot": { +"description": "Full name of the snapshot resource. Format: projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}", +"type": "string" +} +}, +"type": "object" +}, +"ResumeReplicationRequest": { +"description": "ResumeReplicationRequest resumes a stopped replication.", +"id": "ResumeReplicationRequest", +"properties": {}, +"type": "object" +}, +"ReverseReplicationDirectionRequest": { +"description": "ReverseReplicationDirectionRequest reverses direction of replication. Source becomes destination and destination becomes source.", +"id": "ReverseReplicationDirectionRequest", +"properties": {}, +"type": "object" +}, +"RevertVolumeRequest": { +"description": "RevertVolumeRequest reverts the given volume to the specified snapshot.", +"id": "RevertVolumeRequest", +"properties": { +"snapshotId": { +"description": "Required. The snapshot resource ID, in the format 'my-snapshot', where the specified ID is the {snapshot_id} of the fully qualified name like projects/{project_id}/locations/{location_id}/volumes/{volume_id}/snapshots/{snapshot_id}", +"type": "string" +} +}, +"type": "object" +}, +"SimpleExportPolicyRule": { +"description": "An export policy rule describing various export options.", +"id": "SimpleExportPolicyRule", +"properties": { +"accessType": { +"description": "Access type (ReadWrite, ReadOnly, None)", +"enum": [ +"ACCESS_TYPE_UNSPECIFIED", +"READ_ONLY", +"READ_WRITE", +"READ_NONE" +], +"enumDescriptions": [ +"Unspecified Access Type", +"Read Only", +"Read Write", +"None" +], +"type": "string" +}, +"allowedClients": { +"description": "Comma separated list of allowed clients IP addresses", +"type": "string" +}, +"hasRootAccess": { +"description": "Whether Unix root access will be granted.", +"type": "string" +}, +"kerberos5ReadOnly": { +"description": "If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode.", +"type": "boolean" +}, +"kerberos5ReadWrite": { +"description": "If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode. The 'kerberos5ReadOnly' value be ignored if this is enabled.", +"type": "boolean" +}, +"kerberos5iReadOnly": { +"description": "If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode.", +"type": "boolean" +}, +"kerberos5iReadWrite": { +"description": "If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly' value be ignored if this is enabled.", +"type": "boolean" +}, +"kerberos5pReadOnly": { +"description": "If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode.", +"type": "boolean" +}, +"kerberos5pReadWrite": { +"description": "If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly' value be ignored if this is enabled.", +"type": "boolean" +}, +"nfsv3": { +"description": "NFS V3 protocol.", +"type": "boolean" +}, +"nfsv4": { +"description": "NFS V4 protocol.", +"type": "boolean" +} +}, +"type": "object" +}, +"Snapshot": { +"description": "Snapshot is a point-in-time version of a Volume's content.", +"id": "Snapshot", +"properties": { +"createTime": { +"description": "Output only. The time when the snapshot was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A description of the snapshot with 2048 characters or less. Requests with longer descriptions will be rejected.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the snapshot. Format: `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`.", +"type": "string" +}, +"state": { +"description": "Output only. The snapshot state.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"CREATING", +"DELETING", +"UPDATING", +"DISABLED", +"ERROR" +], +"enumDescriptions": [ +"Unspecified Snapshot State", +"Snapshot State is Ready", +"Snapshot State is Creating", +"Snapshot State is Deleting", +"Snapshot State is Updating", +"Snapshot State is Disabled", +"Snapshot State is Error" +], +"readOnly": true, +"type": "string" +}, +"stateDetails": { +"description": "Output only. State details of the storage pool", +"readOnly": true, +"type": "string" +}, +"usedBytes": { +"description": "Output only. Current storage usage for the snapshot in bytes.", +"format": "double", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"SnapshotPolicy": { +"description": "Snapshot Policy for a volume.", +"id": "SnapshotPolicy", +"properties": { +"dailySchedule": { +"$ref": "DailySchedule", +"description": "Daily schedule policy." +}, +"enabled": { +"description": "If enabled, make snapshots automatically according to the schedules. Default is false.", +"type": "boolean" +}, +"hourlySchedule": { +"$ref": "HourlySchedule", +"description": "Hourly schedule policy." +}, +"monthlySchedule": { +"$ref": "MonthlySchedule", +"description": "Monthly schedule policy." +}, +"weeklySchedule": { +"$ref": "WeeklySchedule", +"description": "Weekly schedule policy." +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StopReplicationRequest": { +"description": "StopReplicationRequest stops a replication until resumed.", +"id": "StopReplicationRequest", +"properties": { +"force": { +"description": "Indicates whether to stop replication forcefully while data transfer is in progress. Warning! if force is true, this will abort any current transfers and can lead to data loss due to partial transfer. If force is false, stop replication will fail while data transfer is in progress and you will need to retry later.", +"type": "boolean" +} +}, +"type": "object" +}, +"StoragePool": { +"description": "StoragePool is a container for volumes with a service level and capacity. Volumes can be created in a pool of sufficient available capacity. StoragePool capacity is what you are billed for.", +"id": "StoragePool", +"properties": { +"activeDirectory": { +"description": "Optional. Specifies the Active Directory to be used for creating a SMB volume.", +"type": "string" +}, +"allowAutoTiering": { +"description": "Optional. True if the storage pool supports Auto Tiering enabled volumes. Default is false. Auto-tiering can be enabled after storage pool creation but it can't be disabled once enabled.", +"type": "boolean" +}, +"capacityGib": { +"description": "Required. Capacity in GIB of the pool", +"format": "int64", +"type": "string" +}, +"createTime": { +"description": "Output only. Create time of the storage pool", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the storage pool", +"type": "string" +}, +"encryptionType": { +"description": "Output only. Specifies the current pool encryption key source.", +"enum": [ +"ENCRYPTION_TYPE_UNSPECIFIED", +"SERVICE_MANAGED", +"CLOUD_KMS" +], +"enumDescriptions": [ +"The source of the encryption key is not specified.", +"Google managed encryption key.", +"Customer managed encryption key, which is stored in KMS." +], +"readOnly": true, +"type": "string" +}, +"globalAccessAllowed": { +"deprecated": true, +"description": "Deprecated. Used to allow SO pool to access AD or DNS server from other regions.", +"type": "boolean" +}, +"kmsConfig": { +"description": "Optional. Specifies the KMS config to be used for volume encryption.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"ldapEnabled": { +"description": "Optional. Flag indicating if the pool is NFS LDAP enabled or not.", +"type": "boolean" +}, +"name": { +"description": "Identifier. Name of the storage pool", +"type": "string" +}, +"network": { +"description": "Required. VPC Network name. Format: projects/{project}/global/networks/{network}", +"type": "string" +}, +"psaRange": { +"description": "Optional. This field is not implemented. The values provided in this field are ignored.", +"type": "string" +}, +"replicaZone": { +"description": "Optional. Specifies the replica zone for regional storagePool.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use", +"readOnly": true, +"type": "boolean" +}, +"serviceLevel": { +"description": "Required. Service level of the storage pool", +"enum": [ +"SERVICE_LEVEL_UNSPECIFIED", +"PREMIUM", +"EXTREME", +"STANDARD", +"FLEX" +], +"enumDescriptions": [ +"Unspecified service level.", +"Premium service level.", +"Extreme service level.", +"Standard service level.", +"Flex service level." +], +"type": "string" +}, +"state": { +"description": "Output only. State of the storage pool", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"CREATING", +"DELETING", +"UPDATING", +"RESTORING", +"DISABLED", +"ERROR" +], +"enumDescriptions": [ +"Unspecified Storage Pool State", +"Storage Pool State is Ready", +"Storage Pool State is Creating", +"Storage Pool State is Deleting", +"Storage Pool State is Updating", +"Storage Pool State is Restoring", +"Storage Pool State is Disabled", +"Storage Pool State is Error" +], +"readOnly": true, +"type": "string" +}, +"stateDetails": { +"description": "Output only. State details of the storage pool", +"readOnly": true, +"type": "string" +}, +"volumeCapacityGib": { +"description": "Output only. Allocated size of all volumes in GIB in the storage pool", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"volumeCount": { +"description": "Output only. Volume count of the storage pool", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"zone": { +"description": "Optional. Specifies the active zone for regional storagePool.", +"type": "string" +} +}, +"type": "object" +}, +"SwitchActiveReplicaZoneRequest": { +"description": "SwitchActiveReplicaZoneRequest switch the active/replica zone for a regional storagePool.", +"id": "SwitchActiveReplicaZoneRequest", +"properties": {}, +"type": "object" +}, +"SyncReplicationRequest": { +"description": "SyncReplicationRequest syncs the replication from source to destination.", +"id": "SyncReplicationRequest", +"properties": {}, +"type": "object" +}, +"TieringPolicy": { +"description": "Defines tiering policy for the volume.", +"id": "TieringPolicy", +"properties": { +"coolingThresholdDays": { +"description": "Optional. Time in days to mark the volume's data block as cold and make it eligible for tiering, can be range from 7-183. Default is 31.", +"format": "int32", +"type": "integer" +}, +"tierAction": { +"description": "Optional. Flag indicating if the volume has tiering policy enable/pause. Default is PAUSED.", +"enum": [ +"TIER_ACTION_UNSPECIFIED", +"ENABLED", +"PAUSED" +], +"enumDescriptions": [ +"Unspecified.", +"When tiering is enabled, new cold data will be tiered.", +"When paused, tiering won't be performed on new data. Existing data stays tiered until accessed." +], +"type": "string" +} +}, +"type": "object" +}, +"TransferStats": { +"description": "TransferStats reports all statistics related to replication transfer.", +"id": "TransferStats", +"properties": { +"lagDuration": { +"description": "Lag duration indicates the duration by which Destination region volume content lags behind the primary region volume content.", +"format": "google-duration", +"type": "string" +}, +"lastTransferBytes": { +"description": "Last transfer size in bytes.", +"format": "int64", +"type": "string" +}, +"lastTransferDuration": { +"description": "Time taken during last transfer.", +"format": "google-duration", +"type": "string" +}, +"lastTransferEndTime": { +"description": "Time when last transfer completed.", +"format": "google-datetime", +"type": "string" +}, +"lastTransferError": { +"description": "A message describing the cause of the last transfer failure.", +"type": "string" +}, +"totalTransferDuration": { +"description": "Cumulative time taken across all transfers for the replication relationship.", +"format": "google-duration", +"type": "string" +}, +"transferBytes": { +"description": "Cumulative bytes trasferred so far for the replication relatinonship.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Time when progress was updated last.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ValidateDirectoryServiceRequest": { +"description": "ValidateDirectoryServiceRequest validates the directory service policy attached to the storage pool.", +"id": "ValidateDirectoryServiceRequest", +"properties": { +"directoryServiceType": { +"description": "Type of directory service policy attached to the storage pool.", +"enum": [ +"DIRECTORY_SERVICE_TYPE_UNSPECIFIED", +"ACTIVE_DIRECTORY" +], +"enumDescriptions": [ +"Directory service type is not specified.", +"Active directory policy attached to the storage pool." +], +"type": "string" +} +}, +"type": "object" +}, +"VerifyKmsConfigRequest": { +"description": "VerifyKmsConfigRequest specifies the KMS config to be validated.", +"id": "VerifyKmsConfigRequest", +"properties": {}, +"type": "object" +}, +"VerifyKmsConfigResponse": { +"description": "VerifyKmsConfigResponse contains the information if the config is correctly and error message.", +"id": "VerifyKmsConfigResponse", +"properties": { +"healthError": { +"description": "Output only. Error message if config is not healthy.", +"readOnly": true, +"type": "string" +}, +"healthy": { +"description": "Output only. If the customer key configured correctly to the encrypt volume.", +"readOnly": true, +"type": "boolean" +}, +"instructions": { +"description": "Output only. Instructions for the customers to provide the access to the encryption key.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Volume": { +"description": "Volume provides a filesystem that you can mount.", +"id": "Volume", +"properties": { +"activeDirectory": { +"description": "Output only. Specifies the ActiveDirectory name of a SMB volume.", +"readOnly": true, +"type": "string" +}, +"backupConfig": { +"$ref": "BackupConfig", +"description": "BackupConfig of the volume." +}, +"capacityGib": { +"description": "Required. Capacity in GIB of the volume", +"format": "int64", +"type": "string" +}, +"coldTierSizeGib": { +"description": "Output only. Size of the volume cold tier data in GiB.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. Create time of the volume", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the volume", +"type": "string" +}, +"encryptionType": { +"description": "Output only. Specified the current volume encryption key source.", +"enum": [ +"ENCRYPTION_TYPE_UNSPECIFIED", +"SERVICE_MANAGED", +"CLOUD_KMS" +], +"enumDescriptions": [ +"The source of the encryption key is not specified.", +"Google managed encryption key.", +"Customer managed encryption key, which is stored in KMS." +], +"readOnly": true, +"type": "string" +}, +"exportPolicy": { +"$ref": "ExportPolicy", +"description": "Optional. Export policy of the volume" +}, +"hasReplication": { +"description": "Output only. Indicates whether the volume is part of a replication relationship.", +"readOnly": true, +"type": "boolean" +}, +"hybridReplicationParameters": { +"$ref": "HybridReplicationParameters", +"description": "Optional. The Hybrid Replication parameters for the volume." +}, +"kerberosEnabled": { +"description": "Optional. Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).", +"type": "boolean" +}, +"kmsConfig": { +"description": "Output only. Specifies the KMS config to be used for volume encryption.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels as key value pairs", +"type": "object" +}, +"largeCapacity": { +"description": "Optional. Flag indicating if the volume will be a large capacity volume or a regular volume.", +"type": "boolean" +}, +"ldapEnabled": { +"description": "Output only. Flag indicating if the volume is NFS LDAP enabled or not.", +"readOnly": true, +"type": "boolean" +}, +"mountOptions": { +"description": "Output only. Mount options of this volume", +"items": { +"$ref": "MountOption" +}, +"readOnly": true, +"type": "array" +}, +"multipleEndpoints": { +"description": "Optional. Flag indicating if the volume will have an IP address per node for volumes supporting multiple IP endpoints. Only the volume with large_capacity will be allowed to have multiple endpoints.", +"type": "boolean" +}, +"name": { +"description": "Identifier. Name of the volume", +"type": "string" +}, +"network": { +"description": "Output only. VPC Network name. Format: projects/{project}/global/networks/{network}", +"readOnly": true, +"type": "string" +}, +"protocols": { +"description": "Required. Protocols required for the volume", +"items": { +"enum": [ +"PROTOCOLS_UNSPECIFIED", +"NFSV3", +"NFSV4", +"SMB" +], +"enumDescriptions": [ +"Unspecified protocol", +"NFS V3 protocol", +"NFS V4 protocol", +"SMB protocol" +], +"type": "string" +}, +"type": "array" +}, +"psaRange": { +"description": "Output only. This field is not implemented. The values provided in this field are ignored.", +"readOnly": true, +"type": "string" +}, +"replicaZone": { +"description": "Output only. Specifies the replica zone for regional volume.", +"readOnly": true, +"type": "string" +}, +"restoreParameters": { +"$ref": "RestoreParameters", +"description": "Optional. Specifies the source of the volume to be created from." +}, +"restrictedActions": { +"description": "Optional. List of actions that are restricted on this volume.", +"items": { +"enum": [ +"RESTRICTED_ACTION_UNSPECIFIED", +"DELETE" +], +"enumDescriptions": [ +"Unspecified restricted action", +"Prevent volume from being deleted when mounted." +], +"type": "string" +}, +"type": "array" +}, +"securityStyle": { +"description": "Optional. Security Style of the Volume", +"enum": [ +"SECURITY_STYLE_UNSPECIFIED", +"NTFS", +"UNIX" +], +"enumDescriptions": [ +"SecurityStyle is unspecified", +"SecurityStyle uses NTFS", +"SecurityStyle uses UNIX" +], +"type": "string" +}, +"serviceLevel": { +"description": "Output only. Service level of the volume", +"enum": [ +"SERVICE_LEVEL_UNSPECIFIED", +"PREMIUM", +"EXTREME", +"STANDARD", +"FLEX" +], +"enumDescriptions": [ +"Unspecified service level.", +"Premium service level.", +"Extreme service level.", +"Standard service level.", +"Flex service level." +], +"readOnly": true, +"type": "string" +}, +"shareName": { +"description": "Required. Share name of the volume", +"type": "string" +}, +"smbSettings": { +"description": "Optional. SMB share settings for the volume.", +"items": { +"enum": [ +"SMB_SETTINGS_UNSPECIFIED", +"ENCRYPT_DATA", +"BROWSABLE", +"CHANGE_NOTIFY", +"NON_BROWSABLE", +"OPLOCKS", +"SHOW_SNAPSHOT", +"SHOW_PREVIOUS_VERSIONS", +"ACCESS_BASED_ENUMERATION", +"CONTINUOUSLY_AVAILABLE" +], +"enumDescriptions": [ +"Unspecified default option", +"SMB setting encrypt data", +"SMB setting browsable", +"SMB setting notify change", +"SMB setting not to notify change", +"SMB setting oplocks", +"SMB setting to show snapshots", +"SMB setting to show previous versions", +"SMB setting to access volume based on enumerartion", +"Continuously available enumeration" +], +"type": "string" +}, +"type": "array" +}, +"snapReserve": { +"description": "Optional. Snap_reserve specifies percentage of volume storage reserved for snapshot storage. Default is 0 percent.", +"format": "double", +"type": "number" +}, +"snapshotDirectory": { +"description": "Optional. Snapshot_directory if enabled (true) the volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots.", +"type": "boolean" +}, +"snapshotPolicy": { +"$ref": "SnapshotPolicy", +"description": "Optional. SnapshotPolicy for a volume." +}, +"state": { +"description": "Output only. State of the volume", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"CREATING", +"DELETING", +"UPDATING", +"RESTORING", +"DISABLED", +"ERROR", +"PREPARING", +"READ_ONLY" +], +"enumDescriptions": [ +"Unspecified Volume State", +"Volume State is Ready", +"Volume State is Creating", +"Volume State is Deleting", +"Volume State is Updating", +"Volume State is Restoring", +"Volume State is Disabled", +"Volume State is Error", +"Volume State is Preparing. Note that this is different from CREATING where CREATING means the volume is being created, while PREPARING means the volume is created and now being prepared for the replication.", +"Volume State is Read Only" +], +"readOnly": true, +"type": "string" +}, +"stateDetails": { +"description": "Output only. State details of the volume", +"readOnly": true, +"type": "string" +}, +"storagePool": { +"description": "Required. StoragePool name of the volume", +"type": "string" +}, +"tieringPolicy": { +"$ref": "TieringPolicy", +"description": "Tiering policy for the volume." +}, +"unixPermissions": { +"description": "Optional. Default unix style permission (e.g. 777) the mount point will be created with. Applicable for NFS protocol types only.", +"type": "string" +}, +"usedGib": { +"description": "Output only. Used capacity in GIB of the volume. This is computed periodically and it does not represent the realtime usage.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"zone": { +"description": "Output only. Specifies the active zone for regional volume.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WeeklySchedule": { +"description": "Make a snapshot every week e.g. at Monday 04:00, Wednesday 05:20, Sunday 23:50", +"id": "WeeklySchedule", +"properties": { +"day": { +"description": "Set the day or days of the week to make a snapshot. Accepts a comma separated days of the week. Defaults to 'Sunday'.", +"type": "string" +}, +"hour": { +"description": "Set the hour to start the snapshot (0-23), defaults to midnight (0).", +"format": "double", +"type": "number" +}, +"minute": { +"description": "Set the minute of the hour to start the snapshot (0-59), defaults to the top of the hour (0).", +"format": "double", +"type": "number" +}, +"snapshotsToKeep": { +"description": "The maximum number of Snapshots to keep for the hourly schedule", +"format": "double", +"type": "number" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "NetApp API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networkmanagement.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networkmanagement.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..0d26d63c5e2017148e99e10828971a6d9be777cd --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networkmanagement.v1beta1.json @@ -0,0 +1,3498 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://networkmanagement.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Network Management", +"description": "The Network Management API provides a collection of network performance monitoring and diagnostic capabilities.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "networkmanagement:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://networkmanagement.mtls.googleapis.com/", +"name": "networkmanagement", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "networkmanagement.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "networkmanagement.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"global": { +"resources": { +"connectivityTests": { +"methods": { +"create": { +"description": "Creates a new Connectivity Test. After you create a test, the reachability analysis is performed as part of the long running operation, which completes when the analysis completes. If the endpoint specifications in `ConnectivityTest` are invalid (for example, containing non-existent resources in the network, or you don't have read permissions to the network configurations of listed projects), then the reachability result returns a value of `UNKNOWN`. If the endpoint specifications in `ConnectivityTest` are incomplete, the reachability result returns a value of AMBIGUOUS. For more information, see the Connectivity Test documentation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests", +"httpMethod": "POST", +"id": "networkmanagement.projects.locations.global.connectivityTests.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the Connectivity Test to create: `projects/{project_id}/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global$", +"required": true, +"type": "string" +}, +"testId": { +"description": "Required. The logical name of the Connectivity Test in your project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-40 characters. * Must end with a number or a letter. * Must be unique within the customer project", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/connectivityTests", +"request": { +"$ref": "ConnectivityTest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a specific `ConnectivityTest`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests/{connectivityTestsId}", +"httpMethod": "DELETE", +"id": "networkmanagement.projects.locations.global.connectivityTests.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Connectivity Test resource name using the form: `projects/{project_id}/locations/global/connectivityTests/{test_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/connectivityTests/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific Connectivity Test.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests/{connectivityTestsId}", +"httpMethod": "GET", +"id": "networkmanagement.projects.locations.global.connectivityTests.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. `ConnectivityTest` resource name using the form: `projects/{project_id}/locations/global/connectivityTests/{test_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/connectivityTests/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "ConnectivityTest" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests/{connectivityTestsId}:getIamPolicy", +"httpMethod": "GET", +"id": "networkmanagement.projects.locations.global.connectivityTests.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/connectivityTests/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Connectivity Tests owned by a project.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests", +"httpMethod": "GET", +"id": "networkmanagement.projects.locations.global.connectivityTests.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Lists the `ConnectivityTests` that match the filter expression. A filter expression filters the resources listed in the response. The expression must be of the form ` ` where operators: `<`, `>`, `<=`, `>=`, `!=`, `=`, `:` are supported (colon `:` represents a HAS operator which is roughly synonymous with equality). can refer to a proto or JSON field, or a synthetic field. Field names can be camelCase or snake_case. Examples: - Filter by name: name = \"projects/proj-1/locations/global/connectivityTests/test-1 - Filter by labels: - Resources that have a key called `foo` labels.foo:* - Resources that have a key called `foo` whose value is `bar` labels.foo = bar", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Field to use to sort the list.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Number of `ConnectivityTests` to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Page token from an earlier query, as returned in `next_page_token`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the Connectivity Tests: `projects/{project_id}/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/connectivityTests", +"response": { +"$ref": "ListConnectivityTestsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the configuration of an existing `ConnectivityTest`. After you update a test, the reachability analysis is performed as part of the long running operation, which completes when the analysis completes. The Reachability state in the test resource is updated with the new result. If the endpoint specifications in `ConnectivityTest` are invalid (for example, they contain non-existent resources in the network, or the user does not have read permissions to the network configurations of listed projects), then the reachability result returns a value of UNKNOWN. If the endpoint specifications in `ConnectivityTest` are incomplete, the reachability result returns a value of `AMBIGUOUS`. See the documentation in `ConnectivityTest` for more details.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests/{connectivityTestsId}", +"httpMethod": "PATCH", +"id": "networkmanagement.projects.locations.global.connectivityTests.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Unique name of the resource using the form: `projects/{project_id}/locations/global/connectivityTests/{test}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/connectivityTests/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "ConnectivityTest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rerun": { +"description": "Rerun an existing `ConnectivityTest`. After the user triggers the rerun, the reachability analysis is performed as part of the long running operation, which completes when the analysis completes. Even though the test configuration remains the same, the reachability result may change due to underlying network configuration changes. If the endpoint specifications in `ConnectivityTest` become invalid (for example, specified resources are deleted in the network, or you lost read permissions to the network configurations of listed projects), then the reachability result returns a value of `UNKNOWN`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests/{connectivityTestsId}:rerun", +"httpMethod": "POST", +"id": "networkmanagement.projects.locations.global.connectivityTests.rerun", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Connectivity Test resource name using the form: `projects/{project_id}/locations/global/connectivityTests/{test_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/connectivityTests/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:rerun", +"request": { +"$ref": "RerunConnectivityTestRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests/{connectivityTestsId}:setIamPolicy", +"httpMethod": "POST", +"id": "networkmanagement.projects.locations.global.connectivityTests.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/connectivityTests/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests/{connectivityTestsId}:testIamPermissions", +"httpMethod": "POST", +"id": "networkmanagement.projects.locations.global.connectivityTests.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/connectivityTests/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "networkmanagement.projects.locations.global.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "networkmanagement.projects.locations.global.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/operations/{operationsId}", +"httpMethod": "GET", +"id": "networkmanagement.projects.locations.global.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/global/operations", +"httpMethod": "GET", +"id": "networkmanagement.projects.locations.global.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"vpcFlowLogsConfigs": { +"methods": { +"create": { +"description": "Creates a new `VpcFlowLogsConfig`. If a configuration with the exact same settings already exists (even if the ID is different), the creation fails. Notes: 1. Creating a configuration with state=DISABLED will fail. 2. The following fields are not considered as `settings` for the purpose of the check mentioned above, therefore - creating another configuration with the same fields but different values for the following fields will fail as well: - name - create_time - update_time - labels - description ", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs", +"httpMethod": "POST", +"id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the VPC Flow Logs configuration to create: `projects/{project_id}/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"vpcFlowLogsConfigId": { +"description": "Required. ID of the `VpcFlowLogsConfig`.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/vpcFlowLogsConfigs", +"request": { +"$ref": "VpcFlowLogsConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a specific `VpcFlowLogsConfig`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs/{vpcFlowLogsConfigsId}", +"httpMethod": "DELETE", +"id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. `VpcFlowLogsConfig` resource name using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vpcFlowLogsConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific `VpcFlowLogsConfig`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs/{vpcFlowLogsConfigsId}", +"httpMethod": "GET", +"id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. `VpcFlowLogsConfig` resource name using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vpcFlowLogsConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "VpcFlowLogsConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all `VpcFlowLogsConfigs` in a given project.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs", +"httpMethod": "GET", +"id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Lists the `VpcFlowLogsConfigs` that match the filter expression. A filter expression must use the supported [CEL logic operators] (https://cloud.google.com/vpc/docs/about-flow-logs-records#supported_cel_logic_operators).", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Field to use to sort the list.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Number of `VpcFlowLogsConfigs` to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Page token from an earlier query, as returned in `next_page_token`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the VpcFlowLogsConfig: `projects/{project_id}/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/vpcFlowLogsConfigs", +"response": { +"$ref": "ListVpcFlowLogsConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing `VpcFlowLogsConfig`. If a configuration with the exact same settings already exists (even if the ID is different), the creation fails. Notes: 1. Updating a configuration with state=DISABLED will fail. 2. The following fields are not considered as `settings` for the purpose of the check mentioned above, therefore - updating another configuration with the same fields but different values for the following fields will fail as well: - name - create_time - update_time - labels - description ", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs/{vpcFlowLogsConfigsId}", +"httpMethod": "PATCH", +"id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vpcFlowLogsConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "VpcFlowLogsConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20250101", +"rootUrl": "https://networkmanagement.googleapis.com/", +"schemas": { +"AbortInfo": { +"description": "Details of the final state \"abort\" and associated resource.", +"id": "AbortInfo", +"properties": { +"cause": { +"description": "Causes that the analysis is aborted.", +"enum": [ +"CAUSE_UNSPECIFIED", +"UNKNOWN_NETWORK", +"UNKNOWN_PROJECT", +"NO_EXTERNAL_IP", +"UNINTENDED_DESTINATION", +"SOURCE_ENDPOINT_NOT_FOUND", +"MISMATCHED_SOURCE_NETWORK", +"DESTINATION_ENDPOINT_NOT_FOUND", +"MISMATCHED_DESTINATION_NETWORK", +"UNKNOWN_IP", +"GOOGLE_MANAGED_SERVICE_UNKNOWN_IP", +"SOURCE_IP_ADDRESS_NOT_IN_SOURCE_NETWORK", +"PERMISSION_DENIED", +"PERMISSION_DENIED_NO_CLOUD_NAT_CONFIGS", +"PERMISSION_DENIED_NO_NEG_ENDPOINT_CONFIGS", +"PERMISSION_DENIED_NO_CLOUD_ROUTER_CONFIGS", +"NO_SOURCE_LOCATION", +"INVALID_ARGUMENT", +"TRACE_TOO_LONG", +"INTERNAL_ERROR", +"UNSUPPORTED", +"MISMATCHED_IP_VERSION", +"GKE_KONNECTIVITY_PROXY_UNSUPPORTED", +"RESOURCE_CONFIG_NOT_FOUND", +"VM_INSTANCE_CONFIG_NOT_FOUND", +"NETWORK_CONFIG_NOT_FOUND", +"FIREWALL_CONFIG_NOT_FOUND", +"ROUTE_CONFIG_NOT_FOUND", +"GOOGLE_MANAGED_SERVICE_AMBIGUOUS_PSC_ENDPOINT", +"SOURCE_PSC_CLOUD_SQL_UNSUPPORTED", +"SOURCE_REDIS_CLUSTER_UNSUPPORTED", +"SOURCE_REDIS_INSTANCE_UNSUPPORTED", +"SOURCE_FORWARDING_RULE_UNSUPPORTED", +"NON_ROUTABLE_IP_ADDRESS", +"UNKNOWN_ISSUE_IN_GOOGLE_MANAGED_PROJECT", +"UNSUPPORTED_GOOGLE_MANAGED_PROJECT_CONFIG" +], +"enumDeprecated": [ +false, +true, +true, +true, +true, +true, +true, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Cause is unspecified.", +"Aborted due to unknown network. Deprecated, not used in the new tests.", +"Aborted because no project information can be derived from the test input. Deprecated, not used in the new tests.", +"Aborted because traffic is sent from a public IP to an instance without an external IP. Deprecated, not used in the new tests.", +"Aborted because none of the traces matches destination information specified in the input test request. Deprecated, not used in the new tests.", +"Aborted because the source endpoint could not be found. Deprecated, not used in the new tests.", +"Aborted because the source network does not match the source endpoint. Deprecated, not used in the new tests.", +"Aborted because the destination endpoint could not be found. Deprecated, not used in the new tests.", +"Aborted because the destination network does not match the destination endpoint. Deprecated, not used in the new tests.", +"Aborted because no endpoint with the packet's destination IP address is found.", +"Aborted because no endpoint with the packet's destination IP is found in the Google-managed project.", +"Aborted because the source IP address doesn't belong to any of the subnets of the source VPC network.", +"Aborted because user lacks permission to access all or part of the network configurations required to run the test.", +"Aborted because user lacks permission to access Cloud NAT configs required to run the test.", +"Aborted because user lacks permission to access Network endpoint group endpoint configs required to run the test.", +"Aborted because user lacks permission to access Cloud Router configs required to run the test.", +"Aborted because no valid source or destination endpoint is derived from the input test request.", +"Aborted because the source or destination endpoint specified in the request is invalid. Some examples: - The request might contain malformed resource URI, project ID, or IP address. - The request might contain inconsistent information (for example, the request might include both the instance and the network, but the instance might not have a NIC in that network).", +"Aborted because the number of steps in the trace exceeds a certain limit. It might be caused by a routing loop.", +"Aborted due to internal server error.", +"Aborted because the test scenario is not supported.", +"Aborted because the source and destination resources have no common IP version.", +"Aborted because the connection between the control plane and the node of the source cluster is initiated by the node and managed by the Konnectivity proxy.", +"Aborted because expected resource configuration was missing.", +"Aborted because expected VM instance configuration was missing.", +"Aborted because expected network configuration was missing.", +"Aborted because expected firewall configuration was missing.", +"Aborted because expected route configuration was missing.", +"Aborted because a PSC endpoint selection for the Google-managed service is ambiguous (several PSC endpoints satisfy test input).", +"Aborted because tests with a PSC-based Cloud SQL instance as a source are not supported.", +"Aborted because tests with a Redis Cluster as a source are not supported.", +"Aborted because tests with a Redis Instance as a source are not supported.", +"Aborted because tests with a forwarding rule as a source are not supported.", +"Aborted because one of the endpoints is a non-routable IP address (loopback, link-local, etc).", +"Aborted due to an unknown issue in the Google-managed project.", +"Aborted due to an unsupported configuration of the Google-managed project." +], +"type": "string" +}, +"ipAddress": { +"description": "IP address that caused the abort.", +"type": "string" +}, +"projectsMissingPermission": { +"description": "List of project IDs the user specified in the request but lacks access to. In this case, analysis is aborted with the PERMISSION_DENIED cause.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resourceUri": { +"description": "URI of the resource that caused the abort.", +"type": "string" +} +}, +"type": "object" +}, +"AppEngineVersionEndpoint": { +"description": "Wrapper for the App Engine service version attributes.", +"id": "AppEngineVersionEndpoint", +"properties": { +"uri": { +"description": "An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions) name.", +"type": "string" +} +}, +"type": "object" +}, +"AppEngineVersionInfo": { +"description": "For display only. Metadata associated with an App Engine version.", +"id": "AppEngineVersionInfo", +"properties": { +"displayName": { +"description": "Name of an App Engine version.", +"type": "string" +}, +"environment": { +"description": "App Engine execution environment for a version.", +"type": "string" +}, +"runtime": { +"description": "Runtime of the App Engine version.", +"type": "string" +}, +"uri": { +"description": "URI of an App Engine version.", +"type": "string" +} +}, +"type": "object" +}, +"AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CloudFunctionEndpoint": { +"description": "Wrapper for Cloud Function attributes.", +"id": "CloudFunctionEndpoint", +"properties": { +"uri": { +"description": "A [Cloud Function](https://cloud.google.com/functions) name.", +"type": "string" +} +}, +"type": "object" +}, +"CloudFunctionInfo": { +"description": "For display only. Metadata associated with a Cloud Function.", +"id": "CloudFunctionInfo", +"properties": { +"displayName": { +"description": "Name of a Cloud Function.", +"type": "string" +}, +"location": { +"description": "Location in which the Cloud Function is deployed.", +"type": "string" +}, +"uri": { +"description": "URI of a Cloud Function.", +"type": "string" +}, +"versionId": { +"description": "Latest successfully deployed version id of the Cloud Function.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CloudRunRevisionEndpoint": { +"description": "Wrapper for Cloud Run revision attributes.", +"id": "CloudRunRevisionEndpoint", +"properties": { +"uri": { +"description": "A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get) URI. The format is: projects/{project}/locations/{location}/revisions/{revision}", +"type": "string" +} +}, +"type": "object" +}, +"CloudRunRevisionInfo": { +"description": "For display only. Metadata associated with a Cloud Run revision.", +"id": "CloudRunRevisionInfo", +"properties": { +"displayName": { +"description": "Name of a Cloud Run revision.", +"type": "string" +}, +"location": { +"description": "Location in which this revision is deployed.", +"type": "string" +}, +"serviceUri": { +"description": "URI of Cloud Run service this revision belongs to.", +"type": "string" +}, +"uri": { +"description": "URI of a Cloud Run revision.", +"type": "string" +} +}, +"type": "object" +}, +"CloudSQLInstanceInfo": { +"description": "For display only. Metadata associated with a Cloud SQL instance.", +"id": "CloudSQLInstanceInfo", +"properties": { +"displayName": { +"description": "Name of a Cloud SQL instance.", +"type": "string" +}, +"externalIp": { +"description": "External IP address of a Cloud SQL instance.", +"type": "string" +}, +"internalIp": { +"description": "Internal IP address of a Cloud SQL instance.", +"type": "string" +}, +"networkUri": { +"description": "URI of a Cloud SQL instance network or empty string if the instance does not have one.", +"type": "string" +}, +"region": { +"description": "Region in which the Cloud SQL instance is running.", +"type": "string" +}, +"uri": { +"description": "URI of a Cloud SQL instance.", +"type": "string" +} +}, +"type": "object" +}, +"ConnectivityTest": { +"description": "A Connectivity Test for a network reachability analysis.", +"id": "ConnectivityTest", +"properties": { +"bypassFirewallChecks": { +"description": "Whether the test should skip firewall checking. If not provided, we assume false.", +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time the test was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "The user-supplied description of the Connectivity Test. Maximum of 512 characters.", +"type": "string" +}, +"destination": { +"$ref": "Endpoint", +"description": "Required. Destination specification of the Connectivity Test. You can use a combination of destination IP address, Compute Engine VM instance, or VPC network to uniquely identify the destination location. Even if the destination IP address is not unique, the source IP location is unique. Usually, the analysis can infer the destination endpoint from route information. If the destination you specify is a VM instance and the instance has multiple network interfaces, then you must also specify either a destination IP address or VPC network to identify the destination interface. A reachability analysis proceeds even if the destination location is ambiguous. However, the result can include endpoints that you don't intend to test." +}, +"displayName": { +"description": "Output only. The display name of a Connectivity Test.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user-provided metadata.", +"type": "object" +}, +"name": { +"description": "Identifier. Unique name of the resource using the form: `projects/{project_id}/locations/global/connectivityTests/{test}`", +"type": "string" +}, +"probingDetails": { +"$ref": "ProbingDetails", +"description": "Output only. The probing details of this test from the latest run, present for applicable tests only. The details are updated when creating a new test, updating an existing test, or triggering a one-time rerun of an existing test.", +"readOnly": true +}, +"protocol": { +"description": "IP Protocol of the test. When not provided, \"TCP\" is assumed.", +"type": "string" +}, +"reachabilityDetails": { +"$ref": "ReachabilityDetails", +"description": "Output only. The reachability details of this test from the latest run. The details are updated when creating a new test, updating an existing test, or triggering a one-time rerun of an existing test.", +"readOnly": true +}, +"relatedProjects": { +"description": "Other projects that may be relevant for reachability analysis. This is applicable to scenarios where a test can cross project boundaries.", +"items": { +"type": "string" +}, +"type": "array" +}, +"returnReachabilityDetails": { +"$ref": "ReachabilityDetails", +"description": "Output only. The reachability details of this test from the latest run for the return path. The details are updated when creating a new test, updating an existing test, or triggering a one-time rerun of an existing test.", +"readOnly": true +}, +"roundTrip": { +"description": "Whether run analysis for the return path from destination to source. Default value is false.", +"type": "boolean" +}, +"source": { +"$ref": "Endpoint", +"description": "Required. Source specification of the Connectivity Test. You can use a combination of source IP address, virtual machine (VM) instance, or Compute Engine network to uniquely identify the source location. Examples: If the source IP address is an internal IP address within a Google Cloud Virtual Private Cloud (VPC) network, then you must also specify the VPC network. Otherwise, specify the VM instance, which already contains its internal IP address and VPC network information. If the source of the test is within an on-premises network, then you must provide the destination VPC network. If the source endpoint is a Compute Engine VM instance with multiple network interfaces, the instance itself is not sufficient to identify the endpoint. So, you must also specify the source IP address or VPC network. A reachability analysis proceeds even if the source location is ambiguous. However, the test result may include endpoints that you don't intend to test." +}, +"updateTime": { +"description": "Output only. The time the test's configuration was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DeliverInfo": { +"description": "Details of the final state \"deliver\" and associated resource.", +"id": "DeliverInfo", +"properties": { +"ipAddress": { +"description": "IP address of the target (if applicable).", +"type": "string" +}, +"pscGoogleApiTarget": { +"description": "PSC Google API target the packet is delivered to (if applicable).", +"type": "string" +}, +"resourceUri": { +"description": "URI of the resource that the packet is delivered to.", +"type": "string" +}, +"storageBucket": { +"description": "Name of the Cloud Storage Bucket the packet is delivered to (if applicable).", +"type": "string" +}, +"target": { +"description": "Target type where the packet is delivered to.", +"enum": [ +"TARGET_UNSPECIFIED", +"INSTANCE", +"INTERNET", +"GOOGLE_API", +"GKE_MASTER", +"CLOUD_SQL_INSTANCE", +"PSC_PUBLISHED_SERVICE", +"PSC_GOOGLE_API", +"PSC_VPC_SC", +"SERVERLESS_NEG", +"STORAGE_BUCKET", +"PRIVATE_NETWORK", +"CLOUD_FUNCTION", +"APP_ENGINE_VERSION", +"CLOUD_RUN_REVISION", +"GOOGLE_MANAGED_SERVICE", +"REDIS_INSTANCE", +"REDIS_CLUSTER" +], +"enumDescriptions": [ +"Target not specified.", +"Target is a Compute Engine instance.", +"Target is the internet.", +"Target is a Google API.", +"Target is a Google Kubernetes Engine cluster master.", +"Target is a Cloud SQL instance.", +"Target is a published service that uses [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services).", +"Target is Google APIs that use [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis).", +"Target is a VPC-SC that uses [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis).", +"Target is a serverless network endpoint group.", +"Target is a Cloud Storage bucket.", +"Target is a private network. Used only for return traces.", +"Target is a Cloud Function. Used only for return traces.", +"Target is a App Engine service version. Used only for return traces.", +"Target is a Cloud Run revision. Used only for return traces.", +"Target is a Google-managed service. Used only for return traces.", +"Target is a Redis Instance.", +"Target is a Redis Cluster." +], +"type": "string" +} +}, +"type": "object" +}, +"DropInfo": { +"description": "Details of the final state \"drop\" and associated resource.", +"id": "DropInfo", +"properties": { +"cause": { +"description": "Cause that the packet is dropped.", +"enum": [ +"CAUSE_UNSPECIFIED", +"UNKNOWN_EXTERNAL_ADDRESS", +"FOREIGN_IP_DISALLOWED", +"FIREWALL_RULE", +"NO_ROUTE", +"ROUTE_BLACKHOLE", +"ROUTE_WRONG_NETWORK", +"ROUTE_NEXT_HOP_IP_ADDRESS_NOT_RESOLVED", +"ROUTE_NEXT_HOP_RESOURCE_NOT_FOUND", +"ROUTE_NEXT_HOP_INSTANCE_WRONG_NETWORK", +"ROUTE_NEXT_HOP_INSTANCE_NON_PRIMARY_IP", +"ROUTE_NEXT_HOP_FORWARDING_RULE_IP_MISMATCH", +"ROUTE_NEXT_HOP_VPN_TUNNEL_NOT_ESTABLISHED", +"ROUTE_NEXT_HOP_FORWARDING_RULE_TYPE_INVALID", +"NO_ROUTE_FROM_INTERNET_TO_PRIVATE_IPV6_ADDRESS", +"VPN_TUNNEL_LOCAL_SELECTOR_MISMATCH", +"VPN_TUNNEL_REMOTE_SELECTOR_MISMATCH", +"PRIVATE_TRAFFIC_TO_INTERNET", +"PRIVATE_GOOGLE_ACCESS_DISALLOWED", +"PRIVATE_GOOGLE_ACCESS_VIA_VPN_TUNNEL_UNSUPPORTED", +"NO_EXTERNAL_ADDRESS", +"UNKNOWN_INTERNAL_ADDRESS", +"FORWARDING_RULE_MISMATCH", +"FORWARDING_RULE_NO_INSTANCES", +"FIREWALL_BLOCKING_LOAD_BALANCER_BACKEND_HEALTH_CHECK", +"INSTANCE_NOT_RUNNING", +"GKE_CLUSTER_NOT_RUNNING", +"CLOUD_SQL_INSTANCE_NOT_RUNNING", +"REDIS_INSTANCE_NOT_RUNNING", +"REDIS_CLUSTER_NOT_RUNNING", +"TRAFFIC_TYPE_BLOCKED", +"GKE_MASTER_UNAUTHORIZED_ACCESS", +"CLOUD_SQL_INSTANCE_UNAUTHORIZED_ACCESS", +"DROPPED_INSIDE_GKE_SERVICE", +"DROPPED_INSIDE_CLOUD_SQL_SERVICE", +"GOOGLE_MANAGED_SERVICE_NO_PEERING", +"GOOGLE_MANAGED_SERVICE_NO_PSC_ENDPOINT", +"GKE_PSC_ENDPOINT_MISSING", +"CLOUD_SQL_INSTANCE_NO_IP_ADDRESS", +"GKE_CONTROL_PLANE_REGION_MISMATCH", +"PUBLIC_GKE_CONTROL_PLANE_TO_PRIVATE_DESTINATION", +"GKE_CONTROL_PLANE_NO_ROUTE", +"CLOUD_SQL_INSTANCE_NOT_CONFIGURED_FOR_EXTERNAL_TRAFFIC", +"PUBLIC_CLOUD_SQL_INSTANCE_TO_PRIVATE_DESTINATION", +"CLOUD_SQL_INSTANCE_NO_ROUTE", +"CLOUD_SQL_CONNECTOR_REQUIRED", +"CLOUD_FUNCTION_NOT_ACTIVE", +"VPC_CONNECTOR_NOT_SET", +"VPC_CONNECTOR_NOT_RUNNING", +"VPC_CONNECTOR_SERVERLESS_TRAFFIC_BLOCKED", +"VPC_CONNECTOR_HEALTH_CHECK_TRAFFIC_BLOCKED", +"FORWARDING_RULE_REGION_MISMATCH", +"PSC_CONNECTION_NOT_ACCEPTED", +"PSC_ENDPOINT_ACCESSED_FROM_PEERED_NETWORK", +"PSC_NEG_PRODUCER_ENDPOINT_NO_GLOBAL_ACCESS", +"PSC_NEG_PRODUCER_FORWARDING_RULE_MULTIPLE_PORTS", +"CLOUD_SQL_PSC_NEG_UNSUPPORTED", +"NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT", +"PSC_TRANSITIVITY_NOT_PROPAGATED", +"HYBRID_NEG_NON_DYNAMIC_ROUTE_MATCHED", +"HYBRID_NEG_NON_LOCAL_DYNAMIC_ROUTE_MATCHED", +"CLOUD_RUN_REVISION_NOT_READY", +"DROPPED_INSIDE_PSC_SERVICE_PRODUCER", +"LOAD_BALANCER_HAS_NO_PROXY_SUBNET", +"CLOUD_NAT_NO_ADDRESSES", +"ROUTING_LOOP", +"DROPPED_INSIDE_GOOGLE_MANAGED_SERVICE", +"LOAD_BALANCER_BACKEND_INVALID_NETWORK", +"BACKEND_SERVICE_NAMED_PORT_NOT_DEFINED", +"DESTINATION_IS_PRIVATE_NAT_IP_RANGE", +"DROPPED_INSIDE_REDIS_INSTANCE_SERVICE", +"REDIS_INSTANCE_UNSUPPORTED_PORT", +"REDIS_INSTANCE_CONNECTING_FROM_PUPI_ADDRESS", +"REDIS_INSTANCE_NO_ROUTE_TO_DESTINATION_NETWORK", +"REDIS_INSTANCE_NO_EXTERNAL_IP", +"REDIS_INSTANCE_UNSUPPORTED_PROTOCOL", +"DROPPED_INSIDE_REDIS_CLUSTER_SERVICE", +"REDIS_CLUSTER_UNSUPPORTED_PORT", +"REDIS_CLUSTER_NO_EXTERNAL_IP", +"REDIS_CLUSTER_UNSUPPORTED_PROTOCOL", +"NO_ADVERTISED_ROUTE_TO_GCP_DESTINATION", +"NO_TRAFFIC_SELECTOR_TO_GCP_DESTINATION", +"NO_KNOWN_ROUTE_FROM_PEERED_NETWORK_TO_DESTINATION", +"PRIVATE_NAT_TO_PSC_ENDPOINT_UNSUPPORTED" +], +"enumDescriptions": [ +"Cause is unspecified.", +"Destination external address cannot be resolved to a known target. If the address is used in a Google Cloud project, provide the project ID as test input.", +"A Compute Engine instance can only send or receive a packet with a foreign IP address if ip_forward is enabled.", +"Dropped due to a firewall rule, unless allowed due to connection tracking.", +"Dropped due to no matching routes.", +"Dropped due to invalid route. Route's next hop is a blackhole.", +"Packet is sent to a wrong (unintended) network. Example: you trace a packet from VM1:Network1 to VM2:Network2, however, the route configured in Network1 sends the packet destined for VM2's IP address to Network3.", +"Route's next hop IP address cannot be resolved to a GCP resource.", +"Route's next hop resource is not found.", +"Route's next hop instance doesn't have a NIC in the route's network.", +"Route's next hop IP address is not a primary IP address of the next hop instance.", +"Route's next hop forwarding rule doesn't match next hop IP address.", +"Route's next hop VPN tunnel is down (does not have valid IKE SAs).", +"Route's next hop forwarding rule type is invalid (it's not a forwarding rule of the internal passthrough load balancer).", +"Packet is sent from the Internet to the private IPv6 address.", +"The packet does not match a policy-based VPN tunnel local selector.", +"The packet does not match a policy-based VPN tunnel remote selector.", +"Packet with internal destination address sent to the internet gateway.", +"Instance with only an internal IP address tries to access Google API and services, but private Google access is not enabled in the subnet.", +"Source endpoint tries to access Google API and services through the VPN tunnel to another network, but Private Google Access needs to be enabled in the source endpoint network.", +"Instance with only an internal IP address tries to access external hosts, but Cloud NAT is not enabled in the subnet, unless special configurations on a VM allow this connection.", +"Destination internal address cannot be resolved to a known target. If this is a shared VPC scenario, verify if the service project ID is provided as test input. Otherwise, verify if the IP address is being used in the project.", +"Forwarding rule's protocol and ports do not match the packet header.", +"Forwarding rule does not have backends configured.", +"Firewalls block the health check probes to the backends and cause the backends to be unavailable for traffic from the load balancer. For more details, see [Health check firewall rules](https://cloud.google.com/load-balancing/docs/health-checks#firewall_rules).", +"Packet is sent from or to a Compute Engine instance that is not in a running state.", +"Packet sent from or to a GKE cluster that is not in running state.", +"Packet sent from or to a Cloud SQL instance that is not in running state.", +"Packet sent from or to a Redis Instance that is not in running state.", +"Packet sent from or to a Redis Cluster that is not in running state.", +"The type of traffic is blocked and the user cannot configure a firewall rule to enable it. See [Always blocked traffic](https://cloud.google.com/vpc/docs/firewalls#blockedtraffic) for more details.", +"Access to Google Kubernetes Engine cluster master's endpoint is not authorized. See [Access to the cluster endpoints](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints) for more details.", +"Access to the Cloud SQL instance endpoint is not authorized. See [Authorizing with authorized networks](https://cloud.google.com/sql/docs/mysql/authorize-networks) for more details.", +"Packet was dropped inside Google Kubernetes Engine Service.", +"Packet was dropped inside Cloud SQL Service.", +"Packet was dropped because there is no peering between the originating network and the Google Managed Services Network.", +"Packet was dropped because the Google-managed service uses Private Service Connect (PSC), but the PSC endpoint is not found in the project.", +"Packet was dropped because the GKE cluster uses Private Service Connect (PSC), but the PSC endpoint is not found in the project.", +"Packet was dropped because the Cloud SQL instance has neither a private nor a public IP address.", +"Packet was dropped because a GKE cluster private endpoint is unreachable from a region different from the cluster's region.", +"Packet sent from a public GKE cluster control plane to a private IP address.", +"Packet was dropped because there is no route from a GKE cluster control plane to a destination network.", +"Packet sent from a Cloud SQL instance to an external IP address is not allowed. The Cloud SQL instance is not configured to send packets to external IP addresses.", +"Packet sent from a Cloud SQL instance with only a public IP address to a private IP address.", +"Packet was dropped because there is no route from a Cloud SQL instance to a destination network.", +"Packet was dropped because the Cloud SQL instance requires all connections to use Cloud SQL connectors and to target the Cloud SQL proxy port (3307).", +"Packet could be dropped because the Cloud Function is not in an active status.", +"Packet could be dropped because no VPC connector is set.", +"Packet could be dropped because the VPC connector is not in a running state.", +"Packet could be dropped because the traffic from the serverless service to the VPC connector is not allowed.", +"Packet could be dropped because the health check traffic to the VPC connector is not allowed.", +"Packet could be dropped because it was sent from a different region to a regional forwarding without global access.", +"The Private Service Connect endpoint is in a project that is not approved to connect to the service.", +"The packet is sent to the Private Service Connect endpoint over the peering, but [it's not supported](https://cloud.google.com/vpc/docs/configure-private-service-connect-services#on-premises).", +"The packet is sent to the Private Service Connect backend (network endpoint group), but the producer PSC forwarding rule does not have global access enabled.", +"The packet is sent to the Private Service Connect backend (network endpoint group), but the producer PSC forwarding rule has multiple ports specified.", +"The packet is sent to the Private Service Connect backend (network endpoint group) targeting a Cloud SQL service attachment, but this configuration is not supported.", +"No NAT subnets are defined for the PSC service attachment.", +"PSC endpoint is accessed via NCC, but PSC transitivity configuration is not yet propagated.", +"The packet sent from the hybrid NEG proxy matches a non-dynamic route, but such a configuration is not supported.", +"The packet sent from the hybrid NEG proxy matches a dynamic route with a next hop in a different region, but such a configuration is not supported.", +"Packet sent from a Cloud Run revision that is not ready.", +"Packet was dropped inside Private Service Connect service producer.", +"Packet sent to a load balancer, which requires a proxy-only subnet and the subnet is not found.", +"Packet sent to Cloud Nat without active NAT IPs.", +"Packet is stuck in a routing loop.", +"Packet is dropped inside a Google-managed service due to being delivered in return trace to an endpoint that doesn't match the endpoint the packet was sent from in forward trace. Used only for return traces.", +"Packet is dropped due to a load balancer backend instance not having a network interface in the network expected by the load balancer.", +"Packet is dropped due to a backend service named port not being defined on the instance group level.", +"Packet is dropped due to a destination IP range being part of a Private NAT IP range.", +"Generic drop cause for a packet being dropped inside a Redis Instance service project.", +"Packet is dropped due to an unsupported port being used to connect to a Redis Instance. Port 6379 should be used to connect to a Redis Instance.", +"Packet is dropped due to connecting from PUPI address to a PSA based Redis Instance.", +"Packet is dropped due to no route to the destination network.", +"Redis Instance does not have an external IP address.", +"Packet is dropped due to an unsupported protocol being used to connect to a Redis Instance. Only TCP connections are accepted by a Redis Instance.", +"Generic drop cause for a packet being dropped inside a Redis Cluster service project.", +"Packet is dropped due to an unsupported port being used to connect to a Redis Cluster. Ports 6379 and 11000 to 13047 should be used to connect to a Redis Cluster.", +"Redis Cluster does not have an external IP address.", +"Packet is dropped due to an unsupported protocol being used to connect to a Redis Cluster. Only TCP connections are accepted by a Redis Cluster.", +"Packet from the non-GCP (on-prem) or unknown GCP network is dropped due to the destination IP address not belonging to any IP prefix advertised via BGP by the Cloud Router.", +"Packet from the non-GCP (on-prem) or unknown GCP network is dropped due to the destination IP address not belonging to any IP prefix included to the local traffic selector of the VPN tunnel.", +"Packet from the unknown peered network is dropped due to no known route from the source network to the destination IP address.", +"Sending packets processed by the Private NAT Gateways to the Private Service Connect endpoints is not supported." +], +"type": "string" +}, +"destinationIp": { +"description": "Destination IP address of the dropped packet (if relevant).", +"type": "string" +}, +"region": { +"description": "Region of the dropped packet (if relevant).", +"type": "string" +}, +"resourceUri": { +"description": "URI of the resource that caused the drop.", +"type": "string" +}, +"sourceIp": { +"description": "Source IP address of the dropped packet (if relevant).", +"type": "string" +} +}, +"type": "object" +}, +"EdgeLocation": { +"description": "Representation of a network edge location as per https://cloud.google.com/vpc/docs/edge-locations.", +"id": "EdgeLocation", +"properties": { +"metropolitanArea": { +"description": "Name of the metropolitan area.", +"type": "string" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Endpoint": { +"description": "Source or destination of the Connectivity Test.", +"id": "Endpoint", +"properties": { +"appEngineVersion": { +"$ref": "AppEngineVersionEndpoint", +"description": "An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions)." +}, +"cloudFunction": { +"$ref": "CloudFunctionEndpoint", +"description": "A [Cloud Function](https://cloud.google.com/functions)." +}, +"cloudRunRevision": { +"$ref": "CloudRunRevisionEndpoint", +"description": "A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get)" +}, +"cloudSqlInstance": { +"description": "A [Cloud SQL](https://cloud.google.com/sql) instance URI.", +"type": "string" +}, +"forwardingRule": { +"description": "A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules are also used for protocol forwarding, Private Service Connect and other network services to provide forwarding information in the control plane. Format: projects/{project}/global/forwardingRules/{id} or projects/{project}/regions/{region}/forwardingRules/{id}", +"type": "string" +}, +"forwardingRuleTarget": { +"description": "Output only. Specifies the type of the target of the forwarding rule.", +"enum": [ +"FORWARDING_RULE_TARGET_UNSPECIFIED", +"INSTANCE", +"LOAD_BALANCER", +"VPN_GATEWAY", +"PSC" +], +"enumDescriptions": [ +"Forwarding rule target is unknown.", +"Compute Engine instance for protocol forwarding.", +"Load Balancer. The specific type can be found from load_balancer_type.", +"Classic Cloud VPN Gateway.", +"Forwarding Rule is a Private Service Connect endpoint." +], +"readOnly": true, +"type": "string" +}, +"fqdn": { +"description": "DNS endpoint of [Google Kubernetes Engine cluster control plane](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture). Requires gke_master_cluster to be set, can't be used simultaneoulsly with ip_address or network. Applicable only to destination endpoint.", +"type": "string" +}, +"gkeMasterCluster": { +"description": "A cluster URI for [Google Kubernetes Engine cluster control plane](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture).", +"type": "string" +}, +"instance": { +"description": "A Compute Engine instance URI.", +"type": "string" +}, +"ipAddress": { +"description": "The IP address of the endpoint, which can be an external or internal IP.", +"type": "string" +}, +"loadBalancerId": { +"description": "Output only. ID of the load balancer the forwarding rule points to. Empty for forwarding rules not related to load balancers.", +"readOnly": true, +"type": "string" +}, +"loadBalancerType": { +"description": "Output only. Type of the load balancer the forwarding rule points to.", +"enum": [ +"LOAD_BALANCER_TYPE_UNSPECIFIED", +"HTTPS_ADVANCED_LOAD_BALANCER", +"HTTPS_LOAD_BALANCER", +"REGIONAL_HTTPS_LOAD_BALANCER", +"INTERNAL_HTTPS_LOAD_BALANCER", +"SSL_PROXY_LOAD_BALANCER", +"TCP_PROXY_LOAD_BALANCER", +"INTERNAL_TCP_PROXY_LOAD_BALANCER", +"NETWORK_LOAD_BALANCER", +"LEGACY_NETWORK_LOAD_BALANCER", +"TCP_UDP_INTERNAL_LOAD_BALANCER" +], +"enumDescriptions": [ +"Forwarding rule points to a different target than a load balancer or a load balancer type is unknown.", +"Global external HTTP(S) load balancer.", +"Global external HTTP(S) load balancer (classic)", +"Regional external HTTP(S) load balancer.", +"Internal HTTP(S) load balancer.", +"External SSL proxy load balancer.", +"External TCP proxy load balancer.", +"Internal regional TCP proxy load balancer.", +"External TCP/UDP Network load balancer.", +"Target-pool based external TCP/UDP Network load balancer.", +"Internal TCP/UDP load balancer." +], +"readOnly": true, +"type": "string" +}, +"network": { +"description": "A Compute Engine network URI.", +"type": "string" +}, +"networkType": { +"description": "Type of the network where the endpoint is located. Applicable only to source endpoint, as destination network type can be inferred from the source.", +"enum": [ +"NETWORK_TYPE_UNSPECIFIED", +"GCP_NETWORK", +"NON_GCP_NETWORK" +], +"enumDescriptions": [ +"Default type if unspecified.", +"A network hosted within Google Cloud. To receive more detailed output, specify the URI for the source or destination network.", +"A network hosted outside of Google Cloud. This can be an on-premises network, or a network hosted by another cloud provider." +], +"type": "string" +}, +"port": { +"description": "The IP protocol port of the endpoint. Only applicable when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"projectId": { +"description": "Project ID where the endpoint is located. The Project ID can be derived from the URI if you provide a VM instance or network URI. The following are two cases where you must provide the project ID: 1. Only the IP address is specified, and the IP address is within a Google Cloud project. 2. When you are using Shared VPC and the IP address that you provide is from the service project. In this case, the network that the IP address resides in is defined in the host project.", +"type": "string" +}, +"redisCluster": { +"description": "A [Redis Cluster](https://cloud.google.com/memorystore/docs/cluster) URI.", +"type": "string" +}, +"redisInstance": { +"description": "A [Redis Instance](https://cloud.google.com/memorystore/docs/redis) URI.", +"type": "string" +} +}, +"type": "object" +}, +"EndpointInfo": { +"description": "For display only. The specification of the endpoints for the test. EndpointInfo is derived from source and destination Endpoint and validated by the backend data plane model.", +"id": "EndpointInfo", +"properties": { +"destinationIp": { +"description": "Destination IP address.", +"type": "string" +}, +"destinationNetworkUri": { +"description": "URI of the network where this packet is sent to.", +"type": "string" +}, +"destinationPort": { +"description": "Destination port. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "IP protocol in string format, for example: \"TCP\", \"UDP\", \"ICMP\".", +"type": "string" +}, +"sourceAgentUri": { +"description": "URI of the source telemetry agent this packet originates from.", +"type": "string" +}, +"sourceIp": { +"description": "Source IP address.", +"type": "string" +}, +"sourceNetworkUri": { +"description": "URI of the network where this packet originates from.", +"type": "string" +}, +"sourcePort": { +"description": "Source port. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"FirewallInfo": { +"description": "For display only. Metadata associated with a VPC firewall rule, an implied VPC firewall rule, or a firewall policy rule.", +"id": "FirewallInfo", +"properties": { +"action": { +"description": "Possible values: ALLOW, DENY, APPLY_SECURITY_PROFILE_GROUP", +"type": "string" +}, +"direction": { +"description": "Possible values: INGRESS, EGRESS", +"type": "string" +}, +"displayName": { +"description": "The display name of the firewall rule. This field might be empty for firewall policy rules.", +"type": "string" +}, +"firewallRuleType": { +"description": "The firewall rule's type.", +"enum": [ +"FIREWALL_RULE_TYPE_UNSPECIFIED", +"HIERARCHICAL_FIREWALL_POLICY_RULE", +"VPC_FIREWALL_RULE", +"IMPLIED_VPC_FIREWALL_RULE", +"SERVERLESS_VPC_ACCESS_MANAGED_FIREWALL_RULE", +"NETWORK_FIREWALL_POLICY_RULE", +"NETWORK_REGIONAL_FIREWALL_POLICY_RULE", +"UNSUPPORTED_FIREWALL_POLICY_RULE", +"TRACKING_STATE", +"ANALYSIS_SKIPPED" +], +"enumDescriptions": [ +"Unspecified type.", +"Hierarchical firewall policy rule. For details, see [Hierarchical firewall policies overview](https://cloud.google.com/vpc/docs/firewall-policies).", +"VPC firewall rule. For details, see [VPC firewall rules overview](https://cloud.google.com/vpc/docs/firewalls).", +"Implied VPC firewall rule. For details, see [Implied rules](https://cloud.google.com/vpc/docs/firewalls#default_firewall_rules).", +"Implicit firewall rules that are managed by serverless VPC access to allow ingress access. They are not visible in the Google Cloud console. For details, see [VPC connector's implicit rules](https://cloud.google.com/functions/docs/networking/connecting-vpc#restrict-access).", +"Global network firewall policy rule. For details, see [Network firewall policies](https://cloud.google.com/vpc/docs/network-firewall-policies).", +"Regional network firewall policy rule. For details, see [Regional network firewall policies](https://cloud.google.com/firewall/docs/regional-firewall-policies).", +"Firewall policy rule containing attributes not yet supported in Connectivity tests. Firewall analysis is skipped if such a rule can potentially be matched. Please see the [list of unsupported configurations](https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs).", +"Tracking state for response traffic created when request traffic goes through allow firewall rule. For details, see [firewall rules specifications](https://cloud.google.com/firewall/docs/firewalls#specifications)", +"Firewall analysis was skipped due to executing Connectivity Test in the BypassFirewallChecks mode" +], +"type": "string" +}, +"networkUri": { +"description": "The URI of the VPC network that the firewall rule is associated with. This field is not applicable to hierarchical firewall policy rules.", +"type": "string" +}, +"policy": { +"description": "The name of the firewall policy that this rule is associated with. This field is not applicable to VPC firewall rules and implied VPC firewall rules.", +"type": "string" +}, +"policyUri": { +"description": "The URI of the firewall policy that this rule is associated with. This field is not applicable to VPC firewall rules and implied VPC firewall rules.", +"type": "string" +}, +"priority": { +"description": "The priority of the firewall rule.", +"format": "int32", +"type": "integer" +}, +"targetServiceAccounts": { +"description": "The target service accounts specified by the firewall rule.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetTags": { +"description": "The target tags defined by the VPC firewall rule. This field is not applicable to firewall policy rules.", +"items": { +"type": "string" +}, +"type": "array" +}, +"uri": { +"description": "The URI of the firewall rule. This field is not applicable to implied VPC firewall rules.", +"type": "string" +} +}, +"type": "object" +}, +"ForwardInfo": { +"description": "Details of the final state \"forward\" and associated resource.", +"id": "ForwardInfo", +"properties": { +"ipAddress": { +"description": "IP address of the target (if applicable).", +"type": "string" +}, +"resourceUri": { +"description": "URI of the resource that the packet is forwarded to.", +"type": "string" +}, +"target": { +"description": "Target type where this packet is forwarded to.", +"enum": [ +"TARGET_UNSPECIFIED", +"PEERING_VPC", +"VPN_GATEWAY", +"INTERCONNECT", +"GKE_MASTER", +"IMPORTED_CUSTOM_ROUTE_NEXT_HOP", +"CLOUD_SQL_INSTANCE", +"ANOTHER_PROJECT", +"NCC_HUB", +"ROUTER_APPLIANCE" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +false, +true, +false, +false, +false +], +"enumDescriptions": [ +"Target not specified.", +"Forwarded to a VPC peering network.", +"Forwarded to a Cloud VPN gateway.", +"Forwarded to a Cloud Interconnect connection.", +"Forwarded to a Google Kubernetes Engine Container cluster master.", +"Forwarded to the next hop of a custom route imported from a peering VPC.", +"Forwarded to a Cloud SQL instance.", +"Forwarded to a VPC network in another project.", +"Forwarded to an NCC Hub.", +"Forwarded to a router appliance." +], +"type": "string" +} +}, +"type": "object" +}, +"ForwardingRuleInfo": { +"description": "For display only. Metadata associated with a Compute Engine forwarding rule.", +"id": "ForwardingRuleInfo", +"properties": { +"displayName": { +"description": "Name of the forwarding rule.", +"type": "string" +}, +"loadBalancerName": { +"description": "Name of the load balancer the forwarding rule belongs to. Empty for forwarding rules not related to load balancers (like PSC forwarding rules).", +"type": "string" +}, +"matchedPortRange": { +"description": "Port range defined in the forwarding rule that matches the packet.", +"type": "string" +}, +"matchedProtocol": { +"description": "Protocol defined in the forwarding rule that matches the packet.", +"type": "string" +}, +"networkUri": { +"description": "Network URI.", +"type": "string" +}, +"pscGoogleApiTarget": { +"description": "PSC Google API target this forwarding rule targets (if applicable).", +"type": "string" +}, +"pscServiceAttachmentUri": { +"description": "URI of the PSC service attachment this forwarding rule targets (if applicable).", +"type": "string" +}, +"region": { +"description": "Region of the forwarding rule. Set only for regional forwarding rules.", +"type": "string" +}, +"target": { +"description": "Target type of the forwarding rule.", +"type": "string" +}, +"uri": { +"description": "URI of the forwarding rule.", +"type": "string" +}, +"vip": { +"description": "VIP of the forwarding rule.", +"type": "string" +} +}, +"type": "object" +}, +"GKEMasterInfo": { +"description": "For display only. Metadata associated with a Google Kubernetes Engine (GKE) cluster master.", +"id": "GKEMasterInfo", +"properties": { +"clusterNetworkUri": { +"description": "URI of a GKE cluster network.", +"type": "string" +}, +"clusterUri": { +"description": "URI of a GKE cluster.", +"type": "string" +}, +"dnsEndpoint": { +"description": "DNS endpoint of a GKE cluster control plane.", +"type": "string" +}, +"externalIp": { +"description": "External IP address of a GKE cluster control plane.", +"type": "string" +}, +"internalIp": { +"description": "Internal IP address of a GKE cluster control plane.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleServiceInfo": { +"description": "For display only. Details of a Google Service sending packets to a VPC network. Although the source IP might be a publicly routable address, some Google Services use special routes within Google production infrastructure to reach Compute Engine Instances. https://cloud.google.com/vpc/docs/routes#special_return_paths", +"id": "GoogleServiceInfo", +"properties": { +"googleServiceType": { +"description": "Recognized type of a Google Service.", +"enum": [ +"GOOGLE_SERVICE_TYPE_UNSPECIFIED", +"IAP", +"GFE_PROXY_OR_HEALTH_CHECK_PROBER", +"CLOUD_DNS", +"GOOGLE_API", +"GOOGLE_API_PSC", +"GOOGLE_API_VPC_SC" +], +"enumDescriptions": [ +"Unspecified Google Service.", +"Identity aware proxy. https://cloud.google.com/iap/docs/using-tcp-forwarding", +"One of two services sharing IP ranges: * Load Balancer proxy * Centralized Health Check prober https://cloud.google.com/load-balancing/docs/firewall-rules", +"Connectivity from Cloud DNS to forwarding targets or alternate name servers that use private routing. https://cloud.google.com/dns/docs/zones/forwarding-zones#firewall-rules https://cloud.google.com/dns/docs/policies#firewall-rules", +"private.googleapis.com and restricted.googleapis.com", +"Google API via Private Service Connect. https://cloud.google.com/vpc/docs/configure-private-service-connect-apis", +"Google API via VPC Service Controls. https://cloud.google.com/vpc/docs/configure-private-service-connect-apis" +], +"type": "string" +}, +"sourceIp": { +"description": "Source IP address.", +"type": "string" +} +}, +"type": "object" +}, +"InstanceInfo": { +"description": "For display only. Metadata associated with a Compute Engine instance.", +"id": "InstanceInfo", +"properties": { +"displayName": { +"description": "Name of a Compute Engine instance.", +"type": "string" +}, +"externalIp": { +"description": "External IP address of the network interface.", +"type": "string" +}, +"interface": { +"description": "Name of the network interface of a Compute Engine instance.", +"type": "string" +}, +"internalIp": { +"description": "Internal IP address of the network interface.", +"type": "string" +}, +"networkTags": { +"description": "Network tags configured on the instance.", +"items": { +"type": "string" +}, +"type": "array" +}, +"networkUri": { +"description": "URI of a Compute Engine network.", +"type": "string" +}, +"pscNetworkAttachmentUri": { +"description": "URI of the PSC network attachment the NIC is attached to (if relevant).", +"type": "string" +}, +"serviceAccount": { +"deprecated": true, +"description": "Service account authorized for the instance.", +"type": "string" +}, +"uri": { +"description": "URI of a Compute Engine instance.", +"type": "string" +} +}, +"type": "object" +}, +"LatencyDistribution": { +"description": "Describes measured latency distribution.", +"id": "LatencyDistribution", +"properties": { +"latencyPercentiles": { +"description": "Representative latency percentiles.", +"items": { +"$ref": "LatencyPercentile" +}, +"type": "array" +} +}, +"type": "object" +}, +"LatencyPercentile": { +"description": "Latency percentile rank and value.", +"id": "LatencyPercentile", +"properties": { +"latencyMicros": { +"description": "percent-th percentile of latency observed, in microseconds. Fraction of percent/100 of samples have latency lower or equal to the value of this field.", +"format": "int64", +"type": "string" +}, +"percent": { +"description": "Percentage of samples this data point applies to.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListConnectivityTestsResponse": { +"description": "Response for the `ListConnectivityTests` method.", +"id": "ListConnectivityTestsResponse", +"properties": { +"nextPageToken": { +"description": "Page token to fetch the next set of Connectivity Tests.", +"type": "string" +}, +"resources": { +"description": "List of Connectivity Tests.", +"items": { +"$ref": "ConnectivityTest" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached (when querying all locations with `-`).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVpcFlowLogsConfigsResponse": { +"description": "Response for the `ListVpcFlowLogsConfigs` method.", +"id": "ListVpcFlowLogsConfigsResponse", +"properties": { +"nextPageToken": { +"description": "Page token to fetch the next set of configurations.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached (when querying all locations with `-`).", +"items": { +"type": "string" +}, +"type": "array" +}, +"vpcFlowLogsConfigs": { +"description": "List of VPC Flow Log configurations.", +"items": { +"$ref": "VpcFlowLogsConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoadBalancerBackend": { +"description": "For display only. Metadata associated with a specific load balancer backend.", +"id": "LoadBalancerBackend", +"properties": { +"displayName": { +"description": "Name of a Compute Engine instance or network endpoint.", +"type": "string" +}, +"healthCheckAllowingFirewallRules": { +"description": "A list of firewall rule URIs allowing probes from health check IP ranges.", +"items": { +"type": "string" +}, +"type": "array" +}, +"healthCheckBlockingFirewallRules": { +"description": "A list of firewall rule URIs blocking probes from health check IP ranges.", +"items": { +"type": "string" +}, +"type": "array" +}, +"healthCheckFirewallState": { +"description": "State of the health check firewall configuration.", +"enum": [ +"HEALTH_CHECK_FIREWALL_STATE_UNSPECIFIED", +"CONFIGURED", +"MISCONFIGURED" +], +"enumDescriptions": [ +"State is unspecified. Default state if not populated.", +"There are configured firewall rules to allow health check probes to the backend.", +"There are firewall rules configured to allow partial health check ranges or block all health check ranges. If a health check probe is sent from denied IP ranges, the health check to the backend will fail. Then, the backend will be marked unhealthy and will not receive traffic sent to the load balancer." +], +"type": "string" +}, +"uri": { +"description": "URI of a Compute Engine instance or network endpoint.", +"type": "string" +} +}, +"type": "object" +}, +"LoadBalancerBackendInfo": { +"description": "For display only. Metadata associated with the load balancer backend.", +"id": "LoadBalancerBackendInfo", +"properties": { +"backendBucketUri": { +"description": "URI of the backend bucket this backend targets (if applicable).", +"type": "string" +}, +"backendServiceUri": { +"description": "URI of the backend service this backend belongs to (if applicable).", +"type": "string" +}, +"healthCheckFirewallsConfigState": { +"description": "Output only. Health check firewalls configuration state for the backend. This is a result of the static firewall analysis (verifying that health check traffic from required IP ranges to the backend is allowed or not). The backend might still be unhealthy even if these firewalls are configured. Please refer to the documentation for more information: https://cloud.google.com/load-balancing/docs/firewall-rules", +"enum": [ +"HEALTH_CHECK_FIREWALLS_CONFIG_STATE_UNSPECIFIED", +"FIREWALLS_CONFIGURED", +"FIREWALLS_PARTIALLY_CONFIGURED", +"FIREWALLS_NOT_CONFIGURED", +"FIREWALLS_UNSUPPORTED" +], +"enumDescriptions": [ +"Configuration state unspecified. It usually means that the backend has no health check attached, or there was an unexpected configuration error preventing Connectivity tests from verifying health check configuration.", +"Firewall rules (policies) allowing health check traffic from all required IP ranges to the backend are configured.", +"Firewall rules (policies) allow health check traffic only from a part of required IP ranges.", +"Firewall rules (policies) deny health check traffic from all required IP ranges to the backend.", +"The network contains firewall rules of unsupported types, so Connectivity tests were not able to verify health check configuration status. Please refer to the documentation for the list of unsupported configurations: https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs" +], +"readOnly": true, +"type": "string" +}, +"healthCheckUri": { +"description": "URI of the health check attached to this backend (if applicable).", +"type": "string" +}, +"instanceGroupUri": { +"description": "URI of the instance group this backend belongs to (if applicable).", +"type": "string" +}, +"instanceUri": { +"description": "URI of the backend instance (if applicable). Populated for instance group backends, and zonal NEG backends.", +"type": "string" +}, +"name": { +"description": "Display name of the backend. For example, it might be an instance name for the instance group backends, or an IP address and port for zonal network endpoint group backends.", +"type": "string" +}, +"networkEndpointGroupUri": { +"description": "URI of the network endpoint group this backend belongs to (if applicable).", +"type": "string" +}, +"pscGoogleApiTarget": { +"description": "PSC Google API target this PSC NEG backend targets (if applicable).", +"type": "string" +}, +"pscServiceAttachmentUri": { +"description": "URI of the PSC service attachment this PSC NEG backend targets (if applicable).", +"type": "string" +} +}, +"type": "object" +}, +"LoadBalancerInfo": { +"description": "For display only. Metadata associated with a load balancer.", +"id": "LoadBalancerInfo", +"properties": { +"backendType": { +"description": "Type of load balancer's backend configuration.", +"enum": [ +"BACKEND_TYPE_UNSPECIFIED", +"BACKEND_SERVICE", +"TARGET_POOL", +"TARGET_INSTANCE" +], +"enumDescriptions": [ +"Type is unspecified.", +"Backend Service as the load balancer's backend.", +"Target Pool as the load balancer's backend.", +"Target Instance as the load balancer's backend." +], +"type": "string" +}, +"backendUri": { +"description": "Backend configuration URI.", +"type": "string" +}, +"backends": { +"description": "Information for the loadbalancer backends.", +"items": { +"$ref": "LoadBalancerBackend" +}, +"type": "array" +}, +"healthCheckUri": { +"deprecated": true, +"description": "URI of the health check for the load balancer. Deprecated and no longer populated as different load balancer backends might have different health checks.", +"type": "string" +}, +"loadBalancerType": { +"description": "Type of the load balancer.", +"enum": [ +"LOAD_BALANCER_TYPE_UNSPECIFIED", +"INTERNAL_TCP_UDP", +"NETWORK_TCP_UDP", +"HTTP_PROXY", +"TCP_PROXY", +"SSL_PROXY" +], +"enumDescriptions": [ +"Type is unspecified.", +"Internal TCP/UDP load balancer.", +"Network TCP/UDP load balancer.", +"HTTP(S) proxy load balancer.", +"TCP proxy load balancer.", +"SSL proxy load balancer." +], +"type": "string" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"NatInfo": { +"description": "For display only. Metadata associated with NAT.", +"id": "NatInfo", +"properties": { +"natGatewayName": { +"description": "The name of Cloud NAT Gateway. Only valid when type is CLOUD_NAT.", +"type": "string" +}, +"networkUri": { +"description": "URI of the network where NAT translation takes place.", +"type": "string" +}, +"newDestinationIp": { +"description": "Destination IP address after NAT translation.", +"type": "string" +}, +"newDestinationPort": { +"description": "Destination port after NAT translation. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"newSourceIp": { +"description": "Source IP address after NAT translation.", +"type": "string" +}, +"newSourcePort": { +"description": "Source port after NAT translation. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"oldDestinationIp": { +"description": "Destination IP address before NAT translation.", +"type": "string" +}, +"oldDestinationPort": { +"description": "Destination port before NAT translation. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"oldSourceIp": { +"description": "Source IP address before NAT translation.", +"type": "string" +}, +"oldSourcePort": { +"description": "Source port before NAT translation. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "IP protocol in string format, for example: \"TCP\", \"UDP\", \"ICMP\".", +"type": "string" +}, +"routerUri": { +"description": "Uri of the Cloud Router. Only valid when type is CLOUD_NAT.", +"type": "string" +}, +"type": { +"description": "Type of NAT.", +"enum": [ +"TYPE_UNSPECIFIED", +"INTERNAL_TO_EXTERNAL", +"EXTERNAL_TO_INTERNAL", +"CLOUD_NAT", +"PRIVATE_SERVICE_CONNECT" +], +"enumDescriptions": [ +"Type is unspecified.", +"From Compute Engine instance's internal address to external address.", +"From Compute Engine instance's external address to internal address.", +"Cloud NAT Gateway.", +"Private service connect NAT." +], +"type": "string" +} +}, +"type": "object" +}, +"NetworkInfo": { +"description": "For display only. Metadata associated with a Compute Engine network. Next ID: 7", +"id": "NetworkInfo", +"properties": { +"displayName": { +"description": "Name of a Compute Engine network.", +"type": "string" +}, +"matchedIpRange": { +"description": "The IP range of the subnet matching the source IP address of the test.", +"type": "string" +}, +"matchedSubnetUri": { +"description": "URI of the subnet matching the source IP address of the test.", +"type": "string" +}, +"region": { +"description": "The region of the subnet matching the source IP address of the test.", +"type": "string" +}, +"uri": { +"description": "URI of a Compute Engine network.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Metadata describing an Operation", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "API version.", +"type": "string" +}, +"cancelRequested": { +"description": "Specifies if cancellation was requested for the operation.", +"type": "boolean" +}, +"createTime": { +"description": "The time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "The time the operation finished running.", +"format": "google-datetime", +"type": "string" +}, +"statusDetail": { +"description": "Human-readable status of the operation, if any.", +"type": "string" +}, +"target": { +"description": "Target of the operation - for example projects/project-1/locations/global/connectivityTests/test-1", +"type": "string" +}, +"verb": { +"description": "Name of the verb executed by the operation.", +"type": "string" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ProbingDetails": { +"description": "Results of active probing from the last run of the test.", +"id": "ProbingDetails", +"properties": { +"abortCause": { +"description": "The reason probing was aborted.", +"enum": [ +"PROBING_ABORT_CAUSE_UNSPECIFIED", +"PERMISSION_DENIED", +"NO_SOURCE_LOCATION" +], +"enumDescriptions": [ +"No reason was specified.", +"The user lacks permission to access some of the network resources required to run the test.", +"No valid source endpoint could be derived from the request." +], +"type": "string" +}, +"destinationEgressLocation": { +"$ref": "EdgeLocation", +"description": "The EdgeLocation from which a packet destined for/originating from the internet will egress/ingress the Google network. This will only be populated for a connectivity test which has an internet destination/source address. The absence of this field *must not* be used as an indication that the destination/source is part of the Google network." +}, +"endpointInfo": { +"$ref": "EndpointInfo", +"description": "The source and destination endpoints derived from the test input and used for active probing." +}, +"error": { +"$ref": "Status", +"description": "Details about an internal failure or the cancellation of active probing." +}, +"probingLatency": { +"$ref": "LatencyDistribution", +"description": "Latency as measured by active probing in one direction: from the source to the destination endpoint." +}, +"result": { +"description": "The overall result of active probing.", +"enum": [ +"PROBING_RESULT_UNSPECIFIED", +"REACHABLE", +"UNREACHABLE", +"REACHABILITY_INCONSISTENT", +"UNDETERMINED" +], +"enumDescriptions": [ +"No result was specified.", +"At least 95% of packets reached the destination.", +"No packets reached the destination.", +"Less than 95% of packets reached the destination.", +"Reachability could not be determined. Possible reasons are: * The user lacks permission to access some of the network resources required to run the test. * No valid source endpoint could be derived from the request. * An internal error occurred." +], +"type": "string" +}, +"sentProbeCount": { +"description": "Number of probes sent.", +"format": "int32", +"type": "integer" +}, +"successfulProbeCount": { +"description": "Number of probes that reached the destination.", +"format": "int32", +"type": "integer" +}, +"verifyTime": { +"description": "The time that reachability was assessed through active probing.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ProxyConnectionInfo": { +"description": "For display only. Metadata associated with ProxyConnection.", +"id": "ProxyConnectionInfo", +"properties": { +"networkUri": { +"description": "URI of the network where connection is proxied.", +"type": "string" +}, +"newDestinationIp": { +"description": "Destination IP address of a new connection.", +"type": "string" +}, +"newDestinationPort": { +"description": "Destination port of a new connection. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"newSourceIp": { +"description": "Source IP address of a new connection.", +"type": "string" +}, +"newSourcePort": { +"description": "Source port of a new connection. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"oldDestinationIp": { +"description": "Destination IP address of an original connection", +"type": "string" +}, +"oldDestinationPort": { +"description": "Destination port of an original connection. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"oldSourceIp": { +"description": "Source IP address of an original connection.", +"type": "string" +}, +"oldSourcePort": { +"description": "Source port of an original connection. Only valid when protocol is TCP or UDP.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "IP protocol in string format, for example: \"TCP\", \"UDP\", \"ICMP\".", +"type": "string" +}, +"subnetUri": { +"description": "Uri of proxy subnet.", +"type": "string" +} +}, +"type": "object" +}, +"ReachabilityDetails": { +"description": "Results of the configuration analysis from the last run of the test.", +"id": "ReachabilityDetails", +"properties": { +"error": { +"$ref": "Status", +"description": "The details of a failure or a cancellation of reachability analysis." +}, +"result": { +"description": "The overall result of the test's configuration analysis.", +"enum": [ +"RESULT_UNSPECIFIED", +"REACHABLE", +"UNREACHABLE", +"AMBIGUOUS", +"UNDETERMINED" +], +"enumDescriptions": [ +"No result was specified.", +"Possible scenarios are: * The configuration analysis determined that a packet originating from the source is expected to reach the destination. * The analysis didn't complete because the user lacks permission for some of the resources in the trace. However, at the time the user's permission became insufficient, the trace had been successful so far.", +"A packet originating from the source is expected to be dropped before reaching the destination.", +"The source and destination endpoints do not uniquely identify the test location in the network, and the reachability result contains multiple traces. For some traces, a packet could be delivered, and for others, it would not be. This result is also assigned to configuration analysis of return path if on its own it should be REACHABLE, but configuration analysis of forward path is AMBIGUOUS.", +"The configuration analysis did not complete. Possible reasons are: * A permissions error occurred--for example, the user might not have read permission for all of the resources named in the test. * An internal error occurred. * The analyzer received an invalid or unsupported argument or was unable to identify a known endpoint." +], +"type": "string" +}, +"traces": { +"description": "Result may contain a list of traces if a test has multiple possible paths in the network, such as when destination endpoint is a load balancer with multiple backends.", +"items": { +"$ref": "Trace" +}, +"type": "array" +}, +"verifyTime": { +"description": "The time of the configuration analysis.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"RedisClusterInfo": { +"description": "For display only. Metadata associated with a Redis Cluster.", +"id": "RedisClusterInfo", +"properties": { +"discoveryEndpointIpAddress": { +"description": "Discovery endpoint IP address of a Redis Cluster.", +"type": "string" +}, +"displayName": { +"description": "Name of a Redis Cluster.", +"type": "string" +}, +"location": { +"description": "Name of the region in which the Redis Cluster is defined. For example, \"us-central1\".", +"type": "string" +}, +"networkUri": { +"description": "URI of a Redis Cluster network in format \"projects/{project_id}/global/networks/{network_id}\".", +"type": "string" +}, +"secondaryEndpointIpAddress": { +"description": "Secondary endpoint IP address of a Redis Cluster.", +"type": "string" +}, +"uri": { +"description": "URI of a Redis Cluster in format \"projects/{project_id}/locations/{location}/clusters/{cluster_id}\"", +"type": "string" +} +}, +"type": "object" +}, +"RedisInstanceInfo": { +"description": "For display only. Metadata associated with a Cloud Redis Instance.", +"id": "RedisInstanceInfo", +"properties": { +"displayName": { +"description": "Name of a Cloud Redis Instance.", +"type": "string" +}, +"networkUri": { +"description": "URI of a Cloud Redis Instance network.", +"type": "string" +}, +"primaryEndpointIp": { +"description": "Primary endpoint IP address of a Cloud Redis Instance.", +"type": "string" +}, +"readEndpointIp": { +"description": "Read endpoint IP address of a Cloud Redis Instance (if applicable).", +"type": "string" +}, +"region": { +"description": "Region in which the Cloud Redis Instance is defined.", +"type": "string" +}, +"uri": { +"description": "URI of a Cloud Redis Instance.", +"type": "string" +} +}, +"type": "object" +}, +"RerunConnectivityTestRequest": { +"description": "Request for the `RerunConnectivityTest` method.", +"id": "RerunConnectivityTestRequest", +"properties": {}, +"type": "object" +}, +"RouteInfo": { +"description": "For display only. Metadata associated with a Compute Engine route.", +"id": "RouteInfo", +"properties": { +"advertisedRouteNextHopUri": { +"deprecated": true, +"description": "For ADVERTISED routes, the URI of their next hop, i.e. the URI of the hybrid endpoint (VPN tunnel, Interconnect attachment, NCC router appliance) the advertised prefix is advertised through, or URI of the source peered network. Deprecated in favor of the next_hop_uri field, not used in new tests.", +"type": "string" +}, +"advertisedRouteSourceRouterUri": { +"description": "For ADVERTISED dynamic routes, the URI of the Cloud Router that advertised the corresponding IP prefix.", +"type": "string" +}, +"destIpRange": { +"description": "Destination IP range of the route.", +"type": "string" +}, +"destPortRanges": { +"description": "Destination port ranges of the route. POLICY_BASED routes only.", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Name of a route.", +"type": "string" +}, +"instanceTags": { +"description": "Instance tags of the route.", +"items": { +"type": "string" +}, +"type": "array" +}, +"nccHubRouteUri": { +"description": "For PEERING_SUBNET and PEERING_DYNAMIC routes that are advertised by NCC Hub, the URI of the corresponding route in NCC Hub's routing table.", +"type": "string" +}, +"nccHubUri": { +"description": "URI of the NCC Hub the route is advertised by. PEERING_SUBNET and PEERING_DYNAMIC routes that are advertised by NCC Hub only.", +"type": "string" +}, +"nccSpokeUri": { +"description": "URI of the destination NCC Spoke. PEERING_SUBNET and PEERING_DYNAMIC routes that are advertised by NCC Hub only.", +"type": "string" +}, +"networkUri": { +"description": "URI of a VPC network where route is located.", +"type": "string" +}, +"nextHop": { +"deprecated": true, +"description": "String type of the next hop of the route (for example, \"VPN tunnel\"). Deprecated in favor of the next_hop_type and next_hop_uri fields, not used in new tests.", +"type": "string" +}, +"nextHopNetworkUri": { +"description": "URI of a VPC network where the next hop resource is located.", +"type": "string" +}, +"nextHopType": { +"description": "Type of next hop.", +"enum": [ +"NEXT_HOP_TYPE_UNSPECIFIED", +"NEXT_HOP_IP", +"NEXT_HOP_INSTANCE", +"NEXT_HOP_NETWORK", +"NEXT_HOP_PEERING", +"NEXT_HOP_INTERCONNECT", +"NEXT_HOP_VPN_TUNNEL", +"NEXT_HOP_VPN_GATEWAY", +"NEXT_HOP_INTERNET_GATEWAY", +"NEXT_HOP_BLACKHOLE", +"NEXT_HOP_ILB", +"NEXT_HOP_ROUTER_APPLIANCE", +"NEXT_HOP_NCC_HUB" +], +"enumDescriptions": [ +"Unspecified type. Default value.", +"Next hop is an IP address.", +"Next hop is a Compute Engine instance.", +"Next hop is a VPC network gateway.", +"Next hop is a peering VPC. This scenario only happens when the user doesn't have permissions to the project where the next hop resource is located.", +"Next hop is an interconnect.", +"Next hop is a VPN tunnel.", +"Next hop is a VPN gateway. This scenario only happens when tracing connectivity from an on-premises network to Google Cloud through a VPN. The analysis simulates a packet departing from the on-premises network through a VPN tunnel and arriving at a Cloud VPN gateway.", +"Next hop is an internet gateway.", +"Next hop is blackhole; that is, the next hop either does not exist or is unusable.", +"Next hop is the forwarding rule of an Internal Load Balancer.", +"Next hop is a [router appliance instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview).", +"Next hop is an NCC hub. This scenario only happens when the user doesn't have permissions to the project where the next hop resource is located." +], +"type": "string" +}, +"nextHopUri": { +"description": "URI of the next hop resource.", +"type": "string" +}, +"originatingRouteDisplayName": { +"description": "For PEERING_SUBNET, PEERING_STATIC and PEERING_DYNAMIC routes, the name of the originating SUBNET/STATIC/DYNAMIC route.", +"type": "string" +}, +"originatingRouteUri": { +"description": "For PEERING_SUBNET and PEERING_STATIC routes, the URI of the originating SUBNET/STATIC route.", +"type": "string" +}, +"priority": { +"description": "Priority of the route.", +"format": "int32", +"type": "integer" +}, +"protocols": { +"description": "Protocols of the route. POLICY_BASED routes only.", +"items": { +"type": "string" +}, +"type": "array" +}, +"region": { +"description": "Region of the route. DYNAMIC, PEERING_DYNAMIC, POLICY_BASED and ADVERTISED routes only. If set for POLICY_BASED route, this is a region of VLAN attachments for Cloud Interconnect the route applies to.", +"type": "string" +}, +"routeScope": { +"deprecated": true, +"description": "Indicates where route is applicable. Deprecated, routes with NCC_HUB scope are not included in the trace in new tests.", +"enum": [ +"ROUTE_SCOPE_UNSPECIFIED", +"NETWORK", +"NCC_HUB" +], +"enumDescriptions": [ +"Unspecified scope. Default value.", +"Route is applicable to packets in Network.", +"Route is applicable to packets using NCC Hub's routing table." +], +"type": "string" +}, +"routeType": { +"description": "Type of route.", +"enum": [ +"ROUTE_TYPE_UNSPECIFIED", +"SUBNET", +"STATIC", +"DYNAMIC", +"PEERING_SUBNET", +"PEERING_STATIC", +"PEERING_DYNAMIC", +"POLICY_BASED", +"ADVERTISED" +], +"enumDescriptions": [ +"Unspecified type. Default value.", +"Route is a subnet route automatically created by the system.", +"Static route created by the user, including the default route to the internet.", +"Dynamic route exchanged between BGP peers.", +"A subnet route received from peering network or NCC Hub.", +"A static route received from peering network.", +"A dynamic route received from peering network or NCC Hub.", +"Policy based route.", +"Advertised route. Synthetic route which is used to transition from the StartFromPrivateNetwork state in Connectivity tests." +], +"type": "string" +}, +"srcIpRange": { +"description": "Source IP address range of the route. POLICY_BASED routes only.", +"type": "string" +}, +"srcPortRanges": { +"description": "Source port ranges of the route. POLICY_BASED routes only.", +"items": { +"type": "string" +}, +"type": "array" +}, +"uri": { +"description": "URI of a route. SUBNET, STATIC, PEERING_SUBNET (only for peering network) and POLICY_BASED routes only.", +"type": "string" +} +}, +"type": "object" +}, +"ServerlessNegInfo": { +"description": "For display only. Metadata associated with the serverless network endpoint group backend.", +"id": "ServerlessNegInfo", +"properties": { +"negUri": { +"description": "URI of the serverless network endpoint group.", +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Step": { +"description": "A simulated forwarding path is composed of multiple steps. Each step has a well-defined state and an associated configuration.", +"id": "Step", +"properties": { +"abort": { +"$ref": "AbortInfo", +"description": "Display information of the final state \"abort\" and reason." +}, +"appEngineVersion": { +"$ref": "AppEngineVersionInfo", +"description": "Display information of an App Engine service version." +}, +"causesDrop": { +"description": "This is a step that leads to the final state Drop.", +"type": "boolean" +}, +"cloudFunction": { +"$ref": "CloudFunctionInfo", +"description": "Display information of a Cloud Function." +}, +"cloudRunRevision": { +"$ref": "CloudRunRevisionInfo", +"description": "Display information of a Cloud Run revision." +}, +"cloudSqlInstance": { +"$ref": "CloudSQLInstanceInfo", +"description": "Display information of a Cloud SQL instance." +}, +"deliver": { +"$ref": "DeliverInfo", +"description": "Display information of the final state \"deliver\" and reason." +}, +"description": { +"description": "A description of the step. Usually this is a summary of the state.", +"type": "string" +}, +"drop": { +"$ref": "DropInfo", +"description": "Display information of the final state \"drop\" and reason." +}, +"endpoint": { +"$ref": "EndpointInfo", +"description": "Display information of the source and destination under analysis. The endpoint information in an intermediate state may differ with the initial input, as it might be modified by state like NAT, or Connection Proxy." +}, +"firewall": { +"$ref": "FirewallInfo", +"description": "Display information of a Compute Engine firewall rule." +}, +"forward": { +"$ref": "ForwardInfo", +"description": "Display information of the final state \"forward\" and reason." +}, +"forwardingRule": { +"$ref": "ForwardingRuleInfo", +"description": "Display information of a Compute Engine forwarding rule." +}, +"gkeMaster": { +"$ref": "GKEMasterInfo", +"description": "Display information of a Google Kubernetes Engine cluster master." +}, +"googleService": { +"$ref": "GoogleServiceInfo", +"description": "Display information of a Google service" +}, +"instance": { +"$ref": "InstanceInfo", +"description": "Display information of a Compute Engine instance." +}, +"loadBalancer": { +"$ref": "LoadBalancerInfo", +"deprecated": true, +"description": "Display information of the load balancers. Deprecated in favor of the `load_balancer_backend_info` field, not used in new tests." +}, +"loadBalancerBackendInfo": { +"$ref": "LoadBalancerBackendInfo", +"description": "Display information of a specific load balancer backend." +}, +"nat": { +"$ref": "NatInfo", +"description": "Display information of a NAT." +}, +"network": { +"$ref": "NetworkInfo", +"description": "Display information of a Google Cloud network." +}, +"projectId": { +"description": "Project ID that contains the configuration this step is validating.", +"type": "string" +}, +"proxyConnection": { +"$ref": "ProxyConnectionInfo", +"description": "Display information of a ProxyConnection." +}, +"redisCluster": { +"$ref": "RedisClusterInfo", +"description": "Display information of a Redis Cluster." +}, +"redisInstance": { +"$ref": "RedisInstanceInfo", +"description": "Display information of a Redis Instance." +}, +"route": { +"$ref": "RouteInfo", +"description": "Display information of a Compute Engine route." +}, +"serverlessNeg": { +"$ref": "ServerlessNegInfo", +"description": "Display information of a Serverless network endpoint group backend. Used only for return traces." +}, +"state": { +"description": "Each step is in one of the pre-defined states.", +"enum": [ +"STATE_UNSPECIFIED", +"START_FROM_INSTANCE", +"START_FROM_INTERNET", +"START_FROM_GOOGLE_SERVICE", +"START_FROM_PRIVATE_NETWORK", +"START_FROM_GKE_MASTER", +"START_FROM_CLOUD_SQL_INSTANCE", +"START_FROM_REDIS_INSTANCE", +"START_FROM_REDIS_CLUSTER", +"START_FROM_CLOUD_FUNCTION", +"START_FROM_APP_ENGINE_VERSION", +"START_FROM_CLOUD_RUN_REVISION", +"START_FROM_STORAGE_BUCKET", +"START_FROM_PSC_PUBLISHED_SERVICE", +"START_FROM_SERVERLESS_NEG", +"APPLY_INGRESS_FIREWALL_RULE", +"APPLY_EGRESS_FIREWALL_RULE", +"APPLY_ROUTE", +"APPLY_FORWARDING_RULE", +"ANALYZE_LOAD_BALANCER_BACKEND", +"SPOOFING_APPROVED", +"ARRIVE_AT_INSTANCE", +"ARRIVE_AT_INTERNAL_LOAD_BALANCER", +"ARRIVE_AT_EXTERNAL_LOAD_BALANCER", +"ARRIVE_AT_VPN_GATEWAY", +"ARRIVE_AT_VPN_TUNNEL", +"ARRIVE_AT_VPC_CONNECTOR", +"NAT", +"PROXY_CONNECTION", +"DELIVER", +"DROP", +"FORWARD", +"ABORT", +"VIEWER_PERMISSION_MISSING" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +true, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified state.", +"Initial state: packet originating from a Compute Engine instance. An InstanceInfo is populated with starting instance information.", +"Initial state: packet originating from the internet. The endpoint information is populated.", +"Initial state: packet originating from a Google service. The google_service information is populated.", +"Initial state: packet originating from a VPC or on-premises network with internal source IP. If the source is a VPC network visible to the user, a NetworkInfo is populated with details of the network.", +"Initial state: packet originating from a Google Kubernetes Engine cluster master. A GKEMasterInfo is populated with starting instance information.", +"Initial state: packet originating from a Cloud SQL instance. A CloudSQLInstanceInfo is populated with starting instance information.", +"Initial state: packet originating from a Redis instance. A RedisInstanceInfo is populated with starting instance information.", +"Initial state: packet originating from a Redis Cluster. A RedisClusterInfo is populated with starting Cluster information.", +"Initial state: packet originating from a Cloud Function. A CloudFunctionInfo is populated with starting function information.", +"Initial state: packet originating from an App Engine service version. An AppEngineVersionInfo is populated with starting version information.", +"Initial state: packet originating from a Cloud Run revision. A CloudRunRevisionInfo is populated with starting revision information.", +"Initial state: packet originating from a Storage Bucket. Used only for return traces. The storage_bucket information is populated.", +"Initial state: packet originating from a published service that uses Private Service Connect. Used only for return traces.", +"Initial state: packet originating from a serverless network endpoint group backend. Used only for return traces. The serverless_neg information is populated.", +"Config checking state: verify ingress firewall rule.", +"Config checking state: verify egress firewall rule.", +"Config checking state: verify route.", +"Config checking state: match forwarding rule.", +"Config checking state: verify load balancer backend configuration.", +"Config checking state: packet sent or received under foreign IP address and allowed.", +"Forwarding state: arriving at a Compute Engine instance.", +"Forwarding state: arriving at a Compute Engine internal load balancer. Deprecated in favor of the `ANALYZE_LOAD_BALANCER_BACKEND` state, not used in new tests.", +"Forwarding state: arriving at a Compute Engine external load balancer. Deprecated in favor of the `ANALYZE_LOAD_BALANCER_BACKEND` state, not used in new tests.", +"Forwarding state: arriving at a Cloud VPN gateway.", +"Forwarding state: arriving at a Cloud VPN tunnel.", +"Forwarding state: arriving at a VPC connector.", +"Transition state: packet header translated.", +"Transition state: original connection is terminated and a new proxied connection is initiated.", +"Final state: packet could be delivered.", +"Final state: packet could be dropped.", +"Final state: packet could be forwarded to a network with an unknown configuration.", +"Final state: analysis is aborted.", +"Special state: viewer of the test result does not have permission to see the configuration in this step." +], +"type": "string" +}, +"storageBucket": { +"$ref": "StorageBucketInfo", +"description": "Display information of a Storage Bucket. Used only for return traces." +}, +"vpcConnector": { +"$ref": "VpcConnectorInfo", +"description": "Display information of a VPC connector." +}, +"vpnGateway": { +"$ref": "VpnGatewayInfo", +"description": "Display information of a Compute Engine VPN gateway." +}, +"vpnTunnel": { +"$ref": "VpnTunnelInfo", +"description": "Display information of a Compute Engine VPN tunnel." +} +}, +"type": "object" +}, +"StorageBucketInfo": { +"description": "For display only. Metadata associated with Storage Bucket.", +"id": "StorageBucketInfo", +"properties": { +"bucket": { +"description": "Cloud Storage Bucket name.", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Trace": { +"description": "Trace represents one simulated packet forwarding path. * Each trace contains multiple ordered steps. * Each step is in a particular state with associated configuration. * State is categorized as final or non-final states. * Each final state has a reason associated. * Each trace must end with a final state (the last step). ``` |---------------------Trace----------------------| Step1(State) Step2(State) --- StepN(State(final)) ```", +"id": "Trace", +"properties": { +"endpointInfo": { +"$ref": "EndpointInfo", +"description": "Derived from the source and destination endpoints definition specified by user request, and validated by the data plane model. If there are multiple traces starting from different source locations, then the endpoint_info may be different between traces." +}, +"forwardTraceId": { +"description": "ID of trace. For forward traces, this ID is unique for each trace. For return traces, it matches ID of associated forward trace. A single forward trace can be associated with none, one or more than one return trace.", +"format": "int32", +"type": "integer" +}, +"steps": { +"description": "A trace of a test contains multiple steps from the initial state to the final state (delivered, dropped, forwarded, or aborted). The steps are ordered by the processing sequence within the simulated network state machine. It is critical to preserve the order of the steps and avoid reordering or sorting them.", +"items": { +"$ref": "Step" +}, +"type": "array" +} +}, +"type": "object" +}, +"VpcConnectorInfo": { +"description": "For display only. Metadata associated with a VPC connector.", +"id": "VpcConnectorInfo", +"properties": { +"displayName": { +"description": "Name of a VPC connector.", +"type": "string" +}, +"location": { +"description": "Location in which the VPC connector is deployed.", +"type": "string" +}, +"uri": { +"description": "URI of a VPC connector.", +"type": "string" +} +}, +"type": "object" +}, +"VpcFlowLogsConfig": { +"description": "A configuration to generate VPC Flow Logs.", +"id": "VpcFlowLogsConfig", +"properties": { +"aggregationInterval": { +"description": "Optional. The aggregation interval for the logs. Default value is INTERVAL_5_SEC.", +"enum": [ +"AGGREGATION_INTERVAL_UNSPECIFIED", +"INTERVAL_5_SEC", +"INTERVAL_30_SEC", +"INTERVAL_1_MIN", +"INTERVAL_5_MIN", +"INTERVAL_10_MIN", +"INTERVAL_15_MIN" +], +"enumDescriptions": [ +"If not specified, will default to INTERVAL_5_SEC.", +"Aggregate logs in 5s intervals.", +"Aggregate logs in 30s intervals.", +"Aggregate logs in 1m intervals.", +"Aggregate logs in 5m intervals.", +"Aggregate logs in 10m intervals.", +"Aggregate logs in 15m intervals." +], +"type": "string" +}, +"createTime": { +"description": "Output only. The time the config was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum of 512 characters.", +"type": "string" +}, +"filterExpr": { +"description": "Optional. Export filter used to define which VPC Flow Logs should be logged.", +"type": "string" +}, +"flowSampling": { +"description": "Optional. The value of the field must be in (0, 1]. The sampling rate of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use the state field instead. Default value is 1.0.", +"format": "float", +"type": "number" +}, +"interconnectAttachment": { +"description": "Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name}", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user-provided metadata.", +"type": "object" +}, +"metadata": { +"description": "Optional. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA.", +"enum": [ +"METADATA_UNSPECIFIED", +"INCLUDE_ALL_METADATA", +"EXCLUDE_ALL_METADATA", +"CUSTOM_METADATA" +], +"enumDescriptions": [ +"If not specified, will default to INCLUDE_ALL_METADATA.", +"Include all metadata fields.", +"Exclude all metadata fields.", +"Include only custom fields (specified in metadata_fields)." +], +"type": "string" +}, +"metadataFields": { +"description": "Optional. Custom metadata fields to include in the reported VPC flow logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}`", +"type": "string" +}, +"state": { +"description": "Optional. The state of the VPC Flow Log configuration. Default value is ENABLED. When creating a new configuration, it must be enabled.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"If not specified, will default to ENABLED.", +"When ENABLED, this configuration will generate logs.", +"When DISABLED, this configuration will not generate logs." +], +"type": "string" +}, +"targetResourceState": { +"description": "Output only. A diagnostic bit - describes the state of the configured target resource for diagnostic purposes.", +"enum": [ +"TARGET_RESOURCE_STATE_UNSPECIFIED", +"TARGET_RESOURCE_EXISTS", +"TARGET_RESOURCE_DOES_NOT_EXIST" +], +"enumDescriptions": [ +"Unspecified target resource state.", +"Indicates that the target resource exists.", +"Indicates that the target resource does not exist." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the config was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vpnTunnel": { +"description": "Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name}", +"type": "string" +} +}, +"type": "object" +}, +"VpnGatewayInfo": { +"description": "For display only. Metadata associated with a Compute Engine VPN gateway.", +"id": "VpnGatewayInfo", +"properties": { +"displayName": { +"description": "Name of a VPN gateway.", +"type": "string" +}, +"ipAddress": { +"description": "IP address of the VPN gateway.", +"type": "string" +}, +"networkUri": { +"description": "URI of a Compute Engine network where the VPN gateway is configured.", +"type": "string" +}, +"region": { +"description": "Name of a Google Cloud region where this VPN gateway is configured.", +"type": "string" +}, +"uri": { +"description": "URI of a VPN gateway.", +"type": "string" +}, +"vpnTunnelUri": { +"description": "A VPN tunnel that is associated with this VPN gateway. There may be multiple VPN tunnels configured on a VPN gateway, and only the one relevant to the test is displayed.", +"type": "string" +} +}, +"type": "object" +}, +"VpnTunnelInfo": { +"description": "For display only. Metadata associated with a Compute Engine VPN tunnel.", +"id": "VpnTunnelInfo", +"properties": { +"displayName": { +"description": "Name of a VPN tunnel.", +"type": "string" +}, +"networkUri": { +"description": "URI of a Compute Engine network where the VPN tunnel is configured.", +"type": "string" +}, +"region": { +"description": "Name of a Google Cloud region where this VPN tunnel is configured.", +"type": "string" +}, +"remoteGateway": { +"description": "URI of a VPN gateway at remote end of the tunnel.", +"type": "string" +}, +"remoteGatewayIp": { +"description": "Remote VPN gateway's IP address.", +"type": "string" +}, +"routingType": { +"description": "Type of the routing policy.", +"enum": [ +"ROUTING_TYPE_UNSPECIFIED", +"ROUTE_BASED", +"POLICY_BASED", +"DYNAMIC" +], +"enumDescriptions": [ +"Unspecified type. Default value.", +"Route based VPN.", +"Policy based routing.", +"Dynamic (BGP) routing." +], +"type": "string" +}, +"sourceGateway": { +"description": "URI of the VPN gateway at local end of the tunnel.", +"type": "string" +}, +"sourceGatewayIp": { +"description": "Local VPN gateway's IP address.", +"type": "string" +}, +"uri": { +"description": "URI of a VPN tunnel.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Network Management API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networkservices.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networkservices.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..94317dc7c53ac4115722454494e6091284b4f0ce --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networkservices.v1beta1.json @@ -0,0 +1,5415 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://networkservices.googleapis.com/", +"batchPath": "batch", +"canonicalName": "NetworkServices", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/networking", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "networkservices:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://networkservices.mtls.googleapis.com/", +"name": "networkservices", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "networkservices.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"authzExtensions": { +"methods": { +"create": { +"description": "Creates a new `AuthzExtension` resource in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzExtensions", +"httpMethod": "POST", +"id": "networkservices.projects.locations.authzExtensions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"authzExtensionId": { +"description": "Required. User-provided ID of the `AuthzExtension` resource to be created.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the `AuthzExtension` resource. Must be in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/authzExtensions", +"request": { +"$ref": "AuthzExtension" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified `AuthzExtension` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzExtensions/{authzExtensionsId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.authzExtensions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `AuthzExtension` resource to delete. Must be in the format `projects/{project}/locations/{location}/authzExtensions/{authz_extension}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authzExtensions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of the specified `AuthzExtension` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzExtensions/{authzExtensionsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.authzExtensions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the `AuthzExtension` resource to get. Must be in the format `projects/{project}/locations/{location}/authzExtensions/{authz_extension}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authzExtensions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "AuthzExtension" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `AuthzExtension` resources in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzExtensions", +"httpMethod": "GET", +"id": "networkservices.projects.locations.authzExtensions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. The server might return fewer items than requested. If unspecified, the server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results that the server returns.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the `AuthzExtension` resources are listed, specified in the following format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/authzExtensions", +"response": { +"$ref": "ListAuthzExtensionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of the specified `AuthzExtension` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/authzExtensions/{authzExtensionsId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.authzExtensions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Identifier. Name of the `AuthzExtension` resource in the following format: `projects/{project}/locations/{location}/authzExtensions/{authz_extension}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/authzExtensions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Used to specify the fields to be overwritten in the `AuthzExtension` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "AuthzExtension" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"endpointPolicies": { +"methods": { +"create": { +"description": "Creates a new EndpointPolicy in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/endpointPolicies", +"httpMethod": "POST", +"id": "networkservices.projects.locations.endpointPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"endpointPolicyId": { +"description": "Required. Short name of the EndpointPolicy resource to be created. E.g. \"CustomECS\".", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the EndpointPolicy. Must be in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/endpointPolicies", +"request": { +"$ref": "EndpointPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single EndpointPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/endpointPolicies/{endpointPoliciesId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.endpointPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the EndpointPolicy to delete. Must be in the format `projects/*/locations/global/endpointPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/endpointPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single EndpointPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/endpointPolicies/{endpointPoliciesId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.endpointPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the EndpointPolicy to get. Must be in the format `projects/*/locations/global/endpointPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/endpointPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "EndpointPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists EndpointPolicies in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/endpointPolicies", +"httpMethod": "GET", +"id": "networkservices.projects.locations.endpointPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of EndpointPolicies to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListEndpointPoliciesResponse` Indicates that this is a continuation of a prior `ListEndpointPolicies` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the EndpointPolicies should be listed, specified in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/endpointPolicies", +"response": { +"$ref": "ListEndpointPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single EndpointPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/endpointPolicies/{endpointPoliciesId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.endpointPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the EndpointPolicy resource. It matches pattern `projects/{project}/locations/global/endpointPolicies/{endpoint_policy}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/endpointPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the EndpointPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "EndpointPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"gateways": { +"methods": { +"create": { +"description": "Creates a new Gateway in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways", +"httpMethod": "POST", +"id": "networkservices.projects.locations.gateways.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"gatewayId": { +"description": "Required. Short name of the Gateway resource to be created.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the Gateway. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/gateways", +"request": { +"$ref": "Gateway" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Gateway.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.gateways.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the Gateway to delete. Must be in the format `projects/*/locations/*/gateways/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Gateway.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.gateways.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the Gateway to get. Must be in the format `projects/*/locations/*/gateways/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Gateway" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Gateways in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways", +"httpMethod": "GET", +"id": "networkservices.projects.locations.gateways.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of Gateways to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListGatewaysResponse` Indicates that this is a continuation of a prior `ListGateways` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the Gateways should be listed, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/gateways", +"response": { +"$ref": "ListGatewaysResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Gateway.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.gateways.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the Gateway resource. It matches pattern `projects/*/locations/*/gateways/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the Gateway resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Gateway" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"routeViews": { +"methods": { +"get": { +"description": "Get a single RouteView of a Gateway.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}/routeViews/{routeViewsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.gateways.routeViews.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the GatewayRouteView resource. Formats: projects/{project_number}/locations/{location}/gateways/{gateway_name}/routeViews/{route_view_name}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+/routeViews/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GatewayRouteView" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists RouteViews", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}/routeViews", +"httpMethod": "GET", +"id": "networkservices.projects.locations.gateways.routeViews.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of GatewayRouteViews to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListGatewayRouteViewsResponse` Indicates that this is a continuation of a prior `ListGatewayRouteViews` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Gateway to which a Route is associated. Formats: projects/{project_number}/locations/{location}/gateways/{gateway_name}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/routeViews", +"response": { +"$ref": "ListGatewayRouteViewsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"grpcRoutes": { +"methods": { +"create": { +"description": "Creates a new GrpcRoute in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes", +"httpMethod": "POST", +"id": "networkservices.projects.locations.grpcRoutes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"grpcRouteId": { +"description": "Required. Short name of the GrpcRoute resource to be created.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the GrpcRoute. Must be in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/grpcRoutes", +"request": { +"$ref": "GrpcRoute" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single GrpcRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes/{grpcRoutesId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.grpcRoutes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the GrpcRoute to delete. Must be in the format `projects/*/locations/global/grpcRoutes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/grpcRoutes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single GrpcRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes/{grpcRoutesId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.grpcRoutes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the GrpcRoute to get. Must be in the format `projects/*/locations/global/grpcRoutes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/grpcRoutes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GrpcRoute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists GrpcRoutes in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes", +"httpMethod": "GET", +"id": "networkservices.projects.locations.grpcRoutes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of GrpcRoutes to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListGrpcRoutesResponse` Indicates that this is a continuation of a prior `ListGrpcRoutes` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the GrpcRoutes should be listed, specified in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/grpcRoutes", +"response": { +"$ref": "ListGrpcRoutesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single GrpcRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes/{grpcRoutesId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.grpcRoutes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/grpcRoutes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the GrpcRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "GrpcRoute" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"httpRoutes": { +"methods": { +"create": { +"description": "Creates a new HttpRoute in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes", +"httpMethod": "POST", +"id": "networkservices.projects.locations.httpRoutes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"httpRouteId": { +"description": "Required. Short name of the HttpRoute resource to be created.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the HttpRoute. Must be in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/httpRoutes", +"request": { +"$ref": "HttpRoute" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single HttpRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes/{httpRoutesId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.httpRoutes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the HttpRoute to delete. Must be in the format `projects/*/locations/global/httpRoutes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/httpRoutes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single HttpRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes/{httpRoutesId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.httpRoutes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the HttpRoute to get. Must be in the format `projects/*/locations/global/httpRoutes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/httpRoutes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "HttpRoute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists HttpRoute in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes", +"httpMethod": "GET", +"id": "networkservices.projects.locations.httpRoutes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of HttpRoutes to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListHttpRoutesResponse` Indicates that this is a continuation of a prior `ListHttpRoutes` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the HttpRoutes should be listed, specified in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/httpRoutes", +"response": { +"$ref": "ListHttpRoutesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single HttpRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes/{httpRoutesId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.httpRoutes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the HttpRoute resource. It matches pattern `projects/*/locations/global/httpRoutes/http_route_name>`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/httpRoutes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the HttpRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "HttpRoute" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"lbRouteExtensions": { +"methods": { +"create": { +"description": "Creates a new `LbRouteExtension` resource in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions", +"httpMethod": "POST", +"id": "networkservices.projects.locations.lbRouteExtensions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"lbRouteExtensionId": { +"description": "Required. User-provided ID of the `LbRouteExtension` resource to be created.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the `LbRouteExtension` resource. Must be in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/lbRouteExtensions", +"request": { +"$ref": "LbRouteExtension" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified `LbRouteExtension` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions/{lbRouteExtensionsId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.lbRouteExtensions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `LbRouteExtension` resource to delete. Must be in the format `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lbRouteExtensions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of the specified `LbRouteExtension` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions/{lbRouteExtensionsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.lbRouteExtensions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the `LbRouteExtension` resource to get. Must be in the format `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lbRouteExtensions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "LbRouteExtension" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `LbRouteExtension` resources in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions", +"httpMethod": "GET", +"id": "networkservices.projects.locations.lbRouteExtensions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. The server might return fewer items than requested. If unspecified, the server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results that the server returns.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the `LbRouteExtension` resources are listed, specified in the following format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/lbRouteExtensions", +"response": { +"$ref": "ListLbRouteExtensionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of the specified `LbRouteExtension` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions/{lbRouteExtensionsId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.lbRouteExtensions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Identifier. Name of the `LbRouteExtension` resource in the following format: `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lbRouteExtensions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Used to specify the fields to be overwritten in the `LbRouteExtension` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "LbRouteExtension" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"lbTrafficExtensions": { +"methods": { +"create": { +"description": "Creates a new `LbTrafficExtension` resource in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions", +"httpMethod": "POST", +"id": "networkservices.projects.locations.lbTrafficExtensions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"lbTrafficExtensionId": { +"description": "Required. User-provided ID of the `LbTrafficExtension` resource to be created.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the `LbTrafficExtension` resource. Must be in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/lbTrafficExtensions", +"request": { +"$ref": "LbTrafficExtension" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified `LbTrafficExtension` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions/{lbTrafficExtensionsId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.lbTrafficExtensions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `LbTrafficExtension` resource to delete. Must be in the format `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lbTrafficExtensions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of the specified `LbTrafficExtension` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions/{lbTrafficExtensionsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.lbTrafficExtensions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the `LbTrafficExtension` resource to get. Must be in the format `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lbTrafficExtensions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "LbTrafficExtension" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `LbTrafficExtension` resources in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions", +"httpMethod": "GET", +"id": "networkservices.projects.locations.lbTrafficExtensions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Hint for how to order the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. The server might return fewer items than requested. If unspecified, the server picks an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results that the server returns.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the `LbTrafficExtension` resources are listed, specified in the following format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/lbTrafficExtensions", +"response": { +"$ref": "ListLbTrafficExtensionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of the specified `LbTrafficExtension` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions/{lbTrafficExtensionsId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.lbTrafficExtensions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Identifier. Name of the `LbTrafficExtension` resource in the following format: `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/lbTrafficExtensions/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Used to specify the fields to be overwritten in the `LbTrafficExtension` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "LbTrafficExtension" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"meshes": { +"methods": { +"create": { +"description": "Creates a new Mesh in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes", +"httpMethod": "POST", +"id": "networkservices.projects.locations.meshes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"meshId": { +"description": "Required. Short name of the Mesh resource to be created.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the Mesh. Must be in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/meshes", +"request": { +"$ref": "Mesh" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Mesh.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.meshes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the Mesh to delete. Must be in the format `projects/*/locations/global/meshes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Mesh.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.meshes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the Mesh to get. Must be in the format `projects/*/locations/global/meshes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Mesh" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Meshes in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes", +"httpMethod": "GET", +"id": "networkservices.projects.locations.meshes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of Meshes to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListMeshesResponse` Indicates that this is a continuation of a prior `ListMeshes` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the Meshes should be listed, specified in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/meshes", +"response": { +"$ref": "ListMeshesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Mesh.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.meshes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the Mesh resource. It matches pattern `projects/*/locations/global/meshes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the Mesh resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Mesh" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"routeViews": { +"methods": { +"get": { +"description": "Get a single RouteView of a Mesh.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}/routeViews/{routeViewsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.meshes.routeViews.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the MeshRouteView resource. Format: projects/{project_number}/locations/{location}/meshes/{mesh_name}/routeViews/{route_view_name}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+/routeViews/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "MeshRouteView" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists RouteViews", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}/routeViews", +"httpMethod": "GET", +"id": "networkservices.projects.locations.meshes.routeViews.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of MeshRouteViews to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListMeshRouteViewsResponse` Indicates that this is a continuation of a prior `ListMeshRouteViews` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Mesh to which a Route is associated. Format: projects/{project_number}/locations/{location}/meshes/{mesh_name}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/routeViews", +"response": { +"$ref": "ListMeshRouteViewsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "networkservices.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "networkservices.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"serviceBindings": { +"methods": { +"create": { +"description": "Creates a new ServiceBinding in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceBindings", +"httpMethod": "POST", +"id": "networkservices.projects.locations.serviceBindings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the ServiceBinding. Must be in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"serviceBindingId": { +"description": "Required. Short name of the ServiceBinding resource to be created.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/serviceBindings", +"request": { +"$ref": "ServiceBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single ServiceBinding.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.serviceBindings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the ServiceBinding to delete. Must be in the format `projects/*/locations/global/serviceBindings/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single ServiceBinding.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.serviceBindings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the ServiceBinding to get. Must be in the format `projects/*/locations/global/serviceBindings/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "ServiceBinding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists ServiceBinding in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceBindings", +"httpMethod": "GET", +"id": "networkservices.projects.locations.serviceBindings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of ServiceBindings to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListServiceBindingsResponse` Indicates that this is a continuation of a prior `ListRouters` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the ServiceBindings should be listed, specified in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/serviceBindings", +"response": { +"$ref": "ListServiceBindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"serviceLbPolicies": { +"methods": { +"create": { +"description": "Creates a new ServiceLbPolicy in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies", +"httpMethod": "POST", +"id": "networkservices.projects.locations.serviceLbPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the ServiceLbPolicy. Must be in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"serviceLbPolicyId": { +"description": "Required. Short name of the ServiceLbPolicy resource to be created. E.g. for resource name `projects/{project}/locations/{location}/serviceLbPolicies/{service_lb_policy_name}`. the id is value of {service_lb_policy_name}", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/serviceLbPolicies", +"request": { +"$ref": "ServiceLbPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single ServiceLbPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.serviceLbPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the ServiceLbPolicy to delete. Must be in the format `projects/{project}/locations/{location}/serviceLbPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single ServiceLbPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.serviceLbPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the ServiceLbPolicy to get. Must be in the format `projects/{project}/locations/{location}/serviceLbPolicies/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "ServiceLbPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists ServiceLbPolicies in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies", +"httpMethod": "GET", +"id": "networkservices.projects.locations.serviceLbPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of ServiceLbPolicies to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListServiceLbPoliciesResponse` Indicates that this is a continuation of a prior `ListRouters` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the ServiceLbPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/serviceLbPolicies", +"response": { +"$ref": "ListServiceLbPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single ServiceLbPolicy.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.serviceLbPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the ServiceLbPolicy resource. It matches pattern `projects/{project}/locations/{location}/serviceLbPolicies/{service_lb_policy_name}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the ServiceLbPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "ServiceLbPolicy" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"tcpRoutes": { +"methods": { +"create": { +"description": "Creates a new TcpRoute in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes", +"httpMethod": "POST", +"id": "networkservices.projects.locations.tcpRoutes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the TcpRoute. Must be in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"tcpRouteId": { +"description": "Required. Short name of the TcpRoute resource to be created.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/tcpRoutes", +"request": { +"$ref": "TcpRoute" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single TcpRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes/{tcpRoutesId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.tcpRoutes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the TcpRoute to delete. Must be in the format `projects/*/locations/global/tcpRoutes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tcpRoutes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single TcpRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes/{tcpRoutesId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.tcpRoutes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the TcpRoute to get. Must be in the format `projects/*/locations/global/tcpRoutes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tcpRoutes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "TcpRoute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists TcpRoute in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes", +"httpMethod": "GET", +"id": "networkservices.projects.locations.tcpRoutes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of TcpRoutes to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListTcpRoutesResponse` Indicates that this is a continuation of a prior `ListTcpRoutes` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the TcpRoutes should be listed, specified in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/tcpRoutes", +"response": { +"$ref": "ListTcpRoutesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single TcpRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes/{tcpRoutesId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.tcpRoutes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name>`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tcpRoutes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the TcpRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "TcpRoute" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"tlsRoutes": { +"methods": { +"create": { +"description": "Creates a new TlsRoute in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes", +"httpMethod": "POST", +"id": "networkservices.projects.locations.tlsRoutes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the TlsRoute. Must be in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"tlsRouteId": { +"description": "Required. Short name of the TlsRoute resource to be created.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/tlsRoutes", +"request": { +"$ref": "TlsRoute" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single TlsRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes/{tlsRoutesId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.tlsRoutes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the TlsRoute to delete. Must be in the format `projects/*/locations/global/tlsRoutes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tlsRoutes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single TlsRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes/{tlsRoutesId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.tlsRoutes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the TlsRoute to get. Must be in the format `projects/*/locations/global/tlsRoutes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tlsRoutes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "TlsRoute" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists TlsRoute in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes", +"httpMethod": "GET", +"id": "networkservices.projects.locations.tlsRoutes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of TlsRoutes to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListTlsRoutesResponse` Indicates that this is a continuation of a prior `ListTlsRoutes` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the TlsRoutes should be listed, specified in the format `projects/*/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/tlsRoutes", +"response": { +"$ref": "ListTlsRoutesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single TlsRoute.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes/{tlsRoutesId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.tlsRoutes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the TlsRoute resource. It matches pattern `projects/*/locations/global/tlsRoutes/tls_route_name>`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tlsRoutes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask is used to specify the fields to be overwritten in the TlsRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "TlsRoute" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"wasmPlugins": { +"methods": { +"create": { +"description": "Creates a new `WasmPlugin` resource in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/wasmPlugins", +"httpMethod": "POST", +"id": "networkservices.projects.locations.wasmPlugins.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the `WasmPlugin` resource. Must be in the format `projects/{project}/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"wasmPluginId": { +"description": "Required. User-provided ID of the `WasmPlugin` resource to be created.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/wasmPlugins", +"request": { +"$ref": "WasmPlugin" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified `WasmPlugin` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/wasmPlugins/{wasmPluginsId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.wasmPlugins.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the `WasmPlugin` resource to delete. Must be in the format `projects/{project}/locations/global/wasmPlugins/{wasm_plugin}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/wasmPlugins/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of the specified `WasmPlugin` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/wasmPlugins/{wasmPluginsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.wasmPlugins.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the `WasmPlugin` resource to get. Must be in the format `projects/{project}/locations/global/wasmPlugins/{wasm_plugin}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/wasmPlugins/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Determines how much data must be returned in the response. See [AIP-157](https://google.aip.dev/157).", +"enum": [ +"WASM_PLUGIN_VIEW_UNSPECIFIED", +"WASM_PLUGIN_VIEW_BASIC", +"WASM_PLUGIN_VIEW_FULL" +], +"enumDescriptions": [ +"Unspecified value. Do not use.", +"If specified in the `GET` request for a `WasmPlugin` resource, the server's response includes just the `WasmPlugin` resource.", +"If specified in the `GET` request for a `WasmPlugin` resource, the server's response includes the `WasmPlugin` resource with all its versions." +], +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "WasmPlugin" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `WasmPlugin` resources in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/wasmPlugins", +"httpMethod": "GET", +"id": "networkservices.projects.locations.wasmPlugins.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of `WasmPlugin` resources to return per call. If not specified, at most 50 `WasmPlugin` resources are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListWasmPluginsResponse` call. Indicates that this is a continuation of a prior `ListWasmPlugins` call, and that the next page of data is to be returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the `WasmPlugin` resources are listed, specified in the following format: `projects/{project}/locations/global`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/wasmPlugins", +"response": { +"$ref": "ListWasmPluginsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of the specified `WasmPlugin` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/wasmPlugins/{wasmPluginsId}", +"httpMethod": "PATCH", +"id": "networkservices.projects.locations.wasmPlugins.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of the `WasmPlugin` resource in the following format: `projects/{project}/locations/{location}/wasmPlugins/{wasm_plugin}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/wasmPlugins/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Used to specify the fields to be overwritten in the `WasmPlugin` resource by the update. The fields specified in the `update_mask` field are relative to the resource, not the full request. An omitted `update_mask` field is treated as an implied `update_mask` field equivalent to all fields that are populated (that have a non-empty value). The `update_mask` field supports a special value `*`, which means that each field in the given `WasmPlugin` resource (including the empty ones) replaces the current value.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "WasmPlugin" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"versions": { +"methods": { +"create": { +"description": "Creates a new `WasmPluginVersion` resource in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/wasmPlugins/{wasmPluginsId}/versions", +"httpMethod": "POST", +"id": "networkservices.projects.locations.wasmPlugins.versions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the `WasmPluginVersion` resource. Must be in the format `projects/{project}/locations/global/wasmPlugins/{wasm_plugin}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/wasmPlugins/[^/]+$", +"required": true, +"type": "string" +}, +"wasmPluginVersionId": { +"description": "Required. User-provided ID of the `WasmPluginVersion` resource to be created.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions", +"request": { +"$ref": "WasmPluginVersion" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified `WasmPluginVersion` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/wasmPlugins/{wasmPluginsId}/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "networkservices.projects.locations.wasmPlugins.versions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the `WasmPluginVersion` resource to delete. Must be in the format `projects/{project}/locations/global/wasmPlugins/{wasm_plugin}/versions/{wasm_plugin_version}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/wasmPlugins/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of the specified `WasmPluginVersion` resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/wasmPlugins/{wasmPluginsId}/versions/{versionsId}", +"httpMethod": "GET", +"id": "networkservices.projects.locations.wasmPlugins.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the `WasmPluginVersion` resource to get. Must be in the format `projects/{project}/locations/global/wasmPlugins/{wasm_plugin}/versions/{wasm_plugin_version}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/wasmPlugins/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "WasmPluginVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists `WasmPluginVersion` resources in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/wasmPlugins/{wasmPluginsId}/versions", +"httpMethod": "GET", +"id": "networkservices.projects.locations.wasmPlugins.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of `WasmPluginVersion` resources to return per call. If not specified, at most 50 `WasmPluginVersion` resources are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListWasmPluginVersionsResponse` call. Indicates that this is a continuation of a prior `ListWasmPluginVersions` call, and that the next page of data is to be returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The `WasmPlugin` resource whose `WasmPluginVersion`s are listed, specified in the following format: `projects/{project}/locations/global/wasmPlugins/{wasm_plugin}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/wasmPlugins/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions", +"response": { +"$ref": "ListWasmPluginVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241118", +"rootUrl": "https://networkservices.googleapis.com/", +"schemas": { +"AuthzExtension": { +"description": "`AuthzExtension` is a resource that allows traffic forwarding to a callout backend service to make an authorization decision.", +"id": "AuthzExtension", +"properties": { +"authority": { +"description": "Required. The `:authority` header in the gRPC request sent from Envoy to the extension service.", +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A human-readable description of the resource.", +"type": "string" +}, +"failOpen": { +"description": "Optional. Determines how the proxy behaves if the call to the extension fails or times out. When set to `TRUE`, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to `FALSE` or the default setting of `FALSE` is used, one of the following happens: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer. * If response headers have been delivered, then the HTTP stream to the downstream client is reset.", +"type": "boolean" +}, +"forwardHeaders": { +"description": "Optional. List of the HTTP headers to forward to the extension (from the client). If omitted, all headers are sent. Each element is a string indicating the header name.", +"items": { +"type": "string" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with the `AuthzExtension` resource. The format must comply with [the requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources.", +"type": "object" +}, +"loadBalancingScheme": { +"description": "Required. All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. Supported values: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).", +"enum": [ +"LOAD_BALANCING_SCHEME_UNSPECIFIED", +"INTERNAL_MANAGED", +"EXTERNAL_MANAGED" +], +"enumDescriptions": [ +"Default value. Do not use.", +"Signifies that this is used for Internal HTTP(S) Load Balancing.", +"Signifies that this is used for External Managed HTTP(S) Load Balancing." +], +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The metadata provided here is included as part of the `metadata_context` (of type `google.protobuf.Struct`) in the `ProcessingRequest` message sent to the extension server. The metadata is available under the namespace `com.google.authz_extension.`. The following variables are supported in the metadata Struct: `{forwarding_rule_id}` - substituted with the forwarding rule's fully qualified resource name.", +"type": "object" +}, +"name": { +"description": "Required. Identifier. Name of the `AuthzExtension` resource in the following format: `projects/{project}/locations/{location}/authzExtensions/{authz_extension}`.", +"type": "string" +}, +"service": { +"description": "Required. The reference to the service that runs the extension. To configure a callout extension, `service` must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format: `https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService}` or `https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}`.", +"type": "string" +}, +"timeout": { +"description": "Required. Specifies the timeout for each individual message on the stream. The timeout must be between 10-10000 milliseconds.", +"format": "google-duration", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"wireFormat": { +"description": "Optional. The format of communication supported by the callout extension. If not specified, the default is `EXT_PROC_GRPC`.", +"enum": [ +"WIRE_FORMAT_UNSPECIFIED", +"EXT_PROC_GRPC" +], +"enumDescriptions": [ +"Not specified.", +"The extension service uses ExtProc GRPC API over a gRPC stream. This is the default value if the wire format is not specified. The backend service for the extension must use HTTP2 or H2C as the protocol. All `supported_events` for a client request will be sent as part of the same gRPC stream." +], +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EndpointMatcher": { +"description": "A definition of a matcher that selects endpoints to which the policies should be applied.", +"id": "EndpointMatcher", +"properties": { +"metadataLabelMatcher": { +"$ref": "MetadataLabelMatcher", +"description": "The matcher is based on node metadata presented by xDS clients." +} +}, +"type": "object" +}, +"EndpointPolicy": { +"description": "EndpointPolicy is a resource that helps apply desired configuration on the endpoints that match specific criteria. For example, this resource can be used to apply \"authentication config\" an all endpoints that serve on port 8080.", +"id": "EndpointPolicy", +"properties": { +"authorizationPolicy": { +"description": "Optional. This field specifies the URL of AuthorizationPolicy resource that applies authorization policies to the inbound traffic at the matched endpoints. Refer to Authorization. If this field is not specified, authorization is disabled(no authz checks) for this endpoint.", +"type": "string" +}, +"clientTlsPolicy": { +"description": "Optional. A URL referring to a ClientTlsPolicy resource. ClientTlsPolicy can be set to specify the authentication for traffic from the proxy to the actual endpoints. More specifically, it is applied to the outgoing traffic from the proxy to the endpoint. This is typically used for sidecar model where the proxy identifies itself as endpoint to the control plane, with the connection between sidecar and endpoint requiring authentication. If this field is not set, authentication is disabled(open). Applicable only when EndpointPolicyType is SIDECAR_PROXY.", +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A free-text description of the resource. Max length 1024 characters.", +"type": "string" +}, +"endpointMatcher": { +"$ref": "EndpointMatcher", +"description": "Required. A matcher that selects endpoints to which the policies should be applied." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the EndpointPolicy resource.", +"type": "object" +}, +"name": { +"description": "Identifier. Name of the EndpointPolicy resource. It matches pattern `projects/{project}/locations/global/endpointPolicies/{endpoint_policy}`.", +"type": "string" +}, +"serverTlsPolicy": { +"description": "Optional. A URL referring to ServerTlsPolicy resource. ServerTlsPolicy is used to determine the authentication policy to be applied to terminate the inbound traffic at the identified backends. If this field is not set, authentication is disabled(open) for this endpoint.", +"type": "string" +}, +"trafficPortSelector": { +"$ref": "TrafficPortSelector", +"description": "Optional. Port selector for the (matched) endpoints. If no port selector is provided, the matched config is applied to all ports." +}, +"type": { +"description": "Required. The type of endpoint policy. This is primarily used to validate the configuration.", +"enum": [ +"ENDPOINT_POLICY_TYPE_UNSPECIFIED", +"SIDECAR_PROXY", +"GRPC_SERVER" +], +"enumDescriptions": [ +"Default value. Must not be used.", +"Represents a proxy deployed as a sidecar.", +"Represents a proxyless gRPC backend." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExtensionChain": { +"description": "A single extension chain wrapper that contains the match conditions and extensions to execute.", +"id": "ExtensionChain", +"properties": { +"extensions": { +"description": "Required. A set of extensions to execute for the matching request. At least one extension is required. Up to 3 extensions can be defined for each extension chain for `LbTrafficExtension` resource. `LbRouteExtension` chains are limited to 1 extension per extension chain.", +"items": { +"$ref": "ExtensionChainExtension" +}, +"type": "array" +}, +"matchCondition": { +"$ref": "ExtensionChainMatchCondition", +"description": "Required. Conditions under which this chain is invoked for a request." +}, +"name": { +"description": "Required. The name for this extension chain. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.", +"type": "string" +} +}, +"type": "object" +}, +"ExtensionChainExtension": { +"description": "A single extension in the chain to execute for the matching request.", +"id": "ExtensionChainExtension", +"properties": { +"authority": { +"description": "Optional. The `:authority` header in the gRPC request sent from Envoy to the extension service. Required for Callout extensions. This field is not supported for plugin extensions. Setting it results in a validation error.", +"type": "string" +}, +"failOpen": { +"description": "Optional. Determines how the proxy behaves if the call to the extension fails or times out. When set to `TRUE`, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to `FALSE` or the default setting of `FALSE` is used, one of the following happens: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer. * If response headers have been delivered, then the HTTP stream to the downstream client is reset.", +"type": "boolean" +}, +"forwardHeaders": { +"description": "Optional. List of the HTTP headers to forward to the extension (from the client or backend). If omitted, all headers are sent. Each element is a string indicating the header name.", +"items": { +"type": "string" +}, +"type": "array" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The metadata provided here is included as part of the `metadata_context` (of type `google.protobuf.Struct`) in the `ProcessingRequest` message sent to the extension server. The metadata is available under the namespace `com.google....`. For example: `com.google.lb_traffic_extension.lbtrafficextension1.chain1.ext1`. The following variables are supported in the metadata: `{forwarding_rule_id}` - substituted with the forwarding rule's fully qualified resource name. This field is not supported for plugin extensions. Setting it results in a validation error.", +"type": "object" +}, +"name": { +"description": "Required. The name for this extension. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.", +"type": "string" +}, +"service": { +"description": "Required. The reference to the service that runs the extension. To configure a callout extension, `service` must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format: `https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService}` or `https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}`. To configure a plugin extension, `service` must be a reference to a [`WasmPlugin` resource](https://cloud.google.com/service-extensions/docs/reference/rest/v1beta1/projects.locations.wasmPlugins) in the format: `projects/{project}/locations/{location}/wasmPlugins/{plugin}` or `//networkservices.googleapis.com/projects/{project}/locations/{location}/wasmPlugins/{wasmPlugin}`. Plugin extensions are currently supported for the `LbTrafficExtension` and the `LbRouteExtension` resources.", +"type": "string" +}, +"supportedEvents": { +"description": "Optional. A set of events during request or response processing for which this extension is called. This field is required for the `LbTrafficExtension` resource. It must not be set for the `LbRouteExtension` resource, otherwise a validation error is returned.", +"items": { +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"REQUEST_HEADERS", +"REQUEST_BODY", +"RESPONSE_HEADERS", +"RESPONSE_BODY", +"REQUEST_TRAILERS", +"RESPONSE_TRAILERS" +], +"enumDescriptions": [ +"Unspecified value. Do not use.", +"If included in `supported_events`, the extension is called when the HTTP request headers arrive.", +"If included in `supported_events`, the extension is called when the HTTP request body arrives.", +"If included in `supported_events`, the extension is called when the HTTP response headers arrive.", +"If included in `supported_events`, the extension is called when the HTTP response body arrives.", +"If included in `supported_events`, the extension is called when the HTTP request trailers arrives.", +"If included in `supported_events`, the extension is called when the HTTP response trailers arrives." +], +"type": "string" +}, +"type": "array" +}, +"timeout": { +"description": "Optional. Specifies the timeout for each individual message on the stream. The timeout must be between `10`-`1000` milliseconds. Required for callout extensions. This field is not supported for plugin extensions. Setting it results in a validation error.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"ExtensionChainMatchCondition": { +"description": "Conditions under which this chain is invoked for a request.", +"id": "ExtensionChainMatchCondition", +"properties": { +"celExpression": { +"description": "Required. A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed. For more information, see [CEL matcher language reference](https://cloud.google.com/service-extensions/docs/cel-matcher-language-reference).", +"type": "string" +} +}, +"type": "object" +}, +"Gateway": { +"description": "Gateway represents the configuration for a proxy, typically a load balancer. It captures the ip:port over which the services are exposed by the proxy, along with any policy configurations. Routes have reference to to Gateways to dictate how requests should be routed by this Gateway. Next id: 33", +"id": "Gateway", +"properties": { +"addresses": { +"description": "Optional. Zero or one IPv4 or IPv6 address on which the Gateway will receive the traffic. When no address is provided, an IP from the subnetwork is allocated This field only applies to gateways of type 'SECURE_WEB_GATEWAY'. Gateways of type 'OPEN_MESH' listen on 0.0.0.0 for IPv4 and :: for IPv6.", +"items": { +"type": "string" +}, +"type": "array" +}, +"certificateUrls": { +"description": "Optional. A fully-qualified Certificates URL reference. The proxy presents a Certificate (selected based on SNI) when establishing a TLS connection. This feature only applies to gateways of type 'SECURE_WEB_GATEWAY'.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A free-text description of the resource. Max length 1024 characters.", +"type": "string" +}, +"envoyHeaders": { +"description": "Optional. Determines if envoy will insert internal debug headers into upstream requests. Other Envoy headers may still be injected. By default, envoy will not insert any debug headers.", +"enum": [ +"ENVOY_HEADERS_UNSPECIFIED", +"NONE", +"DEBUG_HEADERS" +], +"enumDescriptions": [ +"Defaults to NONE.", +"Suppress envoy debug headers.", +"Envoy will insert default internal debug headers into upstream requests: x-envoy-attempt-count x-envoy-is-timeout-retry x-envoy-expected-rq-timeout-ms x-envoy-original-path x-envoy-upstream-stream-duration-ms" +], +"type": "string" +}, +"gatewaySecurityPolicy": { +"description": "Optional. A fully-qualified GatewaySecurityPolicy URL reference. Defines how a server should apply security policy to inbound (VM to Proxy) initiated connections. For example: `projects/*/locations/*/gatewaySecurityPolicies/swg-policy`. This policy is specific to gateways of type 'SECURE_WEB_GATEWAY'.", +"type": "string" +}, +"ipVersion": { +"description": "Optional. The IP Version that will be used by this gateway. Valid options are IPV4 or IPV6. Default is IPV4.", +"enum": [ +"IP_VERSION_UNSPECIFIED", +"IPV4", +"IPV6" +], +"enumDescriptions": [ +"The type when IP version is not specified. Defaults to IPV4.", +"The type for IP version 4.", +"The type for IP version 6." +], +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the Gateway resource.", +"type": "object" +}, +"name": { +"description": "Identifier. Name of the Gateway resource. It matches pattern `projects/*/locations/*/gateways/`.", +"type": "string" +}, +"network": { +"description": "Optional. The relative resource name identifying the VPC network that is using this configuration. For example: `projects/*/global/networks/network-1`. Currently, this field is specific to gateways of type 'SECURE_WEB_GATEWAY'.", +"type": "string" +}, +"ports": { +"description": "Required. One or more port numbers (1-65535), on which the Gateway will receive traffic. The proxy binds to the specified ports. Gateways of type 'SECURE_WEB_GATEWAY' are limited to 1 port. Gateways of type 'OPEN_MESH' listen on 0.0.0.0 for IPv4 and :: for IPv6 and support multiple ports.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"routingMode": { +"description": "Optional. The routing mode of the Gateway. This field is configurable only for gateways of type SECURE_WEB_GATEWAY. This field is required for gateways of type SECURE_WEB_GATEWAY.", +"enum": [ +"EXPLICIT_ROUTING_MODE", +"NEXT_HOP_ROUTING_MODE" +], +"enumDescriptions": [ +"The routing mode is explicit; clients are configured to send traffic through the gateway. This is the default routing mode.", +"The routing mode is next-hop. Clients are unaware of the gateway, and a route (advanced route or other route type) can be configured to direct traffic from client to gateway. The gateway then acts as a next-hop to the destination." +], +"type": "string" +}, +"scope": { +"description": "Optional. Scope determines how configuration across multiple Gateway instances are merged. The configuration for multiple Gateway instances with the same scope will be merged as presented as a single coniguration to the proxy/load balancer. Max length 64 characters. Scope should start with a letter and can only have letters, numbers, hyphens.", +"type": "string" +}, +"selfLink": { +"description": "Output only. Server-defined URL of this resource", +"readOnly": true, +"type": "string" +}, +"serverTlsPolicy": { +"description": "Optional. A fully-qualified ServerTLSPolicy URL reference. Specifies how TLS traffic is terminated. If empty, TLS termination is disabled.", +"type": "string" +}, +"subnetwork": { +"description": "Optional. The relative resource name identifying the subnetwork in which this SWG is allocated. For example: `projects/*/regions/us-central1/subnetworks/network-1` Currently, this field is specific to gateways of type 'SECURE_WEB_GATEWAY\".", +"type": "string" +}, +"type": { +"description": "Immutable. The type of the customer managed gateway. This field is required. If unspecified, an error is returned.", +"enum": [ +"TYPE_UNSPECIFIED", +"OPEN_MESH", +"SECURE_WEB_GATEWAY" +], +"enumDescriptions": [ +"The type of the customer managed gateway is unspecified.", +"The type of the customer managed gateway is TrafficDirector Open Mesh.", +"The type of the customer managed gateway is SecureWebGateway (SWG)." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GatewayRouteView": { +"description": "GatewayRouteView defines view-only resource for Routes to a Gateway", +"id": "GatewayRouteView", +"properties": { +"name": { +"description": "Output only. Identifier. Full path name of the GatewayRouteView resource. Format: projects/{project_number}/locations/{location}/gateways/{gateway_name}/routeViews/{route_view_name}", +"readOnly": true, +"type": "string" +}, +"routeId": { +"description": "Output only. The resource id for the route.", +"readOnly": true, +"type": "string" +}, +"routeLocation": { +"description": "Output only. Location where the route exists.", +"readOnly": true, +"type": "string" +}, +"routeProjectNumber": { +"description": "Output only. Project number where the route exists.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"routeType": { +"description": "Output only. Type of the route: HttpRoute,GrpcRoute,TcpRoute, or TlsRoute", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GrpcRoute": { +"description": "GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or Gateway resource is routed.", +"id": "GrpcRoute", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A free-text description of the resource. Max length 1024 characters.", +"type": "string" +}, +"gateways": { +"description": "Optional. Gateways defines a list of gateways this GrpcRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", +"items": { +"type": "string" +}, +"type": "array" +}, +"hostnames": { +"description": "Required. Service hostnames with an optional port for which this route describes traffic. Format: [:] Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateway must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same route, it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`. If a port is specified, then gRPC clients must use the channel URI with the port to match this rule (i.e. \"xds:///service:123\"), otherwise they must supply the URI without a port (i.e. \"xds:///service\").", +"items": { +"type": "string" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the GrpcRoute resource.", +"type": "object" +}, +"meshes": { +"description": "Optional. Meshes defines a list of meshes this GrpcRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/`", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Identifier. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`", +"type": "string" +}, +"rules": { +"description": "Required. A list of detailed rules defining how to route traffic. Within a single GrpcRoute, the GrpcRoute.RouteAction associated with the first matching GrpcRoute.RouteRule will be executed. At least one rule must be supplied.", +"items": { +"$ref": "GrpcRouteRouteRule" +}, +"type": "array" +}, +"selfLink": { +"description": "Output only. Server-defined URL of this resource", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GrpcRouteDestination": { +"description": "The destination to which traffic will be routed.", +"id": "GrpcRouteDestination", +"properties": { +"serviceName": { +"description": "Required. The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService.", +"type": "string" +}, +"weight": { +"description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GrpcRouteFaultInjectionPolicy": { +"description": "The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests.", +"id": "GrpcRouteFaultInjectionPolicy", +"properties": { +"abort": { +"$ref": "GrpcRouteFaultInjectionPolicyAbort", +"description": "The specification for aborting to client requests." +}, +"delay": { +"$ref": "GrpcRouteFaultInjectionPolicyDelay", +"description": "The specification for injecting delay to client requests." +} +}, +"type": "object" +}, +"GrpcRouteFaultInjectionPolicyAbort": { +"description": "Specification of how client requests are aborted as part of fault injection before being sent to a destination.", +"id": "GrpcRouteFaultInjectionPolicyAbort", +"properties": { +"httpStatus": { +"description": "The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.", +"format": "int32", +"type": "integer" +}, +"percentage": { +"description": "The percentage of traffic which will be aborted. The value must be between [0, 100]", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GrpcRouteFaultInjectionPolicyDelay": { +"description": "Specification of how client requests are delayed as part of fault injection before being sent to a destination.", +"id": "GrpcRouteFaultInjectionPolicyDelay", +"properties": { +"fixedDelay": { +"description": "Specify a fixed delay before forwarding the request.", +"format": "google-duration", +"type": "string" +}, +"percentage": { +"description": "The percentage of traffic on which delay will be injected. The value must be between [0, 100]", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GrpcRouteHeaderMatch": { +"description": "A match against a collection of headers.", +"id": "GrpcRouteHeaderMatch", +"properties": { +"key": { +"description": "Required. The key of the header.", +"type": "string" +}, +"type": { +"description": "Optional. Specifies how to match against the value of the header. If not specified, a default value of EXACT is used.", +"enum": [ +"TYPE_UNSPECIFIED", +"EXACT", +"REGULAR_EXPRESSION" +], +"enumDescriptions": [ +"Unspecified.", +"Will only match the exact value provided.", +"Will match paths conforming to the prefix specified by value. RE2 syntax is supported." +], +"type": "string" +}, +"value": { +"description": "Required. The value of the header.", +"type": "string" +} +}, +"type": "object" +}, +"GrpcRouteMethodMatch": { +"description": "Specifies a match against a method.", +"id": "GrpcRouteMethodMatch", +"properties": { +"caseSensitive": { +"description": "Optional. Specifies that matches are case sensitive. The default value is true. case_sensitive must not be used with a type of REGULAR_EXPRESSION.", +"type": "boolean" +}, +"grpcMethod": { +"description": "Required. Name of the method to match against. If unspecified, will match all methods.", +"type": "string" +}, +"grpcService": { +"description": "Required. Name of the service to match against. If unspecified, will match all services.", +"type": "string" +}, +"type": { +"description": "Optional. Specifies how to match against the name. If not specified, a default value of \"EXACT\" is used.", +"enum": [ +"TYPE_UNSPECIFIED", +"EXACT", +"REGULAR_EXPRESSION" +], +"enumDescriptions": [ +"Unspecified.", +"Will only match the exact name provided.", +"Will interpret grpc_method and grpc_service as regexes. RE2 syntax is supported." +], +"type": "string" +} +}, +"type": "object" +}, +"GrpcRouteRetryPolicy": { +"description": "The specifications for retries. Specifies one or more conditions for which this retry rule applies. Valid values are:", +"id": "GrpcRouteRetryPolicy", +"properties": { +"numRetries": { +"description": "Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.", +"format": "uint32", +"type": "integer" +}, +"retryConditions": { +"description": "- connect-failure: Router will retry on failures connecting to Backend Services, for example due to connection timeouts. - refused-stream: Router will retry if the backend service resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: Router will retry if the gRPC status code in the response header is set to cancelled - deadline-exceeded: Router will retry if the gRPC status code in the response header is set to deadline-exceeded - resource-exhausted: Router will retry if the gRPC status code in the response header is set to resource-exhausted - unavailable: Router will retry if the gRPC status code in the response header is set to unavailable", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GrpcRouteRouteAction": { +"description": "Specifies how to route matched traffic.", +"id": "GrpcRouteRouteAction", +"properties": { +"destinations": { +"description": "Optional. The destination services to which traffic should be forwarded. If multiple destinations are specified, traffic will be split between Backend Service(s) according to the weight field of these destinations.", +"items": { +"$ref": "GrpcRouteDestination" +}, +"type": "array" +}, +"faultInjectionPolicy": { +"$ref": "GrpcRouteFaultInjectionPolicy", +"description": "Optional. The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy" +}, +"idleTimeout": { +"description": "Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.", +"format": "google-duration", +"type": "string" +}, +"retryPolicy": { +"$ref": "GrpcRouteRetryPolicy", +"description": "Optional. Specifies the retry policy associated with this route." +}, +"statefulSessionAffinity": { +"$ref": "GrpcRouteStatefulSessionAffinityPolicy", +"description": "Optional. Specifies cookie-based stateful session affinity." +}, +"timeout": { +"description": "Optional. Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GrpcRouteRouteMatch": { +"description": "Criteria for matching traffic. A RouteMatch will be considered to match when all supplied fields match.", +"id": "GrpcRouteRouteMatch", +"properties": { +"headers": { +"description": "Optional. Specifies a collection of headers to match.", +"items": { +"$ref": "GrpcRouteHeaderMatch" +}, +"type": "array" +}, +"method": { +"$ref": "GrpcRouteMethodMatch", +"description": "Optional. A gRPC method to match against. If this field is empty or omitted, will match all methods." +} +}, +"type": "object" +}, +"GrpcRouteRouteRule": { +"description": "Describes how to route traffic.", +"id": "GrpcRouteRouteRule", +"properties": { +"action": { +"$ref": "GrpcRouteRouteAction", +"description": "Required. A detailed rule defining how to route traffic. This field is required." +}, +"matches": { +"description": "Optional. Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic.", +"items": { +"$ref": "GrpcRouteRouteMatch" +}, +"type": "array" +} +}, +"type": "object" +}, +"GrpcRouteStatefulSessionAffinityPolicy": { +"description": "The specification for cookie-based stateful session affinity where the date plane supplies a \u201csession cookie\u201d with the name \"GSSA\" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next.", +"id": "GrpcRouteStatefulSessionAffinityPolicy", +"properties": { +"cookieTtl": { +"description": "Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"HttpRoute": { +"description": "HttpRoute is the resource defining how HTTP traffic should be routed by a Mesh or Gateway resource.", +"id": "HttpRoute", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A free-text description of the resource. Max length 1024 characters.", +"type": "string" +}, +"gateways": { +"description": "Optional. Gateways defines a list of gateways this HttpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", +"items": { +"type": "string" +}, +"type": "array" +}, +"hostnames": { +"description": "Required. Hostnames define a set of hosts that should match against the HTTP host header to select a HttpRoute to process the request. Hostname is the fully qualified domain name of a network host, as defined by RFC 1123 with the exception that: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateways must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same Mesh (or Gateways under the same scope), it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the HttpRoute resource.", +"type": "object" +}, +"meshes": { +"description": "Optional. Meshes defines a list of meshes this HttpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Identifier. Name of the HttpRoute resource. It matches pattern `projects/*/locations/global/httpRoutes/http_route_name>`.", +"type": "string" +}, +"rules": { +"description": "Required. Rules that define how traffic is routed and handled. Rules will be matched sequentially based on the RouteMatch specified for the rule.", +"items": { +"$ref": "HttpRouteRouteRule" +}, +"type": "array" +}, +"selfLink": { +"description": "Output only. Server-defined URL of this resource", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"HttpRouteCorsPolicy": { +"description": "The Specification for allowing client side cross-origin requests.", +"id": "HttpRouteCorsPolicy", +"properties": { +"allowCredentials": { +"description": "In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This translates to the Access-Control-Allow-Credentials header. Default value is false.", +"type": "boolean" +}, +"allowHeaders": { +"description": "Specifies the content for Access-Control-Allow-Headers header.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowMethods": { +"description": "Specifies the content for Access-Control-Allow-Methods header.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowOriginRegexes": { +"description": "Specifies the regular expression patterns that match allowed origins. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowOrigins": { +"description": "Specifies the list of origins that will be allowed to do CORS requests. An origin is allowed if it matches either an item in allow_origins or an item in allow_origin_regexes.", +"items": { +"type": "string" +}, +"type": "array" +}, +"disabled": { +"description": "If true, the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.", +"type": "boolean" +}, +"exposeHeaders": { +"description": "Specifies the content for Access-Control-Expose-Headers header.", +"items": { +"type": "string" +}, +"type": "array" +}, +"maxAge": { +"description": "Specifies how long result of a preflight request can be cached in seconds. This translates to the Access-Control-Max-Age header.", +"type": "string" +} +}, +"type": "object" +}, +"HttpRouteDestination": { +"description": "Specifications of a destination to which the request should be routed to.", +"id": "HttpRouteDestination", +"properties": { +"requestHeaderModifier": { +"$ref": "HttpRouteHeaderModifier", +"description": "Optional. The specification for modifying the headers of a matching request prior to delivery of the request to the destination. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration." +}, +"responseHeaderModifier": { +"$ref": "HttpRouteHeaderModifier", +"description": "Optional. The specification for modifying the headers of a response prior to sending the response back to the client. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration." +}, +"serviceName": { +"description": "The URL of a BackendService to route traffic to.", +"type": "string" +}, +"weight": { +"description": "Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"HttpRouteFaultInjectionPolicy": { +"description": "The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced by client proxy on a percentage of requests before sending those requests to the destination service. Similarly requests can be aborted by client proxy for a percentage of requests.", +"id": "HttpRouteFaultInjectionPolicy", +"properties": { +"abort": { +"$ref": "HttpRouteFaultInjectionPolicyAbort", +"description": "The specification for aborting to client requests." +}, +"delay": { +"$ref": "HttpRouteFaultInjectionPolicyDelay", +"description": "The specification for injecting delay to client requests." +} +}, +"type": "object" +}, +"HttpRouteFaultInjectionPolicyAbort": { +"description": "Specification of how client requests are aborted as part of fault injection before being sent to a destination.", +"id": "HttpRouteFaultInjectionPolicyAbort", +"properties": { +"httpStatus": { +"description": "The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.", +"format": "int32", +"type": "integer" +}, +"percentage": { +"description": "The percentage of traffic which will be aborted. The value must be between [0, 100]", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"HttpRouteFaultInjectionPolicyDelay": { +"description": "Specification of how client requests are delayed as part of fault injection before being sent to a destination.", +"id": "HttpRouteFaultInjectionPolicyDelay", +"properties": { +"fixedDelay": { +"description": "Specify a fixed delay before forwarding the request.", +"format": "google-duration", +"type": "string" +}, +"percentage": { +"description": "The percentage of traffic on which delay will be injected. The value must be between [0, 100]", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"HttpRouteHeaderMatch": { +"description": "Specifies how to select a route rule based on HTTP request headers.", +"id": "HttpRouteHeaderMatch", +"properties": { +"exactMatch": { +"description": "The value of the header should match exactly the content of exact_match.", +"type": "string" +}, +"header": { +"description": "The name of the HTTP header to match against.", +"type": "string" +}, +"invertMatch": { +"description": "If specified, the match result will be inverted before checking. Default value is set to false.", +"type": "boolean" +}, +"prefixMatch": { +"description": "The value of the header must start with the contents of prefix_match.", +"type": "string" +}, +"presentMatch": { +"description": "A header with header_name must exist. The match takes place whether or not the header has a value.", +"type": "boolean" +}, +"rangeMatch": { +"$ref": "HttpRouteHeaderMatchIntegerRange", +"description": "If specified, the rule will match if the request header value is within the range." +}, +"regexMatch": { +"description": "The value of the header must match the regular expression specified in regex_match. For regular expression grammar, please see: https://github.com/google/re2/wiki/Syntax", +"type": "string" +}, +"suffixMatch": { +"description": "The value of the header must end with the contents of suffix_match.", +"type": "string" +} +}, +"type": "object" +}, +"HttpRouteHeaderMatchIntegerRange": { +"description": "Represents an integer value range.", +"id": "HttpRouteHeaderMatchIntegerRange", +"properties": { +"end": { +"description": "End of the range (exclusive)", +"format": "int32", +"type": "integer" +}, +"start": { +"description": "Start of the range (inclusive)", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"HttpRouteHeaderModifier": { +"description": "The specification for modifying HTTP header in HTTP request and HTTP response.", +"id": "HttpRouteHeaderModifier", +"properties": { +"add": { +"additionalProperties": { +"type": "string" +}, +"description": "Add the headers with given map where key is the name of the header, value is the value of the header.", +"type": "object" +}, +"remove": { +"description": "Remove headers (matching by header names) specified in the list.", +"items": { +"type": "string" +}, +"type": "array" +}, +"set": { +"additionalProperties": { +"type": "string" +}, +"description": "Completely overwrite/replace the headers with given map where key is the name of the header, value is the value of the header.", +"type": "object" +} +}, +"type": "object" +}, +"HttpRouteHttpDirectResponse": { +"description": "Static HTTP response object to be returned.", +"id": "HttpRouteHttpDirectResponse", +"properties": { +"bytesBody": { +"description": "Optional. Response body as bytes. Maximum body size is 4096B.", +"format": "byte", +"type": "string" +}, +"status": { +"description": "Required. Status to return as part of HTTP Response. Must be a positive integer.", +"format": "int32", +"type": "integer" +}, +"stringBody": { +"description": "Optional. Response body as a string. Maximum body length is 1024 characters.", +"type": "string" +} +}, +"type": "object" +}, +"HttpRouteQueryParameterMatch": { +"description": "Specifications to match a query parameter in the request.", +"id": "HttpRouteQueryParameterMatch", +"properties": { +"exactMatch": { +"description": "The value of the query parameter must exactly match the contents of exact_match. Only one of exact_match, regex_match, or present_match must be set.", +"type": "string" +}, +"presentMatch": { +"description": "Specifies that the QueryParameterMatcher matches if request contains query parameter, irrespective of whether the parameter has a value or not. Only one of exact_match, regex_match, or present_match must be set.", +"type": "boolean" +}, +"queryParameter": { +"description": "The name of the query parameter to match.", +"type": "string" +}, +"regexMatch": { +"description": "The value of the query parameter must match the regular expression specified by regex_match. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of exact_match, regex_match, or present_match must be set.", +"type": "string" +} +}, +"type": "object" +}, +"HttpRouteRedirect": { +"description": "The specification for redirecting traffic.", +"id": "HttpRouteRedirect", +"properties": { +"hostRedirect": { +"description": "The host that will be used in the redirect response instead of the one that was supplied in the request.", +"type": "string" +}, +"httpsRedirect": { +"description": "If set to true, the URL scheme in the redirected request is set to https. If set to false, the URL scheme of the redirected request will remain the same as that of the request. The default is set to false.", +"type": "boolean" +}, +"pathRedirect": { +"description": "The path that will be used in the redirect response instead of the one that was supplied in the request. path_redirect can not be supplied together with prefix_redirect. Supply one alone or neither. If neither is supplied, the path of the original request will be used for the redirect.", +"type": "string" +}, +"portRedirect": { +"description": "The port that will be used in the redirected request instead of the one that was supplied in the request.", +"format": "int32", +"type": "integer" +}, +"prefixRewrite": { +"description": "Indicates that during redirection, the matched prefix (or path) should be swapped with this value. This option allows URLs be dynamically created based on the request.", +"type": "string" +}, +"responseCode": { +"description": "The HTTP Status code to use for the redirect.", +"enum": [ +"RESPONSE_CODE_UNSPECIFIED", +"MOVED_PERMANENTLY_DEFAULT", +"FOUND", +"SEE_OTHER", +"TEMPORARY_REDIRECT", +"PERMANENT_REDIRECT" +], +"enumDescriptions": [ +"Default value", +"Corresponds to 301.", +"Corresponds to 302.", +"Corresponds to 303.", +"Corresponds to 307. In this case, the request method will be retained.", +"Corresponds to 308. In this case, the request method will be retained." +], +"type": "string" +}, +"stripQuery": { +"description": "if set to true, any accompanying query portion of the original URL is removed prior to redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false.", +"type": "boolean" +} +}, +"type": "object" +}, +"HttpRouteRequestMirrorPolicy": { +"description": "Specifies the policy on how requests are shadowed to a separate mirrored destination service. The proxy does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow.", +"id": "HttpRouteRequestMirrorPolicy", +"properties": { +"destination": { +"$ref": "HttpRouteDestination", +"description": "The destination the requests will be mirrored to. The weight of the destination will be ignored." +}, +"mirrorPercent": { +"description": "Optional. The percentage of requests to get mirrored to the desired destination.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"HttpRouteRetryPolicy": { +"description": "The specifications for retries.", +"id": "HttpRouteRetryPolicy", +"properties": { +"numRetries": { +"description": "Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.", +"format": "int32", +"type": "integer" +}, +"perTryTimeout": { +"description": "Specifies a non-zero timeout per retry attempt.", +"format": "google-duration", +"type": "string" +}, +"retryConditions": { +"description": "Specifies one or more conditions when this retry policy applies. Valid values are: 5xx: Proxy will attempt a retry if the destination service responds with any 5xx response code, of if the destination service does not respond at all, example: disconnect, reset, read timeout, connection failure and refused streams. gateway-error: Similar to 5xx, but only applies to response codes 502, 503, 504. reset: Proxy will attempt a retry if the destination service does not respond at all (disconnect/reset/read timeout) connect-failure: Proxy will retry on failures connecting to destination for example due to connection timeouts. retriable-4xx: Proxy will retry fro retriable 4xx response codes. Currently the only retriable error supported is 409. refused-stream: Proxy will retry if the destination resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"HttpRouteRouteAction": { +"description": "The specifications for routing traffic and applying associated policies.", +"id": "HttpRouteRouteAction", +"properties": { +"corsPolicy": { +"$ref": "HttpRouteCorsPolicy", +"description": "The specification for allowing client side cross-origin requests." +}, +"destinations": { +"description": "The destination to which traffic should be forwarded.", +"items": { +"$ref": "HttpRouteDestination" +}, +"type": "array" +}, +"directResponse": { +"$ref": "HttpRouteHttpDirectResponse", +"description": "Optional. Static HTTP Response object to be returned regardless of the request." +}, +"faultInjectionPolicy": { +"$ref": "HttpRouteFaultInjectionPolicy", +"description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy" +}, +"idleTimeout": { +"description": "Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.", +"format": "google-duration", +"type": "string" +}, +"redirect": { +"$ref": "HttpRouteRedirect", +"description": "If set, the request is directed as configured by this field." +}, +"requestHeaderModifier": { +"$ref": "HttpRouteHeaderModifier", +"description": "The specification for modifying the headers of a matching request prior to delivery of the request to the destination. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration." +}, +"requestMirrorPolicy": { +"$ref": "HttpRouteRequestMirrorPolicy", +"description": "Specifies the policy on how requests intended for the routes destination are shadowed to a separate mirrored destination. Proxy will not wait for the shadow destination to respond before returning the response. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow." +}, +"responseHeaderModifier": { +"$ref": "HttpRouteHeaderModifier", +"description": "The specification for modifying the headers of a response prior to sending the response back to the client. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration." +}, +"retryPolicy": { +"$ref": "HttpRouteRetryPolicy", +"description": "Specifies the retry policy associated with this route." +}, +"statefulSessionAffinity": { +"$ref": "HttpRouteStatefulSessionAffinityPolicy", +"description": "Optional. Specifies cookie-based stateful session affinity." +}, +"timeout": { +"description": "Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.", +"format": "google-duration", +"type": "string" +}, +"urlRewrite": { +"$ref": "HttpRouteURLRewrite", +"description": "The specification for rewrite URL before forwarding requests to the destination." +} +}, +"type": "object" +}, +"HttpRouteRouteMatch": { +"description": "RouteMatch defines specifications used to match requests. If multiple match types are set, this RouteMatch will match if ALL type of matches are matched.", +"id": "HttpRouteRouteMatch", +"properties": { +"fullPathMatch": { +"description": "The HTTP request path value should exactly match this value. Only one of full_path_match, prefix_match, or regex_match should be used.", +"type": "string" +}, +"headers": { +"description": "Specifies a list of HTTP request headers to match against. ALL of the supplied headers must be matched.", +"items": { +"$ref": "HttpRouteHeaderMatch" +}, +"type": "array" +}, +"ignoreCase": { +"description": "Specifies if prefix_match and full_path_match matches are case sensitive. The default value is false.", +"type": "boolean" +}, +"prefixMatch": { +"description": "The HTTP request path value must begin with specified prefix_match. prefix_match must begin with a /. Only one of full_path_match, prefix_match, or regex_match should be used.", +"type": "string" +}, +"queryParameters": { +"description": "Specifies a list of query parameters to match against. ALL of the query parameters must be matched.", +"items": { +"$ref": "HttpRouteQueryParameterMatch" +}, +"type": "array" +}, +"regexMatch": { +"description": "The HTTP request path value must satisfy the regular expression specified by regex_match after removing any query parameters and anchor supplied with the original URL. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of full_path_match, prefix_match, or regex_match should be used.", +"type": "string" +} +}, +"type": "object" +}, +"HttpRouteRouteRule": { +"description": "Specifies how to match traffic and how to route traffic when traffic is matched.", +"id": "HttpRouteRouteRule", +"properties": { +"action": { +"$ref": "HttpRouteRouteAction", +"description": "The detailed rule defining how to route matched traffic." +}, +"matches": { +"description": "A list of matches define conditions used for matching the rule against incoming HTTP requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic. If a default rule is desired to be configured, add a rule with no matches specified to the end of the rules list.", +"items": { +"$ref": "HttpRouteRouteMatch" +}, +"type": "array" +} +}, +"type": "object" +}, +"HttpRouteStatefulSessionAffinityPolicy": { +"description": "The specification for cookie-based stateful session affinity where the date plane supplies a \u201csession cookie\u201d with the name \"GSSA\" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next.", +"id": "HttpRouteStatefulSessionAffinityPolicy", +"properties": { +"cookieTtl": { +"description": "Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"HttpRouteURLRewrite": { +"description": "The specification for modifying the URL of the request, prior to forwarding the request to the destination.", +"id": "HttpRouteURLRewrite", +"properties": { +"hostRewrite": { +"description": "Prior to forwarding the request to the selected destination, the requests host header is replaced by this value.", +"type": "string" +}, +"pathPrefixRewrite": { +"description": "Prior to forwarding the request to the selected destination, the matching portion of the requests path is replaced by this value.", +"type": "string" +} +}, +"type": "object" +}, +"LbRouteExtension": { +"description": "`LbRouteExtension` is a resource that lets you control where traffic is routed to for a given request.", +"id": "LbRouteExtension", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A human-readable description of the resource.", +"type": "string" +}, +"extensionChains": { +"description": "Required. A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource.", +"items": { +"$ref": "ExtensionChain" +}, +"type": "array" +}, +"forwardingRules": { +"description": "Required. A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. There can be only one `LbRouteExtension` resource per forwarding rule.", +"items": { +"type": "string" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with the `LbRouteExtension` resource. The format must comply with [the requirements for labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) for Google Cloud resources.", +"type": "object" +}, +"loadBalancingScheme": { +"description": "Required. All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. Supported values: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).", +"enum": [ +"LOAD_BALANCING_SCHEME_UNSPECIFIED", +"INTERNAL_MANAGED", +"EXTERNAL_MANAGED" +], +"enumDescriptions": [ +"Default value. Do not use.", +"Signifies that this is used for Internal HTTP(S) Load Balancing.", +"Signifies that this is used for External Managed HTTP(S) Load Balancing." +], +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The metadata provided here is included as part of the `metadata_context` (of type `google.protobuf.Struct`) in the `ProcessingRequest` message sent to the extension server. The metadata is available under the namespace `com.google.lb_route_extension.`. The following variables are supported in the metadata Struct: `{forwarding_rule_id}` - substituted with the forwarding rule's fully qualified resource name. This field is not supported for plugin extensions. Setting it results in a validation error.", +"type": "object" +}, +"name": { +"description": "Required. Identifier. Name of the `LbRouteExtension` resource in the following format: `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"LbTrafficExtension": { +"description": "`LbTrafficExtension` is a resource that lets the extension service modify the headers and payloads of both requests and responses without impacting the choice of backend services or any other security policies associated with the backend service.", +"id": "LbTrafficExtension", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A human-readable description of the resource.", +"type": "string" +}, +"extensionChains": { +"description": "Required. A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource.", +"items": { +"$ref": "ExtensionChain" +}, +"type": "array" +}, +"forwardingRules": { +"description": "Optional. A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. There can be only one `LBTrafficExtension` resource per forwarding rule.", +"items": { +"type": "string" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with the `LbTrafficExtension` resource. The format must comply with [the requirements for labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) for Google Cloud resources.", +"type": "object" +}, +"loadBalancingScheme": { +"description": "Required. All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. Supported values: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).", +"enum": [ +"LOAD_BALANCING_SCHEME_UNSPECIFIED", +"INTERNAL_MANAGED", +"EXTERNAL_MANAGED" +], +"enumDescriptions": [ +"Default value. Do not use.", +"Signifies that this is used for Internal HTTP(S) Load Balancing.", +"Signifies that this is used for External Managed HTTP(S) Load Balancing." +], +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The metadata provided here is included in the `ProcessingRequest.metadata_context.filter_metadata` map field. The metadata is available under the key `com.google.lb_traffic_extension.`. The following variables are supported in the metadata: `{forwarding_rule_id}` - substituted with the forwarding rule's fully qualified resource name. This field is not supported for plugin extensions. Setting it results in a validation error.", +"type": "object" +}, +"name": { +"description": "Required. Identifier. Name of the `LbTrafficExtension` resource in the following format: `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListAuthzExtensionsResponse": { +"description": "Message for response to listing `AuthzExtension` resources.", +"id": "ListAuthzExtensionsResponse", +"properties": { +"authzExtensions": { +"description": "The list of `AuthzExtension` resources.", +"items": { +"$ref": "AuthzExtension" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results that the server returns.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListEndpointPoliciesResponse": { +"description": "Response returned by the ListEndpointPolicies method.", +"id": "ListEndpointPoliciesResponse", +"properties": { +"endpointPolicies": { +"description": "List of EndpointPolicy resources.", +"items": { +"$ref": "EndpointPolicy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +} +}, +"type": "object" +}, +"ListGatewayRouteViewsResponse": { +"description": "Response returned by the ListGatewayRouteViews method.", +"id": "ListGatewayRouteViewsResponse", +"properties": { +"gatewayRouteViews": { +"description": "List of GatewayRouteView resources.", +"items": { +"$ref": "GatewayRouteView" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListGatewaysResponse": { +"description": "Response returned by the ListGateways method.", +"id": "ListGatewaysResponse", +"properties": { +"gateways": { +"description": "List of Gateway resources.", +"items": { +"$ref": "Gateway" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListGrpcRoutesResponse": { +"description": "Response returned by the ListGrpcRoutes method.", +"id": "ListGrpcRoutesResponse", +"properties": { +"grpcRoutes": { +"description": "List of GrpcRoute resources.", +"items": { +"$ref": "GrpcRoute" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +} +}, +"type": "object" +}, +"ListHttpRoutesResponse": { +"description": "Response returned by the ListHttpRoutes method.", +"id": "ListHttpRoutesResponse", +"properties": { +"httpRoutes": { +"description": "List of HttpRoute resources.", +"items": { +"$ref": "HttpRoute" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +} +}, +"type": "object" +}, +"ListLbRouteExtensionsResponse": { +"description": "Message for response to listing `LbRouteExtension` resources.", +"id": "ListLbRouteExtensionsResponse", +"properties": { +"lbRouteExtensions": { +"description": "The list of `LbRouteExtension` resources.", +"items": { +"$ref": "LbRouteExtension" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results that the server returns.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLbTrafficExtensionsResponse": { +"description": "Message for response to listing `LbTrafficExtension` resources.", +"id": "ListLbTrafficExtensionsResponse", +"properties": { +"lbTrafficExtensions": { +"description": "The list of `LbTrafficExtension` resources.", +"items": { +"$ref": "LbTrafficExtension" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results that the server returns.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListMeshRouteViewsResponse": { +"description": "Response returned by the ListMeshRouteViews method.", +"id": "ListMeshRouteViewsResponse", +"properties": { +"meshRouteViews": { +"description": "List of MeshRouteView resources.", +"items": { +"$ref": "MeshRouteView" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListMeshesResponse": { +"description": "Response returned by the ListMeshes method.", +"id": "ListMeshesResponse", +"properties": { +"meshes": { +"description": "List of Mesh resources.", +"items": { +"$ref": "Mesh" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServiceBindingsResponse": { +"description": "Response returned by the ListServiceBindings method.", +"id": "ListServiceBindingsResponse", +"properties": { +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +}, +"serviceBindings": { +"description": "List of ServiceBinding resources.", +"items": { +"$ref": "ServiceBinding" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServiceLbPoliciesResponse": { +"description": "Response returned by the ListServiceLbPolicies method.", +"id": "ListServiceLbPoliciesResponse", +"properties": { +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +}, +"serviceLbPolicies": { +"description": "List of ServiceLbPolicy resources.", +"items": { +"$ref": "ServiceLbPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTcpRoutesResponse": { +"description": "Response returned by the ListTcpRoutes method.", +"id": "ListTcpRoutesResponse", +"properties": { +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +}, +"tcpRoutes": { +"description": "List of TcpRoute resources.", +"items": { +"$ref": "TcpRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTlsRoutesResponse": { +"description": "Response returned by the ListTlsRoutes method.", +"id": "ListTlsRoutesResponse", +"properties": { +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +}, +"tlsRoutes": { +"description": "List of TlsRoute resources.", +"items": { +"$ref": "TlsRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWasmPluginVersionsResponse": { +"description": "Response returned by the `ListWasmPluginVersions` method.", +"id": "ListWasmPluginVersionsResponse", +"properties": { +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +}, +"wasmPluginVersions": { +"description": "List of `WasmPluginVersion` resources.", +"items": { +"$ref": "WasmPluginVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWasmPluginsResponse": { +"description": "Response returned by the `ListWasmPlugins` method.", +"id": "ListWasmPluginsResponse", +"properties": { +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", +"type": "string" +}, +"wasmPlugins": { +"description": "List of `WasmPlugin` resources.", +"items": { +"$ref": "WasmPlugin" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"LoggingConfig": { +"description": "The configuration for Platform Telemetry logging for Eventarc Advanced resources.", +"id": "LoggingConfig", +"properties": { +"logSeverity": { +"description": "Optional. The minimum severity of logs that will be sent to Stackdriver/Platform Telemetry. Logs at severitiy \u2265 this value will be sent, unless it is NONE.", +"enum": [ +"LOG_SEVERITY_UNSPECIFIED", +"NONE", +"DEBUG", +"INFO", +"NOTICE", +"WARNING", +"ERROR", +"CRITICAL", +"ALERT", +"EMERGENCY" +], +"enumDescriptions": [ +"Log severity is not specified. This value is treated the same as NONE, but is used to distinguish between no update and update to NONE in update_masks.", +"Default value at resource creation, presence of this value must be treated as no logging/disable logging.", +"Debug or trace level logging.", +"Routine information, such as ongoing status or performance.", +"Normal but significant events, such as start up, shut down, or a configuration change.", +"Warning events might cause problems.", +"Error events are likely to cause problems.", +"Critical events cause more severe problems or outages.", +"A person must take action immediately.", +"One or more systems are unusable." +], +"type": "string" +} +}, +"type": "object" +}, +"Mesh": { +"description": "Mesh represents a logical configuration grouping for workload to workload communication within a service mesh. Routes that point to mesh dictate how requests are routed within this logical mesh boundary.", +"id": "Mesh", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A free-text description of the resource. Max length 1024 characters.", +"type": "string" +}, +"envoyHeaders": { +"description": "Optional. Determines if envoy will insert internal debug headers into upstream requests. Other Envoy headers may still be injected. By default, envoy will not insert any debug headers.", +"enum": [ +"ENVOY_HEADERS_UNSPECIFIED", +"NONE", +"DEBUG_HEADERS" +], +"enumDescriptions": [ +"Defaults to NONE.", +"Suppress envoy debug headers.", +"Envoy will insert default internal debug headers into upstream requests: x-envoy-attempt-count x-envoy-is-timeout-retry x-envoy-expected-rq-timeout-ms x-envoy-original-path x-envoy-upstream-stream-duration-ms" +], +"type": "string" +}, +"interceptionPort": { +"description": "Optional. If set to a valid TCP port (1-65535), instructs the SIDECAR proxy to listen on the specified port of localhost (127.0.0.1) address. The SIDECAR proxy will expect all traffic to be redirected to this port regardless of its actual ip:port destination. If unset, a port '15001' is used as the interception port. This is applicable only for sidecar proxy deployments.", +"format": "int32", +"type": "integer" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the Mesh resource.", +"type": "object" +}, +"name": { +"description": "Identifier. Name of the Mesh resource. It matches pattern `projects/*/locations/global/meshes/`.", +"type": "string" +}, +"selfLink": { +"description": "Output only. Server-defined URL of this resource", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MeshRouteView": { +"description": "MeshRouteView defines view-only resource for Routes to a Mesh", +"id": "MeshRouteView", +"properties": { +"name": { +"description": "Output only. Identifier. Full path name of the MeshRouteView resource. Format: projects/{project_number}/locations/{location}/meshes/{mesh_name}/routeViews/{route_view_name}", +"readOnly": true, +"type": "string" +}, +"routeId": { +"description": "Output only. The resource id for the route.", +"readOnly": true, +"type": "string" +}, +"routeLocation": { +"description": "Output only. Location where the route exists.", +"readOnly": true, +"type": "string" +}, +"routeProjectNumber": { +"description": "Output only. Project number where the route exists.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"routeType": { +"description": "Output only. Type of the route: HttpRoute,GrpcRoute,TcpRoute, or TlsRoute", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MetadataLabelMatcher": { +"description": "The matcher that is based on node metadata presented by xDS clients.", +"id": "MetadataLabelMatcher", +"properties": { +"metadataLabelMatchCriteria": { +"description": "Specifies how matching should be done. Supported values are: MATCH_ANY: At least one of the Labels specified in the matcher should match the metadata presented by xDS client. MATCH_ALL: The metadata presented by the xDS client should contain all of the labels specified here. The selection is determined based on the best match. For example, suppose there are three EndpointPolicy resources P1, P2 and P3 and if P1 has a the matcher as MATCH_ANY , P2 has MATCH_ALL , and P3 has MATCH_ALL . If a client with label connects, the config from P1 will be selected. If a client with label connects, the config from P2 will be selected. If a client with label connects, the config from P3 will be selected. If there is more than one best match, (for example, if a config P4 with selector exists and if a client with label connects), pick up the one with older creation time.", +"enum": [ +"METADATA_LABEL_MATCH_CRITERIA_UNSPECIFIED", +"MATCH_ANY", +"MATCH_ALL" +], +"enumDescriptions": [ +"Default value. Should not be used.", +"At least one of the Labels specified in the matcher should match the metadata presented by xDS client.", +"The metadata presented by the xDS client should contain all of the labels specified here." +], +"type": "string" +}, +"metadataLabels": { +"description": "The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list can have at most 64 entries. The list can be empty if the match criteria is MATCH_ANY, to specify a wildcard match (i.e this matches any client).", +"items": { +"$ref": "MetadataLabels" +}, +"type": "array" +} +}, +"type": "object" +}, +"MetadataLabels": { +"description": "Defines a name-pair value for a single label.", +"id": "MetadataLabels", +"properties": { +"labelName": { +"description": "Required. Label name presented as key in xDS Node Metadata.", +"type": "string" +}, +"labelValue": { +"description": "Required. Label value presented as value corresponding to the above key, in xDS Node Metadata.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RetryFilterPerRouteConfig": { +"id": "RetryFilterPerRouteConfig", +"properties": { +"cryptoKeyName": { +"description": "The name of the crypto key to use for encrypting event data.", +"type": "string" +} +}, +"type": "object" +}, +"ServiceBinding": { +"description": "ServiceBinding is the resource that defines a Service Directory Service to be used in a BackendService resource.", +"id": "ServiceBinding", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A free-text description of the resource. Max length 1024 characters.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the ServiceBinding resource.", +"type": "object" +}, +"name": { +"description": "Identifier. Name of the ServiceBinding resource. It matches pattern `projects/*/locations/global/serviceBindings/service_binding_name`.", +"type": "string" +}, +"service": { +"description": "Required. The full Service Directory Service name of the format projects/*/locations/*/namespaces/*/services/*", +"type": "string" +}, +"serviceId": { +"description": "Output only. The unique identifier of the Service Directory Service against which the Service Binding resource is validated. This is populated when the Service Binding resource is used in another resource (like Backend Service). This is of the UUID4 format.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ServiceLbPolicy": { +"description": "ServiceLbPolicy holds global load balancing and traffic distribution configuration that can be applied to a BackendService.", +"id": "ServiceLbPolicy", +"properties": { +"autoCapacityDrain": { +"$ref": "ServiceLbPolicyAutoCapacityDrain", +"description": "Optional. Configuration to automatically move traffic away for unhealthy IG/NEG for the associated Backend Service." +}, +"createTime": { +"description": "Output only. The timestamp when this resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A free-text description of the resource. Max length 1024 characters.", +"type": "string" +}, +"failoverConfig": { +"$ref": "ServiceLbPolicyFailoverConfig", +"description": "Optional. Configuration related to health based failover." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the ServiceLbPolicy resource.", +"type": "object" +}, +"loadBalancingAlgorithm": { +"description": "Optional. The type of load balancing algorithm to be used. The default behavior is WATERFALL_BY_REGION.", +"enum": [ +"LOAD_BALANCING_ALGORITHM_UNSPECIFIED", +"SPRAY_TO_WORLD", +"SPRAY_TO_REGION", +"WATERFALL_BY_REGION", +"WATERFALL_BY_ZONE" +], +"enumDescriptions": [ +"The type of the loadbalancing algorithm is unspecified.", +"Balance traffic across all backends across the world proportionally based on capacity.", +"Direct traffic to the nearest region with endpoints and capacity before spilling over to other regions and spread the traffic from each client to all the MIGs/NEGs in a region.", +"Direct traffic to the nearest region with endpoints and capacity before spilling over to other regions. All MIGs/NEGs within a region are evenly loaded but each client might not spread the traffic to all the MIGs/NEGs in the region.", +"Attempt to keep traffic in a single zone closest to the client, before spilling over to other zones." +], +"type": "string" +}, +"name": { +"description": "Identifier. Name of the ServiceLbPolicy resource. It matches pattern `projects/{project}/locations/{location}/serviceLbPolicies/{service_lb_policy_name}`.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when this resource was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ServiceLbPolicyAutoCapacityDrain": { +"description": "Option to specify if an unhealthy IG/NEG should be considered for global load balancing and traffic routing.", +"id": "ServiceLbPolicyAutoCapacityDrain", +"properties": { +"enable": { +"description": "Optional. If set to 'True', an unhealthy IG/NEG will be set as drained. - An IG/NEG is considered unhealthy if less than 25% of the instances/endpoints in the IG/NEG are healthy. - This option will never result in draining more than 50% of the configured IGs/NEGs for the Backend Service.", +"type": "boolean" +} +}, +"type": "object" +}, +"ServiceLbPolicyFailoverConfig": { +"description": "Option to specify health based failover behavior. This is not related to Network load balancer FailoverPolicy.", +"id": "ServiceLbPolicyFailoverConfig", +"properties": { +"failoverHealthThreshold": { +"description": "Optional. The percentage threshold that a load balancer will begin to send traffic to failover backends. If the percentage of endpoints in a MIG/NEG is smaller than this value, traffic would be sent to failover backends if possible. This field should be set to a value between 1 and 99. The default value is 50 for Global external HTTP(S) load balancer (classic) and Proxyless service mesh, and 70 for others.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TcpRoute": { +"description": "TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/Gateway resource.", +"id": "TcpRoute", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A free-text description of the resource. Max length 1024 characters.", +"type": "string" +}, +"gateways": { +"description": "Optional. Gateways defines a list of gateways this TcpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", +"items": { +"type": "string" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the TcpRoute resource.", +"type": "object" +}, +"meshes": { +"description": "Optional. Meshes defines a list of meshes this TcpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Identifier. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name>`.", +"type": "string" +}, +"rules": { +"description": "Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.", +"items": { +"$ref": "TcpRouteRouteRule" +}, +"type": "array" +}, +"selfLink": { +"description": "Output only. Server-defined URL of this resource", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TcpRouteRouteAction": { +"description": "The specifications for routing traffic and applying associated policies.", +"id": "TcpRouteRouteAction", +"properties": { +"destinations": { +"description": "Optional. The destination services to which traffic should be forwarded. At least one destination service is required. Only one of route destination or original destination can be set.", +"items": { +"$ref": "TcpRouteRouteDestination" +}, +"type": "array" +}, +"idleTimeout": { +"description": "Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.", +"format": "google-duration", +"type": "string" +}, +"originalDestination": { +"description": "Optional. If true, Router will use the destination IP and port of the original connection as the destination of the request. Default is false. Only one of route destinations or original destination can be set.", +"type": "boolean" +} +}, +"type": "object" +}, +"TcpRouteRouteDestination": { +"description": "Describe the destination for traffic to be routed to.", +"id": "TcpRouteRouteDestination", +"properties": { +"serviceName": { +"description": "Required. The URL of a BackendService to route traffic to.", +"type": "string" +}, +"weight": { +"description": "Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TcpRouteRouteMatch": { +"description": "RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"OR\"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.", +"id": "TcpRouteRouteMatch", +"properties": { +"address": { +"description": "Required. Must be specified in the CIDR range format. A CIDR range consists of an IP Address and a prefix length to construct the subnet mask. By default, the prefix length is 32 (i.e. matches a single IP address). Only IPV4 addresses are supported. Examples: \"10.0.0.1\" - matches against this exact IP address. \"10.0.0.0/8\" - matches against any IP address within the 10.0.0.0 subnet and 255.255.255.0 mask. \"0.0.0.0/0\" - matches against any IP address'.", +"type": "string" +}, +"port": { +"description": "Required. Specifies the destination port to match against.", +"type": "string" +} +}, +"type": "object" +}, +"TcpRouteRouteRule": { +"description": "Specifies how to match traffic and how to route traffic when traffic is matched.", +"id": "TcpRouteRouteRule", +"properties": { +"action": { +"$ref": "TcpRouteRouteAction", +"description": "Required. The detailed rule defining how to route matched traffic." +}, +"matches": { +"description": "Optional. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"OR\"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.", +"items": { +"$ref": "TcpRouteRouteMatch" +}, +"type": "array" +} +}, +"type": "object" +}, +"TlsRoute": { +"description": "TlsRoute defines how traffic should be routed based on SNI and other matching L3 attributes.", +"id": "TlsRoute", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A free-text description of the resource. Max length 1024 characters.", +"type": "string" +}, +"gateways": { +"description": "Optional. Gateways defines a list of gateways this TlsRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", +"items": { +"type": "string" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of label tags associated with the TlsRoute resource.", +"type": "object" +}, +"meshes": { +"description": "Optional. Meshes defines a list of meshes this TlsRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Identifier. Name of the TlsRoute resource. It matches pattern `projects/*/locations/global/tlsRoutes/tls_route_name>`.", +"type": "string" +}, +"rules": { +"description": "Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.", +"items": { +"$ref": "TlsRouteRouteRule" +}, +"type": "array" +}, +"selfLink": { +"description": "Output only. Server-defined URL of this resource", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TlsRouteRouteAction": { +"description": "The specifications for routing traffic and applying associated policies.", +"id": "TlsRouteRouteAction", +"properties": { +"destinations": { +"description": "Required. The destination services to which traffic should be forwarded. At least one destination service is required.", +"items": { +"$ref": "TlsRouteRouteDestination" +}, +"type": "array" +}, +"idleTimeout": { +"description": "Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"TlsRouteRouteDestination": { +"description": "Describe the destination for traffic to be routed to.", +"id": "TlsRouteRouteDestination", +"properties": { +"serviceName": { +"description": "Required. The URL of a BackendService to route traffic to.", +"type": "string" +}, +"weight": { +"description": "Optional. Specifies the proportion of requests forwareded to the backend referenced by the service_name field. This is computed as: - weight/Sum(weights in destinations) Weights in all destinations does not need to sum up to 100.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TlsRouteRouteMatch": { +"description": "RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"AND\"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.", +"id": "TlsRouteRouteMatch", +"properties": { +"alpn": { +"description": "Optional. ALPN (Application-Layer Protocol Negotiation) to match against. Examples: \"http/1.1\", \"h2\". At least one of sni_host and alpn is required. Up to 5 alpns across all matches can be set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sniHost": { +"description": "Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. `www.example.com` will be first matched against `www.example.com`, then `*.example.com`, then `*.com.` Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 100 sni hosts across all matches can be set.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TlsRouteRouteRule": { +"description": "Specifies how to match traffic and how to route traffic when traffic is matched.", +"id": "TlsRouteRouteRule", +"properties": { +"action": { +"$ref": "TlsRouteRouteAction", +"description": "Required. The detailed rule defining how to route matched traffic." +}, +"matches": { +"description": "Required. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"OR\"ed for evaluation.", +"items": { +"$ref": "TlsRouteRouteMatch" +}, +"type": "array" +} +}, +"type": "object" +}, +"TrafficPortSelector": { +"description": "Specification of a port-based selector.", +"id": "TrafficPortSelector", +"properties": { +"ports": { +"description": "Optional. A list of ports. Can be port numbers or port range (example, [80-90] specifies all ports from 80 to 90, including 80 and 90) or named ports or * to specify all ports. If the list is empty, all ports are selected.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"WasmPlugin": { +"description": "`WasmPlugin` is a resource representing a service executing a customer-provided Wasm module.", +"id": "WasmPlugin", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A human-readable description of the resource.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with the `WasmPlugin` resource. The format must comply with [the following requirements](/compute/docs/labeling-resources#requirements).", +"type": "object" +}, +"logConfig": { +"$ref": "WasmPluginLogConfig", +"description": "Optional. Specifies the logging options for the activity performed by this plugin. If logging is enabled, plugin logs are exported to Cloud Logging. Note that the settings relate to the logs generated by using logging statements in your Wasm code." +}, +"mainVersionId": { +"description": "Optional. The ID of the `WasmPluginVersion` resource that is the currently serving one. The version referred to must be a child of this `WasmPlugin` resource.", +"type": "string" +}, +"name": { +"description": "Identifier. Name of the `WasmPlugin` resource in the following format: `projects/{project}/locations/{location}/wasmPlugins/{wasm_plugin}`.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"usedBy": { +"description": "Output only. List of all [extensions](https://cloud.google.com/service-extensions/docs/overview) that use this `WasmPlugin` resource.", +"items": { +"$ref": "WasmPluginUsedBy" +}, +"readOnly": true, +"type": "array" +}, +"versions": { +"additionalProperties": { +"$ref": "WasmPluginVersionDetails" +}, +"description": "Optional. All versions of this `WasmPlugin` resource in the key-value format. The key is the resource ID, and the value is the `VersionDetails` object. Lets you create or update a `WasmPlugin` resource and its versions in a single request. When the `main_version_id` field is not empty, it must point to one of the `VersionDetails` objects in the map. If provided in a `PATCH` request, the new versions replace the previous set. Any version omitted from the `versions` field is removed. Because the `WasmPluginVersion` resource is immutable, if a `WasmPluginVersion` resource with the same name already exists and differs, the request fails. Note: In a `GET` request, this field is populated only if the field `GetWasmPluginRequest.view` is set to `WASM_PLUGIN_VIEW_FULL`.", +"type": "object" +} +}, +"type": "object" +}, +"WasmPluginLogConfig": { +"description": "Specifies the logging options for the activity performed by this plugin. If logging is enabled, plugin logs are exported to Cloud Logging.", +"id": "WasmPluginLogConfig", +"properties": { +"enable": { +"description": "Optional. Specifies whether to enable logging for activity by this plugin. Defaults to `false`.", +"type": "boolean" +}, +"minLogLevel": { +"description": "Non-empty default. Specificies the lowest level of the plugin logs that are exported to Cloud Logging. This setting relates to the logs generated by using logging statements in your Wasm code. This field is can be set only if logging is enabled for the plugin. If the field is not provided when logging is enabled, it is set to `INFO` by default.", +"enum": [ +"LOG_LEVEL_UNSPECIFIED", +"TRACE", +"DEBUG", +"INFO", +"WARN", +"ERROR", +"CRITICAL" +], +"enumDescriptions": [ +"Unspecified value. Defaults to `LogLevel.INFO`.", +"Report logs with TRACE level and above.", +"Report logs with DEBUG level and above.", +"Report logs with INFO level and above.", +"Report logs with WARN level and above.", +"Report logs with ERROR level and above.", +"Report logs with CRITICAL level only." +], +"type": "string" +}, +"sampleRate": { +"description": "Non-empty default. Configures the sampling rate of activity logs, where `1.0` means all logged activity is reported and `0.0` means no activity is reported. A floating point value between `0.0` and `1.0` indicates that a percentage of log messages is stored. The default value when logging is enabled is `1.0`. The value of the field must be between `0` and `1` (inclusive). This field can be specified only if logging is enabled for this plugin.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"WasmPluginUsedBy": { +"description": "Defines a resource that uses the `WasmPlugin` resource.", +"id": "WasmPluginUsedBy", +"properties": { +"name": { +"description": "Output only. Full name of the resource https://google.aip.dev/122#full-resource-names, for example `//networkservices.googleapis.com/projects/{project}/locations/{location}/lbRouteExtensions/{extension}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WasmPluginVersion": { +"description": "A single immutable version of a `WasmPlugin` resource. Defines the Wasm module used and optionally its runtime config.", +"id": "WasmPluginVersion", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A human-readable description of the resource.", +"type": "string" +}, +"imageDigest": { +"description": "Output only. The resolved digest for the image specified in the `image` field. The digest is resolved during the creation of `WasmPluginVersion` resource. This field holds the digest value, regardless of whether a tag or digest was originally specified in the `image` field.", +"readOnly": true, +"type": "string" +}, +"imageUri": { +"description": "Optional. URI of the container image containing the plugin, stored in the Artifact Registry. When a new `WasmPluginVersion` resource is created, the digest of the container image is saved in the `image_digest` field. When downloading an image, the digest value is used instead of an image tag.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with the `WasmPluginVersion` resource.", +"type": "object" +}, +"name": { +"description": "Identifier. Name of the `WasmPluginVersion` resource in the following format: `projects/{project}/locations/{location}/wasmPlugins/{wasm_plugin}/ versions/{wasm_plugin_version}`.", +"type": "string" +}, +"pluginConfigData": { +"description": "Configuration for the plugin. The configuration is provided to the plugin at runtime through the `ON_CONFIGURE` callback. When a new `WasmPluginVersion` resource is created, the digest of the contents is saved in the `plugin_config_digest` field.", +"format": "byte", +"type": "string" +}, +"pluginConfigDigest": { +"description": "Output only. This field holds the digest (usually checksum) value for the plugin configuration. The value is calculated based on the contents of `plugin_config_data` or the container image defined by the `plugin_config_uri` field.", +"readOnly": true, +"type": "string" +}, +"pluginConfigUri": { +"description": "URI of the plugin configuration stored in the Artifact Registry. The configuration is provided to the plugin at runtime through the `ON_CONFIGURE` callback. The container image must contain only a single file with the name `plugin.config`. When a new `WasmPluginVersion` resource is created, the digest of the container image is saved in the `plugin_config_digest` field.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WasmPluginVersionDetails": { +"description": "Details of a `WasmPluginVersion` resource to be inlined in the `WasmPlugin` resource.", +"id": "WasmPluginVersionDetails", +"properties": { +"createTime": { +"description": "Output only. The timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A human-readable description of the resource.", +"type": "string" +}, +"imageDigest": { +"description": "Output only. The resolved digest for the image specified in `image`. The digest is resolved during the creation of a `WasmPluginVersion` resource. This field holds the digest value regardless of whether a tag or digest was originally specified in the `image` field.", +"readOnly": true, +"type": "string" +}, +"imageUri": { +"description": "Optional. URI of the container image containing the Wasm module, stored in the Artifact Registry. The container image must contain only a single file with the name `plugin.wasm`. When a new `WasmPluginVersion` resource is created, the URI gets resolved to an image digest and saved in the `image_digest` field.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with the `WasmPluginVersion` resource.", +"type": "object" +}, +"pluginConfigData": { +"description": "Configuration for the plugin. The configuration is provided to the plugin at runtime through the `ON_CONFIGURE` callback. When a new `WasmPluginVersion` version is created, the digest of the contents is saved in the `plugin_config_digest` field.", +"format": "byte", +"type": "string" +}, +"pluginConfigDigest": { +"description": "Output only. This field holds the digest (usually checksum) value for the plugin configuration. The value is calculated based on the contents of the `plugin_config_data` field or the container image defined by the `plugin_config_uri` field.", +"readOnly": true, +"type": "string" +}, +"pluginConfigUri": { +"description": "URI of the plugin configuration stored in the Artifact Registry. The configuration is provided to the plugin at runtime through the `ON_CONFIGURE` callback. The container image must contain only a single file with the name `plugin.config`. When a new `WasmPluginVersion` resource is created, the digest of the container image is saved in the `plugin_config_digest` field.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp when the resource was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Network Services API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/osconfig.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/osconfig.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..c497981e82ff389ba8ec10a20a554e30181e89f3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/osconfig.v1.json @@ -0,0 +1,3928 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://osconfig.googleapis.com/", +"batchPath": "batch", +"canonicalName": "OS Config", +"description": "OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/compute/docs/osconfig/rest", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "osconfig:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://osconfig.mtls.googleapis.com/", +"name": "osconfig", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"global": { +"methods": { +"getProjectFeatureSettings": { +"description": "GetProjectFeatureSettings returns the VM Manager feature settings for a project.", +"flatPath": "v1/projects/{projectsId}/locations/global/projectFeatureSettings", +"httpMethod": "GET", +"id": "osconfig.projects.locations.global.getProjectFeatureSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name specifies the URL for the ProjectFeatureSettings resource: projects/project_id/locations/global/projectFeatureSettings.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/projectFeatureSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ProjectFeatureSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateProjectFeatureSettings": { +"description": "UpdateProjectFeatureSettings sets the VM Manager features for a project.", +"flatPath": "v1/projects/{projectsId}/locations/global/projectFeatureSettings", +"httpMethod": "PATCH", +"id": "osconfig.projects.locations.global.updateProjectFeatureSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Immutable. Name specifies the URL for the ProjectFeatureSettings resource: projects/project_id/locations/global/projectFeatureSettings.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/projectFeatureSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask that controls which fields of the ProjectFeatureSettings should be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ProjectFeatureSettings" +}, +"response": { +"$ref": "ProjectFeatureSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"instances": { +"resources": { +"inventories": { +"methods": { +"get": { +"description": "Get inventory data for the specified VM instance. If the VM has no associated inventory, the message `NOT_FOUND` is returned.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/inventory", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.inventories.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API resource name for inventory resource. Format: `projects/{project}/locations/{location}/instances/{instance}/inventory` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance}`, either Compute Engine `instance-id` or `instance-name` can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/inventory$", +"required": true, +"type": "string" +}, +"view": { +"description": "Inventory view indicating what information should be included in the inventory resource. If unspecified, the default view is BASIC.", +"enum": [ +"INVENTORY_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default value. The API defaults to the BASIC view.", +"Returns the basic inventory information that includes `os_info`.", +"Returns all fields." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Inventory" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List inventory data for all VM instances in the specified zone.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/inventories", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.inventories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "If provided, this field specifies the criteria that must be met by a `Inventory` API resource to be included in the response.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListInventories` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: `projects/{project}/locations/{location}/instances/-` For `{project}`, either `project-number` or `project-id` can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Inventory view indicating what information should be included in the inventory resource. If unspecified, the default view is BASIC.", +"enum": [ +"INVENTORY_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default value. The API defaults to the BASIC view.", +"Returns the basic inventory information that includes `os_info`.", +"Returns all fields." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/inventories", +"response": { +"$ref": "ListInventoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"osPolicyAssignments": { +"resources": { +"reports": { +"methods": { +"get": { +"description": "Get the OS policy assignment report for the specified Compute Engine VM instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/osPolicyAssignments/{osPolicyAssignmentsId}/report", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.osPolicyAssignments.reports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API resource name for OS policy assignment report. Format: `/projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/{assignment}/report` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance_id}`, either Compute Engine `instance-id` or `instance-name` can be provided. For `{assignment_id}`, the OSPolicyAssignment id must be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/osPolicyAssignments/[^/]+/report$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "OSPolicyAssignmentReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List OS policy assignment reports for all Compute Engine VM instances in the specified zone.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/osPolicyAssignments/{osPolicyAssignmentsId}/reports", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.osPolicyAssignments.reports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "If provided, this field specifies the criteria that must be met by the `OSPolicyAssignmentReport` API resource that is included in the response.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to the `ListOSPolicyAssignmentReports` method that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: `projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/{assignment}/reports` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance}`, either `instance-name`, `instance-id`, or `-` can be provided. If '-' is provided, the response will include OSPolicyAssignmentReports for all instances in the project/location. For `{assignment}`, either `assignment-id` or `-` can be provided. If '-' is provided, the response will include OSPolicyAssignmentReports for all OSPolicyAssignments in the project/location. Either {instance} or {assignment} must be `-`. For example: `projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/-/reports` returns all reports for the instance `projects/{project}/locations/{location}/instances/-/osPolicyAssignments/{assignment-id}/reports` returns all the reports for the given assignment across all instances. `projects/{project}/locations/{location}/instances/-/osPolicyAssignments/-/reports` returns all the reports for all assignments across all instances.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/reports", +"response": { +"$ref": "ListOSPolicyAssignmentReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"vulnerabilityReports": { +"methods": { +"get": { +"description": "Gets the vulnerability report for the specified VM instance. Only VMs with inventory data have vulnerability reports associated with them.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/vulnerabilityReport", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.vulnerabilityReports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API resource name for vulnerability resource. Format: `projects/{project}/locations/{location}/instances/{instance}/vulnerabilityReport` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance}`, either Compute Engine `instance-id` or `instance-name` can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/vulnerabilityReport$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "VulnerabilityReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List vulnerability reports for all VM instances in the specified zone.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/vulnerabilityReports", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.vulnerabilityReports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "This field supports filtering by the severity level for the vulnerability. For a list of severity levels, see [Severity levels for vulnerabilities](https://cloud.google.com/container-analysis/docs/container-scanning-overview#severity_levels_for_vulnerabilities). The filter field follows the rules described in the [AIP-160](https://google.aip.dev/160) guidelines as follows: + **Filter for a specific severity type**: you can list reports that contain vulnerabilities that are classified as medium by specifying `vulnerabilities.details.severity:MEDIUM`. + **Filter for a range of severities** : you can list reports that have vulnerabilities that are classified as critical or high by specifying `vulnerabilities.details.severity:HIGH OR vulnerabilities.details.severity:CRITICAL`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListVulnerabilityReports` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: `projects/{project}/locations/{location}/instances/-` For `{project}`, either `project-number` or `project-id` can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/vulnerabilityReports", +"response": { +"$ref": "ListVulnerabilityReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"osPolicyAssignments": { +"methods": { +"create": { +"description": "Create an OS policy assignment. This method also creates the first revision of the OS policy assignment. This method returns a long running operation (LRO) that contains the rollout details. The rollout can be cancelled by cancelling the LRO. For more information, see [Method: projects.locations.osPolicyAssignments.operations.cancel](https://cloud.google.com/compute/docs/osconfig/rest/v1/projects.locations.osPolicyAssignments.operations/cancel).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments", +"httpMethod": "POST", +"id": "osconfig.projects.locations.osPolicyAssignments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"osPolicyAssignmentId": { +"description": "Required. The logical name of the OS policy assignment in the project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the project.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name in the form: projects/{project}/locations/{location}. Note: Specify the zone of your VMs as the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique identifier for this request. Restricted to 36 ASCII characters. A random UUID is recommended. This request is only idempotent if a `request_id` is provided.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/osPolicyAssignments", +"request": { +"$ref": "OSPolicyAssignment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete the OS policy assignment. This method creates a new revision of the OS policy assignment. This method returns a long running operation (LRO) that contains the rollout details. The rollout can be cancelled by cancelling the LRO. If the LRO completes and is not cancelled, all revisions associated with the OS policy assignment are deleted. For more information, see [Method: projects.locations.osPolicyAssignments.operations.cancel](https://cloud.google.com/compute/docs/osconfig/rest/v1/projects.locations.osPolicyAssignments.operations/cancel).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}", +"httpMethod": "DELETE", +"id": "osconfig.projects.locations.osPolicyAssignments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OS policy assignment to be deleted", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique identifier for this request. Restricted to 36 ASCII characters. A random UUID is recommended. This request is only idempotent if a `request_id` is provided.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve an existing OS policy assignment. This method always returns the latest revision. In order to retrieve a previous revision of the assignment, also provide the revision ID in the `name` parameter.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}", +"httpMethod": "GET", +"id": "osconfig.projects.locations.osPolicyAssignments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of OS policy assignment. Format: `projects/{project}/locations/{location}/osPolicyAssignments/{os_policy_assignment}@{revisionId}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "OSPolicyAssignment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List the OS policy assignments under the parent resource. For each OS policy assignment, the latest revision is returned.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments", +"httpMethod": "GET", +"id": "osconfig.projects.locations.osPolicyAssignments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of assignments to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListOSPolicyAssignments` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/osPolicyAssignments", +"response": { +"$ref": "ListOSPolicyAssignmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listRevisions": { +"description": "List the OS policy assignment revisions for a given OS policy assignment.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}:listRevisions", +"httpMethod": "GET", +"id": "osconfig.projects.locations.osPolicyAssignments.listRevisions", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OS policy assignment to list revisions for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of revisions to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListOSPolicyAssignmentRevisions` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:listRevisions", +"response": { +"$ref": "ListOSPolicyAssignmentRevisionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an existing OS policy assignment. This method creates a new revision of the OS policy assignment. This method returns a long running operation (LRO) that contains the rollout details. The rollout can be cancelled by cancelling the LRO. For more information, see [Method: projects.locations.osPolicyAssignments.operations.cancel](https://cloud.google.com/compute/docs/osconfig/rest/v1/projects.locations.osPolicyAssignments.operations/cancel).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}", +"httpMethod": "PATCH", +"id": "osconfig.projects.locations.osPolicyAssignments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, and the OS policy assignment is not found, a new OS policy assignment will be created. In this situation, `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Resource name. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id}` This field is ignored when you create an OS policy assignment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique identifier for this request. Restricted to 36 ASCII characters. A random UUID is recommended. This request is only idempotent if a `request_id` is provided.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask that controls which fields of the assignment should be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "OSPolicyAssignment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "osconfig.projects.locations.osPolicyAssignments.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "osconfig.projects.locations.osPolicyAssignments.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"patchDeployments": { +"methods": { +"create": { +"description": "Create an OS Config patch deployment.", +"flatPath": "v1/projects/{projectsId}/patchDeployments", +"httpMethod": "POST", +"id": "osconfig.projects.patchDeployments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project to apply this patch deployment to in the form `projects/*`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"patchDeploymentId": { +"description": "Required. A name for the patch deployment in the project. When creating a name the following rules apply: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the project.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/patchDeployments", +"request": { +"$ref": "PatchDeployment" +}, +"response": { +"$ref": "PatchDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete an OS Config patch deployment.", +"flatPath": "v1/projects/{projectsId}/patchDeployments/{patchDeploymentsId}", +"httpMethod": "DELETE", +"id": "osconfig.projects.patchDeployments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the patch deployment in the form `projects/*/patchDeployments/*`.", +"location": "path", +"pattern": "^projects/[^/]+/patchDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get an OS Config patch deployment.", +"flatPath": "v1/projects/{projectsId}/patchDeployments/{patchDeploymentsId}", +"httpMethod": "GET", +"id": "osconfig.projects.patchDeployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the patch deployment in the form `projects/*/patchDeployments/*`.", +"location": "path", +"pattern": "^projects/[^/]+/patchDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PatchDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Get a page of OS Config patch deployments.", +"flatPath": "v1/projects/{projectsId}/patchDeployments", +"httpMethod": "GET", +"id": "osconfig.projects.patchDeployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of patch deployments to return. Default is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous call to ListPatchDeployments that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent in the form `projects/*`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/patchDeployments", +"response": { +"$ref": "ListPatchDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an OS Config patch deployment.", +"flatPath": "v1/projects/{projectsId}/patchDeployments/{patchDeploymentsId}", +"httpMethod": "PATCH", +"id": "osconfig.projects.patchDeployments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Unique name for the patch deployment resource in a project. The patch deployment name is in the form: `projects/{project_id}/patchDeployments/{patch_deployment_id}`. This field is ignored when you create a new patch deployment.", +"location": "path", +"pattern": "^projects/[^/]+/patchDeployments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask that controls which fields of the patch deployment should be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "PatchDeployment" +}, +"response": { +"$ref": "PatchDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"pause": { +"description": "Change state of patch deployment to \"PAUSED\". Patch deployment in paused state doesn't generate patch jobs.", +"flatPath": "v1/projects/{projectsId}/patchDeployments/{patchDeploymentsId}:pause", +"httpMethod": "POST", +"id": "osconfig.projects.patchDeployments.pause", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the patch deployment in the form `projects/*/patchDeployments/*`.", +"location": "path", +"pattern": "^projects/[^/]+/patchDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:pause", +"request": { +"$ref": "PausePatchDeploymentRequest" +}, +"response": { +"$ref": "PatchDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resume": { +"description": "Change state of patch deployment back to \"ACTIVE\". Patch deployment in active state continues to generate patch jobs.", +"flatPath": "v1/projects/{projectsId}/patchDeployments/{patchDeploymentsId}:resume", +"httpMethod": "POST", +"id": "osconfig.projects.patchDeployments.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the patch deployment in the form `projects/*/patchDeployments/*`.", +"location": "path", +"pattern": "^projects/[^/]+/patchDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:resume", +"request": { +"$ref": "ResumePatchDeploymentRequest" +}, +"response": { +"$ref": "PatchDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"patchJobs": { +"methods": { +"cancel": { +"description": "Cancel a patch job. The patch job must be active. Canceled patch jobs cannot be restarted.", +"flatPath": "v1/projects/{projectsId}/patchJobs/{patchJobsId}:cancel", +"httpMethod": "POST", +"id": "osconfig.projects.patchJobs.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the patch in the form `projects/*/patchJobs/*`", +"location": "path", +"pattern": "^projects/[^/]+/patchJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelPatchJobRequest" +}, +"response": { +"$ref": "PatchJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"execute": { +"description": "Patch VM instances by creating and running a patch job.", +"flatPath": "v1/projects/{projectsId}/patchJobs:execute", +"httpMethod": "POST", +"id": "osconfig.projects.patchJobs.execute", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project in which to run this patch in the form `projects/*`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/patchJobs:execute", +"request": { +"$ref": "ExecutePatchJobRequest" +}, +"response": { +"$ref": "PatchJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get the patch job. This can be used to track the progress of an ongoing patch job or review the details of completed jobs.", +"flatPath": "v1/projects/{projectsId}/patchJobs/{patchJobsId}", +"httpMethod": "GET", +"id": "osconfig.projects.patchJobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the patch in the form `projects/*/patchJobs/*`", +"location": "path", +"pattern": "^projects/[^/]+/patchJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PatchJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Get a list of patch jobs.", +"flatPath": "v1/projects/{projectsId}/patchJobs", +"httpMethod": "GET", +"id": "osconfig.projects.patchJobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "If provided, this field specifies the criteria that must be met by patch jobs to be included in the response. Currently, filtering is only available on the patch_deployment field.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of instance status to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. In the form of `projects/*`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/patchJobs", +"response": { +"$ref": "ListPatchJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"instanceDetails": { +"methods": { +"list": { +"description": "Get a list of instance details for a given patch job.", +"flatPath": "v1/projects/{projectsId}/patchJobs/{patchJobsId}/instanceDetails", +"httpMethod": "GET", +"id": "osconfig.projects.patchJobs.instanceDetails.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters results listed in the response. This field supports filtering results by instance zone, name, state, or `failure_reason`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of instance details records to return. Default is 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent for the instances are in the form of `projects/*/patchJobs/*`.", +"location": "path", +"pattern": "^projects/[^/]+/patchJobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instanceDetails", +"response": { +"$ref": "ListPatchJobInstanceDetailsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241201", +"rootUrl": "https://osconfig.googleapis.com/", +"schemas": { +"AptSettings": { +"description": "Apt patching is completed by executing `apt-get update && apt-get upgrade`. Additional options can be set to control how this is executed.", +"id": "AptSettings", +"properties": { +"excludes": { +"description": "List of packages to exclude from update. These packages will be excluded", +"items": { +"type": "string" +}, +"type": "array" +}, +"exclusivePackages": { +"description": "An exclusive list of packages to be updated. These are the only packages that will be updated. If these packages are not installed, they will be ignored. This field cannot be specified with any other patch configuration fields.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "By changing the type to DIST, the patching is performed using `apt-get dist-upgrade` instead.", +"enum": [ +"TYPE_UNSPECIFIED", +"DIST", +"UPGRADE" +], +"enumDescriptions": [ +"By default, upgrade will be performed.", +"Runs `apt-get dist-upgrade`.", +"Runs `apt-get upgrade`." +], +"type": "string" +} +}, +"type": "object" +}, +"CVSSv3": { +"description": "Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document", +"id": "CVSSv3", +"properties": { +"attackComplexity": { +"description": "This metric describes the conditions beyond the attacker's control that must exist in order to exploit the vulnerability.", +"enum": [ +"ATTACK_COMPLEXITY_UNSPECIFIED", +"ATTACK_COMPLEXITY_LOW", +"ATTACK_COMPLEXITY_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"Specialized access conditions or extenuating circumstances do not exist. An attacker can expect repeatable success when attacking the vulnerable component.", +"A successful attack depends on conditions beyond the attacker's control. That is, a successful attack cannot be accomplished at will, but requires the attacker to invest in some measurable amount of effort in preparation or execution against the vulnerable component before a successful attack can be expected." +], +"type": "string" +}, +"attackVector": { +"description": "This metric reflects the context by which vulnerability exploitation is possible.", +"enum": [ +"ATTACK_VECTOR_UNSPECIFIED", +"ATTACK_VECTOR_NETWORK", +"ATTACK_VECTOR_ADJACENT", +"ATTACK_VECTOR_LOCAL", +"ATTACK_VECTOR_PHYSICAL" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable component is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet.", +"The vulnerable component is bound to the network stack, but the attack is limited at the protocol level to a logically adjacent topology.", +"The vulnerable component is not bound to the network stack and the attacker's path is via read/write/execute capabilities.", +"The attack requires the attacker to physically touch or manipulate the vulnerable component." +], +"type": "string" +}, +"availabilityImpact": { +"description": "This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"baseScore": { +"description": "The base score is a function of the base metric scores. https://www.first.org/cvss/specification-document#Base-Metrics", +"format": "float", +"type": "number" +}, +"confidentialityImpact": { +"description": "This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"exploitabilityScore": { +"description": "The Exploitability sub-score equation is derived from the Base Exploitability metrics. https://www.first.org/cvss/specification-document#2-1-Exploitability-Metrics", +"format": "float", +"type": "number" +}, +"impactScore": { +"description": "The Impact sub-score equation is derived from the Base Impact metrics.", +"format": "float", +"type": "number" +}, +"integrityImpact": { +"description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"privilegesRequired": { +"description": "This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.", +"enum": [ +"PRIVILEGES_REQUIRED_UNSPECIFIED", +"PRIVILEGES_REQUIRED_NONE", +"PRIVILEGES_REQUIRED_LOW", +"PRIVILEGES_REQUIRED_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"The attacker is unauthorized prior to attack, and therefore does not require any access to settings or files of the vulnerable system to carry out an attack.", +"The attacker requires privileges that provide basic user capabilities that could normally affect only settings and files owned by a user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources.", +"The attacker requires privileges that provide significant (e.g., administrative) control over the vulnerable component allowing access to component-wide settings and files." +], +"type": "string" +}, +"scope": { +"description": "The Scope metric captures whether a vulnerability in one vulnerable component impacts resources in components beyond its security scope.", +"enum": [ +"SCOPE_UNSPECIFIED", +"SCOPE_UNCHANGED", +"SCOPE_CHANGED" +], +"enumDescriptions": [ +"Invalid value.", +"An exploited vulnerability can only affect resources managed by the same security authority.", +"An exploited vulnerability can affect resources beyond the security scope managed by the security authority of the vulnerable component." +], +"type": "string" +}, +"userInteraction": { +"description": "This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable component.", +"enum": [ +"USER_INTERACTION_UNSPECIFIED", +"USER_INTERACTION_NONE", +"USER_INTERACTION_REQUIRED" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable system can be exploited without interaction from any user.", +"Successful exploitation of this vulnerability requires a user to take some action before the vulnerability can be exploited." +], +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CancelPatchJobRequest": { +"description": "Message for canceling a patch job.", +"id": "CancelPatchJobRequest", +"properties": {}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"ExecStep": { +"description": "A step that runs an executable for a PatchJob.", +"id": "ExecStep", +"properties": { +"linuxExecStepConfig": { +"$ref": "ExecStepConfig", +"description": "The ExecStepConfig for all Linux VMs targeted by the PatchJob." +}, +"windowsExecStepConfig": { +"$ref": "ExecStepConfig", +"description": "The ExecStepConfig for all Windows VMs targeted by the PatchJob." +} +}, +"type": "object" +}, +"ExecStepConfig": { +"description": "Common configurations for an ExecStep.", +"id": "ExecStepConfig", +"properties": { +"allowedSuccessCodes": { +"description": "Defaults to [0]. A list of possible return values that the execution can return to indicate a success.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"gcsObject": { +"$ref": "GcsObject", +"description": "A Cloud Storage object containing the executable." +}, +"interpreter": { +"description": "The script interpreter to use to run the script. If no interpreter is specified the script will be executed directly, which will likely only succeed for scripts with [shebang lines] (https://en.wikipedia.org/wiki/Shebang_\\(Unix\\)).", +"enum": [ +"INTERPRETER_UNSPECIFIED", +"NONE", +"SHELL", +"POWERSHELL" +], +"enumDescriptions": [ +"If the interpreter is not specified, the value defaults to `NONE`.", +"Indicates that the file is run as follows on each operating system: + For Linux VMs, the file is ran as an executable and the interpreter might be parsed from the [shebang line](https://wikipedia.org/wiki/Shebang_(Unix)) of the file. + For Windows VM, this value is not supported.", +"Indicates that the file is run with `/bin/sh` on Linux and `cmd` on Windows.", +"Indicates that the file is run with PowerShell." +], +"type": "string" +}, +"localPath": { +"description": "An absolute path to the executable on the VM.", +"type": "string" +} +}, +"type": "object" +}, +"ExecutePatchJobRequest": { +"description": "A request message to initiate patching across Compute Engine instances.", +"id": "ExecutePatchJobRequest", +"properties": { +"description": { +"description": "Description of the patch job. Length of the description is limited to 1024 characters.", +"type": "string" +}, +"displayName": { +"description": "Display name for this patch job. This does not have to be unique.", +"type": "string" +}, +"dryRun": { +"description": "If this patch is a dry-run only, instances are contacted but will do nothing.", +"type": "boolean" +}, +"duration": { +"description": "Duration of the patch job. After the duration ends, the patch job times out.", +"format": "google-duration", +"type": "string" +}, +"instanceFilter": { +"$ref": "PatchInstanceFilter", +"description": "Required. Instances to patch, either explicitly or filtered by some criteria such as zone or labels." +}, +"patchConfig": { +"$ref": "PatchConfig", +"description": "Patch configuration being applied. If omitted, instances are patched using the default configurations." +}, +"rollout": { +"$ref": "PatchRollout", +"description": "Rollout strategy of the patch job." +} +}, +"type": "object" +}, +"FixedOrPercent": { +"description": "Message encapsulating a value that can be either absolute (\"fixed\") or relative (\"percent\") to a value.", +"id": "FixedOrPercent", +"properties": { +"fixed": { +"description": "Specifies a fixed value.", +"format": "int32", +"type": "integer" +}, +"percent": { +"description": "Specifies the relative value defined as a percentage, which will be multiplied by a reference value.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GcsObject": { +"description": "Cloud Storage object representation.", +"id": "GcsObject", +"properties": { +"bucket": { +"description": "Required. Bucket of the Cloud Storage object.", +"type": "string" +}, +"generationNumber": { +"description": "Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Required. Name of the Cloud Storage object.", +"type": "string" +} +}, +"type": "object" +}, +"GooSettings": { +"description": "Googet patching is performed by running `googet update`.", +"id": "GooSettings", +"properties": {}, +"type": "object" +}, +"GoogleCloudOsconfigV1__OSPolicyAssignmentOperationMetadata": { +"description": "OS policy assignment operation metadata provided by OS policy assignment API methods that return long running operations.", +"id": "GoogleCloudOsconfigV1__OSPolicyAssignmentOperationMetadata", +"properties": { +"apiMethod": { +"description": "The OS policy assignment API method.", +"enum": [ +"API_METHOD_UNSPECIFIED", +"CREATE", +"UPDATE", +"DELETE" +], +"enumDescriptions": [ +"Invalid value", +"Create OS policy assignment API method", +"Update OS policy assignment API method", +"Delete OS policy assignment API method" +], +"type": "string" +}, +"osPolicyAssignment": { +"description": "Reference to the `OSPolicyAssignment` API resource. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id}`", +"type": "string" +}, +"rolloutStartTime": { +"description": "Rollout start time", +"format": "google-datetime", +"type": "string" +}, +"rolloutState": { +"description": "State of the rollout", +"enum": [ +"ROLLOUT_STATE_UNSPECIFIED", +"IN_PROGRESS", +"CANCELLING", +"CANCELLED", +"SUCCEEDED" +], +"enumDescriptions": [ +"Invalid value", +"The rollout is in progress.", +"The rollout is being cancelled.", +"The rollout is cancelled.", +"The rollout has completed successfully." +], +"type": "string" +}, +"rolloutUpdateTime": { +"description": "Rollout update time", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudOsconfigV2beta__OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudOsconfigV2beta__OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Inventory": { +"description": "This API resource represents the available inventory data for a Compute Engine virtual machine (VM) instance at a given point in time. You can use this API resource to determine the inventory data of your VM. For more information, see [Information provided by OS inventory management](https://cloud.google.com/compute/docs/instances/os-inventory-management#data-collected).", +"id": "Inventory", +"properties": { +"items": { +"additionalProperties": { +"$ref": "InventoryItem" +}, +"description": "Inventory items related to the VM keyed by an opaque unique identifier for each inventory item. The identifier is unique to each distinct and addressable inventory item and will change, when there is a new package version.", +"type": "object" +}, +"name": { +"description": "Output only. The `Inventory` API resource name. Format: `projects/{project_number}/locations/{location}/instances/{instance_id}/inventory`", +"readOnly": true, +"type": "string" +}, +"osInfo": { +"$ref": "InventoryOsInfo", +"description": "Base level operating system information for the VM." +}, +"updateTime": { +"description": "Output only. Timestamp of the last reported inventory for the VM.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InventoryItem": { +"description": "A single piece of inventory on a VM.", +"id": "InventoryItem", +"properties": { +"availablePackage": { +"$ref": "InventorySoftwarePackage", +"description": "Software package available to be installed on the VM instance." +}, +"createTime": { +"description": "When this inventory item was first detected.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "Identifier for this item, unique across items for this VM.", +"type": "string" +}, +"installedPackage": { +"$ref": "InventorySoftwarePackage", +"description": "Software package present on the VM instance." +}, +"originType": { +"description": "The origin of this inventory item.", +"enum": [ +"ORIGIN_TYPE_UNSPECIFIED", +"INVENTORY_REPORT" +], +"enumDescriptions": [ +"Invalid. An origin type must be specified.", +"This inventory item was discovered as the result of the agent reporting inventory via the reporting API." +], +"type": "string" +}, +"type": { +"description": "The specific type of inventory, correlating to its specific details.", +"enum": [ +"TYPE_UNSPECIFIED", +"INSTALLED_PACKAGE", +"AVAILABLE_PACKAGE" +], +"enumDescriptions": [ +"Invalid. A type must be specified.", +"This represents a package that is installed on the VM.", +"This represents an update that is available for a package." +], +"type": "string" +}, +"updateTime": { +"description": "When this inventory item was last modified.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"InventoryOsInfo": { +"description": "Operating system information for the VM.", +"id": "InventoryOsInfo", +"properties": { +"architecture": { +"description": "The system architecture of the operating system.", +"type": "string" +}, +"hostname": { +"description": "The VM hostname.", +"type": "string" +}, +"kernelRelease": { +"description": "The kernel release of the operating system.", +"type": "string" +}, +"kernelVersion": { +"description": "The kernel version of the operating system.", +"type": "string" +}, +"longName": { +"description": "The operating system long name. For example 'Debian GNU/Linux 9' or 'Microsoft Window Server 2019 Datacenter'.", +"type": "string" +}, +"osconfigAgentVersion": { +"description": "The current version of the OS Config agent running on the VM.", +"type": "string" +}, +"shortName": { +"description": "The operating system short name. For example, 'windows' or 'debian'.", +"type": "string" +}, +"version": { +"description": "The version of the operating system.", +"type": "string" +} +}, +"type": "object" +}, +"InventorySoftwarePackage": { +"description": "Software package information of the operating system.", +"id": "InventorySoftwarePackage", +"properties": { +"aptPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Details of an APT package. For details about the apt package manager, see https://wiki.debian.org/Apt." +}, +"cosPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Details of a COS package." +}, +"googetPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Details of a Googet package. For details about the googet package manager, see https://github.com/google/googet." +}, +"qfePackage": { +"$ref": "InventoryWindowsQuickFixEngineeringPackage", +"description": "Details of a Windows Quick Fix engineering package. See https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering for info in Windows Quick Fix Engineering." +}, +"windowsApplication": { +"$ref": "InventoryWindowsApplication", +"description": "Details of Windows Application." +}, +"wuaPackage": { +"$ref": "InventoryWindowsUpdatePackage", +"description": "Details of a Windows Update package. See https://docs.microsoft.com/en-us/windows/win32/api/_wua/ for information about Windows Update." +}, +"yumPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Yum package info. For details about the yum package manager, see https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/ch-yum." +}, +"zypperPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Details of a Zypper package. For details about the Zypper package manager, see https://en.opensuse.org/SDB:Zypper_manual." +}, +"zypperPatch": { +"$ref": "InventoryZypperPatch", +"description": "Details of a Zypper patch. For details about the Zypper package manager, see https://en.opensuse.org/SDB:Zypper_manual." +} +}, +"type": "object" +}, +"InventoryVersionedPackage": { +"description": "Information related to the a standard versioned package. This includes package info for APT, Yum, Zypper, and Googet package managers.", +"id": "InventoryVersionedPackage", +"properties": { +"architecture": { +"description": "The system architecture this package is intended for.", +"type": "string" +}, +"packageName": { +"description": "The name of the package.", +"type": "string" +}, +"version": { +"description": "The version of the package.", +"type": "string" +} +}, +"type": "object" +}, +"InventoryWindowsApplication": { +"description": "Contains information about a Windows application that is retrieved from the Windows Registry. For more information about these fields, see: https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key", +"id": "InventoryWindowsApplication", +"properties": { +"displayName": { +"description": "The name of the application or product.", +"type": "string" +}, +"displayVersion": { +"description": "The version of the product or application in string format.", +"type": "string" +}, +"helpLink": { +"description": "The internet address for technical support.", +"type": "string" +}, +"installDate": { +"$ref": "Date", +"description": "The last time this product received service. The value of this property is replaced each time a patch is applied or removed from the product or the command-line option is used to repair the product." +}, +"publisher": { +"description": "The name of the manufacturer for the product or application.", +"type": "string" +} +}, +"type": "object" +}, +"InventoryWindowsQuickFixEngineeringPackage": { +"description": "Information related to a Quick Fix Engineering package. Fields are taken from Windows QuickFixEngineering Interface and match the source names: https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering", +"id": "InventoryWindowsQuickFixEngineeringPackage", +"properties": { +"caption": { +"description": "A short textual description of the QFE update.", +"type": "string" +}, +"description": { +"description": "A textual description of the QFE update.", +"type": "string" +}, +"hotFixId": { +"description": "Unique identifier associated with a particular QFE update.", +"type": "string" +}, +"installTime": { +"description": "Date that the QFE update was installed. Mapped from installed_on field.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"InventoryWindowsUpdatePackage": { +"description": "Details related to a Windows Update package. Field data and names are taken from Windows Update API IUpdate Interface: https://docs.microsoft.com/en-us/windows/win32/api/_wua/ Descriptive fields like title, and description are localized based on the locale of the VM being updated.", +"id": "InventoryWindowsUpdatePackage", +"properties": { +"categories": { +"description": "The categories that are associated with this update package.", +"items": { +"$ref": "InventoryWindowsUpdatePackageWindowsUpdateCategory" +}, +"type": "array" +}, +"description": { +"description": "The localized description of the update package.", +"type": "string" +}, +"kbArticleIds": { +"description": "A collection of Microsoft Knowledge Base article IDs that are associated with the update package.", +"items": { +"type": "string" +}, +"type": "array" +}, +"lastDeploymentChangeTime": { +"description": "The last published date of the update, in (UTC) date and time.", +"format": "google-datetime", +"type": "string" +}, +"moreInfoUrls": { +"description": "A collection of URLs that provide more information about the update package.", +"items": { +"type": "string" +}, +"type": "array" +}, +"revisionNumber": { +"description": "The revision number of this update package.", +"format": "int32", +"type": "integer" +}, +"supportUrl": { +"description": "A hyperlink to the language-specific support information for the update.", +"type": "string" +}, +"title": { +"description": "The localized title of the update package.", +"type": "string" +}, +"updateId": { +"description": "Gets the identifier of an update package. Stays the same across revisions.", +"type": "string" +} +}, +"type": "object" +}, +"InventoryWindowsUpdatePackageWindowsUpdateCategory": { +"description": "Categories specified by the Windows Update.", +"id": "InventoryWindowsUpdatePackageWindowsUpdateCategory", +"properties": { +"id": { +"description": "The identifier of the windows update category.", +"type": "string" +}, +"name": { +"description": "The name of the windows update category.", +"type": "string" +} +}, +"type": "object" +}, +"InventoryZypperPatch": { +"description": "Details related to a Zypper Patch.", +"id": "InventoryZypperPatch", +"properties": { +"category": { +"description": "The category of the patch.", +"type": "string" +}, +"patchName": { +"description": "The name of the patch.", +"type": "string" +}, +"severity": { +"description": "The severity specified for this patch", +"type": "string" +}, +"summary": { +"description": "Any summary information provided about this patch.", +"type": "string" +} +}, +"type": "object" +}, +"ListInventoriesResponse": { +"description": "A response message for listing inventory data for all VMs in a specified location.", +"id": "ListInventoriesResponse", +"properties": { +"inventories": { +"description": "List of inventory objects.", +"items": { +"$ref": "Inventory" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token to retrieve the next page of inventory objects.", +"type": "string" +} +}, +"type": "object" +}, +"ListOSPolicyAssignmentReportsResponse": { +"description": "A response message for listing OS Policy assignment reports including the page of results and page token.", +"id": "ListOSPolicyAssignmentReportsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of OS policy assignment report objects.", +"type": "string" +}, +"osPolicyAssignmentReports": { +"description": "List of OS policy assignment reports.", +"items": { +"$ref": "OSPolicyAssignmentReport" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOSPolicyAssignmentRevisionsResponse": { +"description": "A response message for listing all revisions for a OS policy assignment.", +"id": "ListOSPolicyAssignmentRevisionsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of OS policy assignment revisions.", +"type": "string" +}, +"osPolicyAssignments": { +"description": "The OS policy assignment revisions", +"items": { +"$ref": "OSPolicyAssignment" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOSPolicyAssignmentsResponse": { +"description": "A response message for listing all assignments under given parent.", +"id": "ListOSPolicyAssignmentsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of OS policy assignments.", +"type": "string" +}, +"osPolicyAssignments": { +"description": "The list of assignments", +"items": { +"$ref": "OSPolicyAssignment" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPatchDeploymentsResponse": { +"description": "A response message for listing patch deployments.", +"id": "ListPatchDeploymentsResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token that can be used to get the next page of patch deployments.", +"type": "string" +}, +"patchDeployments": { +"description": "The list of patch deployments.", +"items": { +"$ref": "PatchDeployment" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPatchJobInstanceDetailsResponse": { +"description": "A response message for listing the instances details for a patch job.", +"id": "ListPatchJobInstanceDetailsResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token that can be used to get the next page of results.", +"type": "string" +}, +"patchJobInstanceDetails": { +"description": "A list of instance status.", +"items": { +"$ref": "PatchJobInstanceDetails" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPatchJobsResponse": { +"description": "A response message for listing patch jobs.", +"id": "ListPatchJobsResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token that can be used to get the next page of results.", +"type": "string" +}, +"patchJobs": { +"description": "The list of patch jobs.", +"items": { +"$ref": "PatchJob" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVulnerabilityReportsResponse": { +"description": "A response message for listing vulnerability reports for all VM instances in the specified location.", +"id": "ListVulnerabilityReportsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of vulnerabilityReports object.", +"type": "string" +}, +"vulnerabilityReports": { +"description": "List of vulnerabilityReport objects.", +"items": { +"$ref": "VulnerabilityReport" +}, +"type": "array" +} +}, +"type": "object" +}, +"MonthlySchedule": { +"description": "Represents a monthly schedule. An example of a valid monthly schedule is \"on the third Tuesday of the month\" or \"on the 15th of the month\".", +"id": "MonthlySchedule", +"properties": { +"monthDay": { +"description": "Required. One day of the month. 1-31 indicates the 1st to the 31st day. -1 indicates the last day of the month. Months without the target day will be skipped. For example, a schedule to run \"every month on the 31st\" will not run in February, April, June, etc.", +"format": "int32", +"type": "integer" +}, +"weekDayOfMonth": { +"$ref": "WeekDayOfMonth", +"description": "Required. Week day in a month." +} +}, +"type": "object" +}, +"OSPolicy": { +"description": "An OS policy defines the desired state configuration for a VM.", +"id": "OSPolicy", +"properties": { +"allowNoResourceGroupMatch": { +"description": "This flag determines the OS policy compliance status when none of the resource groups within the policy are applicable for a VM. Set this value to `true` if the policy needs to be reported as compliant even if the policy has nothing to validate or enforce.", +"type": "boolean" +}, +"description": { +"description": "Policy description. Length of the description is limited to 1024 characters.", +"type": "string" +}, +"id": { +"description": "Required. The id of the OS policy with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the assignment.", +"type": "string" +}, +"mode": { +"description": "Required. Policy mode", +"enum": [ +"MODE_UNSPECIFIED", +"VALIDATION", +"ENFORCEMENT" +], +"enumDescriptions": [ +"Invalid mode", +"This mode checks if the configuration resources in the policy are in their desired state. No actions are performed if they are not in the desired state. This mode is used for reporting purposes.", +"This mode checks if the configuration resources in the policy are in their desired state, and if not, enforces the desired state." +], +"type": "string" +}, +"resourceGroups": { +"description": "Required. List of resource groups for the policy. For a particular VM, resource groups are evaluated in the order specified and the first resource group that is applicable is selected and the rest are ignored. If none of the resource groups are applicable for a VM, the VM is considered to be non-compliant w.r.t this policy. This behavior can be toggled by the flag `allow_no_resource_group_match`", +"items": { +"$ref": "OSPolicyResourceGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"OSPolicyAssignment": { +"description": "OS policy assignment is an API resource that is used to apply a set of OS policies to a dynamically targeted group of Compute Engine VM instances. An OS policy is used to define the desired state configuration for a Compute Engine VM instance through a set of configuration resources that provide capabilities such as installing or removing software packages, or executing a script. For more information about the OS policy resource definitions and examples, see [OS policy and OS policy assignment](https://cloud.google.com/compute/docs/os-configuration-management/working-with-os-policies).", +"id": "OSPolicyAssignment", +"properties": { +"baseline": { +"description": "Output only. Indicates that this revision has been successfully rolled out in this zone and new VMs will be assigned OS policies from this revision. For a given OS policy assignment, there is only one revision with a value of `true` for this field.", +"readOnly": true, +"type": "boolean" +}, +"deleted": { +"description": "Output only. Indicates that this revision deletes the OS policy assignment.", +"readOnly": true, +"type": "boolean" +}, +"description": { +"description": "OS policy assignment description. Length of the description is limited to 1024 characters.", +"type": "string" +}, +"etag": { +"description": "The etag for this OS policy assignment. If this is provided on update, it must match the server's etag.", +"type": "string" +}, +"instanceFilter": { +"$ref": "OSPolicyAssignmentInstanceFilter", +"description": "Required. Filter to select VMs." +}, +"name": { +"description": "Resource name. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id}` This field is ignored when you create an OS policy assignment.", +"type": "string" +}, +"osPolicies": { +"description": "Required. List of OS policies to be applied to the VMs.", +"items": { +"$ref": "OSPolicy" +}, +"type": "array" +}, +"reconciling": { +"description": "Output only. Indicates that reconciliation is in progress for the revision. This value is `true` when the `rollout_state` is one of: * IN_PROGRESS * CANCELLING", +"readOnly": true, +"type": "boolean" +}, +"revisionCreateTime": { +"description": "Output only. The timestamp that the revision was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"revisionId": { +"description": "Output only. The assignment revision ID A new revision is committed whenever a rollout is triggered for a OS policy assignment", +"readOnly": true, +"type": "string" +}, +"rollout": { +"$ref": "OSPolicyAssignmentRollout", +"description": "Required. Rollout to deploy the OS policy assignment. A rollout is triggered in the following situations: 1) OSPolicyAssignment is created. 2) OSPolicyAssignment is updated and the update contains changes to one of the following fields: - instance_filter - os_policies 3) OSPolicyAssignment is deleted." +}, +"rolloutState": { +"description": "Output only. OS policy assignment rollout state", +"enum": [ +"ROLLOUT_STATE_UNSPECIFIED", +"IN_PROGRESS", +"CANCELLING", +"CANCELLED", +"SUCCEEDED" +], +"enumDescriptions": [ +"Invalid value", +"The rollout is in progress.", +"The rollout is being cancelled.", +"The rollout is cancelled.", +"The rollout has completed successfully." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. Server generated unique id for the OS policy assignment resource.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentInstanceFilter": { +"description": "Filters to select target VMs for an assignment. If more than one filter criteria is specified below, a VM will be selected if and only if it satisfies all of them.", +"id": "OSPolicyAssignmentInstanceFilter", +"properties": { +"all": { +"description": "Target all VMs in the project. If true, no other criteria is permitted.", +"type": "boolean" +}, +"exclusionLabels": { +"description": "List of label sets used for VM exclusion. If the list has more than one label set, the VM is excluded if any of the label sets are applicable for the VM.", +"items": { +"$ref": "OSPolicyAssignmentLabelSet" +}, +"type": "array" +}, +"inclusionLabels": { +"description": "List of label sets used for VM inclusion. If the list has more than one `LabelSet`, the VM is included if any of the label sets are applicable for the VM.", +"items": { +"$ref": "OSPolicyAssignmentLabelSet" +}, +"type": "array" +}, +"inventories": { +"description": "List of inventories to select VMs. A VM is selected if its inventory data matches at least one of the following inventories.", +"items": { +"$ref": "OSPolicyAssignmentInstanceFilterInventory" +}, +"type": "array" +} +}, +"type": "object" +}, +"OSPolicyAssignmentInstanceFilterInventory": { +"description": "VM inventory details.", +"id": "OSPolicyAssignmentInstanceFilterInventory", +"properties": { +"osShortName": { +"description": "Required. The OS short name", +"type": "string" +}, +"osVersion": { +"description": "The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentLabelSet": { +"description": "Message representing label set. * A label is a key value pair set for a VM. * A LabelSet is a set of labels. * Labels within a LabelSet are ANDed. In other words, a LabelSet is applicable for a VM only if it matches all the labels in the LabelSet. * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will only be applicable for those VMs with both labels present.", +"id": "OSPolicyAssignmentLabelSet", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels are identified by key/value pairs in this map. A VM should contain all the key/value pairs specified in this map to be selected.", +"type": "object" +} +}, +"type": "object" +}, +"OSPolicyAssignmentOperationMetadata": { +"description": "OS policy assignment operation metadata provided by OS policy assignment API methods that return long running operations.", +"id": "OSPolicyAssignmentOperationMetadata", +"properties": { +"apiMethod": { +"description": "The OS policy assignment API method.", +"enum": [ +"API_METHOD_UNSPECIFIED", +"CREATE", +"UPDATE", +"DELETE" +], +"enumDescriptions": [ +"Invalid value", +"Create OS policy assignment API method", +"Update OS policy assignment API method", +"Delete OS policy assignment API method" +], +"type": "string" +}, +"osPolicyAssignment": { +"description": "Reference to the `OSPolicyAssignment` API resource. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id}`", +"type": "string" +}, +"rolloutStartTime": { +"description": "Rollout start time", +"format": "google-datetime", +"type": "string" +}, +"rolloutState": { +"description": "State of the rollout", +"enum": [ +"ROLLOUT_STATE_UNSPECIFIED", +"IN_PROGRESS", +"CANCELLING", +"CANCELLED", +"SUCCEEDED" +], +"enumDescriptions": [ +"Invalid value", +"The rollout is in progress.", +"The rollout is being cancelled.", +"The rollout is cancelled.", +"The rollout has completed successfully." +], +"type": "string" +}, +"rolloutUpdateTime": { +"description": "Rollout update time", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReport": { +"description": "A report of the OS policy assignment status for a given instance.", +"id": "OSPolicyAssignmentReport", +"properties": { +"instance": { +"description": "The Compute Engine VM instance name.", +"type": "string" +}, +"lastRunId": { +"description": "Unique identifier of the last attempted run to apply the OS policies associated with this assignment on the VM. This ID is logged by the OS Config agent while applying the OS policies associated with this assignment on the VM. NOTE: If the service is unable to successfully connect to the agent for this run, then this id will not be available in the agent logs.", +"type": "string" +}, +"name": { +"description": "The `OSPolicyAssignmentReport` API resource name. Format: `projects/{project_number}/locations/{location}/instances/{instance_id}/osPolicyAssignments/{os_policy_assignment_id}/report`", +"type": "string" +}, +"osPolicyAssignment": { +"description": "Reference to the `OSPolicyAssignment` API resource that the `OSPolicy` belongs to. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id}`", +"type": "string" +}, +"osPolicyCompliances": { +"description": "Compliance data for each `OSPolicy` that is applied to the VM.", +"items": { +"$ref": "OSPolicyAssignmentReportOSPolicyCompliance" +}, +"type": "array" +}, +"updateTime": { +"description": "Timestamp for when the report was last generated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReportOSPolicyCompliance": { +"description": "Compliance data for an OS policy", +"id": "OSPolicyAssignmentReportOSPolicyCompliance", +"properties": { +"complianceState": { +"description": "The compliance state of the OS policy.", +"enum": [ +"UNKNOWN", +"COMPLIANT", +"NON_COMPLIANT" +], +"enumDescriptions": [ +"The policy is in an unknown compliance state. Refer to the field `compliance_state_reason` to learn the exact reason for the policy to be in this compliance state.", +"Policy is compliant. The policy is compliant if all the underlying resources are also compliant.", +"Policy is non-compliant. The policy is non-compliant if one or more underlying resources are non-compliant." +], +"type": "string" +}, +"complianceStateReason": { +"description": "The reason for the OS policy to be in an unknown compliance state. This field is always populated when `compliance_state` is `UNKNOWN`. If populated, the field can contain one of the following values: * `vm-not-running`: The VM was not running. * `os-policies-not-supported-by-agent`: The version of the OS Config agent running on the VM does not support running OS policies. * `no-agent-detected`: The OS Config agent is not detected for the VM. * `resource-execution-errors`: The OS Config agent encountered errors while executing one or more resources in the policy. See `os_policy_resource_compliances` for details. * `task-timeout`: The task sent to the agent to apply the policy timed out. * `unexpected-agent-state`: The OS Config agent did not report the final status of the task that attempted to apply the policy. Instead, the agent unexpectedly started working on a different task. This mostly happens when the agent or VM unexpectedly restarts while applying OS policies. * `internal-service-errors`: Internal service errors were encountered while attempting to apply the policy. * `os-policy-execution-pending`: OS policy was assigned to the given VM, but was not executed yet. Typically this is a transient condition that will go away after the next policy execution cycle.", +"type": "string" +}, +"osPolicyId": { +"description": "The OS policy id", +"type": "string" +}, +"osPolicyResourceCompliances": { +"description": "Compliance data for each resource within the policy that is applied to the VM.", +"items": { +"$ref": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceCompliance" +}, +"type": "array" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceCompliance": { +"description": "Compliance data for an OS policy resource.", +"id": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceCompliance", +"properties": { +"complianceState": { +"description": "The compliance state of the resource.", +"enum": [ +"UNKNOWN", +"COMPLIANT", +"NON_COMPLIANT" +], +"enumDescriptions": [ +"The resource is in an unknown compliance state. To get more details about why the policy is in this state, review the output of the `compliance_state_reason` field.", +"Resource is compliant.", +"Resource is non-compliant." +], +"type": "string" +}, +"complianceStateReason": { +"description": "A reason for the resource to be in the given compliance state. This field is always populated when `compliance_state` is `UNKNOWN`. The following values are supported when `compliance_state == UNKNOWN` * `execution-errors`: Errors were encountered by the agent while executing the resource and the compliance state couldn't be determined. * `execution-skipped-by-agent`: Resource execution was skipped by the agent because errors were encountered while executing prior resources in the OS policy. * `os-policy-execution-attempt-failed`: The execution of the OS policy containing this resource failed and the compliance state couldn't be determined. * `os-policy-execution-pending`: OS policy that owns this resource was assigned to the given VM, but was not executed yet.", +"type": "string" +}, +"configSteps": { +"description": "Ordered list of configuration completed by the agent for the OS policy resource.", +"items": { +"$ref": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceOSPolicyResourceConfigStep" +}, +"type": "array" +}, +"execResourceOutput": { +"$ref": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceExecResourceOutput", +"description": "ExecResource specific output." +}, +"osPolicyResourceId": { +"description": "The ID of the OS policy resource.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceExecResourceOutput": { +"description": "ExecResource specific output.", +"id": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceExecResourceOutput", +"properties": { +"enforcementOutput": { +"description": "Output from enforcement phase output file (if run). Output size is limited to 100K bytes.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceOSPolicyResourceConfigStep": { +"description": "Step performed by the OS Config agent for configuring an `OSPolicy` resource to its desired state.", +"id": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceOSPolicyResourceConfigStep", +"properties": { +"errorMessage": { +"description": "An error message recorded during the execution of this step. Only populated if errors were encountered during this step execution.", +"type": "string" +}, +"type": { +"description": "Configuration step type.", +"enum": [ +"TYPE_UNSPECIFIED", +"VALIDATION", +"DESIRED_STATE_CHECK", +"DESIRED_STATE_ENFORCEMENT", +"DESIRED_STATE_CHECK_POST_ENFORCEMENT" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Checks for resource conflicts such as schema errors.", +"Checks the current status of the desired state for a resource.", +"Enforces the desired state for a resource that is not in desired state.", +"Re-checks the status of the desired state. This check is done for a resource after the enforcement of all OS policies. This step is used to determine the final desired state status for the resource. It accounts for any resources that might have drifted from their desired state due to side effects from executing other resources." +], +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentRollout": { +"description": "Message to configure the rollout at the zonal level for the OS policy assignment.", +"id": "OSPolicyAssignmentRollout", +"properties": { +"disruptionBudget": { +"$ref": "FixedOrPercent", +"description": "Required. The maximum number (or percentage) of VMs per zone to disrupt at any given moment." +}, +"minWaitDuration": { +"description": "Required. This determines the minimum duration of time to wait after the configuration changes are applied through the current rollout. A VM continues to count towards the `disruption_budget` at least until this duration of time has passed after configuration changes are applied.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyInventoryFilter": { +"description": "Filtering criteria to select VMs based on inventory details.", +"id": "OSPolicyInventoryFilter", +"properties": { +"osShortName": { +"description": "Required. The OS short name", +"type": "string" +}, +"osVersion": { +"description": "The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResource": { +"description": "An OS policy resource is used to define the desired state configuration and provides a specific functionality like installing/removing packages, executing a script etc. The system ensures that resources are always in their desired state by taking necessary actions if they have drifted from their desired state.", +"id": "OSPolicyResource", +"properties": { +"exec": { +"$ref": "OSPolicyResourceExecResource", +"description": "Exec resource" +}, +"file": { +"$ref": "OSPolicyResourceFileResource", +"description": "File resource" +}, +"id": { +"description": "Required. The id of the resource with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the OS policy.", +"type": "string" +}, +"pkg": { +"$ref": "OSPolicyResourcePackageResource", +"description": "Package resource" +}, +"repository": { +"$ref": "OSPolicyResourceRepositoryResource", +"description": "Package repository resource" +} +}, +"type": "object" +}, +"OSPolicyResourceExecResource": { +"description": "A resource that allows executing scripts on the VM. The `ExecResource` has 2 stages: `validate` and `enforce` and both stages accept a script as an argument to execute. When the `ExecResource` is applied by the agent, it first executes the script in the `validate` stage. The `validate` stage can signal that the `ExecResource` is already in the desired state by returning an exit code of `100`. If the `ExecResource` is not in the desired state, it should return an exit code of `101`. Any other exit code returned by this stage is considered an error. If the `ExecResource` is not in the desired state based on the exit code from the `validate` stage, the agent proceeds to execute the script from the `enforce` stage. If the `ExecResource` is already in the desired state, the `enforce` stage will not be run. Similar to `validate` stage, the `enforce` stage should return an exit code of `100` to indicate that the resource in now in its desired state. Any other exit code is considered an error. NOTE: An exit code of `100` was chosen over `0` (and `101` vs `1`) to have an explicit indicator of `in desired state`, `not in desired state` and errors. Because, for example, Powershell will always return an exit code of `0` unless an `exit` statement is provided in the script. So, for reasons of consistency and being explicit, exit codes `100` and `101` were chosen.", +"id": "OSPolicyResourceExecResource", +"properties": { +"enforce": { +"$ref": "OSPolicyResourceExecResourceExec", +"description": "What to run to bring this resource into the desired state. An exit code of 100 indicates \"success\", any other exit code indicates a failure running enforce." +}, +"validate": { +"$ref": "OSPolicyResourceExecResourceExec", +"description": "Required. What to run to validate this resource is in the desired state. An exit code of 100 indicates \"in desired state\", and exit code of 101 indicates \"not in desired state\". Any other exit code indicates a failure running validate." +} +}, +"type": "object" +}, +"OSPolicyResourceExecResourceExec": { +"description": "A file or script to execute.", +"id": "OSPolicyResourceExecResourceExec", +"properties": { +"args": { +"description": "Optional arguments to pass to the source during execution.", +"items": { +"type": "string" +}, +"type": "array" +}, +"file": { +"$ref": "OSPolicyResourceFile", +"description": "A remote or local file." +}, +"interpreter": { +"description": "Required. The script interpreter to use.", +"enum": [ +"INTERPRETER_UNSPECIFIED", +"NONE", +"SHELL", +"POWERSHELL" +], +"enumDescriptions": [ +"Invalid value, the request will return validation error.", +"If an interpreter is not specified, the source is executed directly. This execution, without an interpreter, only succeeds for executables and scripts that have shebang lines.", +"Indicates that the script runs with `/bin/sh` on Linux and `cmd.exe` on Windows.", +"Indicates that the script runs with PowerShell." +], +"type": "string" +}, +"outputFilePath": { +"description": "Only recorded for enforce Exec. Path to an output file (that is created by this Exec) whose content will be recorded in OSPolicyResourceCompliance after a successful run. Absence or failure to read this file will result in this ExecResource being non-compliant. Output file size is limited to 500K bytes.", +"type": "string" +}, +"script": { +"description": "An inline script. The size of the script is limited to 32KiB.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceFile": { +"description": "A remote or local file.", +"id": "OSPolicyResourceFile", +"properties": { +"allowInsecure": { +"description": "Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified.", +"type": "boolean" +}, +"gcs": { +"$ref": "OSPolicyResourceFileGcs", +"description": "A Cloud Storage object." +}, +"localPath": { +"description": "A local path within the VM to use.", +"type": "string" +}, +"remote": { +"$ref": "OSPolicyResourceFileRemote", +"description": "A generic remote file." +} +}, +"type": "object" +}, +"OSPolicyResourceFileGcs": { +"description": "Specifies a file available as a Cloud Storage Object.", +"id": "OSPolicyResourceFileGcs", +"properties": { +"bucket": { +"description": "Required. Bucket of the Cloud Storage object.", +"type": "string" +}, +"generation": { +"description": "Generation number of the Cloud Storage object.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Required. Name of the Cloud Storage object.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceFileRemote": { +"description": "Specifies a file available via some URI.", +"id": "OSPolicyResourceFileRemote", +"properties": { +"sha256Checksum": { +"description": "SHA256 checksum of the remote file.", +"type": "string" +}, +"uri": { +"description": "Required. URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceFileResource": { +"description": "A resource that manages the state of a file.", +"id": "OSPolicyResourceFileResource", +"properties": { +"content": { +"description": "A a file with this content. The size of the content is limited to 32KiB.", +"type": "string" +}, +"file": { +"$ref": "OSPolicyResourceFile", +"description": "A remote or local source." +}, +"path": { +"description": "Required. The absolute path of the file within the VM.", +"type": "string" +}, +"permissions": { +"description": "Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one bit corresponds to the execute permission. Default behavior is 755. Below are some examples of permissions and their associated values: read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4", +"type": "string" +}, +"state": { +"description": "Required. Desired state of the file.", +"enum": [ +"DESIRED_STATE_UNSPECIFIED", +"PRESENT", +"ABSENT", +"CONTENTS_MATCH" +], +"enumDescriptions": [ +"Unspecified is invalid.", +"Ensure file at path is present.", +"Ensure file at path is absent.", +"Ensure the contents of the file at path matches. If the file does not exist it will be created." +], +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceGroup": { +"description": "Resource groups provide a mechanism to group OS policy resources. Resource groups enable OS policy authors to create a single OS policy to be applied to VMs running different operating Systems. When the OS policy is applied to a target VM, the appropriate resource group within the OS policy is selected based on the `OSFilter` specified within the resource group.", +"id": "OSPolicyResourceGroup", +"properties": { +"inventoryFilters": { +"description": "List of inventory filters for the resource group. The resources in this resource group are applied to the target VM if it satisfies at least one of the following inventory filters. For example, to apply this resource group to VMs running either `RHEL` or `CentOS` operating systems, specify 2 items for the list with following values: inventory_filters[0].os_short_name='rhel' and inventory_filters[1].os_short_name='centos' If the list is empty, this resource group will be applied to the target VM unconditionally.", +"items": { +"$ref": "OSPolicyInventoryFilter" +}, +"type": "array" +}, +"resources": { +"description": "Required. List of resources configured for this resource group. The resources are executed in the exact order specified here.", +"items": { +"$ref": "OSPolicyResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResource": { +"description": "A resource that manages a system package.", +"id": "OSPolicyResourcePackageResource", +"properties": { +"apt": { +"$ref": "OSPolicyResourcePackageResourceAPT", +"description": "A package managed by Apt." +}, +"deb": { +"$ref": "OSPolicyResourcePackageResourceDeb", +"description": "A deb package file." +}, +"desiredState": { +"description": "Required. The desired state the agent should maintain for this package.", +"enum": [ +"DESIRED_STATE_UNSPECIFIED", +"INSTALLED", +"REMOVED" +], +"enumDescriptions": [ +"Unspecified is invalid.", +"Ensure that the package is installed.", +"The agent ensures that the package is not installed and uninstalls it if detected." +], +"type": "string" +}, +"googet": { +"$ref": "OSPolicyResourcePackageResourceGooGet", +"description": "A package managed by GooGet." +}, +"msi": { +"$ref": "OSPolicyResourcePackageResourceMSI", +"description": "An MSI package." +}, +"rpm": { +"$ref": "OSPolicyResourcePackageResourceRPM", +"description": "An rpm package file." +}, +"yum": { +"$ref": "OSPolicyResourcePackageResourceYUM", +"description": "A package managed by YUM." +}, +"zypper": { +"$ref": "OSPolicyResourcePackageResourceZypper", +"description": "A package managed by Zypper." +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceAPT": { +"description": "A package managed by APT. - install: `apt-get update && apt-get -y install [name]` - remove: `apt-get -y remove [name]`", +"id": "OSPolicyResourcePackageResourceAPT", +"properties": { +"name": { +"description": "Required. Package name.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceDeb": { +"description": "A deb package file. dpkg packages only support INSTALLED state.", +"id": "OSPolicyResourcePackageResourceDeb", +"properties": { +"pullDeps": { +"description": "Whether dependencies should also be installed. - install when false: `dpkg -i package` - install when true: `apt-get update && apt-get -y install package.deb`", +"type": "boolean" +}, +"source": { +"$ref": "OSPolicyResourceFile", +"description": "Required. A deb package." +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceGooGet": { +"description": "A package managed by GooGet. - install: `googet -noconfirm install package` - remove: `googet -noconfirm remove package`", +"id": "OSPolicyResourcePackageResourceGooGet", +"properties": { +"name": { +"description": "Required. Package name.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceMSI": { +"description": "An MSI package. MSI packages only support INSTALLED state.", +"id": "OSPolicyResourcePackageResourceMSI", +"properties": { +"properties": { +"description": "Additional properties to use during installation. This should be in the format of Property=Setting. Appended to the defaults of `ACTION=INSTALL REBOOT=ReallySuppress`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"source": { +"$ref": "OSPolicyResourceFile", +"description": "Required. The MSI package." +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceRPM": { +"description": "An RPM package file. RPM packages only support INSTALLED state.", +"id": "OSPolicyResourcePackageResourceRPM", +"properties": { +"pullDeps": { +"description": "Whether dependencies should also be installed. - install when false: `rpm --upgrade --replacepkgs package.rpm` - install when true: `yum -y install package.rpm` or `zypper -y install package.rpm`", +"type": "boolean" +}, +"source": { +"$ref": "OSPolicyResourceFile", +"description": "Required. An rpm package." +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceYUM": { +"description": "A package managed by YUM. - install: `yum -y install package` - remove: `yum -y remove package`", +"id": "OSPolicyResourcePackageResourceYUM", +"properties": { +"name": { +"description": "Required. Package name.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceZypper": { +"description": "A package managed by Zypper. - install: `zypper -y install package` - remove: `zypper -y rm package`", +"id": "OSPolicyResourcePackageResourceZypper", +"properties": { +"name": { +"description": "Required. Package name.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResource": { +"description": "A resource that manages a package repository.", +"id": "OSPolicyResourceRepositoryResource", +"properties": { +"apt": { +"$ref": "OSPolicyResourceRepositoryResourceAptRepository", +"description": "An Apt Repository." +}, +"goo": { +"$ref": "OSPolicyResourceRepositoryResourceGooRepository", +"description": "A Goo Repository." +}, +"yum": { +"$ref": "OSPolicyResourceRepositoryResourceYumRepository", +"description": "A Yum Repository." +}, +"zypper": { +"$ref": "OSPolicyResourceRepositoryResourceZypperRepository", +"description": "A Zypper Repository." +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResourceAptRepository": { +"description": "Represents a single apt package repository. These will be added to a repo file that will be managed at `/etc/apt/sources.list.d/google_osconfig.list`.", +"id": "OSPolicyResourceRepositoryResourceAptRepository", +"properties": { +"archiveType": { +"description": "Required. Type of archive files in this repository.", +"enum": [ +"ARCHIVE_TYPE_UNSPECIFIED", +"DEB", +"DEB_SRC" +], +"enumDescriptions": [ +"Unspecified is invalid.", +"Deb indicates that the archive contains binary files.", +"Deb-src indicates that the archive contains source files." +], +"type": "string" +}, +"components": { +"description": "Required. List of components for this repository. Must contain at least one item.", +"items": { +"type": "string" +}, +"type": "array" +}, +"distribution": { +"description": "Required. Distribution of this repository.", +"type": "string" +}, +"gpgKey": { +"description": "URI of the key file for this repository. The agent maintains a keyring at `/etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg`.", +"type": "string" +}, +"uri": { +"description": "Required. URI for this repository.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResourceGooRepository": { +"description": "Represents a Goo package repository. These are added to a repo file that is managed at `C:/ProgramData/GooGet/repos/google_osconfig.repo`.", +"id": "OSPolicyResourceRepositoryResourceGooRepository", +"properties": { +"name": { +"description": "Required. The name of the repository.", +"type": "string" +}, +"url": { +"description": "Required. The url of the repository.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResourceYumRepository": { +"description": "Represents a single yum package repository. These are added to a repo file that is managed at `/etc/yum.repos.d/google_osconfig.repo`.", +"id": "OSPolicyResourceRepositoryResourceYumRepository", +"properties": { +"baseUrl": { +"description": "Required. The location of the repository directory.", +"type": "string" +}, +"displayName": { +"description": "The display name of the repository.", +"type": "string" +}, +"gpgKeys": { +"description": "URIs of GPG keys.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Required. A one word, unique name for this repository. This is the `repo id` in the yum config file and also the `display_name` if `display_name` is omitted. This id is also used as the unique identifier when checking for resource conflicts.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResourceZypperRepository": { +"description": "Represents a single zypper package repository. These are added to a repo file that is managed at `/etc/zypp/repos.d/google_osconfig.repo`.", +"id": "OSPolicyResourceRepositoryResourceZypperRepository", +"properties": { +"baseUrl": { +"description": "Required. The location of the repository directory.", +"type": "string" +}, +"displayName": { +"description": "The display name of the repository.", +"type": "string" +}, +"gpgKeys": { +"description": "URIs of GPG keys.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Required. A one word, unique name for this repository. This is the `repo id` in the zypper config file and also the `display_name` if `display_name` is omitted. This id is also used as the unique identifier when checking for GuestPolicy conflicts.", +"type": "string" +} +}, +"type": "object" +}, +"OneTimeSchedule": { +"description": "Sets the time for a one time patch deployment. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"id": "OneTimeSchedule", +"properties": { +"executeTime": { +"description": "Required. The desired patch job execution time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"PatchConfig": { +"description": "Patch configuration specifications. Contains details on how to apply the patch(es) to a VM instance.", +"id": "PatchConfig", +"properties": { +"apt": { +"$ref": "AptSettings", +"description": "Apt update settings. Use this setting to override the default `apt` patch rules." +}, +"goo": { +"$ref": "GooSettings", +"description": "Goo update settings. Use this setting to override the default `goo` patch rules." +}, +"migInstancesAllowed": { +"description": "Allows the patch job to run on Managed instance groups (MIGs).", +"type": "boolean" +}, +"postStep": { +"$ref": "ExecStep", +"description": "The `ExecStep` to run after the patch update." +}, +"preStep": { +"$ref": "ExecStep", +"description": "The `ExecStep` to run before the patch update." +}, +"rebootConfig": { +"description": "Post-patch reboot settings.", +"enum": [ +"REBOOT_CONFIG_UNSPECIFIED", +"DEFAULT", +"ALWAYS", +"NEVER" +], +"enumDescriptions": [ +"The default behavior is DEFAULT.", +"The agent decides if a reboot is necessary by checking signals such as registry keys on Windows or `/var/run/reboot-required` on APT based systems. On RPM based systems, a set of core system package install times are compared with system boot time.", +"Always reboot the machine after the update completes.", +"Never reboot the machine after the update completes." +], +"type": "string" +}, +"windowsUpdate": { +"$ref": "WindowsUpdateSettings", +"description": "Windows update settings. Use this override the default windows patch rules." +}, +"yum": { +"$ref": "YumSettings", +"description": "Yum update settings. Use this setting to override the default `yum` patch rules." +}, +"zypper": { +"$ref": "ZypperSettings", +"description": "Zypper update settings. Use this setting to override the default `zypper` patch rules." +} +}, +"type": "object" +}, +"PatchDeployment": { +"description": "Patch deployments are configurations that individual patch jobs use to complete a patch. These configurations include instance filter, package repository settings, and a schedule. For more information about creating and managing patch deployments, see [Scheduling patch jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs).", +"id": "PatchDeployment", +"properties": { +"createTime": { +"description": "Output only. Time the patch deployment was created. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of the patch deployment. Length of the description is limited to 1024 characters.", +"type": "string" +}, +"duration": { +"description": "Optional. Duration of the patch. After the duration ends, the patch times out.", +"format": "google-duration", +"type": "string" +}, +"instanceFilter": { +"$ref": "PatchInstanceFilter", +"description": "Required. VM instances to patch." +}, +"lastExecuteTime": { +"description": "Output only. The last time a patch job was started by this deployment. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Unique name for the patch deployment resource in a project. The patch deployment name is in the form: `projects/{project_id}/patchDeployments/{patch_deployment_id}`. This field is ignored when you create a new patch deployment.", +"type": "string" +}, +"oneTimeSchedule": { +"$ref": "OneTimeSchedule", +"description": "Required. Schedule a one-time execution." +}, +"patchConfig": { +"$ref": "PatchConfig", +"description": "Optional. Patch configuration that is applied." +}, +"recurringSchedule": { +"$ref": "RecurringSchedule", +"description": "Required. Schedule recurring executions." +}, +"rollout": { +"$ref": "PatchRollout", +"description": "Optional. Rollout strategy of the patch job." +}, +"state": { +"description": "Output only. Current state of the patch deployment.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"PAUSED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"Active value means that patch deployment generates Patch Jobs.", +"Paused value means that patch deployment does not generate Patch jobs. Requires user action to move in and out from this state." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Time the patch deployment was last updated. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PatchInstanceFilter": { +"description": "A filter to target VM instances for patching. The targeted VMs must meet all criteria specified. So if both labels and zones are specified, the patch job targets only VMs with those labels and in those zones.", +"id": "PatchInstanceFilter", +"properties": { +"all": { +"description": "Target all VM instances in the project. If true, no other criteria is permitted.", +"type": "boolean" +}, +"groupLabels": { +"description": "Targets VM instances matching ANY of these GroupLabels. This allows targeting of disparate groups of VM instances.", +"items": { +"$ref": "PatchInstanceFilterGroupLabel" +}, +"type": "array" +}, +"instanceNamePrefixes": { +"description": "Targets VMs whose name starts with one of these prefixes. Similar to labels, this is another way to group VMs when targeting configs, for example prefix=\"prod-\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"instances": { +"description": "Targets any of the VM instances specified. Instances are specified by their URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`, `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`", +"items": { +"type": "string" +}, +"type": "array" +}, +"zones": { +"description": "Targets VM instances in ANY of these zones. Leave empty to target VM instances in any zone.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PatchInstanceFilterGroupLabel": { +"description": "Targets a group of VM instances by using their [assigned labels](https://cloud.google.com/compute/docs/labeling-resources). Labels are key-value pairs. A `GroupLabel` is a combination of labels that is used to target VMs for a patch job. For example, a patch job can target VMs that have the following `GroupLabel`: `{\"env\":\"test\", \"app\":\"web\"}`. This means that the patch job is applied to VMs that have both the labels `env=test` and `app=web`.", +"id": "PatchInstanceFilterGroupLabel", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Compute Engine instance labels that must be present for a VM instance to be targeted by this filter.", +"type": "object" +} +}, +"type": "object" +}, +"PatchJob": { +"description": "A high level representation of a patch job that is either in progress or has completed. Instance details are not included in the job. To paginate through instance details, use `ListPatchJobInstanceDetails`. For more information about patch jobs, see [Creating patch jobs](https://cloud.google.com/compute/docs/os-patch-management/create-patch-job).", +"id": "PatchJob", +"properties": { +"createTime": { +"description": "Time this patch job was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "Description of the patch job. Length of the description is limited to 1024 characters.", +"type": "string" +}, +"displayName": { +"description": "Display name for this patch job. This is not a unique identifier.", +"type": "string" +}, +"dryRun": { +"description": "If this patch job is a dry run, the agent reports that it has finished without running any updates on the VM instance.", +"type": "boolean" +}, +"duration": { +"description": "Duration of the patch job. After the duration ends, the patch job times out.", +"format": "google-duration", +"type": "string" +}, +"errorMessage": { +"description": "If this patch job failed, this message provides information about the failure.", +"type": "string" +}, +"instanceDetailsSummary": { +"$ref": "PatchJobInstanceDetailsSummary", +"description": "Summary of instance details." +}, +"instanceFilter": { +"$ref": "PatchInstanceFilter", +"description": "Instances to patch." +}, +"name": { +"description": "Unique identifier for this patch job in the form `projects/*/patchJobs/*`", +"type": "string" +}, +"patchConfig": { +"$ref": "PatchConfig", +"description": "Patch configuration being applied." +}, +"patchDeployment": { +"description": "Output only. Name of the patch deployment that created this patch job.", +"readOnly": true, +"type": "string" +}, +"percentComplete": { +"description": "Reflects the overall progress of the patch job in the range of 0.0 being no progress to 100.0 being complete.", +"format": "double", +"type": "number" +}, +"rollout": { +"$ref": "PatchRollout", +"description": "Rollout strategy being applied." +}, +"state": { +"description": "The current state of the PatchJob.", +"enum": [ +"STATE_UNSPECIFIED", +"STARTED", +"INSTANCE_LOOKUP", +"PATCHING", +"SUCCEEDED", +"COMPLETED_WITH_ERRORS", +"CANCELED", +"TIMED_OUT" +], +"enumDescriptions": [ +"State must be specified.", +"The patch job was successfully initiated.", +"The patch job is looking up instances to run the patch on.", +"Instances are being patched.", +"Patch job completed successfully.", +"Patch job completed but there were errors.", +"The patch job was canceled.", +"The patch job timed out." +], +"type": "string" +}, +"updateTime": { +"description": "Last time this patch job was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"PatchJobInstanceDetails": { +"description": "Patch details for a VM instance. For more information about reviewing VM instance details, see [Listing all VM instance details for a specific patch job](https://cloud.google.com/compute/docs/os-patch-management/manage-patch-jobs#list-instance-details).", +"id": "PatchJobInstanceDetails", +"properties": { +"attemptCount": { +"description": "The number of times the agent that the agent attempts to apply the patch.", +"format": "int64", +"type": "string" +}, +"failureReason": { +"description": "If the patch fails, this field provides the reason.", +"type": "string" +}, +"instanceSystemId": { +"description": "The unique identifier for the instance. This identifier is defined by the server.", +"type": "string" +}, +"name": { +"description": "The instance name in the form `projects/*/zones/*/instances/*`", +"type": "string" +}, +"state": { +"description": "Current state of instance patch.", +"enum": [ +"PATCH_STATE_UNSPECIFIED", +"PENDING", +"INACTIVE", +"NOTIFIED", +"STARTED", +"DOWNLOADING_PATCHES", +"APPLYING_PATCHES", +"REBOOTING", +"SUCCEEDED", +"SUCCEEDED_REBOOT_REQUIRED", +"FAILED", +"ACKED", +"TIMED_OUT", +"RUNNING_PRE_PATCH_STEP", +"RUNNING_POST_PATCH_STEP", +"NO_AGENT_DETECTED" +], +"enumDescriptions": [ +"Unspecified.", +"The instance is not yet notified.", +"Instance is inactive and cannot be patched.", +"The instance is notified that it should be patched.", +"The instance has started the patching process.", +"The instance is downloading patches.", +"The instance is applying patches.", +"The instance is rebooting.", +"The instance has completed applying patches.", +"The instance has completed applying patches but a reboot is required.", +"The instance has failed to apply the patch.", +"The instance acked the notification and will start shortly.", +"The instance exceeded the time out while applying the patch.", +"The instance is running the pre-patch step.", +"The instance is running the post-patch step.", +"The service could not detect the presence of the agent. Check to ensure that the agent is installed, running, and able to communicate with the service." +], +"type": "string" +} +}, +"type": "object" +}, +"PatchJobInstanceDetailsSummary": { +"description": "A summary of the current patch state across all instances that this patch job affects. Contains counts of instances in different states. These states map to `InstancePatchState`. List patch job instance details to see the specific states of each instance.", +"id": "PatchJobInstanceDetailsSummary", +"properties": { +"ackedInstanceCount": { +"description": "Number of instances that have acked and will start shortly.", +"format": "int64", +"type": "string" +}, +"applyingPatchesInstanceCount": { +"description": "Number of instances that are applying patches.", +"format": "int64", +"type": "string" +}, +"downloadingPatchesInstanceCount": { +"description": "Number of instances that are downloading patches.", +"format": "int64", +"type": "string" +}, +"failedInstanceCount": { +"description": "Number of instances that failed.", +"format": "int64", +"type": "string" +}, +"inactiveInstanceCount": { +"description": "Number of instances that are inactive.", +"format": "int64", +"type": "string" +}, +"noAgentDetectedInstanceCount": { +"description": "Number of instances that do not appear to be running the agent. Check to ensure that the agent is installed, running, and able to communicate with the service.", +"format": "int64", +"type": "string" +}, +"notifiedInstanceCount": { +"description": "Number of instances notified about patch job.", +"format": "int64", +"type": "string" +}, +"pendingInstanceCount": { +"description": "Number of instances pending patch job.", +"format": "int64", +"type": "string" +}, +"postPatchStepInstanceCount": { +"description": "Number of instances that are running the post-patch step.", +"format": "int64", +"type": "string" +}, +"prePatchStepInstanceCount": { +"description": "Number of instances that are running the pre-patch step.", +"format": "int64", +"type": "string" +}, +"rebootingInstanceCount": { +"description": "Number of instances rebooting.", +"format": "int64", +"type": "string" +}, +"startedInstanceCount": { +"description": "Number of instances that have started.", +"format": "int64", +"type": "string" +}, +"succeededInstanceCount": { +"description": "Number of instances that have completed successfully.", +"format": "int64", +"type": "string" +}, +"succeededRebootRequiredInstanceCount": { +"description": "Number of instances that require reboot.", +"format": "int64", +"type": "string" +}, +"timedOutInstanceCount": { +"description": "Number of instances that exceeded the time out while applying the patch.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PatchRollout": { +"description": "Patch rollout configuration specifications. Contains details on the concurrency control when applying patch(es) to all targeted VMs.", +"id": "PatchRollout", +"properties": { +"disruptionBudget": { +"$ref": "FixedOrPercent", +"description": "The maximum number (or percentage) of VMs per zone to disrupt at any given moment. The number of VMs calculated from multiplying the percentage by the total number of VMs in a zone is rounded up. During patching, a VM is considered disrupted from the time the agent is notified to begin until patching has completed. This disruption time includes the time to complete reboot and any post-patch steps. A VM contributes to the disruption budget if its patching operation fails either when applying the patches, running pre or post patch steps, or if it fails to respond with a success notification before timing out. VMs that are not running or do not have an active agent do not count toward this disruption budget. For zone-by-zone rollouts, if the disruption budget in a zone is exceeded, the patch job stops, because continuing to the next zone requires completion of the patch process in the previous zone. For example, if the disruption budget has a fixed value of `10`, and 8 VMs fail to patch in the current zone, the patch job continues to patch 2 VMs at a time until the zone is completed. When that zone is completed successfully, patching begins with 10 VMs at a time in the next zone. If 10 VMs in the next zone fail to patch, the patch job stops." +}, +"mode": { +"description": "Mode of the patch rollout.", +"enum": [ +"MODE_UNSPECIFIED", +"ZONE_BY_ZONE", +"CONCURRENT_ZONES" +], +"enumDescriptions": [ +"Mode must be specified.", +"Patches are applied one zone at a time. The patch job begins in the region with the lowest number of targeted VMs. Within the region, patching begins in the zone with the lowest number of targeted VMs. If multiple regions (or zones within a region) have the same number of targeted VMs, a tie-breaker is achieved by sorting the regions or zones in alphabetical order.", +"Patches are applied to VMs in all zones at the same time." +], +"type": "string" +} +}, +"type": "object" +}, +"PausePatchDeploymentRequest": { +"description": "A request message for pausing a patch deployment.", +"id": "PausePatchDeploymentRequest", +"properties": {}, +"type": "object" +}, +"ProjectFeatureSettings": { +"description": "ProjectFeatureSettings represents the VM Manager feature settings in a project. For more information, see Enable full VM Manager functionality.", +"id": "ProjectFeatureSettings", +"properties": { +"name": { +"description": "Required. Immutable. Name specifies the URL for the ProjectFeatureSettings resource: projects/project_id/locations/global/projectFeatureSettings.", +"type": "string" +}, +"patchAndConfigFeatureSet": { +"description": "Set PatchAndConfigFeatureSet for the project.", +"enum": [ +"PATCH_AND_CONFIG_FEATURE_SET_UNSPECIFIED", +"OSCONFIG_B", +"OSCONFIG_C" +], +"enumDescriptions": [ +"Not specified placeholder", +"Enables only the basic set of VM Manager features in the project.", +"Enables all VM Manager features in the project." +], +"type": "string" +} +}, +"type": "object" +}, +"RecurringSchedule": { +"description": "Sets the time for recurring patch deployments.", +"id": "RecurringSchedule", +"properties": { +"endTime": { +"description": "Optional. The end time at which a recurring patch deployment schedule is no longer active.", +"format": "google-datetime", +"type": "string" +}, +"frequency": { +"description": "Required. The frequency unit of this recurring schedule.", +"enum": [ +"FREQUENCY_UNSPECIFIED", +"WEEKLY", +"MONTHLY", +"DAILY" +], +"enumDescriptions": [ +"Invalid. A frequency must be specified.", +"Indicates that the frequency of recurrence should be expressed in terms of weeks.", +"Indicates that the frequency of recurrence should be expressed in terms of months.", +"Indicates that the frequency of recurrence should be expressed in terms of days." +], +"type": "string" +}, +"lastExecuteTime": { +"description": "Output only. The time the last patch job ran successfully.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"monthly": { +"$ref": "MonthlySchedule", +"description": "Required. Schedule with monthly executions." +}, +"nextExecuteTime": { +"description": "Output only. The time the next patch job is scheduled to run.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Optional. The time that the recurring schedule becomes effective. Defaults to `create_time` of the patch deployment.", +"format": "google-datetime", +"type": "string" +}, +"timeOfDay": { +"$ref": "TimeOfDay", +"description": "Required. Time of the day to run a recurring deployment." +}, +"timeZone": { +"$ref": "TimeZone", +"description": "Required. Defines the time zone that `time_of_day` is relative to. The rules for daylight saving time are determined by the chosen time zone." +}, +"weekly": { +"$ref": "WeeklySchedule", +"description": "Required. Schedule with weekly executions." +} +}, +"type": "object" +}, +"ResumePatchDeploymentRequest": { +"description": "A request message for resuming a patch deployment.", +"id": "ResumePatchDeploymentRequest", +"properties": {}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TimeZone": { +"description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", +"id": "TimeZone", +"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" +} +}, +"type": "object" +}, +"VulnerabilityReport": { +"description": "This API resource represents the vulnerability report for a specified Compute Engine virtual machine (VM) instance at a given point in time. For more information, see [Vulnerability reports](https://cloud.google.com/compute/docs/instances/os-inventory-management#vulnerability-reports).", +"id": "VulnerabilityReport", +"properties": { +"name": { +"description": "Output only. The `vulnerabilityReport` API resource name. Format: `projects/{project_number}/locations/{location}/instances/{instance_id}/vulnerabilityReport`", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp for when the last vulnerability report was generated for the VM.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vulnerabilities": { +"description": "Output only. List of vulnerabilities affecting the VM.", +"items": { +"$ref": "VulnerabilityReportVulnerability" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"VulnerabilityReportVulnerability": { +"description": "A vulnerability affecting the VM instance.", +"id": "VulnerabilityReportVulnerability", +"properties": { +"availableInventoryItemIds": { +"deprecated": true, +"description": "Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. If there is no available fix, the field is empty. The `inventory_item` value specifies the latest `SoftwarePackage` available to the VM that fixes the vulnerability.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createTime": { +"description": "The timestamp for when the vulnerability was first detected.", +"format": "google-datetime", +"type": "string" +}, +"details": { +"$ref": "VulnerabilityReportVulnerabilityDetails", +"description": "Contains metadata as per the upstream feed of the operating system and NVD." +}, +"installedInventoryItemIds": { +"deprecated": true, +"description": "Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. This field displays the inventory items affected by this vulnerability. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. For some distros, this field may be empty.", +"items": { +"type": "string" +}, +"type": "array" +}, +"items": { +"description": "List of items affected by the vulnerability.", +"items": { +"$ref": "VulnerabilityReportVulnerabilityItem" +}, +"type": "array" +}, +"updateTime": { +"description": "The timestamp for when the vulnerability was last modified.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"VulnerabilityReportVulnerabilityDetails": { +"description": "Contains metadata information for the vulnerability. This information is collected from the upstream feed of the operating system.", +"id": "VulnerabilityReportVulnerabilityDetails", +"properties": { +"cve": { +"description": "The CVE of the vulnerability. CVE cannot be empty and the combination of should be unique across vulnerabilities for a VM.", +"type": "string" +}, +"cvssV2Score": { +"description": "The CVSS V2 score of this vulnerability. CVSS V2 score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity.", +"format": "float", +"type": "number" +}, +"cvssV3": { +"$ref": "CVSSv3", +"description": "The full description of the CVSSv3 for this vulnerability from NVD." +}, +"description": { +"description": "The note or description describing the vulnerability from the distro.", +"type": "string" +}, +"references": { +"description": "Corresponds to the references attached to the `VulnerabilityDetails`.", +"items": { +"$ref": "VulnerabilityReportVulnerabilityDetailsReference" +}, +"type": "array" +}, +"severity": { +"description": "Assigned severity/impact ranking from the distro.", +"type": "string" +} +}, +"type": "object" +}, +"VulnerabilityReportVulnerabilityDetailsReference": { +"description": "A reference for this vulnerability.", +"id": "VulnerabilityReportVulnerabilityDetailsReference", +"properties": { +"source": { +"description": "The source of the reference e.g. NVD.", +"type": "string" +}, +"url": { +"description": "The url of the reference.", +"type": "string" +} +}, +"type": "object" +}, +"VulnerabilityReportVulnerabilityItem": { +"description": "OS inventory item that is affected by a vulnerability or fixed as a result of a vulnerability.", +"id": "VulnerabilityReportVulnerabilityItem", +"properties": { +"availableInventoryItemId": { +"description": "Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. If there is no available fix, the field is empty. The `inventory_item` value specifies the latest `SoftwarePackage` available to the VM that fixes the vulnerability.", +"type": "string" +}, +"fixedCpeUri": { +"description": "The recommended [CPE URI](https://cpe.mitre.org/specification/) update that contains a fix for this vulnerability.", +"type": "string" +}, +"installedInventoryItemId": { +"description": "Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. This field displays the inventory items affected by this vulnerability. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. For some operating systems, this field might be empty.", +"type": "string" +}, +"upstreamFix": { +"description": "The upstream OS patch, packages or KB that fixes the vulnerability.", +"type": "string" +} +}, +"type": "object" +}, +"WeekDayOfMonth": { +"description": "Represents one week day in a month. An example is \"the 4th Sunday\".", +"id": "WeekDayOfMonth", +"properties": { +"dayOfWeek": { +"description": "Required. A day of the week.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"dayOffset": { +"description": "Optional. Represents the number of days before or after the given week day of month that the patch deployment is scheduled for. For example if `week_ordinal` and `day_of_week` values point to the second Tuesday of the month and the `day_offset` value is set to `3`, patch deployment takes place three days after the second Tuesday of the month. If this value is negative, for example -5, patches are deployed five days before the second Tuesday of the month. Allowed values are in range [-30, 30].", +"format": "int32", +"type": "integer" +}, +"weekOrdinal": { +"description": "Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1 indicates the last week of the month.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"WeeklySchedule": { +"description": "Represents a weekly schedule.", +"id": "WeeklySchedule", +"properties": { +"dayOfWeek": { +"description": "Required. Day of the week.", +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +} +}, +"type": "object" +}, +"WindowsUpdateSettings": { +"description": "Windows patching is performed using the Windows Update Agent.", +"id": "WindowsUpdateSettings", +"properties": { +"classifications": { +"description": "Only apply updates of these windows update classifications. If empty, all updates are applied.", +"items": { +"enum": [ +"CLASSIFICATION_UNSPECIFIED", +"CRITICAL", +"SECURITY", +"DEFINITION", +"DRIVER", +"FEATURE_PACK", +"SERVICE_PACK", +"TOOL", +"UPDATE_ROLLUP", +"UPDATE" +], +"enumDescriptions": [ +"Invalid. If classifications are included, they must be specified.", +"\"A widely released fix for a specific problem that addresses a critical, non-security-related bug.\" [1]", +"\"A widely released fix for a product-specific, security-related vulnerability. Security vulnerabilities are rated by their severity. The severity rating is indicated in the Microsoft security bulletin as critical, important, moderate, or low.\" [1]", +"\"A widely released and frequent software update that contains additions to a product's definition database. Definition databases are often used to detect objects that have specific attributes, such as malicious code, phishing websites, or junk mail.\" [1]", +"\"Software that controls the input and output of a device.\" [1]", +"\"New product functionality that is first distributed outside the context of a product release and that is typically included in the next full product release.\" [1]", +"\"A tested, cumulative set of all hotfixes, security updates, critical updates, and updates. Additionally, service packs may contain additional fixes for problems that are found internally since the release of the product. Service packs my also contain a limited number of customer-requested design changes or features.\" [1]", +"\"A utility or feature that helps complete a task or set of tasks.\" [1]", +"\"A tested, cumulative set of hotfixes, security updates, critical updates, and updates that are packaged together for easy deployment. A rollup generally targets a specific area, such as security, or a component of a product, such as Internet Information Services (IIS).\" [1]", +"\"A widely released fix for a specific problem. An update addresses a noncritical, non-security-related bug.\" [1]" +], +"type": "string" +}, +"type": "array" +}, +"excludes": { +"description": "List of KBs to exclude from update.", +"items": { +"type": "string" +}, +"type": "array" +}, +"exclusivePatches": { +"description": "An exclusive list of kbs to be updated. These are the only patches that will be updated. This field must not be used with other patch configurations.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"YumSettings": { +"description": "Yum patching is performed by executing `yum update`. Additional options can be set to control how this is executed. Note that not all settings are supported on all platforms.", +"id": "YumSettings", +"properties": { +"excludes": { +"description": "List of packages to exclude from update. These packages are excluded by using the yum `--exclude` flag.", +"items": { +"type": "string" +}, +"type": "array" +}, +"exclusivePackages": { +"description": "An exclusive list of packages to be updated. These are the only packages that will be updated. If these packages are not installed, they will be ignored. This field must not be specified with any other patch configuration fields.", +"items": { +"type": "string" +}, +"type": "array" +}, +"minimal": { +"description": "Will cause patch to run `yum update-minimal` instead.", +"type": "boolean" +}, +"security": { +"description": "Adds the `--security` flag to `yum update`. Not supported on all platforms.", +"type": "boolean" +} +}, +"type": "object" +}, +"ZypperSettings": { +"description": "Zypper patching is performed by running `zypper patch`. See also https://en.opensuse.org/SDB:Zypper_manual.", +"id": "ZypperSettings", +"properties": { +"categories": { +"description": "Install only patches with these categories. Common categories include security, recommended, and feature.", +"items": { +"type": "string" +}, +"type": "array" +}, +"excludes": { +"description": "List of patches to exclude from update.", +"items": { +"type": "string" +}, +"type": "array" +}, +"exclusivePatches": { +"description": "An exclusive list of patches to be updated. These are the only patches that will be installed using 'zypper patch patch:' command. This field must not be used with any other patch configuration fields.", +"items": { +"type": "string" +}, +"type": "array" +}, +"severities": { +"description": "Install only patches with these severities. Common severities include critical, important, moderate, and low.", +"items": { +"type": "string" +}, +"type": "array" +}, +"withOptional": { +"description": "Adds the `--with-optional` flag to `zypper patch`.", +"type": "boolean" +}, +"withUpdate": { +"description": "Adds the `--with-update` flag, to `zypper patch`.", +"type": "boolean" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "OS Config API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/osconfig.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/osconfig.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..a417a4744c66ebbc483e3853339ad2370915d700 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/osconfig.v1alpha.json @@ -0,0 +1,2787 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://osconfig.googleapis.com/", +"batchPath": "batch", +"canonicalName": "OS Config", +"description": "OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/compute/docs/osconfig/rest", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "osconfig:v1alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://osconfig.mtls.googleapis.com/", +"name": "osconfig", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"instanceOSPoliciesCompliances": { +"deprecated": true, +"methods": { +"get": { +"deprecated": true, +"description": "Get OS policies compliance data for the specified Compute Engine VM instance.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instanceOSPoliciesCompliances/{instanceOSPoliciesCompliancesId}", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instanceOSPoliciesCompliances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API resource name for instance OS policies compliance resource. Format: `projects/{project}/locations/{location}/instanceOSPoliciesCompliances/{instance}` For `{project}`, either Compute Engine project-number or project-id can be provided. For `{instance}`, either Compute Engine VM instance-id or instance-name can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instanceOSPoliciesCompliances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "InstanceOSPoliciesCompliance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "List OS policies compliance data for all Compute Engine VM instances in the specified zone.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instanceOSPoliciesCompliances", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instanceOSPoliciesCompliances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "If provided, this field specifies the criteria that must be met by a `InstanceOSPoliciesCompliance` API resource to be included in the response.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListInstanceOSPoliciesCompliances` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: `projects/{project}/locations/{location}` For `{project}`, either Compute Engine project-number or project-id can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/instanceOSPoliciesCompliances", +"response": { +"$ref": "ListInstanceOSPoliciesCompliancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"instances": { +"resources": { +"inventories": { +"methods": { +"get": { +"description": "Get inventory data for the specified VM instance. If the VM has no associated inventory, the message `NOT_FOUND` is returned.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/inventory", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.inventories.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API resource name for inventory resource. Format: `projects/{project}/locations/{location}/instances/{instance}/inventory` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance}`, either Compute Engine `instance-id` or `instance-name` can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/inventory$", +"required": true, +"type": "string" +}, +"view": { +"description": "Inventory view indicating what information should be included in the inventory resource. If unspecified, the default view is BASIC.", +"enum": [ +"INVENTORY_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default value. The API defaults to the BASIC view.", +"Returns the basic inventory information that includes `os_info`.", +"Returns all fields." +], +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Inventory" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List inventory data for all VM instances in the specified zone.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/inventories", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.inventories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "If provided, this field specifies the criteria that must be met by a `Inventory` API resource to be included in the response.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListInventories` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: `projects/{project}/locations/{location}/instances/-` For `{project}`, either `project-number` or `project-id` can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Inventory view indicating what information should be included in the inventory resource. If unspecified, the default view is BASIC.", +"enum": [ +"INVENTORY_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default value. The API defaults to the BASIC view.", +"Returns the basic inventory information that includes `os_info`.", +"Returns all fields." +], +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/inventories", +"response": { +"$ref": "ListInventoriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"osPolicyAssignments": { +"resources": { +"reports": { +"methods": { +"get": { +"description": "Get the OS policy assignment report for the specified Compute Engine VM instance.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/osPolicyAssignments/{osPolicyAssignmentsId}/report", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.osPolicyAssignments.reports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API resource name for OS policy assignment report. Format: `/projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/{assignment}/report` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance_id}`, either Compute Engine `instance-id` or `instance-name` can be provided. For `{assignment_id}`, the OSPolicyAssignment id must be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/osPolicyAssignments/[^/]+/report$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "OSPolicyAssignmentReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List OS policy assignment reports for all Compute Engine VM instances in the specified zone.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/osPolicyAssignments/{osPolicyAssignmentsId}/reports", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.osPolicyAssignments.reports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "If provided, this field specifies the criteria that must be met by the `OSPolicyAssignmentReport` API resource that is included in the response.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to the `ListOSPolicyAssignmentReports` method that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: `projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/{assignment}/reports` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance}`, either `instance-name`, `instance-id`, or `-` can be provided. If '-' is provided, the response will include OSPolicyAssignmentReports for all instances in the project/location. For `{assignment}`, either `assignment-id` or `-` can be provided. If '-' is provided, the response will include OSPolicyAssignmentReports for all OSPolicyAssignments in the project/location. Either {instance} or {assignment} must be `-`. For example: `projects/{project}/locations/{location}/instances/{instance}/osPolicyAssignments/-/reports` returns all reports for the instance `projects/{project}/locations/{location}/instances/-/osPolicyAssignments/{assignment-id}/reports` returns all the reports for the given assignment across all instances. `projects/{project}/locations/{location}/instances/-/osPolicyAssignments/-/reports` returns all the reports for all assignments across all instances.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/reports", +"response": { +"$ref": "ListOSPolicyAssignmentReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"vulnerabilityReports": { +"methods": { +"get": { +"description": "Gets the vulnerability report for the specified VM instance. Only VMs with inventory data have vulnerability reports associated with them.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/vulnerabilityReport", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.vulnerabilityReports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. API resource name for vulnerability resource. Format: `projects/{project}/locations/{location}/instances/{instance}/vulnerabilityReport` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance}`, either Compute Engine `instance-id` or `instance-name` can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/vulnerabilityReport$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "VulnerabilityReport" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List vulnerability reports for all VM instances in the specified zone.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/vulnerabilityReports", +"httpMethod": "GET", +"id": "osconfig.projects.locations.instances.vulnerabilityReports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "This field supports filtering by the severity level for the vulnerability. For a list of severity levels, see [Severity levels for vulnerabilities](https://cloud.google.com/container-analysis/docs/container-scanning-overview#severity_levels_for_vulnerabilities). The filter field follows the rules described in the [AIP-160](https://google.aip.dev/160) guidelines as follows: + **Filter for a specific severity type**: you can list reports that contain vulnerabilities that are classified as medium by specifying `vulnerabilities.details.severity:MEDIUM`. + **Filter for a range of severities** : you can list reports that have vulnerabilities that are classified as critical or high by specifying `vulnerabilities.details.severity:HIGH OR vulnerabilities.details.severity:CRITICAL`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListVulnerabilityReports` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name. Format: `projects/{project}/locations/{location}/instances/-` For `{project}`, either `project-number` or `project-id` can be provided.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/vulnerabilityReports", +"response": { +"$ref": "ListVulnerabilityReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"osPolicyAssignments": { +"methods": { +"create": { +"description": "Create an OS policy assignment. This method also creates the first revision of the OS policy assignment. This method returns a long running operation (LRO) that contains the rollout details. The rollout can be cancelled by cancelling the LRO. For more information, see [Method: projects.locations.osPolicyAssignments.operations.cancel](https://cloud.google.com/compute/docs/osconfig/rest/v1alpha/projects.locations.osPolicyAssignments.operations/cancel).", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments", +"httpMethod": "POST", +"id": "osconfig.projects.locations.osPolicyAssignments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"osPolicyAssignmentId": { +"description": "Required. The logical name of the OS policy assignment in the project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the project.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name in the form: projects/{project}/locations/{location}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique identifier for this request. Restricted to 36 ASCII characters. A random UUID is recommended. This request is only idempotent if a `request_id` is provided.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/osPolicyAssignments", +"request": { +"$ref": "OSPolicyAssignment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete the OS policy assignment. This method creates a new revision of the OS policy assignment. This method returns a long running operation (LRO) that contains the rollout details. The rollout can be cancelled by cancelling the LRO. If the LRO completes and is not cancelled, all revisions associated with the OS policy assignment are deleted. For more information, see [Method: projects.locations.osPolicyAssignments.operations.cancel](https://cloud.google.com/compute/docs/osconfig/rest/v1alpha/projects.locations.osPolicyAssignments.operations/cancel).", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}", +"httpMethod": "DELETE", +"id": "osconfig.projects.locations.osPolicyAssignments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OS policy assignment to be deleted", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique identifier for this request. Restricted to 36 ASCII characters. A random UUID is recommended. This request is only idempotent if a `request_id` is provided.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieve an existing OS policy assignment. This method always returns the latest revision. In order to retrieve a previous revision of the assignment, also provide the revision ID in the `name` parameter.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}", +"httpMethod": "GET", +"id": "osconfig.projects.locations.osPolicyAssignments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of OS policy assignment. Format: `projects/{project}/locations/{location}/osPolicyAssignments/{os_policy_assignment}@{revisionId}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "OSPolicyAssignment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List the OS policy assignments under the parent resource. For each OS policy assignment, the latest revision is returned.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments", +"httpMethod": "GET", +"id": "osconfig.projects.locations.osPolicyAssignments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of assignments to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListOSPolicyAssignments` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/osPolicyAssignments", +"response": { +"$ref": "ListOSPolicyAssignmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listRevisions": { +"description": "List the OS policy assignment revisions for a given OS policy assignment.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}:listRevisions", +"httpMethod": "GET", +"id": "osconfig.projects.locations.osPolicyAssignments.listRevisions", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OS policy assignment to list revisions for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of revisions to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListOSPolicyAssignmentRevisions` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}:listRevisions", +"response": { +"$ref": "ListOSPolicyAssignmentRevisionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an existing OS policy assignment. This method creates a new revision of the OS policy assignment. This method returns a long running operation (LRO) that contains the rollout details. The rollout can be cancelled by cancelling the LRO. For more information, see [Method: projects.locations.osPolicyAssignments.operations.cancel](https://cloud.google.com/compute/docs/osconfig/rest/v1alpha/projects.locations.osPolicyAssignments.operations/cancel).", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}", +"httpMethod": "PATCH", +"id": "osconfig.projects.locations.osPolicyAssignments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set to true, and the OS policy assignment is not found, a new OS policy assignment will be created. In this situation, `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Resource name. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id}` This field is ignored when you create an OS policy assignment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. A unique identifier for this request. Restricted to 36 ASCII characters. A random UUID is recommended. This request is only idempotent if a `request_id` is provided.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Optional. Field mask that controls which fields of the assignment should be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "OSPolicyAssignment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "osconfig.projects.locations.osPolicyAssignments.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/osPolicyAssignments/{osPolicyAssignmentsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "osconfig.projects.locations.osPolicyAssignments.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/osPolicyAssignments/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241117", +"rootUrl": "https://osconfig.googleapis.com/", +"schemas": { +"CVSSv3": { +"description": "Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document", +"id": "CVSSv3", +"properties": { +"attackComplexity": { +"description": "This metric describes the conditions beyond the attacker's control that must exist in order to exploit the vulnerability.", +"enum": [ +"ATTACK_COMPLEXITY_UNSPECIFIED", +"ATTACK_COMPLEXITY_LOW", +"ATTACK_COMPLEXITY_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"Specialized access conditions or extenuating circumstances do not exist. An attacker can expect repeatable success when attacking the vulnerable component.", +"A successful attack depends on conditions beyond the attacker's control. That is, a successful attack cannot be accomplished at will, but requires the attacker to invest in some measurable amount of effort in preparation or execution against the vulnerable component before a successful attack can be expected." +], +"type": "string" +}, +"attackVector": { +"description": "This metric reflects the context by which vulnerability exploitation is possible.", +"enum": [ +"ATTACK_VECTOR_UNSPECIFIED", +"ATTACK_VECTOR_NETWORK", +"ATTACK_VECTOR_ADJACENT", +"ATTACK_VECTOR_LOCAL", +"ATTACK_VECTOR_PHYSICAL" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable component is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet.", +"The vulnerable component is bound to the network stack, but the attack is limited at the protocol level to a logically adjacent topology.", +"The vulnerable component is not bound to the network stack and the attacker's path is via read/write/execute capabilities.", +"The attack requires the attacker to physically touch or manipulate the vulnerable component." +], +"type": "string" +}, +"availabilityImpact": { +"description": "This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"baseScore": { +"description": "The base score is a function of the base metric scores. https://www.first.org/cvss/specification-document#Base-Metrics", +"format": "float", +"type": "number" +}, +"confidentialityImpact": { +"description": "This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"exploitabilityScore": { +"description": "The Exploitability sub-score equation is derived from the Base Exploitability metrics. https://www.first.org/cvss/specification-document#2-1-Exploitability-Metrics", +"format": "float", +"type": "number" +}, +"impactScore": { +"description": "The Impact sub-score equation is derived from the Base Impact metrics.", +"format": "float", +"type": "number" +}, +"integrityImpact": { +"description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"privilegesRequired": { +"description": "This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.", +"enum": [ +"PRIVILEGES_REQUIRED_UNSPECIFIED", +"PRIVILEGES_REQUIRED_NONE", +"PRIVILEGES_REQUIRED_LOW", +"PRIVILEGES_REQUIRED_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"The attacker is unauthorized prior to attack, and therefore does not require any access to settings or files of the vulnerable system to carry out an attack.", +"The attacker requires privileges that provide basic user capabilities that could normally affect only settings and files owned by a user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources.", +"The attacker requires privileges that provide significant (e.g., administrative) control over the vulnerable component allowing access to component-wide settings and files." +], +"type": "string" +}, +"scope": { +"description": "The Scope metric captures whether a vulnerability in one vulnerable component impacts resources in components beyond its security scope.", +"enum": [ +"SCOPE_UNSPECIFIED", +"SCOPE_UNCHANGED", +"SCOPE_CHANGED" +], +"enumDescriptions": [ +"Invalid value.", +"An exploited vulnerability can only affect resources managed by the same security authority.", +"An exploited vulnerability can affect resources beyond the security scope managed by the security authority of the vulnerable component." +], +"type": "string" +}, +"userInteraction": { +"description": "This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable component.", +"enum": [ +"USER_INTERACTION_UNSPECIFIED", +"USER_INTERACTION_NONE", +"USER_INTERACTION_REQUIRED" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable system can be exploited without interaction from any user.", +"Successful exploitation of this vulnerability requires a user to take some action before the vulnerability can be exploited." +], +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"FixedOrPercent": { +"description": "Message encapsulating a value that can be either absolute (\"fixed\") or relative (\"percent\") to a value.", +"id": "FixedOrPercent", +"properties": { +"fixed": { +"description": "Specifies a fixed value.", +"format": "int32", +"type": "integer" +}, +"percent": { +"description": "Specifies the relative value defined as a percentage, which will be multiplied by a reference value.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudOsconfigV1__OSPolicyAssignmentOperationMetadata": { +"description": "OS policy assignment operation metadata provided by OS policy assignment API methods that return long running operations.", +"id": "GoogleCloudOsconfigV1__OSPolicyAssignmentOperationMetadata", +"properties": { +"apiMethod": { +"description": "The OS policy assignment API method.", +"enum": [ +"API_METHOD_UNSPECIFIED", +"CREATE", +"UPDATE", +"DELETE" +], +"enumDescriptions": [ +"Invalid value", +"Create OS policy assignment API method", +"Update OS policy assignment API method", +"Delete OS policy assignment API method" +], +"type": "string" +}, +"osPolicyAssignment": { +"description": "Reference to the `OSPolicyAssignment` API resource. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id}`", +"type": "string" +}, +"rolloutStartTime": { +"description": "Rollout start time", +"format": "google-datetime", +"type": "string" +}, +"rolloutState": { +"description": "State of the rollout", +"enum": [ +"ROLLOUT_STATE_UNSPECIFIED", +"IN_PROGRESS", +"CANCELLING", +"CANCELLED", +"SUCCEEDED" +], +"enumDescriptions": [ +"Invalid value", +"The rollout is in progress.", +"The rollout is being cancelled.", +"The rollout is cancelled.", +"The rollout has completed successfully." +], +"type": "string" +}, +"rolloutUpdateTime": { +"description": "Rollout update time", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudOsconfigV2beta__OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudOsconfigV2beta__OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InstanceOSPoliciesCompliance": { +"deprecated": true, +"description": "This API resource represents the OS policies compliance data for a Compute Engine virtual machine (VM) instance at a given point in time. A Compute Engine VM can have multiple OS policy assignments, and each assignment can have multiple OS policies. As a result, multiple OS policies could be applied to a single VM. You can use this API resource to determine both the compliance state of your VM as well as the compliance state of an individual OS policy. For more information, see [View compliance](https://cloud.google.com/compute/docs/os-configuration-management/view-compliance).", +"id": "InstanceOSPoliciesCompliance", +"properties": { +"detailedState": { +"description": "Output only. Detailed compliance state of the VM. This field is populated only when compliance state is `UNKNOWN`. It may contain one of the following values: * `no-compliance-data`: Compliance data is not available for this VM. * `no-agent-detected`: OS Config agent is not detected for this VM. * `config-not-supported-by-agent`: The version of the OS Config agent running on this VM does not support configuration management. * `inactive`: VM is not running. * `internal-service-errors`: There were internal service errors encountered while enforcing compliance. * `agent-errors`: OS config agent encountered errors while enforcing compliance.", +"readOnly": true, +"type": "string" +}, +"detailedStateReason": { +"description": "Output only. The reason for the `detailed_state` of the VM (if any).", +"readOnly": true, +"type": "string" +}, +"instance": { +"description": "Output only. The Compute Engine VM instance name.", +"readOnly": true, +"type": "string" +}, +"lastComplianceCheckTime": { +"description": "Output only. Timestamp of the last compliance check for the VM.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"lastComplianceRunId": { +"description": "Output only. Unique identifier for the last compliance run. This id will be logged by the OS config agent during a compliance run and can be used for debugging and tracing purpose.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The `InstanceOSPoliciesCompliance` API resource name. Format: `projects/{project_number}/locations/{location}/instanceOSPoliciesCompliances/{instance_id}`", +"readOnly": true, +"type": "string" +}, +"osPolicyCompliances": { +"description": "Output only. Compliance data for each `OSPolicy` that is applied to the VM.", +"items": { +"$ref": "InstanceOSPoliciesComplianceOSPolicyCompliance" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "Output only. Compliance state of the VM.", +"enum": [ +"OS_POLICY_COMPLIANCE_STATE_UNSPECIFIED", +"COMPLIANT", +"NON_COMPLIANT", +"UNKNOWN", +"NO_OS_POLICIES_APPLICABLE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Compliant state.", +"Non-compliant state", +"Unknown compliance state.", +"No applicable OS policies were found for the instance. This state is only applicable to the instance." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InstanceOSPoliciesComplianceOSPolicyCompliance": { +"deprecated": true, +"description": "Compliance data for an OS policy", +"id": "InstanceOSPoliciesComplianceOSPolicyCompliance", +"properties": { +"osPolicyAssignment": { +"description": "Reference to the `OSPolicyAssignment` API resource that the `OSPolicy` belongs to. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id}`", +"type": "string" +}, +"osPolicyId": { +"description": "The OS policy id", +"type": "string" +}, +"osPolicyResourceCompliances": { +"description": "Compliance data for each `OSPolicyResource` that is applied to the VM.", +"items": { +"$ref": "OSPolicyResourceCompliance" +}, +"type": "array" +}, +"state": { +"description": "Compliance state of the OS policy.", +"enum": [ +"OS_POLICY_COMPLIANCE_STATE_UNSPECIFIED", +"COMPLIANT", +"NON_COMPLIANT", +"UNKNOWN", +"NO_OS_POLICIES_APPLICABLE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Compliant state.", +"Non-compliant state", +"Unknown compliance state.", +"No applicable OS policies were found for the instance. This state is only applicable to the instance." +], +"type": "string" +} +}, +"type": "object" +}, +"Inventory": { +"description": "This API resource represents the available inventory data for a Compute Engine virtual machine (VM) instance at a given point in time. You can use this API resource to determine the inventory data of your VM. For more information, see [Information provided by OS inventory management](https://cloud.google.com/compute/docs/instances/os-inventory-management#data-collected).", +"id": "Inventory", +"properties": { +"items": { +"additionalProperties": { +"$ref": "InventoryItem" +}, +"description": "Output only. Inventory items related to the VM keyed by an opaque unique identifier for each inventory item. The identifier is unique to each distinct and addressable inventory item and will change, when there is a new package version.", +"readOnly": true, +"type": "object" +}, +"name": { +"description": "Output only. The `Inventory` API resource name. Format: `projects/{project_number}/locations/{location}/instances/{instance_id}/inventory`", +"readOnly": true, +"type": "string" +}, +"osInfo": { +"$ref": "InventoryOsInfo", +"description": "Output only. Base level operating system information for the VM.", +"readOnly": true +}, +"updateTime": { +"description": "Output only. Timestamp of the last reported inventory for the VM.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"InventoryItem": { +"description": "A single piece of inventory on a VM.", +"id": "InventoryItem", +"properties": { +"availablePackage": { +"$ref": "InventorySoftwarePackage", +"description": "Software package available to be installed on the VM instance." +}, +"createTime": { +"description": "When this inventory item was first detected.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "Identifier for this item, unique across items for this VM.", +"type": "string" +}, +"installedPackage": { +"$ref": "InventorySoftwarePackage", +"description": "Software package present on the VM instance." +}, +"originType": { +"description": "The origin of this inventory item.", +"enum": [ +"ORIGIN_TYPE_UNSPECIFIED", +"INVENTORY_REPORT" +], +"enumDescriptions": [ +"Invalid. An origin type must be specified.", +"This inventory item was discovered as the result of the agent reporting inventory via the reporting API." +], +"type": "string" +}, +"type": { +"description": "The specific type of inventory, correlating to its specific details.", +"enum": [ +"TYPE_UNSPECIFIED", +"INSTALLED_PACKAGE", +"AVAILABLE_PACKAGE" +], +"enumDescriptions": [ +"Invalid. A type must be specified.", +"This represents a package that is installed on the VM.", +"This represents an update that is available for a package." +], +"type": "string" +}, +"updateTime": { +"description": "When this inventory item was last modified.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"InventoryOsInfo": { +"description": "Operating system information for the VM.", +"id": "InventoryOsInfo", +"properties": { +"architecture": { +"description": "The system architecture of the operating system.", +"type": "string" +}, +"hostname": { +"description": "The VM hostname.", +"type": "string" +}, +"kernelRelease": { +"description": "The kernel release of the operating system.", +"type": "string" +}, +"kernelVersion": { +"description": "The kernel version of the operating system.", +"type": "string" +}, +"longName": { +"description": "The operating system long name. For example 'Debian GNU/Linux 9' or 'Microsoft Window Server 2019 Datacenter'.", +"type": "string" +}, +"osconfigAgentVersion": { +"description": "The current version of the OS Config agent running on the VM.", +"type": "string" +}, +"shortName": { +"description": "The operating system short name. For example, 'windows' or 'debian'.", +"type": "string" +}, +"version": { +"description": "The version of the operating system.", +"type": "string" +} +}, +"type": "object" +}, +"InventorySoftwarePackage": { +"description": "Software package information of the operating system.", +"id": "InventorySoftwarePackage", +"properties": { +"aptPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Details of an APT package. For details about the apt package manager, see https://wiki.debian.org/Apt." +}, +"cosPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Details of a COS package." +}, +"googetPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Details of a Googet package. For details about the googet package manager, see https://github.com/google/googet." +}, +"qfePackage": { +"$ref": "InventoryWindowsQuickFixEngineeringPackage", +"description": "Details of a Windows Quick Fix engineering package. See https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering for info in Windows Quick Fix Engineering." +}, +"windowsApplication": { +"$ref": "InventoryWindowsApplication", +"description": "Details of Windows Application." +}, +"wuaPackage": { +"$ref": "InventoryWindowsUpdatePackage", +"description": "Details of a Windows Update package. See https://docs.microsoft.com/en-us/windows/win32/api/_wua/ for information about Windows Update." +}, +"yumPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Yum package info. For details about the yum package manager, see https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/ch-yum." +}, +"zypperPackage": { +"$ref": "InventoryVersionedPackage", +"description": "Details of a Zypper package. For details about the Zypper package manager, see https://en.opensuse.org/SDB:Zypper_manual." +}, +"zypperPatch": { +"$ref": "InventoryZypperPatch", +"description": "Details of a Zypper patch. For details about the Zypper package manager, see https://en.opensuse.org/SDB:Zypper_manual." +} +}, +"type": "object" +}, +"InventoryVersionedPackage": { +"description": "Information related to the a standard versioned package. This includes package info for APT, Yum, Zypper, and Googet package managers.", +"id": "InventoryVersionedPackage", +"properties": { +"architecture": { +"description": "The system architecture this package is intended for.", +"type": "string" +}, +"packageName": { +"description": "The name of the package.", +"type": "string" +}, +"version": { +"description": "The version of the package.", +"type": "string" +} +}, +"type": "object" +}, +"InventoryWindowsApplication": { +"description": "Contains information about a Windows application that is retrieved from the Windows Registry. For more information about these fields, see: https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key", +"id": "InventoryWindowsApplication", +"properties": { +"displayName": { +"description": "The name of the application or product.", +"type": "string" +}, +"displayVersion": { +"description": "The version of the product or application in string format.", +"type": "string" +}, +"helpLink": { +"description": "The internet address for technical support.", +"type": "string" +}, +"installDate": { +"$ref": "Date", +"description": "The last time this product received service. The value of this property is replaced each time a patch is applied or removed from the product or the command-line option is used to repair the product." +}, +"publisher": { +"description": "The name of the manufacturer for the product or application.", +"type": "string" +} +}, +"type": "object" +}, +"InventoryWindowsQuickFixEngineeringPackage": { +"description": "Information related to a Quick Fix Engineering package. Fields are taken from Windows QuickFixEngineering Interface and match the source names: https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering", +"id": "InventoryWindowsQuickFixEngineeringPackage", +"properties": { +"caption": { +"description": "A short textual description of the QFE update.", +"type": "string" +}, +"description": { +"description": "A textual description of the QFE update.", +"type": "string" +}, +"hotFixId": { +"description": "Unique identifier associated with a particular QFE update.", +"type": "string" +}, +"installTime": { +"description": "Date that the QFE update was installed. Mapped from installed_on field.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"InventoryWindowsUpdatePackage": { +"description": "Details related to a Windows Update package. Field data and names are taken from Windows Update API IUpdate Interface: https://docs.microsoft.com/en-us/windows/win32/api/_wua/ Descriptive fields like title, and description are localized based on the locale of the VM being updated.", +"id": "InventoryWindowsUpdatePackage", +"properties": { +"categories": { +"description": "The categories that are associated with this update package.", +"items": { +"$ref": "InventoryWindowsUpdatePackageWindowsUpdateCategory" +}, +"type": "array" +}, +"description": { +"description": "The localized description of the update package.", +"type": "string" +}, +"kbArticleIds": { +"description": "A collection of Microsoft Knowledge Base article IDs that are associated with the update package.", +"items": { +"type": "string" +}, +"type": "array" +}, +"lastDeploymentChangeTime": { +"description": "The last published date of the update, in (UTC) date and time.", +"format": "google-datetime", +"type": "string" +}, +"moreInfoUrls": { +"description": "A collection of URLs that provide more information about the update package.", +"items": { +"type": "string" +}, +"type": "array" +}, +"revisionNumber": { +"description": "The revision number of this update package.", +"format": "int32", +"type": "integer" +}, +"supportUrl": { +"description": "A hyperlink to the language-specific support information for the update.", +"type": "string" +}, +"title": { +"description": "The localized title of the update package.", +"type": "string" +}, +"updateId": { +"description": "Gets the identifier of an update package. Stays the same across revisions.", +"type": "string" +} +}, +"type": "object" +}, +"InventoryWindowsUpdatePackageWindowsUpdateCategory": { +"description": "Categories specified by the Windows Update.", +"id": "InventoryWindowsUpdatePackageWindowsUpdateCategory", +"properties": { +"id": { +"description": "The identifier of the windows update category.", +"type": "string" +}, +"name": { +"description": "The name of the windows update category.", +"type": "string" +} +}, +"type": "object" +}, +"InventoryZypperPatch": { +"description": "Details related to a Zypper Patch.", +"id": "InventoryZypperPatch", +"properties": { +"category": { +"description": "The category of the patch.", +"type": "string" +}, +"patchName": { +"description": "The name of the patch.", +"type": "string" +}, +"severity": { +"description": "The severity specified for this patch", +"type": "string" +}, +"summary": { +"description": "Any summary information provided about this patch.", +"type": "string" +} +}, +"type": "object" +}, +"ListInstanceOSPoliciesCompliancesResponse": { +"deprecated": true, +"description": "A response message for listing OS policies compliance data for all Compute Engine VMs in the given location.", +"id": "ListInstanceOSPoliciesCompliancesResponse", +"properties": { +"instanceOsPoliciesCompliances": { +"description": "List of instance OS policies compliance objects.", +"items": { +"$ref": "InstanceOSPoliciesCompliance" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token to retrieve the next page of instance OS policies compliance objects.", +"type": "string" +} +}, +"type": "object" +}, +"ListInventoriesResponse": { +"description": "A response message for listing inventory data for all VMs in a specified location.", +"id": "ListInventoriesResponse", +"properties": { +"inventories": { +"description": "List of inventory objects.", +"items": { +"$ref": "Inventory" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token to retrieve the next page of inventory objects.", +"type": "string" +} +}, +"type": "object" +}, +"ListOSPolicyAssignmentReportsResponse": { +"description": "A response message for listing OS Policy assignment reports including the page of results and page token.", +"id": "ListOSPolicyAssignmentReportsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of OS policy assignment report objects.", +"type": "string" +}, +"osPolicyAssignmentReports": { +"description": "List of OS policy assignment reports.", +"items": { +"$ref": "OSPolicyAssignmentReport" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOSPolicyAssignmentRevisionsResponse": { +"description": "A response message for listing all revisions for a OS policy assignment.", +"id": "ListOSPolicyAssignmentRevisionsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of OS policy assignment revisions.", +"type": "string" +}, +"osPolicyAssignments": { +"description": "The OS policy assignment revisions", +"items": { +"$ref": "OSPolicyAssignment" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOSPolicyAssignmentsResponse": { +"description": "A response message for listing all assignments under given parent.", +"id": "ListOSPolicyAssignmentsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of OS policy assignments.", +"type": "string" +}, +"osPolicyAssignments": { +"description": "The list of assignments", +"items": { +"$ref": "OSPolicyAssignment" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVulnerabilityReportsResponse": { +"description": "A response message for listing vulnerability reports for all VM instances in the specified location.", +"id": "ListVulnerabilityReportsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of vulnerabilityReports object.", +"type": "string" +}, +"vulnerabilityReports": { +"description": "List of vulnerabilityReport objects.", +"items": { +"$ref": "VulnerabilityReport" +}, +"type": "array" +} +}, +"type": "object" +}, +"OSPolicy": { +"description": "An OS policy defines the desired state configuration for a VM.", +"id": "OSPolicy", +"properties": { +"allowNoResourceGroupMatch": { +"description": "This flag determines the OS policy compliance status when none of the resource groups within the policy are applicable for a VM. Set this value to `true` if the policy needs to be reported as compliant even if the policy has nothing to validate or enforce.", +"type": "boolean" +}, +"description": { +"description": "Policy description. Length of the description is limited to 1024 characters.", +"type": "string" +}, +"id": { +"description": "Required. The id of the OS policy with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the assignment.", +"type": "string" +}, +"mode": { +"description": "Required. Policy mode", +"enum": [ +"MODE_UNSPECIFIED", +"VALIDATION", +"ENFORCEMENT" +], +"enumDescriptions": [ +"Invalid mode", +"This mode checks if the configuration resources in the policy are in their desired state. No actions are performed if they are not in the desired state. This mode is used for reporting purposes.", +"This mode checks if the configuration resources in the policy are in their desired state, and if not, enforces the desired state." +], +"type": "string" +}, +"resourceGroups": { +"description": "Required. List of resource groups for the policy. For a particular VM, resource groups are evaluated in the order specified and the first resource group that is applicable is selected and the rest are ignored. If none of the resource groups are applicable for a VM, the VM is considered to be non-compliant w.r.t this policy. This behavior can be toggled by the flag `allow_no_resource_group_match`", +"items": { +"$ref": "OSPolicyResourceGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"OSPolicyAssignment": { +"description": "OS policy assignment is an API resource that is used to apply a set of OS policies to a dynamically targeted group of Compute Engine VM instances. An OS policy is used to define the desired state configuration for a Compute Engine VM instance through a set of configuration resources that provide capabilities such as installing or removing software packages, or executing a script. For more information, see [OS policy and OS policy assignment](https://cloud.google.com/compute/docs/os-configuration-management/working-with-os-policies).", +"id": "OSPolicyAssignment", +"properties": { +"baseline": { +"description": "Output only. Indicates that this revision has been successfully rolled out in this zone and new VMs will be assigned OS policies from this revision. For a given OS policy assignment, there is only one revision with a value of `true` for this field.", +"readOnly": true, +"type": "boolean" +}, +"deleted": { +"description": "Output only. Indicates that this revision deletes the OS policy assignment.", +"readOnly": true, +"type": "boolean" +}, +"description": { +"description": "OS policy assignment description. Length of the description is limited to 1024 characters.", +"type": "string" +}, +"etag": { +"description": "The etag for this OS policy assignment. If this is provided on update, it must match the server's etag.", +"type": "string" +}, +"instanceFilter": { +"$ref": "OSPolicyAssignmentInstanceFilter", +"description": "Required. Filter to select VMs." +}, +"name": { +"description": "Resource name. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id}` This field is ignored when you create an OS policy assignment.", +"type": "string" +}, +"osPolicies": { +"description": "Required. List of OS policies to be applied to the VMs.", +"items": { +"$ref": "OSPolicy" +}, +"type": "array" +}, +"reconciling": { +"description": "Output only. Indicates that reconciliation is in progress for the revision. This value is `true` when the `rollout_state` is one of: * IN_PROGRESS * CANCELLING", +"readOnly": true, +"type": "boolean" +}, +"revisionCreateTime": { +"description": "Output only. The timestamp that the revision was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"revisionId": { +"description": "Output only. The assignment revision ID A new revision is committed whenever a rollout is triggered for a OS policy assignment", +"readOnly": true, +"type": "string" +}, +"rollout": { +"$ref": "OSPolicyAssignmentRollout", +"description": "Required. Rollout to deploy the OS policy assignment. A rollout is triggered in the following situations: 1) OSPolicyAssignment is created. 2) OSPolicyAssignment is updated and the update contains changes to one of the following fields: - instance_filter - os_policies 3) OSPolicyAssignment is deleted." +}, +"rolloutState": { +"description": "Output only. OS policy assignment rollout state", +"enum": [ +"ROLLOUT_STATE_UNSPECIFIED", +"IN_PROGRESS", +"CANCELLING", +"CANCELLED", +"SUCCEEDED" +], +"enumDescriptions": [ +"Invalid value", +"The rollout is in progress.", +"The rollout is being cancelled.", +"The rollout is cancelled.", +"The rollout has completed successfully." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. Server generated unique id for the OS policy assignment resource.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentInstanceFilter": { +"description": "Filters to select target VMs for an assignment. If more than one filter criteria is specified below, a VM will be selected if and only if it satisfies all of them.", +"id": "OSPolicyAssignmentInstanceFilter", +"properties": { +"all": { +"description": "Target all VMs in the project. If true, no other criteria is permitted.", +"type": "boolean" +}, +"exclusionLabels": { +"description": "List of label sets used for VM exclusion. If the list has more than one label set, the VM is excluded if any of the label sets are applicable for the VM.", +"items": { +"$ref": "OSPolicyAssignmentLabelSet" +}, +"type": "array" +}, +"inclusionLabels": { +"description": "List of label sets used for VM inclusion. If the list has more than one `LabelSet`, the VM is included if any of the label sets are applicable for the VM.", +"items": { +"$ref": "OSPolicyAssignmentLabelSet" +}, +"type": "array" +}, +"inventories": { +"description": "List of inventories to select VMs. A VM is selected if its inventory data matches at least one of the following inventories.", +"items": { +"$ref": "OSPolicyAssignmentInstanceFilterInventory" +}, +"type": "array" +}, +"osShortNames": { +"deprecated": true, +"description": "Deprecated. Use the `inventories` field instead. A VM is selected if it's OS short name matches with any of the values provided in this list.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"OSPolicyAssignmentInstanceFilterInventory": { +"description": "VM inventory details.", +"id": "OSPolicyAssignmentInstanceFilterInventory", +"properties": { +"osShortName": { +"description": "Required. The OS short name", +"type": "string" +}, +"osVersion": { +"description": "The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentLabelSet": { +"description": "Message representing label set. * A label is a key value pair set for a VM. * A LabelSet is a set of labels. * Labels within a LabelSet are ANDed. In other words, a LabelSet is applicable for a VM only if it matches all the labels in the LabelSet. * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will only be applicable for those VMs with both labels present.", +"id": "OSPolicyAssignmentLabelSet", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels are identified by key/value pairs in this map. A VM should contain all the key/value pairs specified in this map to be selected.", +"type": "object" +} +}, +"type": "object" +}, +"OSPolicyAssignmentOperationMetadata": { +"description": "OS policy assignment operation metadata provided by OS policy assignment API methods that return long running operations.", +"id": "OSPolicyAssignmentOperationMetadata", +"properties": { +"apiMethod": { +"description": "The OS policy assignment API method.", +"enum": [ +"API_METHOD_UNSPECIFIED", +"CREATE", +"UPDATE", +"DELETE" +], +"enumDescriptions": [ +"Invalid value", +"Create OS policy assignment API method", +"Update OS policy assignment API method", +"Delete OS policy assignment API method" +], +"type": "string" +}, +"osPolicyAssignment": { +"description": "Reference to the `OSPolicyAssignment` API resource. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id}`", +"type": "string" +}, +"rolloutStartTime": { +"description": "Rollout start time", +"format": "google-datetime", +"type": "string" +}, +"rolloutState": { +"description": "State of the rollout", +"enum": [ +"ROLLOUT_STATE_UNSPECIFIED", +"IN_PROGRESS", +"CANCELLING", +"CANCELLED", +"SUCCEEDED" +], +"enumDescriptions": [ +"Invalid value", +"The rollout is in progress.", +"The rollout is being cancelled.", +"The rollout is cancelled.", +"The rollout has completed successfully." +], +"type": "string" +}, +"rolloutUpdateTime": { +"description": "Rollout update time", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReport": { +"description": "A report of the OS policy assignment status for a given instance.", +"id": "OSPolicyAssignmentReport", +"properties": { +"instance": { +"description": "The Compute Engine VM instance name.", +"type": "string" +}, +"lastRunId": { +"description": "Unique identifier of the last attempted run to apply the OS policies associated with this assignment on the VM. This ID is logged by the OS Config agent while applying the OS policies associated with this assignment on the VM. NOTE: If the service is unable to successfully connect to the agent for this run, then this id will not be available in the agent logs.", +"type": "string" +}, +"name": { +"description": "The `OSPolicyAssignmentReport` API resource name. Format: `projects/{project_number}/locations/{location}/instances/{instance_id}/osPolicyAssignments/{os_policy_assignment_id}/report`", +"type": "string" +}, +"osPolicyAssignment": { +"description": "Reference to the `OSPolicyAssignment` API resource that the `OSPolicy` belongs to. Format: `projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id}`", +"type": "string" +}, +"osPolicyCompliances": { +"description": "Compliance data for each `OSPolicy` that is applied to the VM.", +"items": { +"$ref": "OSPolicyAssignmentReportOSPolicyCompliance" +}, +"type": "array" +}, +"updateTime": { +"description": "Timestamp for when the report was last generated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReportOSPolicyCompliance": { +"description": "Compliance data for an OS policy", +"id": "OSPolicyAssignmentReportOSPolicyCompliance", +"properties": { +"complianceState": { +"description": "The compliance state of the OS policy.", +"enum": [ +"UNKNOWN", +"COMPLIANT", +"NON_COMPLIANT" +], +"enumDescriptions": [ +"The policy is in an unknown compliance state. Refer to the field `compliance_state_reason` to learn the exact reason for the policy to be in this compliance state.", +"Policy is compliant. The policy is compliant if all the underlying resources are also compliant.", +"Policy is non-compliant. The policy is non-compliant if one or more underlying resources are non-compliant." +], +"type": "string" +}, +"complianceStateReason": { +"description": "The reason for the OS policy to be in an unknown compliance state. This field is always populated when `compliance_state` is `UNKNOWN`. If populated, the field can contain one of the following values: * `vm-not-running`: The VM was not running. * `os-policies-not-supported-by-agent`: The version of the OS Config agent running on the VM does not support running OS policies. * `no-agent-detected`: The OS Config agent is not detected for the VM. * `resource-execution-errors`: The OS Config agent encountered errors while executing one or more resources in the policy. See `os_policy_resource_compliances` for details. * `task-timeout`: The task sent to the agent to apply the policy timed out. * `unexpected-agent-state`: The OS Config agent did not report the final status of the task that attempted to apply the policy. Instead, the agent unexpectedly started working on a different task. This mostly happens when the agent or VM unexpectedly restarts while applying OS policies. * `internal-service-errors`: Internal service errors were encountered while attempting to apply the policy. * `os-policy-execution-pending`: OS policy was assigned to the given VM, but was not executed yet. Typically this is a transient condition that will go away after the next policy execution cycle.", +"type": "string" +}, +"osPolicyId": { +"description": "The OS policy id", +"type": "string" +}, +"osPolicyResourceCompliances": { +"description": "Compliance data for each resource within the policy that is applied to the VM.", +"items": { +"$ref": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceCompliance" +}, +"type": "array" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceCompliance": { +"description": "Compliance data for an OS policy resource.", +"id": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceCompliance", +"properties": { +"complianceState": { +"description": "The compliance state of the resource.", +"enum": [ +"UNKNOWN", +"COMPLIANT", +"NON_COMPLIANT" +], +"enumDescriptions": [ +"The resource is in an unknown compliance state. To get more details about why the policy is in this state, review the output of the `compliance_state_reason` field.", +"Resource is compliant.", +"Resource is non-compliant." +], +"type": "string" +}, +"complianceStateReason": { +"description": "A reason for the resource to be in the given compliance state. This field is always populated when `compliance_state` is `UNKNOWN`. The following values are supported when `compliance_state == UNKNOWN` * `execution-errors`: Errors were encountered by the agent while executing the resource and the compliance state couldn't be determined. * `execution-skipped-by-agent`: Resource execution was skipped by the agent because errors were encountered while executing prior resources in the OS policy. * `os-policy-execution-attempt-failed`: The execution of the OS policy containing this resource failed and the compliance state couldn't be determined. * `os-policy-execution-pending`: OS policy that owns this resource was assigned to the given VM, but was not executed yet.", +"type": "string" +}, +"configSteps": { +"description": "Ordered list of configuration completed by the agent for the OS policy resource.", +"items": { +"$ref": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceOSPolicyResourceConfigStep" +}, +"type": "array" +}, +"execResourceOutput": { +"$ref": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceExecResourceOutput", +"description": "ExecResource specific output." +}, +"osPolicyResourceId": { +"description": "The ID of the OS policy resource.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceExecResourceOutput": { +"description": "ExecResource specific output.", +"id": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceExecResourceOutput", +"properties": { +"enforcementOutput": { +"description": "Output from enforcement phase output file (if run). Output size is limited to 100K bytes.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceOSPolicyResourceConfigStep": { +"description": "Step performed by the OS Config agent for configuring an `OSPolicy` resource to its desired state.", +"id": "OSPolicyAssignmentReportOSPolicyComplianceOSPolicyResourceComplianceOSPolicyResourceConfigStep", +"properties": { +"errorMessage": { +"description": "An error message recorded during the execution of this step. Only populated if errors were encountered during this step execution.", +"type": "string" +}, +"type": { +"description": "Configuration step type.", +"enum": [ +"TYPE_UNSPECIFIED", +"VALIDATION", +"DESIRED_STATE_CHECK", +"DESIRED_STATE_ENFORCEMENT", +"DESIRED_STATE_CHECK_POST_ENFORCEMENT" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Checks for resource conflicts such as schema errors.", +"Checks the current status of the desired state for a resource.", +"Enforces the desired state for a resource that is not in desired state.", +"Re-checks the status of the desired state. This check is done for a resource after the enforcement of all OS policies. This step is used to determine the final desired state status for the resource. It accounts for any resources that might have drifted from their desired state due to side effects from executing other resources." +], +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyAssignmentRollout": { +"description": "Message to configure the rollout at the zonal level for the OS policy assignment.", +"id": "OSPolicyAssignmentRollout", +"properties": { +"disruptionBudget": { +"$ref": "FixedOrPercent", +"description": "Required. The maximum number (or percentage) of VMs per zone to disrupt at any given moment." +}, +"minWaitDuration": { +"description": "Required. This determines the minimum duration of time to wait after the configuration changes are applied through the current rollout. A VM continues to count towards the `disruption_budget` at least until this duration of time has passed after configuration changes are applied.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyInventoryFilter": { +"description": "Filtering criteria to select VMs based on inventory details.", +"id": "OSPolicyInventoryFilter", +"properties": { +"osShortName": { +"description": "Required. The OS short name", +"type": "string" +}, +"osVersion": { +"description": "The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*` An empty string matches all OS versions.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyOSFilter": { +"description": "Filtering criteria to select VMs based on OS details.", +"id": "OSPolicyOSFilter", +"properties": { +"osShortName": { +"description": "This should match OS short name emitted by the OS inventory agent. An empty value matches any OS.", +"type": "string" +}, +"osVersion": { +"description": "This value should match the version emitted by the OS inventory agent. Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of `7`, specify the following value for this field `7.*`", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResource": { +"description": "An OS policy resource is used to define the desired state configuration and provides a specific functionality like installing/removing packages, executing a script etc. The system ensures that resources are always in their desired state by taking necessary actions if they have drifted from their desired state.", +"id": "OSPolicyResource", +"properties": { +"exec": { +"$ref": "OSPolicyResourceExecResource", +"description": "Exec resource" +}, +"file": { +"$ref": "OSPolicyResourceFileResource", +"description": "File resource" +}, +"id": { +"description": "Required. The id of the resource with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the OS policy.", +"type": "string" +}, +"pkg": { +"$ref": "OSPolicyResourcePackageResource", +"description": "Package resource" +}, +"repository": { +"$ref": "OSPolicyResourceRepositoryResource", +"description": "Package repository resource" +} +}, +"type": "object" +}, +"OSPolicyResourceCompliance": { +"deprecated": true, +"description": "Compliance data for an OS policy resource.", +"id": "OSPolicyResourceCompliance", +"properties": { +"configSteps": { +"description": "Ordered list of configuration steps taken by the agent for the OS policy resource.", +"items": { +"$ref": "OSPolicyResourceConfigStep" +}, +"type": "array" +}, +"execResourceOutput": { +"$ref": "OSPolicyResourceComplianceExecResourceOutput", +"description": "ExecResource specific output." +}, +"osPolicyResourceId": { +"description": "The id of the OS policy resource.", +"type": "string" +}, +"state": { +"description": "Compliance state of the OS policy resource.", +"enum": [ +"OS_POLICY_COMPLIANCE_STATE_UNSPECIFIED", +"COMPLIANT", +"NON_COMPLIANT", +"UNKNOWN", +"NO_OS_POLICIES_APPLICABLE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Compliant state.", +"Non-compliant state", +"Unknown compliance state.", +"No applicable OS policies were found for the instance. This state is only applicable to the instance." +], +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceComplianceExecResourceOutput": { +"deprecated": true, +"description": "ExecResource specific output.", +"id": "OSPolicyResourceComplianceExecResourceOutput", +"properties": { +"enforcementOutput": { +"description": "Output from Enforcement phase output file (if run). Output size is limited to 100K bytes.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceConfigStep": { +"deprecated": true, +"description": "Step performed by the OS Config agent for configuring an `OSPolicyResource` to its desired state.", +"id": "OSPolicyResourceConfigStep", +"properties": { +"errorMessage": { +"description": "An error message recorded during the execution of this step. Only populated when outcome is FAILED.", +"type": "string" +}, +"outcome": { +"description": "Outcome of the configuration step.", +"enum": [ +"OUTCOME_UNSPECIFIED", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The step succeeded.", +"The step failed." +], +"type": "string" +}, +"type": { +"description": "Configuration step type.", +"enum": [ +"TYPE_UNSPECIFIED", +"VALIDATION", +"DESIRED_STATE_CHECK", +"DESIRED_STATE_ENFORCEMENT", +"DESIRED_STATE_CHECK_POST_ENFORCEMENT" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Validation to detect resource conflicts, schema errors, etc.", +"Check the current desired state status of the resource.", +"Enforce the desired state for a resource that is not in desired state.", +"Re-check desired state status for a resource after enforcement of all resources in the current configuration run. This step is used to determine the final desired state status for the resource. It accounts for any resources that might have drifted from their desired state due to side effects from configuring other resources during the current configuration run." +], +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceExecResource": { +"description": "A resource that allows executing scripts on the VM. The `ExecResource` has 2 stages: `validate` and `enforce` and both stages accept a script as an argument to execute. When the `ExecResource` is applied by the agent, it first executes the script in the `validate` stage. The `validate` stage can signal that the `ExecResource` is already in the desired state by returning an exit code of `100`. If the `ExecResource` is not in the desired state, it should return an exit code of `101`. Any other exit code returned by this stage is considered an error. If the `ExecResource` is not in the desired state based on the exit code from the `validate` stage, the agent proceeds to execute the script from the `enforce` stage. If the `ExecResource` is already in the desired state, the `enforce` stage will not be run. Similar to `validate` stage, the `enforce` stage should return an exit code of `100` to indicate that the resource in now in its desired state. Any other exit code is considered an error. NOTE: An exit code of `100` was chosen over `0` (and `101` vs `1`) to have an explicit indicator of `in desired state`, `not in desired state` and errors. Because, for example, Powershell will always return an exit code of `0` unless an `exit` statement is provided in the script. So, for reasons of consistency and being explicit, exit codes `100` and `101` were chosen.", +"id": "OSPolicyResourceExecResource", +"properties": { +"enforce": { +"$ref": "OSPolicyResourceExecResourceExec", +"description": "What to run to bring this resource into the desired state. An exit code of 100 indicates \"success\", any other exit code indicates a failure running enforce." +}, +"validate": { +"$ref": "OSPolicyResourceExecResourceExec", +"description": "Required. What to run to validate this resource is in the desired state. An exit code of 100 indicates \"in desired state\", and exit code of 101 indicates \"not in desired state\". Any other exit code indicates a failure running validate." +} +}, +"type": "object" +}, +"OSPolicyResourceExecResourceExec": { +"description": "A file or script to execute.", +"id": "OSPolicyResourceExecResourceExec", +"properties": { +"args": { +"description": "Optional arguments to pass to the source during execution.", +"items": { +"type": "string" +}, +"type": "array" +}, +"file": { +"$ref": "OSPolicyResourceFile", +"description": "A remote or local file." +}, +"interpreter": { +"description": "Required. The script interpreter to use.", +"enum": [ +"INTERPRETER_UNSPECIFIED", +"NONE", +"SHELL", +"POWERSHELL" +], +"enumDescriptions": [ +"Invalid value, the request will return validation error.", +"If an interpreter is not specified, the source is executed directly. This execution, without an interpreter, only succeeds for executables and scripts that have shebang lines.", +"Indicates that the script runs with `/bin/sh` on Linux and `cmd.exe` on Windows.", +"Indicates that the script runs with PowerShell." +], +"type": "string" +}, +"outputFilePath": { +"description": "Only recorded for enforce Exec. Path to an output file (that is created by this Exec) whose content will be recorded in OSPolicyResourceCompliance after a successful run. Absence or failure to read this file will result in this ExecResource being non-compliant. Output file size is limited to 100K bytes.", +"type": "string" +}, +"script": { +"description": "An inline script. The size of the script is limited to 32KiB.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceFile": { +"description": "A remote or local file.", +"id": "OSPolicyResourceFile", +"properties": { +"allowInsecure": { +"description": "Defaults to false. When false, files are subject to validations based on the file type: Remote: A checksum must be specified. Cloud Storage: An object generation number must be specified.", +"type": "boolean" +}, +"gcs": { +"$ref": "OSPolicyResourceFileGcs", +"description": "A Cloud Storage object." +}, +"localPath": { +"description": "A local path within the VM to use.", +"type": "string" +}, +"remote": { +"$ref": "OSPolicyResourceFileRemote", +"description": "A generic remote file." +} +}, +"type": "object" +}, +"OSPolicyResourceFileGcs": { +"description": "Specifies a file available as a Cloud Storage Object.", +"id": "OSPolicyResourceFileGcs", +"properties": { +"bucket": { +"description": "Required. Bucket of the Cloud Storage object.", +"type": "string" +}, +"generation": { +"description": "Generation number of the Cloud Storage object.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Required. Name of the Cloud Storage object.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceFileRemote": { +"description": "Specifies a file available via some URI.", +"id": "OSPolicyResourceFileRemote", +"properties": { +"sha256Checksum": { +"description": "SHA256 checksum of the remote file.", +"type": "string" +}, +"uri": { +"description": "Required. URI from which to fetch the object. It should contain both the protocol and path following the format `{protocol}://{location}`.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceFileResource": { +"description": "A resource that manages the state of a file.", +"id": "OSPolicyResourceFileResource", +"properties": { +"content": { +"description": "A a file with this content. The size of the content is limited to 32KiB.", +"type": "string" +}, +"file": { +"$ref": "OSPolicyResourceFile", +"description": "A remote or local source." +}, +"path": { +"description": "Required. The absolute path of the file within the VM.", +"type": "string" +}, +"permissions": { +"description": "Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one bit corresponds to the execute permission. Default behavior is 755. Below are some examples of permissions and their associated values: read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4", +"type": "string" +}, +"state": { +"description": "Required. Desired state of the file.", +"enum": [ +"DESIRED_STATE_UNSPECIFIED", +"PRESENT", +"ABSENT", +"CONTENTS_MATCH" +], +"enumDescriptions": [ +"Unspecified is invalid.", +"Ensure file at path is present.", +"Ensure file at path is absent.", +"Ensure the contents of the file at path matches. If the file does not exist it will be created." +], +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceGroup": { +"description": "Resource groups provide a mechanism to group OS policy resources. Resource groups enable OS policy authors to create a single OS policy to be applied to VMs running different operating Systems. When the OS policy is applied to a target VM, the appropriate resource group within the OS policy is selected based on the `OSFilter` specified within the resource group.", +"id": "OSPolicyResourceGroup", +"properties": { +"inventoryFilters": { +"description": "List of inventory filters for the resource group. The resources in this resource group are applied to the target VM if it satisfies at least one of the following inventory filters. For example, to apply this resource group to VMs running either `RHEL` or `CentOS` operating systems, specify 2 items for the list with following values: inventory_filters[0].os_short_name='rhel' and inventory_filters[1].os_short_name='centos' If the list is empty, this resource group will be applied to the target VM unconditionally.", +"items": { +"$ref": "OSPolicyInventoryFilter" +}, +"type": "array" +}, +"osFilter": { +"$ref": "OSPolicyOSFilter", +"deprecated": true, +"description": "Deprecated. Use the `inventory_filters` field instead. Used to specify the OS filter for a resource group" +}, +"resources": { +"description": "Required. List of resources configured for this resource group. The resources are executed in the exact order specified here.", +"items": { +"$ref": "OSPolicyResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResource": { +"description": "A resource that manages a system package.", +"id": "OSPolicyResourcePackageResource", +"properties": { +"apt": { +"$ref": "OSPolicyResourcePackageResourceAPT", +"description": "A package managed by Apt." +}, +"deb": { +"$ref": "OSPolicyResourcePackageResourceDeb", +"description": "A deb package file." +}, +"desiredState": { +"description": "Required. The desired state the agent should maintain for this package.", +"enum": [ +"DESIRED_STATE_UNSPECIFIED", +"INSTALLED", +"REMOVED" +], +"enumDescriptions": [ +"Unspecified is invalid.", +"Ensure that the package is installed.", +"The agent ensures that the package is not installed and uninstalls it if detected." +], +"type": "string" +}, +"googet": { +"$ref": "OSPolicyResourcePackageResourceGooGet", +"description": "A package managed by GooGet." +}, +"msi": { +"$ref": "OSPolicyResourcePackageResourceMSI", +"description": "An MSI package." +}, +"rpm": { +"$ref": "OSPolicyResourcePackageResourceRPM", +"description": "An rpm package file." +}, +"yum": { +"$ref": "OSPolicyResourcePackageResourceYUM", +"description": "A package managed by YUM." +}, +"zypper": { +"$ref": "OSPolicyResourcePackageResourceZypper", +"description": "A package managed by Zypper." +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceAPT": { +"description": "A package managed by APT. - install: `apt-get update && apt-get -y install [name]` - remove: `apt-get -y remove [name]`", +"id": "OSPolicyResourcePackageResourceAPT", +"properties": { +"name": { +"description": "Required. Package name.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceDeb": { +"description": "A deb package file. dpkg packages only support INSTALLED state.", +"id": "OSPolicyResourcePackageResourceDeb", +"properties": { +"pullDeps": { +"description": "Whether dependencies should also be installed. - install when false: `dpkg -i package` - install when true: `apt-get update && apt-get -y install package.deb`", +"type": "boolean" +}, +"source": { +"$ref": "OSPolicyResourceFile", +"description": "Required. A deb package." +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceGooGet": { +"description": "A package managed by GooGet. - install: `googet -noconfirm install package` - remove: `googet -noconfirm remove package`", +"id": "OSPolicyResourcePackageResourceGooGet", +"properties": { +"name": { +"description": "Required. Package name.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceMSI": { +"description": "An MSI package. MSI packages only support INSTALLED state.", +"id": "OSPolicyResourcePackageResourceMSI", +"properties": { +"properties": { +"description": "Additional properties to use during installation. This should be in the format of Property=Setting. Appended to the defaults of `ACTION=INSTALL REBOOT=ReallySuppress`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"source": { +"$ref": "OSPolicyResourceFile", +"description": "Required. The MSI package." +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceRPM": { +"description": "An RPM package file. RPM packages only support INSTALLED state.", +"id": "OSPolicyResourcePackageResourceRPM", +"properties": { +"pullDeps": { +"description": "Whether dependencies should also be installed. - install when false: `rpm --upgrade --replacepkgs package.rpm` - install when true: `yum -y install package.rpm` or `zypper -y install package.rpm`", +"type": "boolean" +}, +"source": { +"$ref": "OSPolicyResourceFile", +"description": "Required. An rpm package." +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceYUM": { +"description": "A package managed by YUM. - install: `yum -y install package` - remove: `yum -y remove package`", +"id": "OSPolicyResourcePackageResourceYUM", +"properties": { +"name": { +"description": "Required. Package name.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourcePackageResourceZypper": { +"description": "A package managed by Zypper. - install: `zypper -y install package` - remove: `zypper -y rm package`", +"id": "OSPolicyResourcePackageResourceZypper", +"properties": { +"name": { +"description": "Required. Package name.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResource": { +"description": "A resource that manages a package repository.", +"id": "OSPolicyResourceRepositoryResource", +"properties": { +"apt": { +"$ref": "OSPolicyResourceRepositoryResourceAptRepository", +"description": "An Apt Repository." +}, +"goo": { +"$ref": "OSPolicyResourceRepositoryResourceGooRepository", +"description": "A Goo Repository." +}, +"yum": { +"$ref": "OSPolicyResourceRepositoryResourceYumRepository", +"description": "A Yum Repository." +}, +"zypper": { +"$ref": "OSPolicyResourceRepositoryResourceZypperRepository", +"description": "A Zypper Repository." +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResourceAptRepository": { +"description": "Represents a single apt package repository. These will be added to a repo file that will be managed at `/etc/apt/sources.list.d/google_osconfig.list`.", +"id": "OSPolicyResourceRepositoryResourceAptRepository", +"properties": { +"archiveType": { +"description": "Required. Type of archive files in this repository.", +"enum": [ +"ARCHIVE_TYPE_UNSPECIFIED", +"DEB", +"DEB_SRC" +], +"enumDescriptions": [ +"Unspecified is invalid.", +"Deb indicates that the archive contains binary files.", +"Deb-src indicates that the archive contains source files." +], +"type": "string" +}, +"components": { +"description": "Required. List of components for this repository. Must contain at least one item.", +"items": { +"type": "string" +}, +"type": "array" +}, +"distribution": { +"description": "Required. Distribution of this repository.", +"type": "string" +}, +"gpgKey": { +"description": "URI of the key file for this repository. The agent maintains a keyring at `/etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg`.", +"type": "string" +}, +"uri": { +"description": "Required. URI for this repository.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResourceGooRepository": { +"description": "Represents a Goo package repository. These are added to a repo file that is managed at `C:/ProgramData/GooGet/repos/google_osconfig.repo`.", +"id": "OSPolicyResourceRepositoryResourceGooRepository", +"properties": { +"name": { +"description": "Required. The name of the repository.", +"type": "string" +}, +"url": { +"description": "Required. The url of the repository.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResourceYumRepository": { +"description": "Represents a single yum package repository. These are added to a repo file that is managed at `/etc/yum.repos.d/google_osconfig.repo`.", +"id": "OSPolicyResourceRepositoryResourceYumRepository", +"properties": { +"baseUrl": { +"description": "Required. The location of the repository directory.", +"type": "string" +}, +"displayName": { +"description": "The display name of the repository.", +"type": "string" +}, +"gpgKeys": { +"description": "URIs of GPG keys.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Required. A one word, unique name for this repository. This is the `repo id` in the yum config file and also the `display_name` if `display_name` is omitted. This id is also used as the unique identifier when checking for resource conflicts.", +"type": "string" +} +}, +"type": "object" +}, +"OSPolicyResourceRepositoryResourceZypperRepository": { +"description": "Represents a single zypper package repository. These are added to a repo file that is managed at `/etc/zypp/repos.d/google_osconfig.repo`.", +"id": "OSPolicyResourceRepositoryResourceZypperRepository", +"properties": { +"baseUrl": { +"description": "Required. The location of the repository directory.", +"type": "string" +}, +"displayName": { +"description": "The display name of the repository.", +"type": "string" +}, +"gpgKeys": { +"description": "URIs of GPG keys.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Required. A one word, unique name for this repository. This is the `repo id` in the zypper config file and also the `display_name` if `display_name` is omitted. This id is also used as the unique identifier when checking for GuestPolicy conflicts.", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"VulnerabilityReport": { +"description": "This API resource represents the vulnerability report for a specified Compute Engine virtual machine (VM) instance at a given point in time. For more information, see [Vulnerability reports](https://cloud.google.com/compute/docs/instances/os-inventory-management#vulnerability-reports).", +"id": "VulnerabilityReport", +"properties": { +"name": { +"description": "Output only. The `vulnerabilityReport` API resource name. Format: `projects/{project_number}/locations/{location}/instances/{instance_id}/vulnerabilityReport`", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The timestamp for when the last vulnerability report was generated for the VM.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vulnerabilities": { +"description": "Output only. List of vulnerabilities affecting the VM.", +"items": { +"$ref": "VulnerabilityReportVulnerability" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"VulnerabilityReportVulnerability": { +"description": "A vulnerability affecting the VM instance.", +"id": "VulnerabilityReportVulnerability", +"properties": { +"availableInventoryItemIds": { +"deprecated": true, +"description": "Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. If there is no available fix, the field is empty. The `inventory_item` value specifies the latest `SoftwarePackage` available to the VM that fixes the vulnerability.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createTime": { +"description": "The timestamp for when the vulnerability was first detected.", +"format": "google-datetime", +"type": "string" +}, +"details": { +"$ref": "VulnerabilityReportVulnerabilityDetails", +"description": "Contains metadata as per the upstream feed of the operating system and NVD." +}, +"installedInventoryItemIds": { +"deprecated": true, +"description": "Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. This field displays the inventory items affected by this vulnerability. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. For some distros, this field may be empty.", +"items": { +"type": "string" +}, +"type": "array" +}, +"items": { +"description": "List of items affected by the vulnerability.", +"items": { +"$ref": "VulnerabilityReportVulnerabilityItem" +}, +"type": "array" +}, +"updateTime": { +"description": "The timestamp for when the vulnerability was last modified.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"VulnerabilityReportVulnerabilityDetails": { +"description": "Contains metadata information for the vulnerability. This information is collected from the upstream feed of the operating system.", +"id": "VulnerabilityReportVulnerabilityDetails", +"properties": { +"cve": { +"description": "The CVE of the vulnerability. CVE cannot be empty and the combination of should be unique across vulnerabilities for a VM.", +"type": "string" +}, +"cvssV2Score": { +"description": "The CVSS V2 score of this vulnerability. CVSS V2 score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity.", +"format": "float", +"type": "number" +}, +"cvssV3": { +"$ref": "CVSSv3", +"description": "The full description of the CVSSv3 for this vulnerability from NVD." +}, +"description": { +"description": "The note or description describing the vulnerability from the distro.", +"type": "string" +}, +"references": { +"description": "Corresponds to the references attached to the `VulnerabilityDetails`.", +"items": { +"$ref": "VulnerabilityReportVulnerabilityDetailsReference" +}, +"type": "array" +}, +"severity": { +"description": "Assigned severity/impact ranking from the distro.", +"type": "string" +} +}, +"type": "object" +}, +"VulnerabilityReportVulnerabilityDetailsReference": { +"description": "A reference for this vulnerability.", +"id": "VulnerabilityReportVulnerabilityDetailsReference", +"properties": { +"source": { +"description": "The source of the reference e.g. NVD.", +"type": "string" +}, +"url": { +"description": "The url of the reference.", +"type": "string" +} +}, +"type": "object" +}, +"VulnerabilityReportVulnerabilityItem": { +"description": "OS inventory item that is affected by a vulnerability or fixed as a result of a vulnerability.", +"id": "VulnerabilityReportVulnerabilityItem", +"properties": { +"availableInventoryItemId": { +"description": "Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. If there is no available fix, the field is empty. The `inventory_item` value specifies the latest `SoftwarePackage` available to the VM that fixes the vulnerability.", +"type": "string" +}, +"fixedCpeUri": { +"description": "The recommended [CPE URI](https://cpe.mitre.org/specification/) update that contains a fix for this vulnerability.", +"type": "string" +}, +"installedInventoryItemId": { +"description": "Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. This field displays the inventory items affected by this vulnerability. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. For some operating systems, this field might be empty.", +"type": "string" +}, +"upstreamFix": { +"description": "The upstream OS patch, packages or KB that fixes the vulnerability.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "OS Config API", +"version": "v1alpha", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/playablelocations.v3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/playablelocations.v3.json new file mode 100644 index 0000000000000000000000000000000000000000..4ced29754fcf0d1c2677769da505488662456894 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/playablelocations.v3.json @@ -0,0 +1,528 @@ +{ + "basePath": "", + "baseUrl": "https://playablelocations.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Playable Locations", + "description": "", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/maps/contact-sales/", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "playablelocations:v3", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://playablelocations.mtls.googleapis.com/", + "name": "playablelocations", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "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", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "key": { + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "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", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "v3": { + "methods": { + "logImpressions": { + "description": "Logs new events when playable locations are displayed, and when they are interacted with. Impressions are not partially saved; either all impressions are saved and this request succeeds, or no impressions are saved, and this request fails.", + "flatPath": "v3:logImpressions", + "httpMethod": "POST", + "id": "playablelocations.logImpressions", + "parameterOrder": [], + "parameters": {}, + "path": "v3:logImpressions", + "request": { + "$ref": "GoogleMapsPlayablelocationsV3LogImpressionsRequest" + }, + "response": { + "$ref": "GoogleMapsPlayablelocationsV3LogImpressionsResponse" + } + }, + "logPlayerReports": { + "description": "Logs bad playable location reports submitted by players. Reports are not partially saved; either all reports are saved and this request succeeds, or no reports are saved, and this request fails.", + "flatPath": "v3:logPlayerReports", + "httpMethod": "POST", + "id": "playablelocations.logPlayerReports", + "parameterOrder": [], + "parameters": {}, + "path": "v3:logPlayerReports", + "request": { + "$ref": "GoogleMapsPlayablelocationsV3LogPlayerReportsRequest" + }, + "response": { + "$ref": "GoogleMapsPlayablelocationsV3LogPlayerReportsResponse" + } + }, + "samplePlayableLocations": { + "description": "Returns a set of playable locations that lie within a specified area, that satisfy optional filter criteria. Note: Identical `SamplePlayableLocations` requests can return different results as the state of the world changes over time.", + "flatPath": "v3:samplePlayableLocations", + "httpMethod": "POST", + "id": "playablelocations.samplePlayableLocations", + "parameterOrder": [], + "parameters": {}, + "path": "v3:samplePlayableLocations", + "request": { + "$ref": "GoogleMapsPlayablelocationsV3SamplePlayableLocationsRequest" + }, + "response": { + "$ref": "GoogleMapsPlayablelocationsV3SamplePlayableLocationsResponse" + } + } + } + } + }, + "revision": "20211008", + "rootUrl": "https://playablelocations.googleapis.com/", + "schemas": { + "GoogleMapsPlayablelocationsV3Impression": { + "description": "Encapsulates impression event details.", + "id": "GoogleMapsPlayablelocationsV3Impression", + "properties": { + "gameObjectType": { + "description": "An arbitrary, developer-defined type identifier for each type of game object used in your game. Since players interact with differ types of game objects in different ways, this field allows you to segregate impression data by type for analysis. You should assign a unique `game_object_type` ID to represent a distinct type of game object in your game. For example, 1=monster location, 2=powerup location.", + "format": "int32", + "type": "integer" + }, + "impressionType": { + "description": "Required. The type of impression event.", + "enum": [ + "IMPRESSION_TYPE_UNSPECIFIED", + "PRESENTED", + "INTERACTED" + ], + "enumDescriptions": [ + "Unspecified type. Do not use.", + "The playable location was presented to a player.", + "A player interacted with the playable location." + ], + "type": "string" + }, + "locationName": { + "description": "Required. The name of the playable location.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3LogImpressionsRequest": { + "description": "A request for logging impressions.", + "id": "GoogleMapsPlayablelocationsV3LogImpressionsRequest", + "properties": { + "clientInfo": { + "$ref": "GoogleMapsUnityClientInfo", + "description": "Required. Information about the client device. For example, device model and operating system." + }, + "impressions": { + "description": "Required. Impression event details. The maximum number of impression reports that you can log at once is 50.", + "items": { + "$ref": "GoogleMapsPlayablelocationsV3Impression" + }, + "type": "array" + }, + "requestId": { + "description": "Required. A string that uniquely identifies the log impressions request. This allows you to detect duplicate requests. We recommend that you use UUIDs for this value. The value must not exceed 50 characters. You should reuse the `request_id` only when retrying a request in case of failure. In this case, the request must be identical to the one that failed.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3LogImpressionsResponse": { + "description": "A response for the LogImpressions method. This method returns no data upon success.", + "id": "GoogleMapsPlayablelocationsV3LogImpressionsResponse", + "properties": {}, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3LogPlayerReportsRequest": { + "description": "A request for logging your player's bad location reports.", + "id": "GoogleMapsPlayablelocationsV3LogPlayerReportsRequest", + "properties": { + "clientInfo": { + "$ref": "GoogleMapsUnityClientInfo", + "description": "Required. Information about the client device (for example, device model and operating system)." + }, + "playerReports": { + "description": "Required. Player reports. The maximum number of player reports that you can log at once is 50.", + "items": { + "$ref": "GoogleMapsPlayablelocationsV3PlayerReport" + }, + "type": "array" + }, + "requestId": { + "description": "Required. A string that uniquely identifies the log player reports request. This allows you to detect duplicate requests. We recommend that you use UUIDs for this value. The value must not exceed 50 characters. You should reuse the `request_id` only when retrying a request in the case of a failure. In that case, the request must be identical to the one that failed.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3LogPlayerReportsResponse": { + "description": "A response for the LogPlayerReports method. This method returns no data upon success.", + "id": "GoogleMapsPlayablelocationsV3LogPlayerReportsResponse", + "properties": {}, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3PlayerReport": { + "description": "A report submitted by a player about a playable location that is considered inappropriate for use in the game.", + "id": "GoogleMapsPlayablelocationsV3PlayerReport", + "properties": { + "languageCode": { + "description": "Language code (in BCP-47 format) indicating the language of the freeform description provided in `reason_details`. Examples are \"en\", \"en-US\" or \"ja-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "type": "string" + }, + "locationName": { + "description": "Required. The name of the playable location.", + "type": "string" + }, + "reasonDetails": { + "description": "Required. A free-form description detailing why the playable location is considered bad.", + "type": "string" + }, + "reasons": { + "description": "Required. One or more reasons why this playable location is considered bad.", + "items": { + "enum": [ + "BAD_LOCATION_REASON_UNSPECIFIED", + "OTHER", + "NOT_PEDESTRIAN_ACCESSIBLE", + "NOT_OPEN_TO_PUBLIC", + "PERMANENTLY_CLOSED", + "TEMPORARILY_INACCESSIBLE" + ], + "enumDescriptions": [ + "Unspecified reason. Do not use.", + "The reason isn't one of the reasons in this enumeration.", + "The playable location isn't accessible to pedestrians. For example, if it's in the middle of a highway.", + "The playable location isn't open to the public. For example, a private office building.", + "The playable location is permanently closed. For example, when a business has been shut down.", + "The playable location is temporarily inaccessible. For example, when a business has closed for renovations." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3SampleAreaFilter": { + "description": "Specifies the area to search for playable locations.", + "id": "GoogleMapsPlayablelocationsV3SampleAreaFilter", + "properties": { + "s2CellId": { + "description": "Required. The S2 cell ID of the area you want. This must be between cell level 11 and 14 (inclusive). S2 cells are 64-bit integers that identify areas on the Earth. They are hierarchical, and can therefore be used for spatial indexing. The S2 geometry library is available in a number of languages: * [C++](https://github.com/google/s2geometry) * [Java](https://github.com/google/s2-geometry-library-java) * [Go](https://github.com/golang/geo) * [Python](https://github.com/google/s2geometry/tree/master/src/python)", + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3SampleCriterion": { + "description": "Encapsulates a filter criterion for searching for a set of playable locations.", + "id": "GoogleMapsPlayablelocationsV3SampleCriterion", + "properties": { + "fieldsToReturn": { + "description": "Specifies which `PlayableLocation` fields are returned. `name` (which is used for logging impressions), `center_point` and `place_id` (or `plus_code`) are always returned. The following fields are omitted unless you specify them here: * snapped_point * types Note: The more fields you include, the more expensive in terms of data and associated latency your query will be.", + "format": "google-fieldmask", + "type": "string" + }, + "filter": { + "$ref": "GoogleMapsPlayablelocationsV3SampleFilter", + "description": "Specifies filtering options, and specifies what will be included in the result set." + }, + "gameObjectType": { + "description": "Required. An arbitrary, developer-defined identifier of the type of game object that the playable location is used for. This field allows you to specify criteria per game object type when searching for playable locations. You should assign a unique `game_object_type` ID across all `request_criteria` to represent a distinct type of game object. For example, 1=monster location, 2=powerup location. The response contains a map.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3SampleFilter": { + "description": "Specifies the filters to use when searching for playable locations.", + "id": "GoogleMapsPlayablelocationsV3SampleFilter", + "properties": { + "includedTypes": { + "description": "Restricts the set of playable locations to just the [types](/maps/documentation/gaming/tt/types) that you want.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maxLocationCount": { + "description": "Specifies the maximum number of playable locations to return. This value must not be greater than 1000. The default value is 100. Only the top-ranking playable locations are returned.", + "format": "int32", + "type": "integer" + }, + "spacing": { + "$ref": "GoogleMapsPlayablelocationsV3SampleSpacingOptions", + "description": "A set of options that control the spacing between playable locations. By default the minimum distance between locations is 200m." + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3SamplePlayableLocation": { + "description": "A geographical point suitable for placing game objects in location-based games.", + "id": "GoogleMapsPlayablelocationsV3SamplePlayableLocation", + "properties": { + "centerPoint": { + "$ref": "GoogleTypeLatLng", + "description": "Required. The latitude and longitude associated with the center of the playable location. By default, the set of playable locations returned from SamplePlayableLocations use center-point coordinates." + }, + "name": { + "description": "Required. The name of this playable location.", + "type": "string" + }, + "placeId": { + "description": "A [place ID] (https://developers.google.com/places/place-id)", + "type": "string" + }, + "plusCode": { + "description": "A [plus code] (http://openlocationcode.com)", + "type": "string" + }, + "snappedPoint": { + "$ref": "GoogleTypeLatLng", + "description": "The playable location's coordinates, snapped to the sidewalk of the nearest road, if a nearby road exists." + }, + "types": { + "description": "A collection of [Playable Location Types](/maps/documentation/gaming/tt/types) for this playable location. The first type in the collection is the primary type. Type information might not be available for all playable locations.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3SamplePlayableLocationList": { + "description": "A list of PlayableLocation objects that satisfies a single Criterion.", + "id": "GoogleMapsPlayablelocationsV3SamplePlayableLocationList", + "properties": { + "locations": { + "description": "A list of playable locations for this game object type.", + "items": { + "$ref": "GoogleMapsPlayablelocationsV3SamplePlayableLocation" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3SamplePlayableLocationsRequest": { + "description": " Life of a query: - When a game starts in a new location, your game server issues a SamplePlayableLocations request. The request specifies the S2 cell, and contains one or more \"criteria\" for filtering: - Criterion 0: i locations for long-lived bases, or level 0 monsters, or... - Criterion 1: j locations for short-lived bases, or level 1 monsters, ... - Criterion 2: k locations for random objects. - etc (up to 5 criterion may be specified). `PlayableLocationList` will then contain mutually exclusive lists of `PlayableLocation` objects that satisfy each of the criteria. Think of it as a collection of real-world locations that you can then associate with your game state. Note: These points are impermanent in nature. E.g, parks can close, and places can be removed. The response specifies how long you can expect the playable locations to last. Once they expire, you should query the `samplePlayableLocations` API again to get a fresh view of the real world.", + "id": "GoogleMapsPlayablelocationsV3SamplePlayableLocationsRequest", + "properties": { + "areaFilter": { + "$ref": "GoogleMapsPlayablelocationsV3SampleAreaFilter", + "description": "Required. Specifies the area to search within for playable locations." + }, + "criteria": { + "description": "Required. Specifies one or more (up to 5) criteria for filtering the returned playable locations.", + "items": { + "$ref": "GoogleMapsPlayablelocationsV3SampleCriterion" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3SamplePlayableLocationsResponse": { + "description": " Response for the SamplePlayableLocations method.", + "id": "GoogleMapsPlayablelocationsV3SamplePlayableLocationsResponse", + "properties": { + "locationsPerGameObjectType": { + "additionalProperties": { + "$ref": "GoogleMapsPlayablelocationsV3SamplePlayableLocationList" + }, + "description": "Each PlayableLocation object corresponds to a game_object_type specified in the request.", + "type": "object" + }, + "ttl": { + "description": "Required. Specifies the \"time-to-live\" for the set of playable locations. You can use this value to determine how long to cache the set of playable locations. After this length of time, your back-end game server should issue a new SamplePlayableLocations request to get a fresh set of playable locations (because for example, they might have been removed, a park might have closed for the day, a business might have closed permanently).", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleMapsPlayablelocationsV3SampleSpacingOptions": { + "description": "A set of options that specifies the separation between playable locations.", + "id": "GoogleMapsPlayablelocationsV3SampleSpacingOptions", + "properties": { + "minSpacingMeters": { + "description": "Required. The minimum spacing between any two playable locations, measured in meters. The minimum value is 30. The maximum value is 1000. Inputs will be rounded up to the next 10 meter interval. The default value is 200m. Set this field to remove tight clusters of playable locations. Note: The spacing is a greedy algorithm. It optimizes for selecting the highest ranking locations first, not to maximize the number of locations selected. Consider the following scenario: * Rank: A: 2, B: 1, C: 3. * Distance: A--200m--B--200m--C If spacing=250, it will pick the highest ranked location [B], not [A, C]. Note: Spacing works within the game object type itself, as well as the previous ones. Suppose three game object types, each with the following spacing: * X: 400m, Y: undefined, Z: 200m. 1. Add locations for X, within 400m of each other. 2. Add locations for Y, without any spacing. 3. Finally, add locations for Z within 200m of each other as well X and Y. The distance diagram between those locations end up as: * From->To. * X->X: 400m * Y->X, Y->Y: unspecified. * Z->X, Z->Y, Z->Z: 200m.", + "format": "double", + "type": "number" + }, + "pointType": { + "description": "Specifies whether the minimum spacing constraint applies to the center-point or to the snapped point of playable locations. The default value is `CENTER_POINT`. If a snapped point is not available for a playable location, its center-point is used instead. Set this to the point type used in your game.", + "enum": [ + "POINT_TYPE_UNSPECIFIED", + "CENTER_POINT", + "SNAPPED_POINT" + ], + "enumDescriptions": [ + "Unspecified point type. Do not use this value.", + "The geographic coordinates correspond to the center of the location.", + "The geographic coordinates correspond to the location snapped to the sidewalk of the nearest road (when a nearby road exists)." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleMapsUnityClientInfo": { + "description": "Client information.", + "id": "GoogleMapsUnityClientInfo", + "properties": { + "apiClient": { + "description": "API client name and version. For example, the SDK calling the API. The exact format is up to the client.", + "type": "string" + }, + "applicationId": { + "description": "Application ID, such as the package name on Android and the bundle identifier on iOS platforms.", + "type": "string" + }, + "applicationVersion": { + "description": "Application version number, such as \"1.2.3\". The exact format is application-dependent.", + "type": "string" + }, + "deviceModel": { + "description": "Device model as reported by the device. The exact format is platform-dependent.", + "type": "string" + }, + "languageCode": { + "description": "Language code (in BCP-47 format) indicating the UI language of the client. Examples are \"en\", \"en-US\" or \"ja-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "type": "string" + }, + "operatingSystem": { + "description": "Operating system name and version as reported by the OS. For example, \"Mac OS X 10.10.4\". The exact format is platform-dependent.", + "type": "string" + }, + "operatingSystemBuild": { + "description": "Build number/version of the operating system. e.g., the contents of android.os.Build.ID in Android, or the contents of sysctl \"kern.osversion\" in iOS.", + "type": "string" + }, + "platform": { + "description": "Platform where the application is running.", + "enum": [ + "PLATFORM_UNSPECIFIED", + "EDITOR", + "MAC_OS", + "WINDOWS", + "LINUX", + "ANDROID", + "IOS", + "WEB_GL" + ], + "enumDescriptions": [ + "Unspecified or unknown OS.", + "Development environment.", + "macOS.", + "Windows.", + "Linux", + "Android", + "iOS", + "WebGL." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleTypeLatLng": { + "description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.", + "id": "GoogleTypeLatLng", + "properties": { + "latitude": { + "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", + "format": "double", + "type": "number" + }, + "longitude": { + "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", + "format": "double", + "type": "number" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Playable Locations API", + "version": "v3", + "version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/playcustomapp.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/playcustomapp.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..89ac7fe577326d8d0848cd01d7d22f403ffe0318 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/playcustomapp.v1.json @@ -0,0 +1,210 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/androidpublisher": { +"description": "View and manage your Google Play Developer account" +} +} +} +}, +"basePath": "", +"baseUrl": "https://playcustomapp.googleapis.com/", +"batchPath": "batch", +"description": "API to create and publish custom Android apps", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/android/work/play/custom-app-api/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "playcustomapp:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://playcustomapp.mtls.googleapis.com/", +"name": "playcustomapp", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"accounts": { +"resources": { +"customApps": { +"methods": { +"create": { +"description": "Creates a new custom app.", +"flatPath": "playcustomapp/v1/accounts/{account}/customApps", +"httpMethod": "POST", +"id": "playcustomapp.accounts.customApps.create", +"mediaUpload": { +"accept": [ +"*/*" +], +"maxSize": "10737418240", +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/playcustomapp/v1/accounts/{account}/customApps" +}, +"simple": { +"multipart": true, +"path": "/upload/playcustomapp/v1/accounts/{account}/customApps" +} +} +}, +"parameterOrder": [ +"account" +], +"parameters": { +"account": { +"description": "Developer account ID.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "playcustomapp/v1/accounts/{account}/customApps", +"request": { +"$ref": "CustomApp" +}, +"response": { +"$ref": "CustomApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/androidpublisher" +], +"supportsMediaUpload": true +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://playcustomapp.googleapis.com/", +"schemas": { +"CustomApp": { +"description": "This resource represents a custom app.", +"id": "CustomApp", +"properties": { +"languageCode": { +"description": "Default listing language in BCP 47 format.", +"type": "string" +}, +"organizations": { +"description": "Organizations to which the custom app should be made available. If the request contains any organizations, then the app will be restricted to only these organizations. To support the organization linked to the developer account, the organization ID should be provided explicitly together with other organizations. If no organizations are provided, then the app is only available to the organization linked to the developer account.", +"items": { +"$ref": "Organization" +}, +"type": "array" +}, +"packageName": { +"description": "Output only. Package name of the created Android app. Only present in the API response.", +"readOnly": true, +"type": "string" +}, +"title": { +"description": "Title for the Android app.", +"type": "string" +} +}, +"type": "object" +}, +"Organization": { +"description": "Represents an organization that can access a custom app.", +"id": "Organization", +"properties": { +"organizationId": { +"description": "Required. ID of the organization.", +"type": "string" +}, +"organizationName": { +"description": "Optional. A human-readable name of the organization, to help recognize the organization.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Play Custom App Publishing API", +"version": "v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..2cb442db7bc22803cf9c4910deb77b006072a903 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json @@ -0,0 +1,536 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://policytroubleshooter.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Policy Troubleshooter", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/iam/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "policytroubleshooter:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://policytroubleshooter.mtls.googleapis.com/", +"name": "policytroubleshooter", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"iam": { +"methods": { +"troubleshoot": { +"description": "Checks whether a principal has a specific permission for a specific resource, and explains why the principal does or does not have that permission.", +"flatPath": "v1/iam:troubleshoot", +"httpMethod": "POST", +"id": "policytroubleshooter.iam.troubleshoot", +"parameterOrder": [], +"parameters": {}, +"path": "v1/iam:troubleshoot", +"request": { +"$ref": "GoogleCloudPolicytroubleshooterV1TroubleshootIamPolicyRequest" +}, +"response": { +"$ref": "GoogleCloudPolicytroubleshooterV1TroubleshootIamPolicyResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://policytroubleshooter.googleapis.com/", +"schemas": { +"GoogleCloudPolicytroubleshooterV1AccessTuple": { +"description": "Information about the principal, resource, and permission to check.", +"id": "GoogleCloudPolicytroubleshooterV1AccessTuple", +"properties": { +"fullResourceName": { +"description": "Required. The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.", +"type": "string" +}, +"permission": { +"description": "Required. The IAM permission to check for the specified principal and resource. For a complete list of IAM permissions, see https://cloud.google.com/iam/help/permissions/reference. For a complete list of predefined IAM roles and the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.", +"type": "string" +}, +"principal": { +"description": "Required. The principal whose access you want to check, in the form of the email address that represents that principal. For example, `alice@example.com` or `my-service-account@my-project.iam.gserviceaccount.com`. The principal must be a Google Account or a service account. Other types of principals are not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicytroubleshooterV1BindingExplanation": { +"description": "Details about how a binding in a policy affects a principal's ability to use a permission.", +"id": "GoogleCloudPolicytroubleshooterV1BindingExplanation", +"properties": { +"access": { +"description": "Required. Indicates whether _this binding_ provides the specified permission to the specified principal for the specified resource. This field does _not_ indicate whether the principal actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the principal actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.", +"enum": [ +"ACCESS_STATE_UNSPECIFIED", +"GRANTED", +"NOT_GRANTED", +"UNKNOWN_CONDITIONAL", +"UNKNOWN_INFO_DENIED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The principal has the permission.", +"The principal does not have the permission.", +"The principal has the permission only if a condition expression evaluates to `true`.", +"The sender of the request does not have access to all of the policies that Policy Troubleshooter needs to evaluate." +], +"type": "string" +}, +"condition": { +"$ref": "GoogleTypeExpr", +"description": "A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/help/conditions/overview." +}, +"memberships": { +"additionalProperties": { +"$ref": "GoogleCloudPolicytroubleshooterV1BindingExplanationAnnotatedMembership" +}, +"description": "Indicates whether each principal in the binding includes the principal specified in the request, either directly or indirectly. Each key identifies a principal in the binding, and each value indicates whether the principal in the binding includes the principal in the request. For example, suppose that a binding includes the following principals: * `user:alice@example.com` * `group:product-eng@example.com` You want to troubleshoot access for `user:bob@example.com`. This user is a principal of the group `group:product-eng@example.com`. For the first principal in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second principal in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.", +"type": "object" +}, +"relevance": { +"description": "The relevance of this binding to the overall determination for the entire policy.", +"enum": [ +"HEURISTIC_RELEVANCE_UNSPECIFIED", +"NORMAL", +"HIGH" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The data point has a limited effect on the result. Changing the data point is unlikely to affect the overall determination.", +"The data point has a strong effect on the result. Changing the data point is likely to affect the overall determination." +], +"type": "string" +}, +"role": { +"description": "The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.", +"type": "string" +}, +"rolePermission": { +"description": "Indicates whether the role granted by this binding contains the specified permission.", +"enum": [ +"ROLE_PERMISSION_UNSPECIFIED", +"ROLE_PERMISSION_INCLUDED", +"ROLE_PERMISSION_NOT_INCLUDED", +"ROLE_PERMISSION_UNKNOWN_INFO_DENIED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The permission is included in the role.", +"The permission is not included in the role.", +"The sender of the request is not allowed to access the binding." +], +"type": "string" +}, +"rolePermissionRelevance": { +"description": "The relevance of the permission's existence, or nonexistence, in the role to the overall determination for the entire policy.", +"enum": [ +"HEURISTIC_RELEVANCE_UNSPECIFIED", +"NORMAL", +"HIGH" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The data point has a limited effect on the result. Changing the data point is unlikely to affect the overall determination.", +"The data point has a strong effect on the result. Changing the data point is likely to affect the overall determination." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicytroubleshooterV1BindingExplanationAnnotatedMembership": { +"description": "Details about whether the binding includes the principal.", +"id": "GoogleCloudPolicytroubleshooterV1BindingExplanationAnnotatedMembership", +"properties": { +"membership": { +"description": "Indicates whether the binding includes the principal.", +"enum": [ +"MEMBERSHIP_UNSPECIFIED", +"MEMBERSHIP_INCLUDED", +"MEMBERSHIP_NOT_INCLUDED", +"MEMBERSHIP_UNKNOWN_INFO_DENIED", +"MEMBERSHIP_UNKNOWN_UNSUPPORTED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The binding includes the principal. The principal can be included directly or indirectly. For example: * A principal is included directly if that principal is listed in the binding. * A principal is included indirectly if that principal is in a Google group or Google Workspace domain that is listed in the binding.", +"The binding does not include the principal.", +"The sender of the request is not allowed to access the binding.", +"The principal is an unsupported type. Only Google Accounts and service accounts are supported." +], +"type": "string" +}, +"relevance": { +"description": "The relevance of the principal's status to the overall determination for the binding.", +"enum": [ +"HEURISTIC_RELEVANCE_UNSPECIFIED", +"NORMAL", +"HIGH" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The data point has a limited effect on the result. Changing the data point is unlikely to affect the overall determination.", +"The data point has a strong effect on the result. Changing the data point is likely to affect the overall determination." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicytroubleshooterV1ExplainedPolicy": { +"description": "Details about how a specific IAM Policy contributed to the access check.", +"id": "GoogleCloudPolicytroubleshooterV1ExplainedPolicy", +"properties": { +"access": { +"description": "Indicates whether _this policy_ provides the specified permission to the specified principal for the specified resource. This field does _not_ indicate whether the principal actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the principal actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.", +"enum": [ +"ACCESS_STATE_UNSPECIFIED", +"GRANTED", +"NOT_GRANTED", +"UNKNOWN_CONDITIONAL", +"UNKNOWN_INFO_DENIED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The principal has the permission.", +"The principal does not have the permission.", +"The principal has the permission only if a condition expression evaluates to `true`.", +"The sender of the request does not have access to all of the policies that Policy Troubleshooter needs to evaluate." +], +"type": "string" +}, +"bindingExplanations": { +"description": "Details about how each binding in the policy affects the principal's ability, or inability, to use the permission for the resource. If the sender of the request does not have access to the policy, this field is omitted.", +"items": { +"$ref": "GoogleCloudPolicytroubleshooterV1BindingExplanation" +}, +"type": "array" +}, +"fullResourceName": { +"description": "The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the sender of the request does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.", +"type": "string" +}, +"policy": { +"$ref": "GoogleIamV1Policy", +"description": "The IAM policy attached to the resource. If the sender of the request does not have access to the policy, this field is empty." +}, +"relevance": { +"description": "The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the sender of the request does not have access to the policy, this field is omitted.", +"enum": [ +"HEURISTIC_RELEVANCE_UNSPECIFIED", +"NORMAL", +"HIGH" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The data point has a limited effect on the result. Changing the data point is unlikely to affect the overall determination.", +"The data point has a strong effect on the result. Changing the data point is likely to affect the overall determination." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicytroubleshooterV1TroubleshootIamPolicyRequest": { +"description": "Request for TroubleshootIamPolicy.", +"id": "GoogleCloudPolicytroubleshooterV1TroubleshootIamPolicyRequest", +"properties": { +"accessTuple": { +"$ref": "GoogleCloudPolicytroubleshooterV1AccessTuple", +"description": "The information to use for checking whether a principal has a permission for a resource." +} +}, +"type": "object" +}, +"GoogleCloudPolicytroubleshooterV1TroubleshootIamPolicyResponse": { +"description": "Response for TroubleshootIamPolicy.", +"id": "GoogleCloudPolicytroubleshooterV1TroubleshootIamPolicyResponse", +"properties": { +"access": { +"description": "Indicates whether the principal has the specified permission for the specified resource, based on evaluating all of the applicable IAM policies.", +"enum": [ +"ACCESS_STATE_UNSPECIFIED", +"GRANTED", +"NOT_GRANTED", +"UNKNOWN_CONDITIONAL", +"UNKNOWN_INFO_DENIED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The principal has the permission.", +"The principal does not have the permission.", +"The principal has the permission only if a condition expression evaluates to `true`.", +"The sender of the request does not have access to all of the policies that Policy Troubleshooter needs to evaluate." +], +"type": "string" +}, +"errors": { +"description": "The general errors contained in the troubleshooting response.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"explainedPolicies": { +"description": "List of IAM policies that were evaluated to check the principal's permissions, with annotations to indicate how each policy contributed to the final result. The list of policies can include the policy for the resource itself. It can also include policies that are inherited from higher levels of the resource hierarchy, including the organization, the folder, and the project. To learn more about the resource hierarchy, see https://cloud.google.com/iam/help/resource-hierarchy.", +"items": { +"$ref": "GoogleCloudPolicytroubleshooterV1ExplainedPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleIamV1AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "GoogleIamV1AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "GoogleIamV1AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "GoogleIamV1AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "GoogleIamV1Binding", +"properties": { +"condition": { +"$ref": "GoogleTypeExpr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleIamV1Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "GoogleIamV1Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "GoogleIamV1AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "GoogleIamV1Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeExpr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "GoogleTypeExpr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Policy Troubleshooter API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/rapidmigrationassessment.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/rapidmigrationassessment.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..a1c4be09a3caf3798369a8668ddede25737b0d35 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/rapidmigrationassessment.v1.json @@ -0,0 +1,1059 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://rapidmigrationassessment.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Rapid Migration Assessment", +"description": "The Rapid Migration Assessment service is our first-party migration assessment and planning tool.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/migration-center", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "rapidmigrationassessment:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://rapidmigrationassessment.mtls.googleapis.com/", +"name": "rapidmigrationassessment", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "rapidmigrationassessment.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "rapidmigrationassessment.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"annotations": { +"methods": { +"create": { +"description": "Creates an Annotation", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/annotations", +"httpMethod": "POST", +"id": "rapidmigrationassessment.projects.locations.annotations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the parent (project+location).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/annotations", +"request": { +"$ref": "Annotation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Annotation.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/annotations/{annotationsId}", +"httpMethod": "GET", +"id": "rapidmigrationassessment.projects.locations.annotations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/annotations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Annotation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"collectors": { +"methods": { +"create": { +"description": "Create a Collector to manage the on-prem appliance which collects information about Customer assets.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/collectors", +"httpMethod": "POST", +"id": "rapidmigrationassessment.projects.locations.collectors.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"collectorId": { +"description": "Required. Id of the requesting object.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent (project+location).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/collectors", +"request": { +"$ref": "Collector" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Collector - changes state of collector to \"Deleting\". Background jobs does final deletion thorugh producer api.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/collectors/{collectorsId}", +"httpMethod": "DELETE", +"id": "rapidmigrationassessment.projects.locations.collectors.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/collectors/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Collector.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/collectors/{collectorsId}", +"httpMethod": "GET", +"id": "rapidmigrationassessment.projects.locations.collectors.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/collectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Collector" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Collectors in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/collectors", +"httpMethod": "GET", +"id": "rapidmigrationassessment.projects.locations.collectors.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filtering results.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Hint for how to order the results.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent value for ListCollectorsRequest.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/collectors", +"response": { +"$ref": "ListCollectorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single Collector.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/collectors/{collectorsId}", +"httpMethod": "PATCH", +"id": "rapidmigrationassessment.projects.locations.collectors.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "name of resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/collectors/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the Collector resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Collector" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"pause": { +"description": "Pauses the given collector.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/collectors/{collectorsId}:pause", +"httpMethod": "POST", +"id": "rapidmigrationassessment.projects.locations.collectors.pause", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/collectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:pause", +"request": { +"$ref": "PauseCollectorRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"register": { +"description": "Registers the given collector.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/collectors/{collectorsId}:register", +"httpMethod": "POST", +"id": "rapidmigrationassessment.projects.locations.collectors.register", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/collectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:register", +"request": { +"$ref": "RegisterCollectorRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resume": { +"description": "Resumes the given collector.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/collectors/{collectorsId}:resume", +"httpMethod": "POST", +"id": "rapidmigrationassessment.projects.locations.collectors.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/collectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:resume", +"request": { +"$ref": "ResumeCollectorRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "rapidmigrationassessment.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "rapidmigrationassessment.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "rapidmigrationassessment.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "rapidmigrationassessment.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241211", +"rootUrl": "https://rapidmigrationassessment.googleapis.com/", +"schemas": { +"Annotation": { +"description": "Message describing an Annotation", +"id": "Annotation", +"properties": { +"createTime": { +"description": "Output only. Create time stamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs.", +"type": "object" +}, +"name": { +"description": "name of resource.", +"type": "string" +}, +"type": { +"description": "Type of an annotation.", +"enum": [ +"TYPE_UNSPECIFIED", +"TYPE_LEGACY_EXPORT_CONSENT", +"TYPE_QWIKLAB" +], +"enumDescriptions": [ +"Unknown type", +"Indicates that this project has opted into StratoZone export.", +"Indicates that this project is created by Qwiklab." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time stamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Collector": { +"description": "Message describing Collector object.", +"id": "Collector", +"properties": { +"bucket": { +"description": "Output only. Store cloud storage bucket name (which is a guid) created with this Collector.", +"readOnly": true, +"type": "string" +}, +"clientVersion": { +"description": "Output only. Client version.", +"readOnly": true, +"type": "string" +}, +"collectionDays": { +"description": "How many days to collect data.", +"format": "int32", +"type": "integer" +}, +"createTime": { +"description": "Output only. Create time stamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User specified description of the Collector.", +"type": "string" +}, +"displayName": { +"description": "User specified name of the Collector.", +"type": "string" +}, +"eulaUri": { +"description": "Uri for EULA (End User License Agreement) from customer.", +"type": "string" +}, +"expectedAssetCount": { +"description": "User specified expected asset count.", +"format": "int64", +"type": "string" +}, +"guestOsScan": { +"$ref": "GuestOsScan", +"description": "Output only. Reference to MC Source Guest Os Scan.", +"readOnly": true +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels as key value pairs.", +"type": "object" +}, +"name": { +"description": "name of resource.", +"type": "string" +}, +"serviceAccount": { +"description": "Service Account email used to ingest data to this Collector.", +"type": "string" +}, +"state": { +"description": "Output only. State of the Collector.", +"enum": [ +"STATE_UNSPECIFIED", +"STATE_INITIALIZING", +"STATE_READY_TO_USE", +"STATE_REGISTERED", +"STATE_ACTIVE", +"STATE_PAUSED", +"STATE_DELETING", +"STATE_DECOMMISSIONED", +"STATE_ERROR" +], +"enumDescriptions": [ +"Collector state is not recognized.", +"Collector started to create, but hasn't been completed MC source creation and db object creation.", +"Collector has been created, MC source creation and db object creation completed.", +"Collector client has been registered with client.", +"Collector client is actively scanning.", +"Collector is not actively scanning.", +"Collector is starting background job for deletion.", +"Collector completed all tasks for deletion.", +"Collector is in error state." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time stamp.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vsphereScan": { +"$ref": "VSphereScan", +"description": "Output only. Reference to MC Source vsphere_scan.", +"readOnly": true +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"GuestOsScan": { +"description": "Message describing a MC Source of type Guest OS Scan.", +"id": "GuestOsScan", +"properties": { +"coreSource": { +"description": "reference to the corresponding Guest OS Scan in MC Source.", +"type": "string" +} +}, +"type": "object" +}, +"ListCollectorsResponse": { +"description": "Message for response to listing Collectors.", +"id": "ListCollectorsResponse", +"properties": { +"collectors": { +"description": "The list of Collectors.", +"items": { +"$ref": "Collector" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PauseCollectorRequest": { +"description": "Message for pausing a Collector.", +"id": "PauseCollectorRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"RegisterCollectorRequest": { +"description": "Message for registering a Collector.", +"id": "RegisterCollectorRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"ResumeCollectorRequest": { +"description": "Message for resuming a Collector.", +"id": "ResumeCollectorRequest", +"properties": { +"requestId": { +"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"VSphereScan": { +"description": "Message describing a MC Source of type VSphere Scan.", +"id": "VSphereScan", +"properties": { +"coreSource": { +"description": "reference to the corresponding VSphere Scan in MC Source.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Rapid Migration Assessment API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/recommender.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/recommender.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..e0debcb1549dbbaf8dc975bc6bccdccc8de63790 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/recommender.v1.json @@ -0,0 +1,2457 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://recommender.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Recommender", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/recommender/docs/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "recommender:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://recommender.mtls.googleapis.com/", +"name": "recommender", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"billingAccounts": { +"resources": { +"locations": { +"resources": { +"insightTypes": { +"methods": { +"getConfig": { +"description": "Gets the requested InsightTypeConfig. There is only one instance of the config for each InsightType.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", +"httpMethod": "GET", +"id": "recommender.billingAccounts.locations.insightTypes.getConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1InsightTypeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateConfig": { +"description": "Updates an InsightTypeConfig change. This will create a new revision of the config.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", +"httpMethod": "PATCH", +"id": "recommender.billingAccounts.locations.insightTypes.updateConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "If true, validate the request and preview the change, but do not actually update it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudRecommenderV1InsightTypeConfig" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1InsightTypeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"insights": { +"methods": { +"get": { +"description": "Gets the requested insight. Requires the recommender.*.get IAM permission for the specified insight type.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights/{insightsId}", +"httpMethod": "GET", +"id": "recommender.billingAccounts.locations.insightTypes.insights.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the insight.", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1Insight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists insights for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified insight type.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights", +"httpMethod": "GET", +"id": "recommender.billingAccounts.locations.insightTypes.insights.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. If not specified, the server will determine the number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters must be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ INSIGHT_TYPE_ID refers to supported insight types: https://cloud.google.com/recommender/docs/insights/insight-types.", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/insights", +"response": { +"$ref": "GoogleCloudRecommenderV1ListInsightsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markAccepted": { +"description": "Marks the Insight State as Accepted. Users can use this method to indicate to the Recommender API that they have applied some action based on the insight. This stops the insight content from being updated. MarkInsightAccepted can be applied to insights in ACTIVE state. Requires the recommender.*.update IAM permission for the specified insight.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights/{insightsId}:markAccepted", +"httpMethod": "POST", +"id": "recommender.billingAccounts.locations.insightTypes.insights.markAccepted", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the insight.", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markAccepted", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkInsightAcceptedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Insight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"recommenders": { +"methods": { +"getConfig": { +"description": "Gets the requested Recommender Config. There is only one instance of the config for each Recommender.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/config", +"httpMethod": "GET", +"id": "recommender.billingAccounts.locations.recommenders.getConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1RecommenderConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateConfig": { +"description": "Updates a Recommender Config. This will create a new revision of the config.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/config", +"httpMethod": "PATCH", +"id": "recommender.billingAccounts.locations.recommenders.updateConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "If true, validate the request and preview the change, but do not actually update it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudRecommenderV1RecommenderConfig" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1RecommenderConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"recommendations": { +"methods": { +"get": { +"description": "Gets the requested recommendation. Requires the recommender.*.get IAM permission for the specified recommender.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}", +"httpMethod": "GET", +"id": "recommender.billingAccounts.locations.recommenders.recommendations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists recommendations for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified recommender.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations", +"httpMethod": "GET", +"id": "recommender.billingAccounts.locations.recommenders.recommendations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. If not specified, the server will determine the number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters must be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ RECOMMENDER_ID refers to supported recommenders: https://cloud.google.com/recommender/docs/recommenders.", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/recommendations", +"response": { +"$ref": "GoogleCloudRecommenderV1ListRecommendationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markClaimed": { +"description": "Marks the Recommendation State as Claimed. Users can use this method to indicate to the Recommender API that they are starting to apply the recommendation themselves. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationClaimed can be applied to recommendations in CLAIMED, SUCCEEDED, FAILED, or ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markClaimed", +"httpMethod": "POST", +"id": "recommender.billingAccounts.locations.recommenders.recommendations.markClaimed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markClaimed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationClaimedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markDismissed": { +"description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", +"httpMethod": "POST", +"id": "recommender.billingAccounts.locations.recommenders.recommendations.markDismissed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markDismissed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markFailed": { +"description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", +"httpMethod": "POST", +"id": "recommender.billingAccounts.locations.recommenders.recommendations.markFailed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markFailed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationFailedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markSucceeded": { +"description": "Marks the Recommendation State as Succeeded. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation was successful. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markSucceeded", +"httpMethod": "POST", +"id": "recommender.billingAccounts.locations.recommenders.recommendations.markSucceeded", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markSucceeded", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationSucceededRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"folders": { +"resources": { +"locations": { +"resources": { +"insightTypes": { +"resources": { +"insights": { +"methods": { +"get": { +"description": "Gets the requested insight. Requires the recommender.*.get IAM permission for the specified insight type.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights/{insightsId}", +"httpMethod": "GET", +"id": "recommender.folders.locations.insightTypes.insights.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the insight.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/insightTypes/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1Insight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists insights for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified insight type.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights", +"httpMethod": "GET", +"id": "recommender.folders.locations.insightTypes.insights.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. If not specified, the server will determine the number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters must be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ INSIGHT_TYPE_ID refers to supported insight types: https://cloud.google.com/recommender/docs/insights/insight-types.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/insightTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/insights", +"response": { +"$ref": "GoogleCloudRecommenderV1ListInsightsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markAccepted": { +"description": "Marks the Insight State as Accepted. Users can use this method to indicate to the Recommender API that they have applied some action based on the insight. This stops the insight content from being updated. MarkInsightAccepted can be applied to insights in ACTIVE state. Requires the recommender.*.update IAM permission for the specified insight.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights/{insightsId}:markAccepted", +"httpMethod": "POST", +"id": "recommender.folders.locations.insightTypes.insights.markAccepted", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the insight.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/insightTypes/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markAccepted", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkInsightAcceptedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Insight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"recommenders": { +"resources": { +"recommendations": { +"methods": { +"get": { +"description": "Gets the requested recommendation. Requires the recommender.*.get IAM permission for the specified recommender.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}", +"httpMethod": "GET", +"id": "recommender.folders.locations.recommenders.recommendations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists recommendations for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified recommender.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations", +"httpMethod": "GET", +"id": "recommender.folders.locations.recommenders.recommendations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. If not specified, the server will determine the number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters must be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ RECOMMENDER_ID refers to supported recommenders: https://cloud.google.com/recommender/docs/recommenders.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/recommendations", +"response": { +"$ref": "GoogleCloudRecommenderV1ListRecommendationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markClaimed": { +"description": "Marks the Recommendation State as Claimed. Users can use this method to indicate to the Recommender API that they are starting to apply the recommendation themselves. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationClaimed can be applied to recommendations in CLAIMED, SUCCEEDED, FAILED, or ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markClaimed", +"httpMethod": "POST", +"id": "recommender.folders.locations.recommenders.recommendations.markClaimed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markClaimed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationClaimedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markDismissed": { +"description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", +"httpMethod": "POST", +"id": "recommender.folders.locations.recommenders.recommendations.markDismissed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markDismissed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markFailed": { +"description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", +"httpMethod": "POST", +"id": "recommender.folders.locations.recommenders.recommendations.markFailed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markFailed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationFailedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markSucceeded": { +"description": "Marks the Recommendation State as Succeeded. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation was successful. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markSucceeded", +"httpMethod": "POST", +"id": "recommender.folders.locations.recommenders.recommendations.markSucceeded", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markSucceeded", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationSucceededRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"organizations": { +"resources": { +"locations": { +"resources": { +"insightTypes": { +"methods": { +"getConfig": { +"description": "Gets the requested InsightTypeConfig. There is only one instance of the config for each InsightType.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", +"httpMethod": "GET", +"id": "recommender.organizations.locations.insightTypes.getConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1InsightTypeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateConfig": { +"description": "Updates an InsightTypeConfig change. This will create a new revision of the config.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", +"httpMethod": "PATCH", +"id": "recommender.organizations.locations.insightTypes.updateConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "If true, validate the request and preview the change, but do not actually update it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudRecommenderV1InsightTypeConfig" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1InsightTypeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"insights": { +"methods": { +"get": { +"description": "Gets the requested insight. Requires the recommender.*.get IAM permission for the specified insight type.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights/{insightsId}", +"httpMethod": "GET", +"id": "recommender.organizations.locations.insightTypes.insights.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the insight.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1Insight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists insights for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified insight type.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights", +"httpMethod": "GET", +"id": "recommender.organizations.locations.insightTypes.insights.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. If not specified, the server will determine the number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters must be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ INSIGHT_TYPE_ID refers to supported insight types: https://cloud.google.com/recommender/docs/insights/insight-types.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/insights", +"response": { +"$ref": "GoogleCloudRecommenderV1ListInsightsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markAccepted": { +"description": "Marks the Insight State as Accepted. Users can use this method to indicate to the Recommender API that they have applied some action based on the insight. This stops the insight content from being updated. MarkInsightAccepted can be applied to insights in ACTIVE state. Requires the recommender.*.update IAM permission for the specified insight.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights/{insightsId}:markAccepted", +"httpMethod": "POST", +"id": "recommender.organizations.locations.insightTypes.insights.markAccepted", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the insight.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markAccepted", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkInsightAcceptedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Insight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"recommenders": { +"methods": { +"getConfig": { +"description": "Gets the requested Recommender Config. There is only one instance of the config for each Recommender.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/config", +"httpMethod": "GET", +"id": "recommender.organizations.locations.recommenders.getConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1RecommenderConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateConfig": { +"description": "Updates a Recommender Config. This will create a new revision of the config.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/config", +"httpMethod": "PATCH", +"id": "recommender.organizations.locations.recommenders.updateConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "If true, validate the request and preview the change, but do not actually update it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudRecommenderV1RecommenderConfig" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1RecommenderConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"recommendations": { +"methods": { +"get": { +"description": "Gets the requested recommendation. Requires the recommender.*.get IAM permission for the specified recommender.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}", +"httpMethod": "GET", +"id": "recommender.organizations.locations.recommenders.recommendations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists recommendations for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified recommender.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations", +"httpMethod": "GET", +"id": "recommender.organizations.locations.recommenders.recommendations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. If not specified, the server will determine the number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters must be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ RECOMMENDER_ID refers to supported recommenders: https://cloud.google.com/recommender/docs/recommenders.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/recommendations", +"response": { +"$ref": "GoogleCloudRecommenderV1ListRecommendationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markClaimed": { +"description": "Marks the Recommendation State as Claimed. Users can use this method to indicate to the Recommender API that they are starting to apply the recommendation themselves. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationClaimed can be applied to recommendations in CLAIMED, SUCCEEDED, FAILED, or ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markClaimed", +"httpMethod": "POST", +"id": "recommender.organizations.locations.recommenders.recommendations.markClaimed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markClaimed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationClaimedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markDismissed": { +"description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", +"httpMethod": "POST", +"id": "recommender.organizations.locations.recommenders.recommendations.markDismissed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markDismissed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markFailed": { +"description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", +"httpMethod": "POST", +"id": "recommender.organizations.locations.recommenders.recommendations.markFailed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markFailed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationFailedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markSucceeded": { +"description": "Marks the Recommendation State as Succeeded. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation was successful. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markSucceeded", +"httpMethod": "POST", +"id": "recommender.organizations.locations.recommenders.recommendations.markSucceeded", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markSucceeded", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationSucceededRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"resources": { +"insightTypes": { +"methods": { +"getConfig": { +"description": "Gets the requested InsightTypeConfig. There is only one instance of the config for each InsightType.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", +"httpMethod": "GET", +"id": "recommender.projects.locations.insightTypes.getConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1InsightTypeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateConfig": { +"description": "Updates an InsightTypeConfig change. This will create a new revision of the config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", +"httpMethod": "PATCH", +"id": "recommender.projects.locations.insightTypes.updateConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "If true, validate the request and preview the change, but do not actually update it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudRecommenderV1InsightTypeConfig" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1InsightTypeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"insights": { +"methods": { +"get": { +"description": "Gets the requested insight. Requires the recommender.*.get IAM permission for the specified insight type.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights/{insightsId}", +"httpMethod": "GET", +"id": "recommender.projects.locations.insightTypes.insights.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the insight.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/insightTypes/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1Insight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists insights for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified insight type.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights", +"httpMethod": "GET", +"id": "recommender.projects.locations.insightTypes.insights.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. If not specified, the server will determine the number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters must be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ INSIGHT_TYPE_ID refers to supported insight types: https://cloud.google.com/recommender/docs/insights/insight-types.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/insightTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/insights", +"response": { +"$ref": "GoogleCloudRecommenderV1ListInsightsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markAccepted": { +"description": "Marks the Insight State as Accepted. Users can use this method to indicate to the Recommender API that they have applied some action based on the insight. This stops the insight content from being updated. MarkInsightAccepted can be applied to insights in ACTIVE state. Requires the recommender.*.update IAM permission for the specified insight.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/insightTypes/{insightTypesId}/insights/{insightsId}:markAccepted", +"httpMethod": "POST", +"id": "recommender.projects.locations.insightTypes.insights.markAccepted", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the insight.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/insightTypes/[^/]+/insights/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markAccepted", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkInsightAcceptedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Insight" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"recommenders": { +"methods": { +"getConfig": { +"description": "Gets the requested Recommender Config. There is only one instance of the config for each Recommender.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/config", +"httpMethod": "GET", +"id": "recommender.projects.locations.recommenders.getConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1RecommenderConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateConfig": { +"description": "Updates a Recommender Config. This will create a new revision of the config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/config", +"httpMethod": "PATCH", +"id": "recommender.projects.locations.recommenders.updateConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "If true, validate the request and preview the change, but do not actually update it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudRecommenderV1RecommenderConfig" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1RecommenderConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"recommendations": { +"methods": { +"get": { +"description": "Gets the requested recommendation. Requires the recommender.*.get IAM permission for the specified recommender.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}", +"httpMethod": "GET", +"id": "recommender.projects.locations.recommenders.recommendations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists recommendations for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified recommender.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations", +"httpMethod": "GET", +"id": "recommender.projects.locations.recommenders.recommendations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` * `targetResources` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `targetResources : //compute.googleapis.com/projects/1234/zones/us-central1-a/instances/instance-1` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` The max allowed filter length is 500 characters. (These expressions are based on the filter language described at https://google.aip.dev/160)", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. If not specified, the server will determine the number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters must be identical to those in the previous call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ RECOMMENDER_ID refers to supported recommenders: https://cloud.google.com/recommender/docs/recommenders.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/recommendations", +"response": { +"$ref": "GoogleCloudRecommenderV1ListRecommendationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markClaimed": { +"description": "Marks the Recommendation State as Claimed. Users can use this method to indicate to the Recommender API that they are starting to apply the recommendation themselves. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationClaimed can be applied to recommendations in CLAIMED, SUCCEEDED, FAILED, or ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markClaimed", +"httpMethod": "POST", +"id": "recommender.projects.locations.recommenders.recommendations.markClaimed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markClaimed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationClaimedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markDismissed": { +"description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", +"httpMethod": "POST", +"id": "recommender.projects.locations.recommenders.recommendations.markDismissed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markDismissed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markFailed": { +"description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", +"httpMethod": "POST", +"id": "recommender.projects.locations.recommenders.recommendations.markFailed", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markFailed", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationFailedRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"markSucceeded": { +"description": "Marks the Recommendation State as Succeeded. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation was successful. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markSucceeded", +"httpMethod": "POST", +"id": "recommender.projects.locations.recommenders.recommendations.markSucceeded", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the recommendation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:markSucceeded", +"request": { +"$ref": "GoogleCloudRecommenderV1MarkRecommendationSucceededRequest" +}, +"response": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241013", +"rootUrl": "https://recommender.googleapis.com/", +"schemas": { +"GoogleCloudRecommenderV1CostProjection": { +"description": "Contains metadata about how much money a recommendation can save or incur.", +"id": "GoogleCloudRecommenderV1CostProjection", +"properties": { +"cost": { +"$ref": "GoogleTypeMoney", +"description": "An approximate projection on amount saved or amount incurred. Negative cost units indicate cost savings and positive cost units indicate increase. See google.type.Money documentation for positive/negative units. A user's permissions may affect whether the cost is computed using list prices or custom contract prices." +}, +"costInLocalCurrency": { +"$ref": "GoogleTypeMoney", +"description": "The approximate cost savings in the billing account's local currency." +}, +"duration": { +"description": "Duration for which this cost applies.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1Impact": { +"description": "Contains the impact a recommendation can have for a given category.", +"id": "GoogleCloudRecommenderV1Impact", +"properties": { +"category": { +"description": "Category that is being targeted.", +"enum": [ +"CATEGORY_UNSPECIFIED", +"COST", +"SECURITY", +"PERFORMANCE", +"MANAGEABILITY", +"SUSTAINABILITY", +"RELIABILITY" +], +"enumDescriptions": [ +"Default unspecified category. Don't use directly.", +"Indicates a potential increase or decrease in cost.", +"Indicates a potential increase or decrease in security.", +"Indicates a potential increase or decrease in performance.", +"Indicates a potential increase or decrease in manageability.", +"Indicates a potential increase or decrease in sustainability.", +"Indicates a potential increase or decrease in reliability." +], +"type": "string" +}, +"costProjection": { +"$ref": "GoogleCloudRecommenderV1CostProjection", +"description": "Use with CategoryType.COST" +}, +"impactComponents": { +"description": "If populated, the impact contains multiple components. In this case, the top-level impact contains aggregated values and each component contains per-service details.", +"items": { +"$ref": "GoogleCloudRecommenderV1Impact" +}, +"type": "array" +}, +"reliabilityProjection": { +"$ref": "GoogleCloudRecommenderV1ReliabilityProjection", +"description": "Use with CategoryType.RELIABILITY" +}, +"securityProjection": { +"$ref": "GoogleCloudRecommenderV1SecurityProjection", +"description": "Use with CategoryType.SECURITY" +}, +"service": { +"description": "The service that this impact is associated with.", +"type": "string" +}, +"sustainabilityProjection": { +"$ref": "GoogleCloudRecommenderV1SustainabilityProjection", +"description": "Use with CategoryType.SUSTAINABILITY" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1Insight": { +"description": "An insight along with the information used to derive the insight. The insight may have associated recommendations as well.", +"id": "GoogleCloudRecommenderV1Insight", +"properties": { +"associatedRecommendations": { +"description": "Recommendations derived from this insight.", +"items": { +"$ref": "GoogleCloudRecommenderV1InsightRecommendationReference" +}, +"type": "array" +}, +"category": { +"description": "Category being targeted by the insight.", +"enum": [ +"CATEGORY_UNSPECIFIED", +"COST", +"SECURITY", +"PERFORMANCE", +"MANAGEABILITY", +"SUSTAINABILITY", +"RELIABILITY" +], +"enumDescriptions": [ +"Unspecified category.", +"The insight is related to cost.", +"The insight is related to security.", +"The insight is related to performance.", +"This insight is related to manageability.", +"The insight is related to sustainability.", +"This insight is related to reliability." +], +"type": "string" +}, +"content": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "A struct of custom fields to explain the insight. Example: \"grantedPermissionsCount\": \"1000\"", +"type": "object" +}, +"description": { +"description": "Free-form human readable summary in English. The maximum length is 500 characters.", +"type": "string" +}, +"etag": { +"description": "Fingerprint of the Insight. Provides optimistic locking when updating states.", +"type": "string" +}, +"insightSubtype": { +"description": "Insight subtype. Insight content schema will be stable for a given subtype.", +"type": "string" +}, +"lastRefreshTime": { +"description": "Timestamp of the latest data used to generate the insight.", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "Identifier. Name of the insight.", +"type": "string" +}, +"observationPeriod": { +"description": "Observation period that led to the insight. The source data used to generate the insight ends at last_refresh_time and begins at (last_refresh_time - observation_period).", +"format": "google-duration", +"type": "string" +}, +"severity": { +"description": "Insight's severity.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Insight has unspecified severity.", +"Insight has low severity.", +"Insight has medium severity.", +"Insight has high severity.", +"Insight has critical severity." +], +"type": "string" +}, +"stateInfo": { +"$ref": "GoogleCloudRecommenderV1InsightStateInfo", +"description": "Information state and metadata." +}, +"targetResources": { +"description": "Fully qualified resource names that this insight is targeting.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1InsightRecommendationReference": { +"description": "Reference to an associated recommendation.", +"id": "GoogleCloudRecommenderV1InsightRecommendationReference", +"properties": { +"recommendation": { +"description": "Recommendation resource name, e.g. projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID]", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1InsightStateInfo": { +"description": "Information related to insight state.", +"id": "GoogleCloudRecommenderV1InsightStateInfo", +"properties": { +"state": { +"description": "Insight state.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"ACCEPTED", +"DISMISSED" +], +"enumDescriptions": [ +"Unspecified state.", +"Insight is active. Content for ACTIVE insights can be updated by Google. ACTIVE insights can be marked DISMISSED OR ACCEPTED.", +"Some action has been taken based on this insight. Insights become accepted when a recommendation derived from the insight has been marked CLAIMED, SUCCEEDED, or FAILED. ACTIVE insights can also be marked ACCEPTED explicitly. Content for ACCEPTED insights is immutable. ACCEPTED insights can only be marked ACCEPTED (which may update state metadata).", +"Insight is dismissed. Content for DISMISSED insights can be updated by Google. DISMISSED insights can be marked as ACTIVE." +], +"type": "string" +}, +"stateMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map of metadata for the state, provided by user or automations systems.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1InsightTypeConfig": { +"description": "Configuration for an InsightType.", +"id": "GoogleCloudRecommenderV1InsightTypeConfig", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.", +"type": "object" +}, +"displayName": { +"description": "A user-settable field to provide a human-readable name to be used in user interfaces.", +"type": "string" +}, +"etag": { +"description": "Fingerprint of the InsightTypeConfig. Provides optimistic locking when updating.", +"type": "string" +}, +"insightTypeGenerationConfig": { +"$ref": "GoogleCloudRecommenderV1InsightTypeGenerationConfig", +"description": "InsightTypeGenerationConfig which configures the generation of insights for this insight type." +}, +"name": { +"description": "Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config", +"type": "string" +}, +"revisionId": { +"description": "Output only. Immutable. The revision ID of the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Last time when the config was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1InsightTypeGenerationConfig": { +"description": "A configuration to customize the generation of insights. Eg, customizing the lookback period considered when generating a insight.", +"id": "GoogleCloudRecommenderV1InsightTypeGenerationConfig", +"properties": { +"params": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Parameters for this InsightTypeGenerationConfig. These configs can be used by or are applied to all subtypes.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1ListInsightsResponse": { +"description": "Response to the `ListInsights` method.", +"id": "GoogleCloudRecommenderV1ListInsightsResponse", +"properties": { +"insights": { +"description": "The set of insights for the `parent` resource.", +"items": { +"$ref": "GoogleCloudRecommenderV1Insight" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be used to request the next page of results. This field is empty if there are no additional results.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1ListRecommendationsResponse": { +"description": "Response to the `ListRecommendations` method.", +"id": "GoogleCloudRecommenderV1ListRecommendationsResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be used to request the next page of results. This field is empty if there are no additional results.", +"type": "string" +}, +"recommendations": { +"description": "The set of recommendations for the `parent` resource.", +"items": { +"$ref": "GoogleCloudRecommenderV1Recommendation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1MarkInsightAcceptedRequest": { +"description": "Request for the `MarkInsightAccepted` method.", +"id": "GoogleCloudRecommenderV1MarkInsightAcceptedRequest", +"properties": { +"etag": { +"description": "Required. Fingerprint of the Insight. Provides optimistic locking.", +"type": "string" +}, +"stateMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. State properties user wish to include with this state. Full replace of the current state_metadata.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1MarkRecommendationClaimedRequest": { +"description": "Request for the `MarkRecommendationClaimed` Method.", +"id": "GoogleCloudRecommenderV1MarkRecommendationClaimedRequest", +"properties": { +"etag": { +"description": "Required. Fingerprint of the Recommendation. Provides optimistic locking.", +"type": "string" +}, +"stateMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "State properties to include with this state. Overwrites any existing `state_metadata`. Keys must match the regex `/^a-z0-9{0,62}$/`. Values must match the regex `/^[a-zA-Z0-9_./-]{0,255}$/`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1MarkRecommendationDismissedRequest": { +"description": "Request for the `MarkRecommendationDismissed` Method.", +"id": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest", +"properties": { +"etag": { +"description": "Fingerprint of the Recommendation. Provides optimistic locking.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1MarkRecommendationFailedRequest": { +"description": "Request for the `MarkRecommendationFailed` Method.", +"id": "GoogleCloudRecommenderV1MarkRecommendationFailedRequest", +"properties": { +"etag": { +"description": "Required. Fingerprint of the Recommendation. Provides optimistic locking.", +"type": "string" +}, +"stateMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "State properties to include with this state. Overwrites any existing `state_metadata`. Keys must match the regex `/^a-z0-9{0,62}$/`. Values must match the regex `/^[a-zA-Z0-9_./-]{0,255}$/`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1MarkRecommendationSucceededRequest": { +"description": "Request for the `MarkRecommendationSucceeded` Method.", +"id": "GoogleCloudRecommenderV1MarkRecommendationSucceededRequest", +"properties": { +"etag": { +"description": "Required. Fingerprint of the Recommendation. Provides optimistic locking.", +"type": "string" +}, +"stateMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "State properties to include with this state. Overwrites any existing `state_metadata`. Keys must match the regex `/^a-z0-9{0,62}$/`. Values must match the regex `/^[a-zA-Z0-9_./-]{0,255}$/`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1Operation": { +"description": "Contains an operation for a resource loosely based on the JSON-PATCH format with support for: * Custom filters for describing partial array patch. * Extended path values for describing nested arrays. * Custom fields for describing the resource for which the operation is being described. * Allows extension to custom operations not natively supported by RFC6902. See https://tools.ietf.org/html/rfc6902 for details on the original RFC.", +"id": "GoogleCloudRecommenderV1Operation", +"properties": { +"action": { +"description": "Type of this operation. Contains one of 'add', 'remove', 'replace', 'move', 'copy', 'test' and custom operations. This field is case-insensitive and always populated.", +"type": "string" +}, +"path": { +"description": "Path to the target field being operated on. If the operation is at the resource level, then path should be \"/\". This field is always populated.", +"type": "string" +}, +"pathFilters": { +"additionalProperties": { +"type": "any" +}, +"description": "Set of filters to apply if `path` refers to array elements or nested array elements in order to narrow down to a single unique element that is being tested/modified. This is intended to be an exact match per filter. To perform advanced matching, use path_value_matchers. * Example: ``` { \"/versions/*/name\" : \"it-123\" \"/versions/*/targetSize/percent\": 20 } ``` * Example: ``` { \"/bindings/*/role\": \"roles/owner\" \"/bindings/*/condition\" : null } ``` * Example: ``` { \"/bindings/*/role\": \"roles/owner\" \"/bindings/*/members/*\" : [\"x@example.com\", \"y@example.com\"] } ``` When both path_filters and path_value_matchers are set, an implicit AND must be performed.", +"type": "object" +}, +"pathValueMatchers": { +"additionalProperties": { +"$ref": "GoogleCloudRecommenderV1ValueMatcher" +}, +"description": "Similar to path_filters, this contains set of filters to apply if `path` field refers to array elements. This is meant to support value matching beyond exact match. To perform exact match, use path_filters. When both path_filters and path_value_matchers are set, an implicit AND must be performed.", +"type": "object" +}, +"resource": { +"description": "Contains the fully qualified resource name. This field is always populated. ex: //cloudresourcemanager.googleapis.com/projects/foo.", +"type": "string" +}, +"resourceType": { +"description": "Type of GCP resource being modified/tested. This field is always populated. Example: cloudresourcemanager.googleapis.com/Project, compute.googleapis.com/Instance", +"type": "string" +}, +"sourcePath": { +"description": "Can be set with action 'copy' or 'move' to indicate the source field within resource or source_resource, ignored if provided for other operation types.", +"type": "string" +}, +"sourceResource": { +"description": "Can be set with action 'copy' to copy resource configuration across different resources of the same type. Example: A resource clone can be done via action = 'copy', path = \"/\", from = \"/\", source_resource = and resource_name = . This field is empty for all other values of `action`.", +"type": "string" +}, +"value": { +"description": "Value for the `path` field. Will be set for actions:'add'/'replace'. Maybe set for action: 'test'. Either this or `value_matcher` will be set for 'test' operation. An exact match must be performed.", +"type": "any" +}, +"valueMatcher": { +"$ref": "GoogleCloudRecommenderV1ValueMatcher", +"description": "Can be set for action 'test' for advanced matching for the value of 'path' field. Either this or `value` will be set for 'test' operation." +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1OperationGroup": { +"description": "Group of operations that need to be performed atomically.", +"id": "GoogleCloudRecommenderV1OperationGroup", +"properties": { +"operations": { +"description": "List of operations across one or more resources that belong to this group. Loosely based on RFC6902 and should be performed in the order they appear.", +"items": { +"$ref": "GoogleCloudRecommenderV1Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1Recommendation": { +"description": "A recommendation along with a suggested action. E.g., a rightsizing recommendation for an underutilized VM, IAM role recommendations, etc", +"id": "GoogleCloudRecommenderV1Recommendation", +"properties": { +"additionalImpact": { +"description": "Optional set of additional impact that this recommendation may have when trying to optimize for the primary category. These may be positive or negative.", +"items": { +"$ref": "GoogleCloudRecommenderV1Impact" +}, +"type": "array" +}, +"associatedInsights": { +"description": "Insights that led to this recommendation.", +"items": { +"$ref": "GoogleCloudRecommenderV1RecommendationInsightReference" +}, +"type": "array" +}, +"content": { +"$ref": "GoogleCloudRecommenderV1RecommendationContent", +"description": "Content of the recommendation describing recommended changes to resources." +}, +"description": { +"description": "Free-form human readable summary in English. The maximum length is 500 characters.", +"type": "string" +}, +"etag": { +"description": "Fingerprint of the Recommendation. Provides optimistic locking when updating states.", +"type": "string" +}, +"lastRefreshTime": { +"description": "Last time this recommendation was refreshed by the system that created it in the first place.", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "Identifier. Name of recommendation.", +"type": "string" +}, +"primaryImpact": { +"$ref": "GoogleCloudRecommenderV1Impact", +"description": "The primary impact that this recommendation can have while trying to optimize for one category." +}, +"priority": { +"description": "Recommendation's priority.", +"enum": [ +"PRIORITY_UNSPECIFIED", +"P4", +"P3", +"P2", +"P1" +], +"enumDescriptions": [ +"Recommendation has unspecified priority.", +"Recommendation has P4 priority (lowest priority).", +"Recommendation has P3 priority (second lowest priority).", +"Recommendation has P2 priority (second highest priority).", +"Recommendation has P1 priority (highest priority)." +], +"type": "string" +}, +"recommenderSubtype": { +"description": "Contains an identifier for a subtype of recommendations produced for the same recommender. Subtype is a function of content and impact, meaning a new subtype might be added when significant changes to `content` or `primary_impact.category` are introduced. See the Recommenders section to see a list of subtypes for a given Recommender. Examples: For recommender = \"google.iam.policy.Recommender\", recommender_subtype can be one of \"REMOVE_ROLE\"/\"REPLACE_ROLE\"", +"type": "string" +}, +"stateInfo": { +"$ref": "GoogleCloudRecommenderV1RecommendationStateInfo", +"description": "Information for state. Contains state and metadata." +}, +"targetResources": { +"description": "Fully qualified resource names that this recommendation is targeting.", +"items": { +"type": "string" +}, +"type": "array" +}, +"xorGroupId": { +"description": "Corresponds to a mutually exclusive group ID within a recommender. A non-empty ID indicates that the recommendation belongs to a mutually exclusive group. This means that only one recommendation within the group is suggested to be applied.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1RecommendationContent": { +"description": "Contains what resources are changing and how they are changing.", +"id": "GoogleCloudRecommenderV1RecommendationContent", +"properties": { +"operationGroups": { +"description": "Operations to one or more Google Cloud resources grouped in such a way that, all operations within one group are expected to be performed atomically and in an order.", +"items": { +"$ref": "GoogleCloudRecommenderV1OperationGroup" +}, +"type": "array" +}, +"overview": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Condensed overview information about the recommendation.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1RecommendationInsightReference": { +"description": "Reference to an associated insight.", +"id": "GoogleCloudRecommenderV1RecommendationInsightReference", +"properties": { +"insight": { +"description": "Insight resource name, e.g. projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID]", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1RecommendationStateInfo": { +"description": "Information for state. Contains state and metadata.", +"id": "GoogleCloudRecommenderV1RecommendationStateInfo", +"properties": { +"state": { +"description": "The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"CLAIMED", +"SUCCEEDED", +"FAILED", +"DISMISSED" +], +"enumDescriptions": [ +"Default state. Don't use directly.", +"Recommendation is active and can be applied. Recommendations content can be updated by Google. ACTIVE recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", +"Recommendation is in claimed state. Recommendations content is immutable and cannot be updated by Google. CLAIMED recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", +"Recommendation is in succeeded state. Recommendations content is immutable and cannot be updated by Google. SUCCEEDED recommendations can be marked as SUCCEEDED, or FAILED.", +"Recommendation is in failed state. Recommendations content is immutable and cannot be updated by Google. FAILED recommendations can be marked as SUCCEEDED, or FAILED.", +"Recommendation is in dismissed state. Recommendation content can be updated by Google. DISMISSED recommendations can be marked as ACTIVE." +], +"type": "string" +}, +"stateMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map of metadata for the state, provided by user or automations systems.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1RecommenderConfig": { +"description": "Configuration for a Recommender.", +"id": "GoogleCloudRecommenderV1RecommenderConfig", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.", +"type": "object" +}, +"displayName": { +"description": "A user-settable field to provide a human-readable name to be used in user interfaces.", +"type": "string" +}, +"etag": { +"description": "Fingerprint of the RecommenderConfig. Provides optimistic locking when updating.", +"type": "string" +}, +"name": { +"description": "Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config", +"type": "string" +}, +"recommenderGenerationConfig": { +"$ref": "GoogleCloudRecommenderV1RecommenderGenerationConfig", +"description": "RecommenderGenerationConfig which configures the Generation of recommendations for this recommender." +}, +"revisionId": { +"description": "Output only. Immutable. The revision ID of the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Last time when the config was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1RecommenderGenerationConfig": { +"description": "A Configuration to customize the generation of recommendations. Eg, customizing the lookback period considered when generating a recommendation.", +"id": "GoogleCloudRecommenderV1RecommenderGenerationConfig", +"properties": { +"params": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Parameters for this RecommenderGenerationConfig. These configs can be used by or are applied to all subtypes.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1ReliabilityProjection": { +"description": "Contains information on the impact of a reliability recommendation.", +"id": "GoogleCloudRecommenderV1ReliabilityProjection", +"properties": { +"details": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Per-recommender projection.", +"type": "object" +}, +"risks": { +"description": "Reliability risks mitigated by this recommendation.", +"items": { +"enum": [ +"RISK_TYPE_UNSPECIFIED", +"SERVICE_DISRUPTION", +"DATA_LOSS", +"ACCESS_DENY" +], +"enumDescriptions": [ +"Default unspecified risk. Don't use directly.", +"Potential service downtime.", +"Potential data loss.", +"Potential access denial. The service is still up but some or all clients can't access it." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1SecurityProjection": { +"description": "Contains various ways of describing the impact on Security.", +"id": "GoogleCloudRecommenderV1SecurityProjection", +"properties": { +"details": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Additional security impact details that is provided by the recommender.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1SustainabilityProjection": { +"description": "Contains metadata about how much sustainability a recommendation can save or incur.", +"id": "GoogleCloudRecommenderV1SustainabilityProjection", +"properties": { +"duration": { +"description": "Duration for which this sustainability applies.", +"format": "google-duration", +"type": "string" +}, +"kgCO2e": { +"description": "Carbon Footprint generated in kg of CO2 equivalent. Chose kg_c_o2e so that the name renders correctly in camelCase (kgCO2e).", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudRecommenderV1ValueMatcher": { +"description": "Contains various matching options for values for a GCP resource field.", +"id": "GoogleCloudRecommenderV1ValueMatcher", +"properties": { +"matchesPattern": { +"description": "To be used for full regex matching. The regular expression is using the Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be used with RE2::FullMatch", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeMoney": { +"description": "Represents an amount of money with its currency type.", +"id": "GoogleTypeMoney", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Recommender API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/resourcesettings.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/resourcesettings.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..1c9d367ab9cf3963e678dbe1da4b1c50810c69f5 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/resourcesettings.v1.json @@ -0,0 +1,685 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://resourcesettings.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Resource Settings", +"description": "The Resource Settings API allows users to control and modify the behavior of their GCP resources (e.g., VM, firewall, Project, etc.) across the Cloud Resource Hierarchy.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/resource-manager/docs/resource-settings/overview", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "resourcesettings:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://resourcesettings.mtls.googleapis.com/", +"name": "resourcesettings", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"folders": { +"resources": { +"settings": { +"deprecated": true, +"methods": { +"get": { +"deprecated": true, +"description": "Returns a specified setting. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the setting does not exist.", +"flatPath": "v1/folders/{foldersId}/settings/{settingsId}", +"httpMethod": "GET", +"id": "resourcesettings.folders.settings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the setting to get. See Setting for naming requirements.", +"location": "path", +"pattern": "^folders/[^/]+/settings/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The SettingView for this request.", +"enum": [ +"SETTING_VIEW_UNSPECIFIED", +"SETTING_VIEW_BASIC", +"SETTING_VIEW_EFFECTIVE_VALUE", +"SETTING_VIEW_LOCAL_VALUE" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the SETTING_VIEW_BASIC view.", +"Include Setting.metadata, but nothing else. This is the default value (for both ListSettings and GetSetting).", +"Include Setting.effective_value, but nothing else.", +"Include Setting.local_value, but nothing else." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Lists all the settings that are available on the Cloud resource `parent`.", +"flatPath": "v1/folders/{foldersId}/settings", +"httpMethod": "GET", +"id": "resourcesettings.folders.settings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Unused. The size of the page to be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Unused. A page token used to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project, folder, or organization that is the parent resource for this setting. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", +"location": "path", +"pattern": "^folders/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The SettingView for this request.", +"enum": [ +"SETTING_VIEW_UNSPECIFIED", +"SETTING_VIEW_BASIC", +"SETTING_VIEW_EFFECTIVE_VALUE", +"SETTING_VIEW_LOCAL_VALUE" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the SETTING_VIEW_BASIC view.", +"Include Setting.metadata, but nothing else. This is the default value (for both ListSettings and GetSetting).", +"Include Setting.effective_value, but nothing else.", +"Include Setting.local_value, but nothing else." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/settings", +"response": { +"$ref": "GoogleCloudResourcesettingsV1ListSettingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"deprecated": true, +"description": "Updates a specified setting. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the setting does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.FAILED_PRECONDITION` if the setting is flagged as read only. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the setting value. On success, the response will contain only `name`, `local_value` and `etag`. The `metadata` and `effective_value` cannot be updated through this API. Note: the supplied setting will perform a full overwrite of the `local_value` field.", +"flatPath": "v1/folders/{foldersId}/settings/{settingsId}", +"httpMethod": "PATCH", +"id": "resourcesettings.folders.settings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the setting. Must be in one of the following forms: * `projects/{project_number}/settings/{setting_name}` * `folders/{folder_id}/settings/{setting_name}` * `organizations/{organization_id}/settings/{setting_name}` For example, \"/projects/123/settings/gcp-enableMyFeature\"", +"location": "path", +"pattern": "^folders/[^/]+/settings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"response": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"organizations": { +"resources": { +"settings": { +"deprecated": true, +"methods": { +"get": { +"deprecated": true, +"description": "Returns a specified setting. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the setting does not exist.", +"flatPath": "v1/organizations/{organizationsId}/settings/{settingsId}", +"httpMethod": "GET", +"id": "resourcesettings.organizations.settings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the setting to get. See Setting for naming requirements.", +"location": "path", +"pattern": "^organizations/[^/]+/settings/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The SettingView for this request.", +"enum": [ +"SETTING_VIEW_UNSPECIFIED", +"SETTING_VIEW_BASIC", +"SETTING_VIEW_EFFECTIVE_VALUE", +"SETTING_VIEW_LOCAL_VALUE" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the SETTING_VIEW_BASIC view.", +"Include Setting.metadata, but nothing else. This is the default value (for both ListSettings and GetSetting).", +"Include Setting.effective_value, but nothing else.", +"Include Setting.local_value, but nothing else." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Lists all the settings that are available on the Cloud resource `parent`.", +"flatPath": "v1/organizations/{organizationsId}/settings", +"httpMethod": "GET", +"id": "resourcesettings.organizations.settings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Unused. The size of the page to be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Unused. A page token used to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project, folder, or organization that is the parent resource for this setting. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The SettingView for this request.", +"enum": [ +"SETTING_VIEW_UNSPECIFIED", +"SETTING_VIEW_BASIC", +"SETTING_VIEW_EFFECTIVE_VALUE", +"SETTING_VIEW_LOCAL_VALUE" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the SETTING_VIEW_BASIC view.", +"Include Setting.metadata, but nothing else. This is the default value (for both ListSettings and GetSetting).", +"Include Setting.effective_value, but nothing else.", +"Include Setting.local_value, but nothing else." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/settings", +"response": { +"$ref": "GoogleCloudResourcesettingsV1ListSettingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"deprecated": true, +"description": "Updates a specified setting. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the setting does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.FAILED_PRECONDITION` if the setting is flagged as read only. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the setting value. On success, the response will contain only `name`, `local_value` and `etag`. The `metadata` and `effective_value` cannot be updated through this API. Note: the supplied setting will perform a full overwrite of the `local_value` field.", +"flatPath": "v1/organizations/{organizationsId}/settings/{settingsId}", +"httpMethod": "PATCH", +"id": "resourcesettings.organizations.settings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the setting. Must be in one of the following forms: * `projects/{project_number}/settings/{setting_name}` * `folders/{folder_id}/settings/{setting_name}` * `organizations/{organization_id}/settings/{setting_name}` For example, \"/projects/123/settings/gcp-enableMyFeature\"", +"location": "path", +"pattern": "^organizations/[^/]+/settings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"response": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"projects": { +"resources": { +"settings": { +"deprecated": true, +"methods": { +"get": { +"deprecated": true, +"description": "Returns a specified setting. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the setting does not exist.", +"flatPath": "v1/projects/{projectsId}/settings/{settingsId}", +"httpMethod": "GET", +"id": "resourcesettings.projects.settings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the setting to get. See Setting for naming requirements.", +"location": "path", +"pattern": "^projects/[^/]+/settings/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The SettingView for this request.", +"enum": [ +"SETTING_VIEW_UNSPECIFIED", +"SETTING_VIEW_BASIC", +"SETTING_VIEW_EFFECTIVE_VALUE", +"SETTING_VIEW_LOCAL_VALUE" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the SETTING_VIEW_BASIC view.", +"Include Setting.metadata, but nothing else. This is the default value (for both ListSettings and GetSetting).", +"Include Setting.effective_value, but nothing else.", +"Include Setting.local_value, but nothing else." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"deprecated": true, +"description": "Lists all the settings that are available on the Cloud resource `parent`.", +"flatPath": "v1/projects/{projectsId}/settings", +"httpMethod": "GET", +"id": "resourcesettings.projects.settings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Unused. The size of the page to be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Unused. A page token used to retrieve the next page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project, folder, or organization that is the parent resource for this setting. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "The SettingView for this request.", +"enum": [ +"SETTING_VIEW_UNSPECIFIED", +"SETTING_VIEW_BASIC", +"SETTING_VIEW_EFFECTIVE_VALUE", +"SETTING_VIEW_LOCAL_VALUE" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the SETTING_VIEW_BASIC view.", +"Include Setting.metadata, but nothing else. This is the default value (for both ListSettings and GetSetting).", +"Include Setting.effective_value, but nothing else.", +"Include Setting.local_value, but nothing else." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/settings", +"response": { +"$ref": "GoogleCloudResourcesettingsV1ListSettingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"deprecated": true, +"description": "Updates a specified setting. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the setting does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.FAILED_PRECONDITION` if the setting is flagged as read only. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the setting value. On success, the response will contain only `name`, `local_value` and `etag`. The `metadata` and `effective_value` cannot be updated through this API. Note: the supplied setting will perform a full overwrite of the `local_value` field.", +"flatPath": "v1/projects/{projectsId}/settings/{settingsId}", +"httpMethod": "PATCH", +"id": "resourcesettings.projects.settings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the setting. Must be in one of the following forms: * `projects/{project_number}/settings/{setting_name}` * `folders/{folder_id}/settings/{setting_name}` * `organizations/{organization_id}/settings/{setting_name}` For example, \"/projects/123/settings/gcp-enableMyFeature\"", +"location": "path", +"pattern": "^projects/[^/]+/settings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"response": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20240708", +"rootUrl": "https://resourcesettings.googleapis.com/", +"schemas": { +"GoogleCloudResourcesettingsV1ListSettingsResponse": { +"description": "The response from ListSettings.", +"id": "GoogleCloudResourcesettingsV1ListSettingsResponse", +"properties": { +"nextPageToken": { +"description": "Unused. A page token used to retrieve the next page.", +"type": "string" +}, +"settings": { +"description": "A list of settings that are available at the specified Cloud resource.", +"items": { +"$ref": "GoogleCloudResourcesettingsV1Setting" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudResourcesettingsV1Setting": { +"description": "The schema for settings.", +"id": "GoogleCloudResourcesettingsV1Setting", +"properties": { +"effectiveValue": { +"$ref": "GoogleCloudResourcesettingsV1Value", +"description": "Output only. The effective value of the setting at the given parent resource, evaluated based on the resource hierarchy The effective value evaluates to one of the following options, in this order. If an option is not valid or doesn't exist, then the next option is used: 1. The local setting value on the given resource: Setting.local_value 2. If one of the given resource's ancestors in the resource hierarchy have a local setting value, the local value at the nearest such ancestor. 3. The setting's default value: SettingMetadata.default_value 4. An empty value, defined as a `Value` with all fields unset. The data type of Value must always be consistent with the data type defined in Setting.metadata.", +"readOnly": true +}, +"etag": { +"description": "A fingerprint used for optimistic concurrency. See UpdateSetting for more details.", +"type": "string" +}, +"localValue": { +"$ref": "GoogleCloudResourcesettingsV1Value", +"description": "The configured value of the setting at the given parent resource, ignoring the resource hierarchy. The data type of Value must always be consistent with the data type defined in Setting.metadata." +}, +"metadata": { +"$ref": "GoogleCloudResourcesettingsV1SettingMetadata", +"description": "Output only. Metadata about a setting which is not editable by the end user.", +"readOnly": true +}, +"name": { +"description": "The resource name of the setting. Must be in one of the following forms: * `projects/{project_number}/settings/{setting_name}` * `folders/{folder_id}/settings/{setting_name}` * `organizations/{organization_id}/settings/{setting_name}` For example, \"/projects/123/settings/gcp-enableMyFeature\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudResourcesettingsV1SettingMetadata": { +"description": "Metadata about a setting which is not editable by the end user.", +"id": "GoogleCloudResourcesettingsV1SettingMetadata", +"properties": { +"dataType": { +"description": "The data type for this setting.", +"enum": [ +"DATA_TYPE_UNSPECIFIED", +"BOOLEAN", +"STRING", +"STRING_SET", +"ENUM_VALUE", +"DURATION_VALUE", +"STRING_MAP" +], +"enumDescriptions": [ +"Unspecified data type.", +"A boolean setting.", +"A string setting.", +"A string set setting.", +"A Enum setting", +"A Duration setting", +"A string->string map setting" +], +"type": "string" +}, +"defaultValue": { +"$ref": "GoogleCloudResourcesettingsV1Value", +"description": "The value provided by Setting.effective_value if no setting value is explicitly set. Note: not all settings have a default value." +}, +"description": { +"description": "A detailed description of what this setting does.", +"type": "string" +}, +"displayName": { +"description": "The human readable name for this setting.", +"type": "string" +}, +"readOnly": { +"description": "A flag indicating that values of this setting cannot be modified. See documentation for the specific setting for updates and reasons.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudResourcesettingsV1Value": { +"description": "The data in a setting value.", +"id": "GoogleCloudResourcesettingsV1Value", +"properties": { +"booleanValue": { +"description": "Defines this value as being a boolean value.", +"type": "boolean" +}, +"durationValue": { +"description": "Defines this value as being a Duration.", +"format": "google-duration", +"type": "string" +}, +"enumValue": { +"$ref": "GoogleCloudResourcesettingsV1ValueEnumValue", +"description": "Defines this value as being a Enum." +}, +"stringMapValue": { +"$ref": "GoogleCloudResourcesettingsV1ValueStringMap", +"description": "Defines this value as being a StringMap." +}, +"stringSetValue": { +"$ref": "GoogleCloudResourcesettingsV1ValueStringSet", +"description": "Defines this value as being a StringSet." +}, +"stringValue": { +"description": "Defines this value as being a string value.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudResourcesettingsV1ValueEnumValue": { +"description": "A enum value that can hold any enum type setting values. Each enum type is represented by a number, this representation is stored in the definitions.", +"id": "GoogleCloudResourcesettingsV1ValueEnumValue", +"properties": { +"value": { +"description": "The value of this enum", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudResourcesettingsV1ValueStringMap": { +"description": "A string->string map value that can hold a map of string keys to string values. The maximum length of each string is 200 characters and there can be a maximum of 50 key-value pairs in the map.", +"id": "GoogleCloudResourcesettingsV1ValueStringMap", +"properties": { +"mappings": { +"additionalProperties": { +"type": "string" +}, +"description": "The key-value pairs in the map", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudResourcesettingsV1ValueStringSet": { +"description": "A string set value that can hold a set of strings. The maximum length of each string is 200 characters and there can be a maximum of 50 strings in the string set.", +"id": "GoogleCloudResourcesettingsV1ValueStringSet", +"properties": { +"values": { +"description": "The strings in the set", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Resource Settings API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/retail.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/retail.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..ddecfa21ccbaf4af372868abead61e4438f4b647 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/retail.v2.json @@ -0,0 +1,7779 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://retail.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Retail", +"description": "Vertex AI Search for Retail API is made up of Retail Search, Browse and Recommendations. These discovery AI solutions help you implement personalized search, browse and recommendations, based on machine learning models, across your websites and mobile applications.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/recommendations", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "retail:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://retail.mtls.googleapis.com/", +"name": "retail", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"catalogs": { +"methods": { +"completeQuery": { +"description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:completeQuery", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.completeQuery", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Catalog for which the completion is performed. Full resource name of catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"dataset": { +"description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through CompletionService.ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail: This option requires enabling auto-learning function first. See [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset).", +"location": "query", +"type": "string" +}, +"deviceType": { +"description": "The device type context for completion suggestions. We recommend that you leave this field empty. It can apply different suggestions on different device types, e.g. `DESKTOP`, `MOBILE`. If it is empty, the suggestions are across all device types. Supported formats: * `UNKNOWN_DEVICE_TYPE` * `DESKTOP` * `MOBILE` * A customized string starts with `OTHER_`, e.g. `OTHER_IPHONE`.", +"location": "query", +"type": "string" +}, +"enableAttributeSuggestions": { +"description": "If true, attribute suggestions are enabled and provided in the response. This field is only available for the \"cloud-retail\" dataset.", +"location": "query", +"type": "boolean" +}, +"entity": { +"description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", +"location": "query", +"type": "string" +}, +"languageCodes": { +"description": "Note that this field applies for `user-data` dataset only. For requests with `cloud-retail` dataset, setting this field has no effect. The language filters applied to the output suggestions. If set, it should contain the language of the query. If not set, suggestions are returned without considering language restrictions. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of language codes is 3.", +"location": "query", +"repeated": true, +"type": "string" +}, +"maxSuggestions": { +"description": "Completion max suggestions. If left unset or set to 0, then will fallback to the configured value CompletionConfig.max_suggestions. The maximum allowed max suggestions is 20. If it is set higher, it will be capped by 20.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"query": { +"description": "Required. The query used to generate suggestions. The maximum number of allowed characters is 255.", +"location": "query", +"type": "string" +}, +"visitorId": { +"description": "Required field. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+catalog}:completeQuery", +"response": { +"$ref": "GoogleCloudRetailV2CompleteQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"exportAnalyticsMetrics": { +"description": "Exports analytics metrics. `Operation.response` is of type `ExportAnalyticsMetricsResponse`. `Operation.metadata` is of type `ExportMetadata`.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:exportAnalyticsMetrics", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.exportAnalyticsMetrics", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Full resource name of the parent catalog. Expected format: `projects/*/locations/*/catalogs/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+catalog}:exportAnalyticsMetrics", +"request": { +"$ref": "GoogleCloudRetailV2ExportAnalyticsMetricsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getAttributesConfig": { +"description": "Gets an AttributesConfig.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.getAttributesConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2AttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getCompletionConfig": { +"description": "Gets a CompletionConfig.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.getCompletionConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full CompletionConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/completionConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2CompletionConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDefaultBranch": { +"description": "Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:getDefaultBranch", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.getDefaultBranch", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+catalog}:getDefaultBranch", +"response": { +"$ref": "GoogleCloudRetailV2GetDefaultBranchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getGenerativeQuestionFeature": { +"description": "Manages overal generative question feature state -- enables toggling feature on and off.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestionFeature", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.getGenerativeQuestionFeature", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+catalog}/generativeQuestionFeature", +"response": { +"$ref": "GoogleCloudRetailV2GenerativeQuestionsFeatureConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all the Catalogs associated with the project.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of Catalogs to return. If unspecified, defaults to 50. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT is returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token ListCatalogsResponse.next_page_token, received from a previous CatalogService.ListCatalogs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to CatalogService.ListCatalogs must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account resource name with an associated location. If the caller does not have permission to list Catalogs under this location, regardless of whether or not this location exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/catalogs", +"response": { +"$ref": "GoogleCloudRetailV2ListCatalogsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the Catalogs.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Immutable. The fully qualified resource name of the catalog.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided Catalog to update. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2Catalog" +}, +"response": { +"$ref": "GoogleCloudRetailV2Catalog" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setDefaultBranch": { +"description": "Set a specified branch id as default branch. API methods such as SearchService.Search, ProductService.GetProduct, ProductService.ListProducts will treat requests using \"default_branch\" to the actual branch id set as default. For example, if `projects/*/locations/*/catalogs/*/branches/1` is set as default, setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/default_branch` is equivalent to setting SearchRequest.branch to `projects/*/locations/*/catalogs/*/branches/1`. Using multiple branches can be useful when developers would like to have a staging branch to test and verify for future usage. When it becomes ready, developers switch on the staging branch using this API while keeping using `projects/*/locations/*/catalogs/*/branches/default_branch` as SearchRequest.branch to route the traffic to this staging branch. CAUTION: If you have live predict/search traffic, switching the default branch could potentially cause outages if the ID space of the new branch is very different from the old one. More specifically: * PredictionService will only return product IDs from branch {newBranch}. * SearchService will only return product IDs from branch {newBranch} (if branch is not explicitly set). * UserEventService will only join events with products from branch {newBranch}.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:setDefaultBranch", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.setDefaultBranch", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Full resource name of the catalog, such as `projects/*/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+catalog}:setDefaultBranch", +"request": { +"$ref": "GoogleCloudRetailV2SetDefaultBranchRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateAttributesConfig": { +"description": "Updates the AttributesConfig. The catalog attributes in the request will be updated in the catalog, or inserted if they do not exist. Existing catalog attributes not included in the request will remain unchanged. Attributes that are assigned to products, but do not exist at the catalog level, are always included in the response. The product attribute is assigned default values for missing catalog attribute fields, e.g., searchable and dynamic facetable options.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.updateAttributesConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided AttributesConfig to update. The following is the only supported field: * AttributesConfig.catalog_attributes If not set, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2AttributesConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2AttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateCompletionConfig": { +"description": "Updates the CompletionConfigs.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.updateCompletionConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided CompletionConfig to update. The following are the only supported fields: * CompletionConfig.matching_order * CompletionConfig.max_suggestions * CompletionConfig.min_prefix_length * CompletionConfig.auto_learning If not set, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2CompletionConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2CompletionConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateGenerativeQuestion": { +"description": "Allows management of individual questions.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestion", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.updateGenerativeQuestion", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Resource name of the catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided GenerativeQuestionConfig to update. The following are NOT supported: * GenerativeQuestionConfig.frequency If not set or empty, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+catalog}/generativeQuestion", +"request": { +"$ref": "GoogleCloudRetailV2GenerativeQuestionConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2GenerativeQuestionConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateGenerativeQuestionFeature": { +"description": "Manages overal generative question feature state -- enables toggling feature on and off.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestionFeature", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.updateGenerativeQuestionFeature", +"parameterOrder": [ +"catalog" +], +"parameters": { +"catalog": { +"description": "Required. Resource name of the affected catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided GenerativeQuestionsFeatureConfig to update. If not set or empty, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+catalog}/generativeQuestionFeature", +"request": { +"$ref": "GoogleCloudRetailV2GenerativeQuestionsFeatureConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2GenerativeQuestionsFeatureConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attributesConfig": { +"methods": { +"addCatalogAttribute": { +"description": "Adds the specified CatalogAttribute to the AttributesConfig. If the CatalogAttribute to add already exists, an ALREADY_EXISTS error is returned.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:addCatalogAttribute", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.attributesConfig.addCatalogAttribute", +"parameterOrder": [ +"attributesConfig" +], +"parameters": { +"attributesConfig": { +"description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+attributesConfig}:addCatalogAttribute", +"request": { +"$ref": "GoogleCloudRetailV2AddCatalogAttributeRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2AttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeCatalogAttribute": { +"description": "Removes the specified CatalogAttribute from the AttributesConfig. If the CatalogAttribute to remove does not exist, a NOT_FOUND error is returned.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:removeCatalogAttribute", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.attributesConfig.removeCatalogAttribute", +"parameterOrder": [ +"attributesConfig" +], +"parameters": { +"attributesConfig": { +"description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+attributesConfig}:removeCatalogAttribute", +"request": { +"$ref": "GoogleCloudRetailV2RemoveCatalogAttributeRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2AttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"replaceCatalogAttribute": { +"description": "Replaces the specified CatalogAttribute in the AttributesConfig by updating the catalog attribute with the same CatalogAttribute.key. If the CatalogAttribute to replace does not exist, a NOT_FOUND error is returned.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:replaceCatalogAttribute", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.attributesConfig.replaceCatalogAttribute", +"parameterOrder": [ +"attributesConfig" +], +"parameters": { +"attributesConfig": { +"description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+attributesConfig}:replaceCatalogAttribute", +"request": { +"$ref": "GoogleCloudRetailV2ReplaceCatalogAttributeRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2AttributesConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"branches": { +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.branches.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"products": { +"methods": { +"addFulfillmentPlaces": { +"description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", +"parameterOrder": [ +"product" +], +"parameters": { +"product": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+product}:addFulfillmentPlaces", +"request": { +"$ref": "GoogleCloudRetailV2AddFulfillmentPlacesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"addLocalInventories": { +"description": "Updates local inventory information for a Product at a list of places, while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating inventory information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be modified using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addLocalInventories", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.addLocalInventories", +"parameterOrder": [ +"product" +], +"parameters": { +"product": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+product}:addLocalInventories", +"request": { +"$ref": "GoogleCloudRetailV2AddLocalInventoriesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a Product.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", +"required": true, +"type": "string" +}, +"productId": { +"description": "Required. The ID to use for the Product, which will become the final component of the Product.name. If the caller does not have permission to create the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. This field must be unique among all Products with the same parent. Otherwise, an ALREADY_EXISTS error is returned. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/products", +"request": { +"$ref": "GoogleCloudRetailV2Product" +}, +"response": { +"$ref": "GoogleCloudRetailV2Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Product.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}", +"httpMethod": "DELETE", +"id": "retail.projects.locations.catalogs.branches.products.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to delete the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to delete does not exist, a NOT_FOUND error is returned. The Product to delete can neither be a Product.Type.COLLECTION Product member nor a Product.Type.PRIMARY Product with more than one variants. Otherwise, an INVALID_ARGUMENT error is returned. All inventory information for the named Product will be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Product.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.branches.products.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the requested Product does not exist, a NOT_FOUND error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Bulk import of multiple Products. Request processing may be synchronous. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:import", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` If no updateMask is specified, requires products.create permission. If updateMask is specified, requires products.update permission.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/products:import", +"request": { +"$ref": "GoogleCloudRetailV2ImportProductsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Gets a list of Products.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.branches.products.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List Product.Type.VARIANT Products sharing the same Product.Type.PRIMARY Product. For example: `primary_product_id = \"some_product_id\"` * List Products bundled in a Product.Type.COLLECTION Product. For example: `collection_product_id = \"some_product_id\"` * List Products with a partibular type. For example: `type = \"PRIMARY\"` `type = \"VARIANT\"` `type = \"COLLECTION\"` If the field is unrecognizable, an INVALID_ARGUMENT error is returned. If the specified Product.Type.PRIMARY Product or Product.Type.COLLECTION Product does not exist, a NOT_FOUND error is returned.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of Products to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token ListProductsResponse.next_page_token, received from a previous ProductService.ListProducts call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ProductService.ListProducts must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch` as the branch ID, to list products under the default branch. If the caller does not have permission to list Products under this branch, regardless of whether or not this branch exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", +"required": true, +"type": "string" +}, +"readMask": { +"description": "The fields of Product to return in the responses. If not set or empty, the following fields are returned: * Product.name * Product.id * Product.title * Product.uri * Product.images * Product.price_info * Product.brands If \"*\" is provided, all fields are returned. Product.name is always returned no matter what mask is set. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/products", +"response": { +"$ref": "GoogleCloudRetailV2ListProductsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Product.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.branches.products.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the Product is not found, a new Product will be created. In this situation, `update_mask` is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned. The attribute key can be updated by setting the mask path as \"attributes.${key_name}\". If a key name is present in the mask but not in the patching product from the request, this key will be deleted after the update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2Product" +}, +"response": { +"$ref": "GoogleCloudRetailV2Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"purge": { +"description": "Permanently deletes all selected Products under a branch. This process is asynchronous. If the request is valid, the removal will be enqueued and processed offline. Depending on the number of Products, this operation could take hours to complete. Before the operation completes, some Products may still be returned by ProductService.GetProduct or ProductService.ListProducts. Depending on the number of Products, this operation could take hours to complete. To get a sample of Products that would be deleted, set PurgeProductsRequest.force to false.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:purge", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.purge", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the branch under which the products are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}/branches/${branchId}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/products:purge", +"request": { +"$ref": "GoogleCloudRetailV2PurgeProductsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeFulfillmentPlaces": { +"description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", +"parameterOrder": [ +"product" +], +"parameters": { +"product": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+product}:removeFulfillmentPlaces", +"request": { +"$ref": "GoogleCloudRetailV2RemoveFulfillmentPlacesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeLocalInventories": { +"description": "Remove local inventory information for a Product at a list of places at a removal timestamp. This process is asynchronous. If the request is valid, the removal will be enqueued and processed downstream. As a consequence, when a response is returned, removals are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. Local inventory information can only be removed using this method. ProductService.CreateProduct and ProductService.UpdateProduct has no effect on local inventories. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeLocalInventories", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.removeLocalInventories", +"parameterOrder": [ +"product" +], +"parameters": { +"product": { +"description": "Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+product}:removeLocalInventories", +"request": { +"$ref": "GoogleCloudRetailV2RemoveLocalInventoriesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setInventory": { +"description": "Updates inventory information for a Product while respecting the last update timestamps of each inventory field. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update is enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. When inventory is updated with ProductService.CreateProduct and ProductService.UpdateProduct, the specified inventory field value(s) overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update times for the specified inventory fields are overwritten by the times of the ProductService.CreateProduct or ProductService.UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product is used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information is preserved. Pre-existing inventory information can only be updated with ProductService.SetInventory, ProductService.AddFulfillmentPlaces, and ProductService.RemoveFulfillmentPlaces. The returned Operations is obsolete after one day, and the GetOperation API returns `NOT_FOUND` afterwards. If conflicting updates are issued, the Operations associated with the stale updates are not marked as done until they are obsolete.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.branches.products.setInventory", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:setInventory", +"request": { +"$ref": "GoogleCloudRetailV2SetInventoryRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"completionData": { +"methods": { +"import": { +"description": "Bulk import of processed completion dataset. Request processing is asynchronous. Partial updating is not supported. The operation is successfully finished only after the imported suggestions are indexed successfully and ready for serving. The process takes hours. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionData:import", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.completionData.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The catalog which the suggestions dataset belongs to. Format: `projects/1234/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/completionData:import", +"request": { +"$ref": "GoogleCloudRetailV2ImportCompletionDataRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"controls": { +"methods": { +"create": { +"description": "Creates a Control. If the Control to create already exists, an ALREADY_EXISTS error is returned.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.controls.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"controlId": { +"description": "Required. The ID to use for the Control, which will become the final component of the Control's resource name. This value should be 4-63 characters, and valid characters are /a-z-_/.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Full resource name of parent catalog. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/controls", +"request": { +"$ref": "GoogleCloudRetailV2Control" +}, +"response": { +"$ref": "GoogleCloudRetailV2Control" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Control. If the Control to delete does not exist, a NOT_FOUND error is returned.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", +"httpMethod": "DELETE", +"id": "retail.projects.locations.catalogs.controls.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Control to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Control.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.controls.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Control to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2Control" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Controls by their parent Catalog.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.controls.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List controls that are used in a single ServingConfig: 'serving_config = \"boosted_home_page_cvr\"'", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of results to return. If unspecified, defaults to 50. Max allowed value is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListControls` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/controls", +"response": { +"$ref": "GoogleCloudRetailV2ListControlsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Control. Control cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned. If the Control to update does not exist, a NOT_FOUND error is returned.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.controls.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided Control to update. The following are NOT supported: * Control.name If not set or empty, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2Control" +}, +"response": { +"$ref": "GoogleCloudRetailV2Control" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"generativeQuestion": { +"methods": { +"batchUpdate": { +"description": "Allows management of multiple questions.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestion:batchUpdate", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.generativeQuestion.batchUpdate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/generativeQuestion:batchUpdate", +"request": { +"$ref": "GoogleCloudRetailV2BatchUpdateGenerativeQuestionConfigsRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2BatchUpdateGenerativeQuestionConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"generativeQuestions": { +"methods": { +"list": { +"description": "Returns all questions for a given catalog.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/generativeQuestions", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.generativeQuestions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/generativeQuestions", +"response": { +"$ref": "GoogleCloudRetailV2ListGenerativeQuestionConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"models": { +"methods": { +"create": { +"description": "Creates a new model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.models.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dryRun": { +"description": "Optional. Whether to run a dry run to validate the request (without actually creating the model).", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. The parent resource under which to create the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/models", +"request": { +"$ref": "GoogleCloudRetailV2Model" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", +"httpMethod": "DELETE", +"id": "retail.projects.locations.catalogs.models.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Model to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.models.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Model to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2Model" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all the models linked to this event store.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.models.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of results to return. If unspecified, defaults to 50. Max allowed value is 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListModels` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent for which to list models. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/models", +"response": { +"$ref": "GoogleCloudRetailV2ListModelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update of model metadata. Only fields that currently can be updated are: `filtering_option` and `periodic_tuning_state`. If other values are provided, this API method ignores them.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.models.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided 'model' to update. If not set, by default updates all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2Model" +}, +"response": { +"$ref": "GoogleCloudRetailV2Model" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"pause": { +"description": "Pauses the training of an existing model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}:pause", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.models.pause", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the model to pause. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:pause", +"request": { +"$ref": "GoogleCloudRetailV2PauseModelRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2Model" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resume": { +"description": "Resumes the training of an existing model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}:resume", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.models.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the model to resume. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:resume", +"request": { +"$ref": "GoogleCloudRetailV2ResumeModelRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2Model" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"tune": { +"description": "Tunes an existing model.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/models/{modelsId}:tune", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.models.tune", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the model to tune. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}:tune", +"request": { +"$ref": "GoogleCloudRetailV2TuneModelRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"placements": { +"methods": { +"predict": { +"description": "Makes a recommendation prediction.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:predict", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.placements.predict", +"parameterOrder": [ +"placement" +], +"parameters": { +"placement": { +"description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+placement}:predict", +"request": { +"$ref": "GoogleCloudRetailV2PredictRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2PredictResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:search", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.placements.search", +"parameterOrder": [ +"placement" +], +"parameters": { +"placement": { +"description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+placement}:search", +"request": { +"$ref": "GoogleCloudRetailV2SearchRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2SearchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"servingConfigs": { +"methods": { +"addControl": { +"description": "Enables a Control on the specified ServingConfig. The control is added in the last position of the list of controls it belongs to (e.g. if it's a facet spec control it will be applied in the last position of servingConfig.facetSpecIds) Returns a ALREADY_EXISTS error if the control has already been applied. Returns a FAILED_PRECONDITION error if the addition could exceed maximum number of control allowed for that type of control.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:addControl", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.addControl", +"parameterOrder": [ +"servingConfig" +], +"parameters": { +"servingConfig": { +"description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+servingConfig}:addControl", +"request": { +"$ref": "GoogleCloudRetailV2AddControlRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2ServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a ServingConfig. A maximum of 100 ServingConfigs are allowed in a Catalog, otherwise a FAILED_PRECONDITION error is returned.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Full resource name of parent. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"servingConfigId": { +"description": "Required. The ID to use for the ServingConfig, which will become the final component of the ServingConfig's resource name. This value should be 4-63 characters, and valid characters are /a-z-_/.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+parent}/servingConfigs", +"request": { +"$ref": "GoogleCloudRetailV2ServingConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2ServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a ServingConfig. Returns a NotFound error if the ServingConfig does not exist.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}", +"httpMethod": "DELETE", +"id": "retail.projects.locations.catalogs.servingConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ServingConfig to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a ServingConfig. Returns a NotFound error if the ServingConfig does not exist.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.servingConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ServingConfig to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleCloudRetailV2ServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all ServingConfigs linked to this catalog.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs", +"httpMethod": "GET", +"id": "retail.projects.locations.catalogs.servingConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of results to return. If unspecified, defaults to 100. If a value greater than 100 is provided, at most 100 results are returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListServingConfigs` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/servingConfigs", +"response": { +"$ref": "GoogleCloudRetailV2ListServingConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a ServingConfig.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}", +"httpMethod": "PATCH", +"id": "retail.projects.locations.catalogs.servingConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided ServingConfig to update. The following are NOT supported: * ServingConfig.name If not set, all supported fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}", +"request": { +"$ref": "GoogleCloudRetailV2ServingConfig" +}, +"response": { +"$ref": "GoogleCloudRetailV2ServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"predict": { +"description": "Makes a recommendation prediction.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:predict", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.predict", +"parameterOrder": [ +"placement" +], +"parameters": { +"placement": { +"description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+placement}:predict", +"request": { +"$ref": "GoogleCloudRetailV2PredictRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2PredictResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"removeControl": { +"description": "Disables a Control on the specified ServingConfig. The control is removed from the ServingConfig. Returns a NOT_FOUND error if the Control is not enabled for the ServingConfig.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:removeControl", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.removeControl", +"parameterOrder": [ +"servingConfig" +], +"parameters": { +"servingConfig": { +"description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+servingConfig}:removeControl", +"request": { +"$ref": "GoogleCloudRetailV2RemoveControlRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2ServingConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:search", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.servingConfigs.search", +"parameterOrder": [ +"placement" +], +"parameters": { +"placement": { +"description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+placement}:search", +"request": { +"$ref": "GoogleCloudRetailV2SearchRequest" +}, +"response": { +"$ref": "GoogleCloudRetailV2SearchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"userEvents": { +"methods": { +"collect": { +"description": "Writes a single user event from the browser. For larger user event payload over 16 KB, the POST method should be used instead, otherwise a 400 Bad Request error is returned. This method is used only by the Retail API JavaScript pixel and Google Tag Manager. Users should not call this method directly.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:collect", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.collect", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent catalog name, such as `projects/1234/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/userEvents:collect", +"request": { +"$ref": "GoogleCloudRetailV2CollectUserEventRequest" +}, +"response": { +"$ref": "GoogleApiHttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. `Operation.response` is of type `ImportResponse`. Note that it is possible for a subset of the items to be successfully inserted. `Operation.metadata` is of type `ImportMetadata`.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:import", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. `projects/1234/locations/global/catalogs/default_catalog`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/userEvents:import", +"request": { +"$ref": "GoogleCloudRetailV2ImportUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"purge": { +"description": "Deletes permanently all user events specified by the filter provided. Depending on the number of events specified by the filter, this operation could take hours or days to complete. To test a filter, use the list command first.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:purge", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.purge", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the catalog under which the events are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/userEvents:purge", +"request": { +"$ref": "GoogleCloudRetailV2PurgeUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rejoin": { +"description": "Starts a user-event rejoin operation with latest product catalog. Events are not annotated with detailed product information for products that are missing from the catalog when the user event is ingested. These events are stored as unjoined events with limited usage on training and serving. You can use this method to start a join operation on specified events with the latest version of product catalog. You can also use this method to correct events joined with the wrong product catalog. A rejoin operation can take hours or days to complete.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:rejoin", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.rejoin", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+parent}/userEvents:rejoin", +"request": { +"$ref": "GoogleCloudRetailV2RejoinUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"write": { +"description": "Writes a single user event.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:write", +"httpMethod": "POST", +"id": "retail.projects.locations.catalogs.userEvents.write", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"writeAsync": { +"description": "If set to true, the user event will be written asynchronously after validation, and the API will respond without waiting for the write. Therefore, silent failures can occur even if the API returns success. In case of silent failures, error messages can be found in Stackdriver logs.", +"location": "query", +"type": "boolean" +} +}, +"path": "v2/{+parent}/userEvents:write", +"request": { +"$ref": "GoogleCloudRetailV2UserEvent" +}, +"response": { +"$ref": "GoogleCloudRetailV2UserEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "retail.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "retail.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v2/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "retail.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v2/projects/{projectsId}/operations", +"httpMethod": "GET", +"id": "retail.projects.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v2/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20250107", +"rootUrl": "https://retail.googleapis.com/", +"schemas": { +"GoogleApiHttpBody": { +"description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", +"id": "GoogleApiHttpBody", +"properties": { +"contentType": { +"description": "The HTTP Content-Type header value specifying the content type of the body.", +"type": "string" +}, +"data": { +"description": "The HTTP request/response body as raw binary.", +"format": "byte", +"type": "string" +}, +"extensions": { +"description": "Application specific response metadata. Must be set in the first response for streaming APIs.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingErrorContext": { +"description": "A description of the context in which an error occurred.", +"id": "GoogleCloudRetailLoggingErrorContext", +"properties": { +"httpRequest": { +"$ref": "GoogleCloudRetailLoggingHttpRequestContext", +"description": "The HTTP request which was processed when the error was triggered." +}, +"reportLocation": { +"$ref": "GoogleCloudRetailLoggingSourceLocation", +"description": "The location in the source code where the decision was made to report the error, usually the place where it was logged." +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingErrorLog": { +"description": "An error log which is reported to the Error Reporting system. This proto a superset of google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent.", +"id": "GoogleCloudRetailLoggingErrorLog", +"properties": { +"context": { +"$ref": "GoogleCloudRetailLoggingErrorContext", +"description": "A description of the context in which the error occurred." +}, +"importPayload": { +"$ref": "GoogleCloudRetailLoggingImportErrorContext", +"description": "The error payload that is populated on LRO import APIs." +}, +"message": { +"description": "A message describing the error.", +"type": "string" +}, +"requestPayload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The API request payload, represented as a protocol buffer. Most API request types are supported. For example: \"type.googleapis.com/google.cloud.retail.v2.ProductService.CreateProductRequest\" \"type.googleapis.com/google.cloud.retail.v2.UserEventService.WriteUserEventRequest\"", +"type": "object" +}, +"responsePayload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The API response payload, represented as a protocol buffer. This is used to log some \"soft errors\", where the response is valid but we consider there are some quality issues like unjoined events. The following API responses are supported and no PII is included: \"google.cloud.retail.v2.PredictionService.Predict\" \"google.cloud.retail.v2.UserEventService.WriteUserEvent\" \"google.cloud.retail.v2.UserEventService.CollectUserEvent\"", +"type": "object" +}, +"serviceContext": { +"$ref": "GoogleCloudRetailLoggingServiceContext", +"description": "The service context in which this error has occurred." +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "The RPC status associated with the error log." +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingHttpRequestContext": { +"description": "HTTP request data that is related to a reported error.", +"id": "GoogleCloudRetailLoggingHttpRequestContext", +"properties": { +"responseStatusCode": { +"description": "The HTTP response status code for the request.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingImportErrorContext": { +"description": "The error payload that is populated on LRO import APIs, including \"google.cloud.retail.v2.ProductService.ImportProducts\" and \"google.cloud.retail.v2.EventService.ImportUserEvents\".", +"id": "GoogleCloudRetailLoggingImportErrorContext", +"properties": { +"catalogItem": { +"description": "The detailed content which caused the error on importing a catalog item.", +"type": "string" +}, +"gcsPath": { +"description": "Cloud Storage file path of the import source. Can be set for batch operation error.", +"type": "string" +}, +"lineNumber": { +"description": "Line number of the content in file. Should be empty for permission or batch operation error.", +"type": "string" +}, +"operationName": { +"description": "The operation resource name of the LRO.", +"type": "string" +}, +"product": { +"description": "The detailed content which caused the error on importing a product.", +"type": "string" +}, +"userEvent": { +"description": "The detailed content which caused the error on importing a user event.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingServiceContext": { +"description": "Describes a running service that sends errors.", +"id": "GoogleCloudRetailLoggingServiceContext", +"properties": { +"service": { +"description": "An identifier of the service. For example, \"retail.googleapis.com\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailLoggingSourceLocation": { +"description": "Indicates a location in the source code of the service for which errors are reported.", +"id": "GoogleCloudRetailLoggingSourceLocation", +"properties": { +"functionName": { +"description": "Human-readable name of a function or method. For example, \"google.cloud.retail.v2.UserEventService.ImportUserEvents\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2AddCatalogAttributeRequest": { +"description": "Request for CatalogService.AddCatalogAttribute method.", +"id": "GoogleCloudRetailV2AddCatalogAttributeRequest", +"properties": { +"catalogAttribute": { +"$ref": "GoogleCloudRetailV2CatalogAttribute", +"description": "Required. The CatalogAttribute to add." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2AddControlRequest": { +"description": "Request for AddControl method.", +"id": "GoogleCloudRetailV2AddControlRequest", +"properties": { +"controlId": { +"description": "Required. The id of the control to apply. Assumed to be in the same catalog as the serving config - if id is not found a NOT_FOUND error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2AddFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2AddFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2AddFulfillmentPlacesRequest": { +"description": "Request message for ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2AddFulfillmentPlacesRequest", +"properties": { +"addTime": { +"description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +}, +"allowMissing": { +"description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"placeIds": { +"description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\" to be added for this type. Duplicate IDs will be automatically ignored. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern `[a-zA-Z0-9_-]+`, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned. If the total number of place IDs exceeds 2000 for this type after adding, then the update will be rejected.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2AddFulfillmentPlacesResponse": { +"description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2AddFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2AddLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2AddLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2AddLocalInventoriesRequest": { +"description": "Request message for ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2AddLocalInventoriesRequest", +"properties": { +"addMask": { +"description": "Indicates which inventory fields in the provided list of LocalInventory to update. The field is updated to the provided value. If a field is set while the place does not have a previous local inventory, the local inventory at that store is created. If a field is set while the value of that field is not provided, the original field value, if it exists, is deleted. If the mask is not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", +"format": "google-fieldmask", +"type": "string" +}, +"addTime": { +"description": "The time when the inventory updates are issued. Used to prevent out-of-order updates on local inventory fields. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +}, +"allowMissing": { +"description": "If set to true, and the Product is not found, the local inventory will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"localInventories": { +"description": "Required. A list of inventory information at difference places. Each place is identified by its place ID. At most 3000 inventories are allowed per request.", +"items": { +"$ref": "GoogleCloudRetailV2LocalInventory" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2AddLocalInventoriesResponse": { +"description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2AddLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2AttributesConfig": { +"description": "Catalog level attribute config.", +"id": "GoogleCloudRetailV2AttributesConfig", +"properties": { +"attributeConfigLevel": { +"description": "Output only. The AttributeConfigLevel used for this catalog.", +"enum": [ +"ATTRIBUTE_CONFIG_LEVEL_UNSPECIFIED", +"PRODUCT_LEVEL_ATTRIBUTE_CONFIG", +"CATALOG_LEVEL_ATTRIBUTE_CONFIG" +], +"enumDescriptions": [ +"Value used when unset. In this case, server behavior defaults to CATALOG_LEVEL_ATTRIBUTE_CONFIG.", +"At this level, we honor the attribute configurations set in Product.attributes.", +"At this level, we honor the attribute configurations set in `CatalogConfig.attribute_configs`." +], +"readOnly": true, +"type": "string" +}, +"catalogAttributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2CatalogAttribute" +}, +"description": "Enable attribute(s) config at catalog level. For example, indexable, dynamic_facetable, or searchable for each attribute. The key is catalog attribute's name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. The maximum number of catalog attributes allowed in a request is 1000.", +"type": "object" +}, +"name": { +"description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Audience": { +"description": "An intended audience of the Product for whom it's sold.", +"id": "GoogleCloudRetailV2Audience", +"properties": { +"ageGroups": { +"description": "The age groups of the audience. Strongly encouraged to use the standard values: \"newborn\" (up to 3 months old), \"infant\" (3\u201312 months old), \"toddler\" (1\u20135 years old), \"kids\" (5\u201313 years old), \"adult\" (typically teens or older). At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [age_group](https://support.google.com/merchants/answer/6324463). Schema.org property [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).", +"items": { +"type": "string" +}, +"type": "array" +}, +"genders": { +"description": "The genders of the audience. Strongly encouraged to use the standard values: \"male\", \"female\", \"unisex\". At most 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [gender](https://support.google.com/merchants/answer/6324479). Schema.org property [Product.audience.suggestedGender](https://schema.org/suggestedGender).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2BatchUpdateGenerativeQuestionConfigsRequest": { +"description": "Request for BatchUpdateGenerativeQuestionConfig method.", +"id": "GoogleCloudRetailV2BatchUpdateGenerativeQuestionConfigsRequest", +"properties": { +"requests": { +"description": "Required. The updates question configs.", +"items": { +"$ref": "GoogleCloudRetailV2UpdateGenerativeQuestionConfigRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2BatchUpdateGenerativeQuestionConfigsResponse": { +"description": "Aggregated response for UpdateGenerativeQuestionConfig method.", +"id": "GoogleCloudRetailV2BatchUpdateGenerativeQuestionConfigsResponse", +"properties": { +"generativeQuestionConfigs": { +"description": "Optional. The updates question configs.", +"items": { +"$ref": "GoogleCloudRetailV2GenerativeQuestionConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2BigQueryOutputResult": { +"description": "A BigQuery output result.", +"id": "GoogleCloudRetailV2BigQueryOutputResult", +"properties": { +"datasetId": { +"description": "The ID of a BigQuery Dataset.", +"type": "string" +}, +"tableId": { +"description": "The ID of a BigQuery Table.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2BigQuerySource": { +"description": "BigQuery source import data from.", +"id": "GoogleCloudRetailV2BigQuerySource", +"properties": { +"dataSchema": { +"description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: The schema is available here: https://support.google.com/analytics/answer/3437719. * `user_event_ga4`: The schema is available here: https://support.google.com/analytics/answer/7029846. Supported values for autocomplete imports: * `suggestions` (default): One JSON completion suggestion per line. * `denylist`: One JSON deny suggestion per line. * `allowlist`: One JSON allow suggestion per line.", +"type": "string" +}, +"datasetId": { +"description": "Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.", +"type": "string" +}, +"gcsStagingDir": { +"description": "Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.", +"type": "string" +}, +"partitionDate": { +"$ref": "GoogleTypeDate", +"description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format." +}, +"projectId": { +"description": "The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.", +"type": "string" +}, +"tableId": { +"description": "Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Catalog": { +"description": "The catalog configuration.", +"id": "GoogleCloudRetailV2Catalog", +"properties": { +"displayName": { +"description": "Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"name": { +"description": "Required. Immutable. The fully qualified resource name of the catalog.", +"type": "string" +}, +"productLevelConfig": { +"$ref": "GoogleCloudRetailV2ProductLevelConfig", +"description": "Required. The product level configuration." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CatalogAttribute": { +"description": "Catalog level attribute config for an attribute. For example, if customers want to enable/disable facet for a specific attribute.", +"id": "GoogleCloudRetailV2CatalogAttribute", +"properties": { +"dynamicFacetableOption": { +"description": "If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.", +"enum": [ +"DYNAMIC_FACETABLE_OPTION_UNSPECIFIED", +"DYNAMIC_FACETABLE_ENABLED", +"DYNAMIC_FACETABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Dynamic facetable option enabled for an attribute.", +"Dynamic facetable option disabled for an attribute." +], +"type": "string" +}, +"exactSearchableOption": { +"description": "If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.", +"enum": [ +"EXACT_SEARCHABLE_OPTION_UNSPECIFIED", +"EXACT_SEARCHABLE_ENABLED", +"EXACT_SEARCHABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Exact searchable option enabled for an attribute.", +"Exact searchable option disabled for an attribute." +], +"type": "string" +}, +"facetConfig": { +"$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfig", +"description": "Contains facet options." +}, +"inUse": { +"description": "Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.", +"readOnly": true, +"type": "boolean" +}, +"indexableOption": { +"description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", +"enum": [ +"INDEXABLE_OPTION_UNSPECIFIED", +"INDEXABLE_ENABLED", +"INDEXABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Indexable option enabled for an attribute.", +"Indexable option disabled for an attribute." +], +"type": "string" +}, +"key": { +"description": "Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.", +"type": "string" +}, +"retrievableOption": { +"description": "If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.", +"enum": [ +"RETRIEVABLE_OPTION_UNSPECIFIED", +"RETRIEVABLE_ENABLED", +"RETRIEVABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Retrievable option enabled for an attribute.", +"Retrievable option disabled for an attribute." +], +"type": "string" +}, +"searchableOption": { +"description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.", +"enum": [ +"SEARCHABLE_OPTION_UNSPECIFIED", +"SEARCHABLE_ENABLED", +"SEARCHABLE_DISABLED" +], +"enumDescriptions": [ +"Value used when unset.", +"Searchable option enabled for an attribute.", +"Searchable option disabled for an attribute." +], +"type": "string" +}, +"type": { +"description": "Output only. The type of this attribute. This is derived from the attribute in Product.attributes.", +"enum": [ +"UNKNOWN", +"TEXTUAL", +"NUMERICAL" +], +"enumDescriptions": [ +"The type of the attribute is unknown. Used when type cannot be derived from attribute that is not in_use.", +"Textual attribute.", +"Numerical attribute." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CatalogAttributeFacetConfig": { +"description": "Possible options for the facet that corresponds to the current attribute config.", +"id": "GoogleCloudRetailV2CatalogAttributeFacetConfig", +"properties": { +"facetIntervals": { +"description": "If you don't set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.", +"items": { +"$ref": "GoogleCloudRetailV2Interval" +}, +"type": "array" +}, +"ignoredFacetValues": { +"description": "Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.", +"items": { +"$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfigIgnoredFacetValues" +}, +"type": "array" +}, +"mergedFacet": { +"$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacet", +"description": "Use this field only if you want to merge a facet key into another facet key." +}, +"mergedFacetValues": { +"description": "Each instance replaces a list of facet values by a merged facet value. If a facet value is not in any list, then it will stay the same. To avoid conflicts, only paths of length 1 are accepted. In other words, if \"dark_blue\" merged into \"BLUE\", then the latter can't merge into \"blues\" because this would create a path of length 2. The maximum number of instances of MergedFacetValue per CatalogAttribute is 100. This feature is available only for textual custom attributes.", +"items": { +"$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacetValue" +}, +"type": "array" +}, +"rerankConfig": { +"$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfigRerankConfig", +"description": "Set this field only if you want to rerank based on facet values engaged by the user for the current key. This option is only possible for custom facetable textual keys." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CatalogAttributeFacetConfigIgnoredFacetValues": { +"description": "Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.", +"id": "GoogleCloudRetailV2CatalogAttributeFacetConfigIgnoredFacetValues", +"properties": { +"endTime": { +"description": "If start time is empty and end time is not empty, then ignore these facet values before end time.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.", +"format": "google-datetime", +"type": "string" +}, +"values": { +"description": "List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacet": { +"description": "The current facet key (i.e. attribute config) maps into the merged_facet_key. A facet key can have at most one child. The current facet key and the merged facet key need both to be textual custom attributes or both numerical custom attributes (same type).", +"id": "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacet", +"properties": { +"mergedFacetKey": { +"description": "The merged facet key should be a valid facet key that is different than the facet key of the current catalog attribute. We refer this is merged facet key as the child of the current catalog attribute. This merged facet key can't be a parent of another facet key (i.e. no directed path of length 2). This merged facet key needs to be either a textual custom attribute or a numerical custom attribute.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacetValue": { +"description": "Replaces a set of textual facet values by the same (possibly different) merged facet value. Each facet value should appear at most once as a value per CatalogAttribute. This feature is available only for textual custom attributes.", +"id": "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacetValue", +"properties": { +"mergedValue": { +"description": "All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.", +"type": "string" +}, +"values": { +"description": "All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CatalogAttributeFacetConfigRerankConfig": { +"description": "Options to rerank based on facet values engaged by the user for the current key. That key needs to be a custom textual key and facetable. To use this control, you also need to pass all the facet keys engaged by the user in the request using the field [SearchRequest.FacetSpec]. In particular, if you don't pass the facet keys engaged that you want to rerank on, this control won't be effective. Moreover, to obtain better results, the facet values that you want to rerank on should be close to English (ideally made of words, underscores, and spaces).", +"id": "GoogleCloudRetailV2CatalogAttributeFacetConfigRerankConfig", +"properties": { +"facetValues": { +"description": "If empty, rerank on all facet values for the current key. Otherwise, will rerank on the facet values from this list only.", +"items": { +"type": "string" +}, +"type": "array" +}, +"rerankFacet": { +"description": "If set to true, then we also rerank the dynamic facets based on the facet values engaged by the user for the current attribute key during serving.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CollectUserEventRequest": { +"description": "Request message for CollectUserEvent method.", +"id": "GoogleCloudRetailV2CollectUserEventRequest", +"properties": { +"ets": { +"description": "The event timestamp in milliseconds. This prevents browser caching of otherwise identical get requests. The name is abbreviated to reduce the payload bytes.", +"format": "int64", +"type": "string" +}, +"prebuiltRule": { +"description": "The prebuilt rule name that can convert a specific type of raw_json. For example: \"ga4_bq\" rule for the GA4 user event schema.", +"type": "string" +}, +"rawJson": { +"description": "An arbitrary serialized JSON string that contains necessary information that can comprise a user event. When this field is specified, the user_event field will be ignored. Note: line-delimited JSON is not supported, a single JSON only.", +"type": "string" +}, +"uri": { +"description": "The URL including cgi-parameters but excluding the hash fragment with a length limit of 5,000 characters. This is often more useful than the referer URL, because many browsers only send the domain for 3rd party requests.", +"type": "string" +}, +"userEvent": { +"description": "Required. URL encoded UserEvent proto with a length limit of 2,000,000 characters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ColorInfo": { +"description": "The color information of a Product.", +"id": "GoogleCloudRetailV2ColorInfo", +"properties": { +"colorFamilies": { +"description": "The standard color families. Strongly recommended to use the following standard color groups: \"Red\", \"Pink\", \"Orange\", \"Yellow\", \"Purple\", \"Green\", \"Cyan\", \"Blue\", \"Brown\", \"White\", \"Gray\", \"Black\" and \"Mixed\". Normally it is expected to have only 1 color family. May consider using single \"Mixed\" instead of multiple values. A maximum of 5 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color). The colorFamilies field as a system attribute is not a required field but strongly recommended to be specified. Google Search models treat this field as more important than a custom product attribute when specified.", +"items": { +"type": "string" +}, +"type": "array" +}, +"colors": { +"description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 75 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CompleteQueryResponse": { +"description": "Response of the autocomplete query.", +"id": "GoogleCloudRetailV2CompleteQueryResponse", +"properties": { +"attributeResults": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2CompleteQueryResponseAttributeResult" +}, +"description": "A map of matched attribute suggestions. This field is only available for \"cloud-retail\" dataset. Current supported keys: * `brands` * `categories`", +"type": "object" +}, +"attributionToken": { +"description": "A unique complete token. This should be included in the UserEvent.completion_detail for search events resulting from this completion, which enables accurate attribution of complete model performance.", +"type": "string" +}, +"completionResults": { +"description": "Results of the matching suggestions. The result list is ordered and the first result is top suggestion.", +"items": { +"$ref": "GoogleCloudRetailV2CompleteQueryResponseCompletionResult" +}, +"type": "array" +}, +"recentSearchResults": { +"deprecated": true, +"description": "Deprecated. Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. If you want to enable it, contact Retail Search support. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", +"items": { +"$ref": "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CompleteQueryResponseAttributeResult": { +"description": "Resource that represents attribute results. The list of suggestions for the attribute.", +"id": "GoogleCloudRetailV2CompleteQueryResponseAttributeResult", +"properties": { +"suggestions": { +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CompleteQueryResponseCompletionResult": { +"description": "Resource that represents completion results.", +"id": "GoogleCloudRetailV2CompleteQueryResponseCompletionResult", +"properties": { +"attributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2CustomAttribute" +}, +"description": "Custom attributes for the suggestion term. * For \"user-data\", the attributes are additional custom attributes ingested through BigQuery. * For \"cloud-retail\", the attributes are product attributes generated by Cloud Retail. It requires UserEvent.product_details is imported properly.", +"type": "object" +}, +"suggestion": { +"description": "The suggestion for the query.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult": { +"deprecated": true, +"description": "Deprecated: Recent search of this user.", +"id": "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult", +"properties": { +"recentSearch": { +"description": "The recent search query.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CompletionConfig": { +"description": "Catalog level autocomplete config for customers to customize autocomplete feature's settings.", +"id": "GoogleCloudRetailV2CompletionConfig", +"properties": { +"allowlistInputConfig": { +"$ref": "GoogleCloudRetailV2CompletionDataInputConfig", +"description": "Output only. The source data for the latest import of the autocomplete allowlist phrases.", +"readOnly": true +}, +"autoLearning": { +"description": "If set to true, the auto learning function is enabled. Auto learning uses user data to generate suggestions using ML techniques. Default value is false. Only after enabling auto learning can users use `cloud-retail` data in CompleteQueryRequest.", +"type": "boolean" +}, +"denylistInputConfig": { +"$ref": "GoogleCloudRetailV2CompletionDataInputConfig", +"description": "Output only. The source data for the latest import of the autocomplete denylist phrases.", +"readOnly": true +}, +"lastAllowlistImportOperation": { +"description": "Output only. Name of the LRO corresponding to the latest allowlist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", +"readOnly": true, +"type": "string" +}, +"lastDenylistImportOperation": { +"description": "Output only. Name of the LRO corresponding to the latest denylist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", +"readOnly": true, +"type": "string" +}, +"lastSuggestionsImportOperation": { +"description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API method to retrieve the latest state of the Long Running Operation.", +"readOnly": true, +"type": "string" +}, +"matchingOrder": { +"description": "Specifies the matching order for autocomplete suggestions, e.g., a query consisting of 'sh' with 'out-of-order' specified would suggest \"women's shoes\", whereas a query of 'red s' with 'exact-prefix' specified would suggest \"red shoes\". Currently supported values: * 'out-of-order' * 'exact-prefix' Default value: 'exact-prefix'.", +"type": "string" +}, +"maxSuggestions": { +"description": "The maximum number of autocomplete suggestions returned per term. Default value is 20. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", +"format": "int32", +"type": "integer" +}, +"minPrefixLength": { +"description": "The minimum number of characters needed to be typed in order to get suggestions. Default value is 2. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", +"type": "string" +}, +"suggestionsInputConfig": { +"$ref": "GoogleCloudRetailV2CompletionDataInputConfig", +"description": "Output only. The source data for the latest import of the autocomplete suggestion phrases.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CompletionDataInputConfig": { +"description": "The input config source for completion data.", +"id": "GoogleCloudRetailV2CompletionDataInputConfig", +"properties": { +"bigQuerySource": { +"$ref": "GoogleCloudRetailV2BigQuerySource", +"description": "Required. BigQuery input source. Add the IAM permission \"BigQuery Data Viewer\" for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CompletionDetail": { +"description": "Detailed completion information including completion attribution token and clicked completion info.", +"id": "GoogleCloudRetailV2CompletionDetail", +"properties": { +"completionAttributionToken": { +"description": "Completion attribution token in CompleteQueryResponse.attribution_token.", +"type": "string" +}, +"selectedPosition": { +"description": "End user selected CompleteQueryResponse.CompletionResult.suggestion position, starting from 0.", +"format": "int32", +"type": "integer" +}, +"selectedSuggestion": { +"description": "End user selected CompleteQueryResponse.CompletionResult.suggestion.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Condition": { +"description": "Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted.", +"id": "GoogleCloudRetailV2Condition", +"properties": { +"activeTimeRange": { +"description": "Range of time(s) specifying when Condition is active. Condition true if any time range matches.", +"items": { +"$ref": "GoogleCloudRetailV2ConditionTimeRange" +}, +"type": "array" +}, +"pageCategories": { +"description": "Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;", +"items": { +"type": "string" +}, +"type": "array" +}, +"queryTerms": { +"description": "A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).", +"items": { +"$ref": "GoogleCloudRetailV2ConditionQueryTerm" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ConditionQueryTerm": { +"description": "Query terms that we want to match on.", +"id": "GoogleCloudRetailV2ConditionQueryTerm", +"properties": { +"fullMatch": { +"description": "Whether this is supposed to be a full or partial match.", +"type": "boolean" +}, +"value": { +"description": "The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, \"a b c\" is 3 terms and allowed, but \" a b c d\" is 4 terms and not allowed for a partial match.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ConditionTimeRange": { +"description": "Used for time-dependent conditions. Example: Want to have rule applied for week long sale.", +"id": "GoogleCloudRetailV2ConditionTimeRange", +"properties": { +"endTime": { +"description": "End of time range. Range is inclusive.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Start of time range. Range is inclusive.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Control": { +"description": "Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.", +"id": "GoogleCloudRetailV2Control", +"properties": { +"associatedServingConfigIds": { +"description": "Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"displayName": { +"description": "Required. The human readable control display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is thrown.", +"type": "string" +}, +"name": { +"description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", +"type": "string" +}, +"rule": { +"$ref": "GoogleCloudRetailV2Rule", +"description": "A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost \"gShoe\" when query full matches \"Running Shoes\"." +}, +"searchSolutionUseCase": { +"description": "Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.", +"items": { +"enum": [ +"SEARCH_SOLUTION_USE_CASE_UNSPECIFIED", +"SEARCH_SOLUTION_USE_CASE_SEARCH", +"SEARCH_SOLUTION_USE_CASE_BROWSE" +], +"enumDescriptions": [ +"The value when it's unspecified. In this case, server behavior defaults to SEARCH_SOLUTION_USE_CASE_SEARCH.", +"Search use case. Expects the traffic has a non-empty query.", +"Browse use case. Expects the traffic has an empty query." +], +"type": "string" +}, +"type": "array" +}, +"solutionTypes": { +"description": "Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.", +"items": { +"enum": [ +"SOLUTION_TYPE_UNSPECIFIED", +"SOLUTION_TYPE_RECOMMENDATION", +"SOLUTION_TYPE_SEARCH" +], +"enumDescriptions": [ +"Default value.", +"Used for Recommendations AI.", +"Used for Retail Search." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CreateModelMetadata": { +"description": "Metadata associated with a create operation.", +"id": "GoogleCloudRetailV2CreateModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this create applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2CustomAttribute": { +"description": "A custom attribute that is not explicitly modeled in Product.", +"id": "GoogleCloudRetailV2CustomAttribute", +"properties": { +"indexable": { +"deprecated": true, +"description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are indexed, so that they can be filtered, faceted or boosted in SearchService.Search. This field is ignored in a UserEvent. See SearchRequest.filter, SearchRequest.facet_specs and SearchRequest.boost_spec for more details.", +"type": "boolean" +}, +"numbers": { +"description": "The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is \"lengths_cm\". Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +}, +"searchable": { +"deprecated": true, +"description": "This field is normally ignored unless AttributesConfig.attribute_config_level of the Catalog is set to the deprecated 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG' mode. For information about product-level attribute configuration, see [Configuration modes](https://cloud.google.com/retail/docs/attribute-config#config-modes). If true, custom attribute values are searchable by text queries in SearchService.Search. This field is ignored in a UserEvent. Only set if type text is set. Otherwise, a INVALID_ARGUMENT error is returned.", +"type": "boolean" +}, +"text": { +"description": "The textual values of this custom attribute. For example, `[\"yellow\", \"green\"]` when the key is \"color\". Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ExperimentInfo": { +"description": "Metadata for active A/B testing experiment.", +"id": "GoogleCloudRetailV2ExperimentInfo", +"properties": { +"experiment": { +"description": "The fully qualified resource name of the experiment that provides the serving config under test, should an active experiment exist. For example: `projects/*/locations/global/catalogs/default_catalog/experiments/experiment_id`", +"type": "string" +}, +"servingConfigExperiment": { +"$ref": "GoogleCloudRetailV2ExperimentInfoServingConfigExperiment", +"description": "A/B test between existing Cloud Retail Search ServingConfigs." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ExperimentInfoServingConfigExperiment": { +"description": "Metadata for active serving config A/B tests.", +"id": "GoogleCloudRetailV2ExperimentInfoServingConfigExperiment", +"properties": { +"experimentServingConfig": { +"description": "The fully qualified resource name of the serving config `Experiment.VariantArm.serving_config_id` responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", +"type": "string" +}, +"originalServingConfig": { +"description": "The fully qualified resource name of the original SearchRequest.placement in the search request prior to reassignment by experiment API. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ExportAnalyticsMetricsRequest": { +"description": "Request message for the `ExportAnalyticsMetrics` method.", +"id": "GoogleCloudRetailV2ExportAnalyticsMetricsRequest", +"properties": { +"filter": { +"description": "A filtering expression to specify restrictions on returned metrics. The expression is a sequence of terms. Each term applies a restriction to the returned metrics. Use this expression to restrict results to a specific time range. Currently we expect only one types of fields: * `timestamp`: This can be specified twice, once with a less than operator and once with a greater than operator. The `timestamp` restriction should result in one, contiguous, valid, `timestamp` range. Some examples of valid filters expressions: * Example 1: `timestamp > \"2012-04-23T18:25:43.511Z\" timestamp < \"2012-04-23T18:30:43.511Z\"` * Example 2: `timestamp > \"2012-04-23T18:25:43.511Z\"`", +"type": "string" +}, +"outputConfig": { +"$ref": "GoogleCloudRetailV2OutputConfig", +"description": "Required. The output location of the data." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ExportAnalyticsMetricsResponse": { +"description": "Response of the ExportAnalyticsMetricsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2ExportAnalyticsMetricsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2ExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2OutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ExportErrorsConfig": { +"description": "Configuration of destination for Export related errors.", +"id": "GoogleCloudRetailV2ExportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Export errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ExportMetadata": { +"description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2ExportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2FulfillmentInfo": { +"description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.", +"id": "GoogleCloudRetailV2FulfillmentInfo", +"properties": { +"placeIds": { +"description": "The IDs for this type, such as the store IDs for FulfillmentInfo.type.pickup-in-store or the region IDs for FulfillmentInfo.type.same-day-delivery. A maximum of 3000 values are allowed. Each value must be a string with a length limit of 30 characters, matching the pattern `[a-zA-Z0-9_-]+`, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2GcsOutputResult": { +"description": "A Gcs output result.", +"id": "GoogleCloudRetailV2GcsOutputResult", +"properties": { +"outputUri": { +"description": "The uri of Gcs output", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2GcsSource": { +"description": "Google Cloud Storage location for input content.", +"id": "GoogleCloudRetailV2GcsSource", +"properties": { +"dataSchema": { +"description": "The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719. Supported values for control imports: * `control` (default): One JSON Control per line. Supported values for catalog attribute imports: * `catalog_attribute` (default): One CSV CatalogAttribute per line.", +"type": "string" +}, +"inputUris": { +"description": "Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2GenerativeQuestionConfig": { +"description": "Configuration for a single generated question.", +"id": "GoogleCloudRetailV2GenerativeQuestionConfig", +"properties": { +"allowedInConversation": { +"description": "Optional. Whether the question is asked at serving time.", +"type": "boolean" +}, +"catalog": { +"description": "Required. Resource name of the catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"type": "string" +}, +"exampleValues": { +"description": "Output only. Values that can be used to answer the question.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"facet": { +"description": "Required. The facet to which the question is associated.", +"type": "string" +}, +"finalQuestion": { +"description": "Optional. The question that will be used at serving time. Question can have a max length of 300 bytes. When not populated, generated_question should be used.", +"type": "string" +}, +"frequency": { +"description": "Output only. The ratio of how often a question was asked.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"generatedQuestion": { +"description": "Output only. The LLM generated question.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2GenerativeQuestionsFeatureConfig": { +"description": "Configuration for overall generative question feature state.", +"id": "GoogleCloudRetailV2GenerativeQuestionsFeatureConfig", +"properties": { +"catalog": { +"description": "Required. Resource name of the affected catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog}", +"type": "string" +}, +"featureEnabled": { +"description": "Optional. Determines whether questions will be used at serving time. Note: This feature cannot be enabled until initial data requirements are satisfied.", +"type": "boolean" +}, +"minimumProducts": { +"description": "Optional. Minimum number of products in the response to trigger follow-up questions. Value must be 0 or positive.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2GetDefaultBranchResponse": { +"description": "Response message of CatalogService.GetDefaultBranch.", +"id": "GoogleCloudRetailV2GetDefaultBranchResponse", +"properties": { +"branch": { +"description": "Full resource name of the branch id currently set as default branch.", +"type": "string" +}, +"note": { +"description": "This corresponds to SetDefaultBranchRequest.note field, when this branch was set as default.", +"type": "string" +}, +"setTime": { +"description": "The time when this branch is set to default.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Image": { +"description": "Product image. Recommendations AI and Retail Search use product images to improve prediction and search results. Product images can be returned in results, and are shown in prediction or search previews in the console. Please try to provide correct product images and avoid using images with size too small.", +"id": "GoogleCloudRetailV2Image", +"properties": { +"height": { +"description": "Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", +"type": "string" +}, +"width": { +"description": "Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportCompletionDataRequest": { +"description": "Request message for ImportCompletionData methods.", +"id": "GoogleCloudRetailV2ImportCompletionDataRequest", +"properties": { +"inputConfig": { +"$ref": "GoogleCloudRetailV2CompletionDataInputConfig", +"description": "Required. The desired input location of the data." +}, +"notificationPubsubTopic": { +"description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportCompletionDataResponse": { +"description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", +"id": "GoogleCloudRetailV2ImportCompletionDataResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportErrorsConfig": { +"description": "Configuration of destination for Import related errors.", +"id": "GoogleCloudRetailV2ImportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportMetadata": { +"description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2ImportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"notificationPubsubTopic": { +"description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", +"type": "string" +}, +"requestId": { +"deprecated": true, +"description": "Deprecated. This field is never set.", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were processed successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportProductsRequest": { +"description": "Request message for Import methods.", +"id": "GoogleCloudRetailV2ImportProductsRequest", +"properties": { +"errorsConfig": { +"$ref": "GoogleCloudRetailV2ImportErrorsConfig", +"description": "The desired location of errors incurred during the Import." +}, +"inputConfig": { +"$ref": "GoogleCloudRetailV2ProductInputConfig", +"description": "Required. The desired input location of the data." +}, +"notificationPubsubTopic": { +"description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that both `cloud-retail-customer-data-access@system.gserviceaccount.com` and `service-@gcp-sa-retail.iam.gserviceaccount.com` have the `pubsub.topics.publish` IAM permission on the topic. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", +"type": "string" +}, +"reconciliationMode": { +"description": "The mode of reconciliation between existing products and the products to be imported. Defaults to ReconciliationMode.INCREMENTAL.", +"enum": [ +"RECONCILIATION_MODE_UNSPECIFIED", +"INCREMENTAL", +"FULL" +], +"enumDescriptions": [ +"Defaults to INCREMENTAL.", +"Inserts new products or updates existing products.", +"Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location." +], +"type": "string" +}, +"requestId": { +"deprecated": true, +"description": "Deprecated. This field has no effect.", +"type": "string" +}, +"updateMask": { +"description": "Indicates which fields in the provided imported `products` to update. If not set, all fields are updated. If provided, only the existing product fields are updated. Missing products will not be created.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportProductsResponse": { +"description": "Response of the ImportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2ImportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2ImportErrorsConfig", +"description": "Echoes the destination for the complete errors in the request if set." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportUserEventsRequest": { +"description": "Request message for the ImportUserEvents request.", +"id": "GoogleCloudRetailV2ImportUserEventsRequest", +"properties": { +"errorsConfig": { +"$ref": "GoogleCloudRetailV2ImportErrorsConfig", +"description": "The desired location of errors incurred during the Import. Cannot be set for inline user event imports." +}, +"inputConfig": { +"$ref": "GoogleCloudRetailV2UserEventInputConfig", +"description": "Required. The desired input location of the data." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ImportUserEventsResponse": { +"description": "Response of the ImportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2ImportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2ImportErrorsConfig", +"description": "Echoes the destination for the complete errors if this field was set in the request." +}, +"importSummary": { +"$ref": "GoogleCloudRetailV2UserEventImportSummary", +"description": "Aggregated statistics of user event import status." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Interval": { +"description": "A floating point interval.", +"id": "GoogleCloudRetailV2Interval", +"properties": { +"exclusiveMaximum": { +"description": "Exclusive upper bound.", +"format": "double", +"type": "number" +}, +"exclusiveMinimum": { +"description": "Exclusive lower bound.", +"format": "double", +"type": "number" +}, +"maximum": { +"description": "Inclusive upper bound.", +"format": "double", +"type": "number" +}, +"minimum": { +"description": "Inclusive lower bound.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ListCatalogsResponse": { +"description": "Response for CatalogService.ListCatalogs method.", +"id": "GoogleCloudRetailV2ListCatalogsResponse", +"properties": { +"catalogs": { +"description": "All the customer's Catalogs.", +"items": { +"$ref": "GoogleCloudRetailV2Catalog" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as ListCatalogsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ListControlsResponse": { +"description": "Response for ListControls method.", +"id": "GoogleCloudRetailV2ListControlsResponse", +"properties": { +"controls": { +"description": "All the Controls for a given catalog.", +"items": { +"$ref": "GoogleCloudRetailV2Control" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token, if not returned indicates the last page.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ListGenerativeQuestionConfigsResponse": { +"description": "Response for ListQuestions method.", +"id": "GoogleCloudRetailV2ListGenerativeQuestionConfigsResponse", +"properties": { +"generativeQuestionConfigs": { +"description": "All the questions for a given catalog.", +"items": { +"$ref": "GoogleCloudRetailV2GenerativeQuestionConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ListModelsResponse": { +"description": "Response to a ListModelRequest.", +"id": "GoogleCloudRetailV2ListModelsResponse", +"properties": { +"models": { +"description": "List of Models.", +"items": { +"$ref": "GoogleCloudRetailV2Model" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token, if not returned indicates the last page.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ListProductsResponse": { +"description": "Response message for ProductService.ListProducts method.", +"id": "GoogleCloudRetailV2ListProductsResponse", +"properties": { +"nextPageToken": { +"description": "A token that can be sent as ListProductsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"products": { +"description": "The Products.", +"items": { +"$ref": "GoogleCloudRetailV2Product" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ListServingConfigsResponse": { +"description": "Response for ListServingConfigs method.", +"id": "GoogleCloudRetailV2ListServingConfigsResponse", +"properties": { +"nextPageToken": { +"description": "Pagination token, if not returned indicates the last page.", +"type": "string" +}, +"servingConfigs": { +"description": "All the ServingConfigs for a given catalog.", +"items": { +"$ref": "GoogleCloudRetailV2ServingConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2LocalInventory": { +"description": "The inventory information at a place (e.g. a store) identified by a place ID.", +"id": "GoogleCloudRetailV2LocalInventory", +"properties": { +"attributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2CustomAttribute" +}, +"description": "Optional. Additional local inventory attributes, for example, store name, promotion tags, etc. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The key must be a UTF-8 encoded string with a length limit of 32 characters. * The key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or KEY_1_LIKE_THIS. * The attribute values must be of the same type (text or number). * Only 1 value is allowed for each attribute. * For text values, the length limit is 256 UTF-8 characters. * The attribute does not support search. The `searchable` field should be unset or set to false. * The max summed total bytes of custom attribute keys and values per product is 5MiB.", +"type": "object" +}, +"availability": { +"description": "Optional. The availability of the Product at this place_id. Default to Availability.IN_STOCK. For primary products with variants set the availability of the primary as Availability.OUT_OF_STOCK and set the true availability at the variant level. This way the primary product will be considered \"in stock\" as long as it has at least one variant in stock. For primary products with no variants set the true availability at the primary level. Corresponding properties: Google Merchant Center property [availability](https://support.google.com/merchants/answer/6324448). Schema.org property [Offer.availability](https://schema.org/availability).", +"enum": [ +"AVAILABILITY_UNSPECIFIED", +"IN_STOCK", +"OUT_OF_STOCK", +"PREORDER", +"BACKORDER" +], +"enumDescriptions": [ +"Default product availability. Default to Availability.IN_STOCK if unset.", +"Product in stock.", +"Product out of stock.", +"Product that is in pre-order state.", +"Product that is back-ordered (i.e. temporarily out of stock)." +], +"type": "string" +}, +"fulfillmentTypes": { +"description": "Optional. Supported fulfillment types. Valid fulfillment type values include commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"placeId": { +"description": "Required. The place ID for the current set of inventory information.", +"type": "string" +}, +"priceInfo": { +"$ref": "GoogleCloudRetailV2PriceInfo", +"description": "Optional. Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Model": { +"description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", +"id": "GoogleCloudRetailV2Model", +"properties": { +"createTime": { +"description": "Output only. Timestamp the Recommendation Model was created at.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataState": { +"description": "Output only. The state of data requirements for this model: `DATA_OK` and `DATA_ERROR`. Recommendation model cannot be trained if the data is in `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even if serving state is `ACTIVE`: models were trained successfully before, but cannot be refreshed because model no longer has sufficient data for training.", +"enum": [ +"DATA_STATE_UNSPECIFIED", +"DATA_OK", +"DATA_ERROR" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has sufficient training data.", +"The model does not have sufficient training data. Error messages can be queried via Stackdriver." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the model. Should be human readable, used to display Recommendation Models in the Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 characters.", +"type": "string" +}, +"filteringOption": { +"description": "Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering by attributes is enabled for the model.", +"enum": [ +"RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", +"RECOMMENDATIONS_FILTERING_DISABLED", +"RECOMMENDATIONS_FILTERING_ENABLED" +], +"enumDescriptions": [ +"Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", +"Recommendation filtering is disabled.", +"Recommendation filtering is enabled." +], +"type": "string" +}, +"lastTuneTime": { +"description": "Output only. The timestamp when the latest successful tune finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"modelFeaturesConfig": { +"$ref": "GoogleCloudRetailV2ModelModelFeaturesConfig", +"description": "Optional. Additional model features config." +}, +"name": { +"description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", +"type": "string" +}, +"optimizationObjective": { +"description": "Optional. The optimization objective e.g. `cvr`. Currently supported values: `ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on model type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `revenue_per_order` This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"periodicTuningState": { +"description": "Optional. The state of periodic tuning. The period we use is 3 months - to do a one-off tune earlier use the `TuneModel` method. Default value is `PERIODIC_TUNING_ENABLED`.", +"enum": [ +"PERIODIC_TUNING_STATE_UNSPECIFIED", +"PERIODIC_TUNING_DISABLED", +"ALL_TUNING_DISABLED", +"PERIODIC_TUNING_ENABLED" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has periodic tuning disabled. Tuning can be reenabled by calling the `EnableModelPeriodicTuning` method or by calling the `TuneModel` method.", +"The model cannot be tuned with periodic tuning OR the `TuneModel` method. Hide the options in customer UI and reject any requests through the backend self serve API.", +"The model has periodic tuning enabled. Tuning can be disabled by calling the `DisableModelPeriodicTuning` method." +], +"type": "string" +}, +"servingConfigLists": { +"description": "Output only. The list of valid serving configs associated with the PageOptimizationConfig.", +"items": { +"$ref": "GoogleCloudRetailV2ModelServingConfigList" +}, +"readOnly": true, +"type": "array" +}, +"servingState": { +"description": "Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`.", +"enum": [ +"SERVING_STATE_UNSPECIFIED", +"INACTIVE", +"ACTIVE", +"TUNED" +], +"enumDescriptions": [ +"Unspecified serving state.", +"The model is not serving.", +"The model is serving and can be queried.", +"The model is trained on tuned hyperparameters and can be queried." +], +"readOnly": true, +"type": "string" +}, +"trainingState": { +"description": "Optional. The training state that the model is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train model in order to control cost. If not specified: the default value for `CreateModel` method is `TRAINING`. The default value for `UpdateModel` method is to keep the state the same as before.", +"enum": [ +"TRAINING_STATE_UNSPECIFIED", +"PAUSED", +"TRAINING" +], +"enumDescriptions": [ +"Unspecified training state.", +"The model training is paused.", +"The model is training." +], +"type": "string" +}, +"tuningOperation": { +"description": "Output only. The tune operation associated with the model. Can be used to determine if there is an ongoing tune for this recommendation. Empty field implies no tune is goig on.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of model e.g. `home-page`. Currently supported values: `recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `page-optimization`, `similar-items`, `buy-it-again`, `on-sale-items`, and `recently-viewed`(readonly value). This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp the Recommendation Model was last updated. E.g. if a Recommendation Model was paused - this would be the time the pause was initiated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig": { +"description": "Additional configs for the frequently-bought-together model type.", +"id": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", +"properties": { +"contextProductsType": { +"description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"enum": [ +"CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", +"SINGLE_CONTEXT_PRODUCT", +"MULTIPLE_CONTEXT_PRODUCTS" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", +"Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ModelModelFeaturesConfig": { +"description": "Additional model features config.", +"id": "GoogleCloudRetailV2ModelModelFeaturesConfig", +"properties": { +"frequentlyBoughtTogetherConfig": { +"$ref": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", +"description": "Additional configs for frequently-bought-together models." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ModelServingConfigList": { +"description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", +"id": "GoogleCloudRetailV2ModelServingConfigList", +"properties": { +"servingConfigIds": { +"description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2OutputConfig": { +"description": "The output configuration setting.", +"id": "GoogleCloudRetailV2OutputConfig", +"properties": { +"bigqueryDestination": { +"$ref": "GoogleCloudRetailV2OutputConfigBigQueryDestination", +"description": "The BigQuery location where the output is to be written to." +}, +"gcsDestination": { +"$ref": "GoogleCloudRetailV2OutputConfigGcsDestination", +"description": "The Google Cloud Storage location where the output is to be written to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2OutputConfigBigQueryDestination": { +"description": "The BigQuery output destination configuration.", +"id": "GoogleCloudRetailV2OutputConfigBigQueryDestination", +"properties": { +"datasetId": { +"description": "Required. The ID of a BigQuery Dataset.", +"type": "string" +}, +"tableIdPrefix": { +"description": "Required. The prefix of exported BigQuery tables.", +"type": "string" +}, +"tableType": { +"description": "Required. Describes the table type. The following values are supported: * `table`: A BigQuery native table. * `view`: A virtual table defined by a SQL query.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2OutputConfigGcsDestination": { +"description": "The Google Cloud Storage output destination configuration.", +"id": "GoogleCloudRetailV2OutputConfigGcsDestination", +"properties": { +"outputUriPrefix": { +"description": "Required. The output uri prefix for saving output data to json files. Some mapping examples are as follows: output_uri_prefix sample output(assuming the object is foo.json) ======================== ============================================= gs://bucket/ gs://bucket/foo.json gs://bucket/folder/ gs://bucket/folder/foo.json gs://bucket/folder/item_ gs://bucket/folder/item_foo.json", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2OutputResult": { +"description": "Output result that stores the information about where the exported data is stored.", +"id": "GoogleCloudRetailV2OutputResult", +"properties": { +"bigqueryResult": { +"description": "The BigQuery location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2BigQueryOutputResult" +}, +"type": "array" +}, +"gcsResult": { +"description": "The Google Cloud Storage location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2GcsOutputResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PauseModelRequest": { +"description": "Request for pausing training of a model.", +"id": "GoogleCloudRetailV2PauseModelRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2PinControlMetadata": { +"description": "Metadata for pinning to be returned in the response. This is used for distinguishing between applied vs dropped pins.", +"id": "GoogleCloudRetailV2PinControlMetadata", +"properties": { +"allMatchedPins": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2PinControlMetadataProductPins" +}, +"description": "Map of all matched pins, keyed by pin position.", +"type": "object" +}, +"droppedPins": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2PinControlMetadataProductPins" +}, +"description": "Map of pins that were dropped due to overlap with other matching pins, keyed by pin position.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PinControlMetadataProductPins": { +"description": "List of product ids which have associated pins.", +"id": "GoogleCloudRetailV2PinControlMetadataProductPins", +"properties": { +"productId": { +"description": "List of product ids which have associated pins.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PredictRequest": { +"description": "Request message for Predict method.", +"id": "GoogleCloudRetailV2PredictRequest", +"properties": { +"filter": { +"description": "Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-\"tagA\"` is also supported and is equivalent to `NOT \"tagA\"`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: \"Recently viewed\" models don't support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(\"Red\" OR \"Blue\") tag=\"New-Arrival\" tag=(NOT \"promotional\") * filterOutOfStockItems tag=(-\"promotional\") * filterOutOfStockItems If your filter blocks all prediction results, the API will return *no* results. If instead you want empty result sets to return generic (unfiltered) popular products, set `strictFiltering` to False in `PredictRequest.params`. Note that the API will never return items with storageStatus of \"EXPIRED\" or \"DELETED\" regardless of filter choices. If `filterSyntaxV2` is set to true under the `params` field, then attribute-based expressions are expected instead of the above described tag-based syntax. Examples: * (colors: ANY(\"Red\", \"Blue\")) AND NOT (categories: ANY(\"Phones\")) * (availability: ANY(\"IN_STOCK\")) AND (colors: ANY(\"Red\") OR categories: ANY(\"Phones\")) For more information, see [Filter recommendations](https://cloud.google.com/retail/docs/filter-recs).", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", +"type": "object" +}, +"pageSize": { +"description": "Maximum number of results to return. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"deprecated": true, +"description": "This field is not used; leave it unset.", +"type": "string" +}, +"params": { +"additionalProperties": { +"type": "any" +}, +"description": "Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction 'score' corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given 'score' indicates the probability of a product being clicked/purchased given the user's context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results. * `priceRerankLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-price-reranking', 'low-price-reranking', 'medium-price-reranking', 'high-price-reranking'}. This gives request-level control and adjusts prediction results based on product price. * `diversityLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-diversity', 'low-diversity', 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives request-level control and adjusts prediction results based on product category. * `filterSyntaxV2`: Boolean. False by default. If set to true, the `filter` field is interpreteted according to the new, attribute-based syntax.", +"type": "object" +}, +"userEvent": { +"$ref": "GoogleCloudRetailV2UserEvent", +"description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging. Don't set UserEvent.visitor_id or UserInfo.user_id to the same fixed ID for different users. If you are trying to receive non-personalized recommendations (not recommended; this can negatively impact model performance), instead set UserEvent.visitor_id to a random unique ID and leave UserInfo.user_id unset." +}, +"validateOnly": { +"description": "Use validate only mode for this prediction query. If set to true, a dummy model will be used that returns arbitrary products. Note that the validate only mode should only be used for testing the API, or if the model is not ready.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PredictResponse": { +"description": "Response message for predict method.", +"id": "GoogleCloudRetailV2PredictResponse", +"properties": { +"attributionToken": { +"description": "A unique attribution token. This should be included in the UserEvent logs resulting from this recommendation, which enables accurate attribution of recommendation model performance.", +"type": "string" +}, +"missingIds": { +"description": "IDs of products in the request that were missing from the inventory.", +"items": { +"type": "string" +}, +"type": "array" +}, +"results": { +"description": "A list of recommended products. The order represents the ranking (from the most relevant product to the least).", +"items": { +"$ref": "GoogleCloudRetailV2PredictResponsePredictionResult" +}, +"type": "array" +}, +"validateOnly": { +"description": "True if the validateOnly property was set in the request.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PredictResponsePredictionResult": { +"description": "PredictionResult represents the recommendation prediction results.", +"id": "GoogleCloudRetailV2PredictResponsePredictionResult", +"properties": { +"id": { +"description": "ID of the recommended product", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "any" +}, +"description": "Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Is set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Is set if `returnScore` is set to true in `PredictRequest.params`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PriceInfo": { +"description": "The price information of a Product.", +"id": "GoogleCloudRetailV2PriceInfo", +"properties": { +"cost": { +"description": "The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).", +"format": "float", +"type": "number" +}, +"currencyCode": { +"description": "The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned. The Product.Type.VARIANT Products with the same Product.primary_product_id must share the same currency_code. Otherwise, a FAILED_PRECONDITION error is returned.", +"type": "string" +}, +"originalPrice": { +"description": "Price of the product without any discount. If zero, by default set to be the price. If set, original_price should be greater than or equal to price, otherwise an INVALID_ARGUMENT error is thrown.", +"format": "float", +"type": "number" +}, +"price": { +"description": "Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.price](https://schema.org/price).", +"format": "float", +"type": "number" +}, +"priceEffectiveTime": { +"description": "The timestamp when the price starts to be effective. This can be set as a future timestamp, and the price is only used for search after price_effective_time. If so, the original_price must be set and original_price is used before price_effective_time. Do not set if price is always effective because it will cause additional latency during search.", +"format": "google-datetime", +"type": "string" +}, +"priceExpireTime": { +"description": "The timestamp when the price stops to be effective. The price is used for search before price_expire_time. If this field is set, the original_price must be set and original_price is used after price_expire_time. Do not set if price is always effective because it will cause additional latency during search.", +"format": "google-datetime", +"type": "string" +}, +"priceRange": { +"$ref": "GoogleCloudRetailV2PriceInfoPriceRange", +"description": "Output only. The price range of all the child Product.Type.VARIANT Products grouped together on the Product.Type.PRIMARY Product. Only populated for Product.Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PriceInfoPriceRange": { +"description": "The price range of all variant Product having the same Product.primary_product_id.", +"id": "GoogleCloudRetailV2PriceInfoPriceRange", +"properties": { +"originalPrice": { +"$ref": "GoogleCloudRetailV2Interval", +"description": "The inclusive Product.pricing_info.original_price internal of all variant Product having the same Product.primary_product_id." +}, +"price": { +"$ref": "GoogleCloudRetailV2Interval", +"description": "The inclusive Product.pricing_info.price interval of all variant Product having the same Product.primary_product_id." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Product": { +"description": "Product captures all metadata information of items to be recommended or searched.", +"id": "GoogleCloudRetailV2Product", +"properties": { +"attributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2CustomAttribute" +}, +"description": "Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ \"vendor\": {\"text\": [\"vendor123\", \"vendor456\"]}, \"lengths_cm\": {\"numbers\":[2.3, 15.4]}, \"heights_cm\": {\"numbers\":[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200. * The key must be a UTF-8 encoded string with a length limit of 128 characters. * For indexable attribute, the key must match the pattern: `a-zA-Z0-9*`. For example, `key0LikeThis` or `KEY_1_LIKE_THIS`. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a non-empty UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed.", +"type": "object" +}, +"audience": { +"$ref": "GoogleCloudRetailV2Audience", +"description": "The target group associated with a given audience (e.g. male, veterans, car owners, musicians, etc.) of the product." +}, +"availability": { +"description": "The online availability of the Product. Default to Availability.IN_STOCK. For primary products with variants set the availability of the primary as Availability.OUT_OF_STOCK and set the true availability at the variant level. This way the primary product will be considered \"in stock\" as long as it has at least one variant in stock. For primary products with no variants set the true availability at the primary level. Corresponding properties: Google Merchant Center property [availability](https://support.google.com/merchants/answer/6324448). Schema.org property [Offer.availability](https://schema.org/availability).", +"enum": [ +"AVAILABILITY_UNSPECIFIED", +"IN_STOCK", +"OUT_OF_STOCK", +"PREORDER", +"BACKORDER" +], +"enumDescriptions": [ +"Default product availability. Default to Availability.IN_STOCK if unset.", +"Product in stock.", +"Product out of stock.", +"Product that is in pre-order state.", +"Product that is back-ordered (i.e. temporarily out of stock)." +], +"type": "string" +}, +"availableQuantity": { +"description": "The available quantity of the item.", +"format": "int32", +"type": "integer" +}, +"availableTime": { +"description": "The timestamp when this Product becomes available for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT.", +"format": "google-datetime", +"type": "string" +}, +"brands": { +"description": "The brands of the product. A maximum of 30 brands are allowed unless overridden through the Google Cloud console. Each brand must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [brand](https://support.google.com/merchants/answer/6324351). Schema.org property [Product.brand](https://schema.org/brand).", +"items": { +"type": "string" +}, +"type": "array" +}, +"categories": { +"description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product unless overridden through the Google Cloud console. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", +"items": { +"type": "string" +}, +"type": "array" +}, +"collectionMemberIds": { +"description": "The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise an INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", +"items": { +"type": "string" +}, +"type": "array" +}, +"colorInfo": { +"$ref": "GoogleCloudRetailV2ColorInfo", +"description": "The color of the product. Corresponding properties: Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color)." +}, +"conditions": { +"description": "The condition of the product. Strongly encouraged to use the standard values: \"new\", \"refurbished\", \"used\". A maximum of 1 value is allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [condition](https://support.google.com/merchants/answer/6324469). Schema.org property [Offer.itemCondition](https://schema.org/itemCondition).", +"items": { +"type": "string" +}, +"type": "array" +}, +"description": { +"description": "Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). Schema.org property [Product.description](https://schema.org/description).", +"type": "string" +}, +"expireTime": { +"description": "Note that this field is applied in the following ways: * If the Product is already expired when it is uploaded, this product is not indexed for search. * If the Product is not expired when it is uploaded, only the Type.PRIMARY's and Type.COLLECTION's expireTime is respected, and Type.VARIANT's expireTime is not used. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. expire_time must be later than available_time and publish_time, otherwise an INVALID_ARGUMENT error is thrown. Corresponding properties: Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).", +"format": "google-datetime", +"type": "string" +}, +"fulfillmentInfo": { +"description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods. All the elements must have distinct FulfillmentInfo.type. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"$ref": "GoogleCloudRetailV2FulfillmentInfo" +}, +"type": "array" +}, +"gtin": { +"description": "The Global Trade Item Number (GTIN) of the product. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [gtin](https://support.google.com/merchants/answer/6324461). Schema.org property [Product.isbn](https://schema.org/isbn), [Product.gtin8](https://schema.org/gtin8), [Product.gtin12](https://schema.org/gtin12), [Product.gtin13](https://schema.org/gtin13), or [Product.gtin14](https://schema.org/gtin14). If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"id": { +"description": "Immutable. Product identifier, which is the final component of name. For example, this field is \"id_1\", if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org property [Product.sku](https://schema.org/sku).", +"type": "string" +}, +"images": { +"description": "Product images for the product. We highly recommend putting the main image first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", +"items": { +"$ref": "GoogleCloudRetailV2Image" +}, +"type": "array" +}, +"languageCode": { +"description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to \"en-US\" if unset.", +"type": "string" +}, +"localInventories": { +"description": "Output only. A list of local inventories specific to different places. This field can be managed by ProductService.AddLocalInventories and ProductService.RemoveLocalInventories APIs if fine-grained, high-volume updates are necessary.", +"items": { +"$ref": "GoogleCloudRetailV2LocalInventory" +}, +"readOnly": true, +"type": "array" +}, +"materials": { +"description": "The material of the product. For example, \"leather\", \"wooden\". A maximum of 20 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`.", +"type": "string" +}, +"patterns": { +"description": "The pattern or graphic print of the product. For example, \"striped\", \"polka dot\", \"paisley\". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [pattern](https://support.google.com/merchants/answer/6324483). Schema.org property [Product.pattern](https://schema.org/pattern).", +"items": { +"type": "string" +}, +"type": "array" +}, +"priceInfo": { +"$ref": "GoogleCloudRetailV2PriceInfo", +"description": "Product price and cost information. Corresponding properties: Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." +}, +"primaryProductId": { +"description": "Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID).", +"type": "string" +}, +"promotions": { +"description": "The promotions applied to the product. A maximum of 10 values are allowed per Product. Only Promotion.promotion_id will be used, other fields will be ignored if set.", +"items": { +"$ref": "GoogleCloudRetailV2Promotion" +}, +"type": "array" +}, +"publishTime": { +"description": "The timestamp when the product is published by the retailer for the first time, which indicates the freshness of the products. Note that this field is different from available_time, given it purely describes product freshness regardless of when it is available on search and recommendation.", +"format": "google-datetime", +"type": "string" +}, +"rating": { +"$ref": "GoogleCloudRetailV2Rating", +"description": "The rating of this product." +}, +"retrievableFields": { +"deprecated": true, +"description": "Indicates which fields in the Products are returned in SearchResponse. Supported fields for all types: * audience * availability * brands * color_info * conditions * gtin * materials * name * patterns * price_info * rating * sizes * title * uri Supported fields only for Type.PRIMARY and Type.COLLECTION: * categories * description * images Supported fields only for Type.VARIANT: * Only the first image in images To mark attributes as retrievable, include paths of the form \"attributes.key\" where \"key\" is the key of a custom attribute, as specified in attributes. For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default: * name For Type.VARIANT, the following fields are always returned in by default: * name * color_info Note: Returning more fields in SearchResponse can increase response payload size and serving latency. This field is deprecated. Use the retrievable site-wide control instead.", +"format": "google-fieldmask", +"type": "string" +}, +"sizes": { +"description": "The size of the product. To represent different size systems or size types, consider using this format: [[[size_system:]size_type:]size_value]. For example, in \"US:MENS:M\", \"US\" represents size system; \"MENS\" represents size type; \"M\" represents size value. In \"GIRLS:27\", size system is empty; \"GIRLS\" represents size type; \"27\" represents size value. In \"32 inches\", both size system and size type are empty, while size value is \"32 inches\". A maximum of 20 values are allowed per Product. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [size](https://support.google.com/merchants/answer/6324492), [size_type](https://support.google.com/merchants/answer/6324497), and [size_system](https://support.google.com/merchants/answer/6324502). Schema.org property [Product.size](https://schema.org/size).", +"items": { +"type": "string" +}, +"type": "array" +}, +"tags": { +"description": "Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Corresponding properties: Google Merchant Center property [custom_label_0\u20134](https://support.google.com/merchants/answer/6324473).", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).", +"type": "string" +}, +"ttl": { +"description": "Input only. The TTL (time to live) of the product. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. If it is set, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", +"format": "google-duration", +"type": "string" +}, +"type": { +"description": "Immutable. The type of the product. Default to Catalog.product_level_config.ingestion_product_type if unset.", +"enum": [ +"TYPE_UNSPECIFIED", +"PRIMARY", +"VARIANT", +"COLLECTION" +], +"enumDescriptions": [ +"Default value. Default to Catalog.product_level_config.ingestion_product_type if unset.", +"The primary type. As the primary unit for predicting, indexing and search serving, a Type.PRIMARY Product is grouped with multiple Type.VARIANT Products.", +"The variant type. Type.VARIANT Products usually share some common attributes on the same Type.PRIMARY Products, but they have variant attributes like different colors, sizes and prices, etc.", +"The collection type. Collection products are bundled Type.PRIMARY Products or Type.VARIANT Products that are sold together, such as a jewelry set with necklaces, earrings and rings, etc." +], +"type": "string" +}, +"uri": { +"description": "Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).", +"type": "string" +}, +"variants": { +"description": "Output only. Product variants grouped together on primary product which share similar product attributes. It's automatically grouped by primary_product_id for all the product variants. Only populated for Type.PRIMARY Products. Note: This field is OUTPUT_ONLY for ProductService.GetProduct. Do not set this field in API requests.", +"items": { +"$ref": "GoogleCloudRetailV2Product" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ProductAttributeInterval": { +"description": "Product attribute name and numeric interval.", +"id": "GoogleCloudRetailV2ProductAttributeInterval", +"properties": { +"interval": { +"$ref": "GoogleCloudRetailV2Interval", +"description": "The numeric interval (e.g. [10, 20))" +}, +"name": { +"description": "The attribute name (e.g. \"length\")", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ProductAttributeValue": { +"description": "Product attribute which structured by an attribute name and value. This structure is used in conversational search filters and answers. For example, if we have `name=color` and `value=red`, this means that the color is `red`.", +"id": "GoogleCloudRetailV2ProductAttributeValue", +"properties": { +"name": { +"description": "The attribute name.", +"type": "string" +}, +"value": { +"description": "The attribute value.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ProductDetail": { +"description": "Detailed product information associated with a user event.", +"id": "GoogleCloudRetailV2ProductDetail", +"properties": { +"product": { +"$ref": "GoogleCloudRetailV2Product", +"description": "Required. Product information. Required field(s): * Product.id Optional override field(s): * Product.price_info If any supported optional fields are provided, we will treat them as a full override when looking up product information from the catalog. Thus, it is important to ensure that the overriding fields are accurate and complete. All other product fields are ignored and instead populated via catalog lookup after event ingestion." +}, +"quantity": { +"description": "Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ProductInlineSource": { +"description": "The inline source for the input config for ImportProducts method.", +"id": "GoogleCloudRetailV2ProductInlineSource", +"properties": { +"products": { +"description": "Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items.", +"items": { +"$ref": "GoogleCloudRetailV2Product" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ProductInputConfig": { +"description": "The input config source for products.", +"id": "GoogleCloudRetailV2ProductInputConfig", +"properties": { +"bigQuerySource": { +"$ref": "GoogleCloudRetailV2BigQuerySource", +"description": "BigQuery input source." +}, +"gcsSource": { +"$ref": "GoogleCloudRetailV2GcsSource", +"description": "Google Cloud Storage location for the input content." +}, +"productInlineSource": { +"$ref": "GoogleCloudRetailV2ProductInlineSource", +"description": "The Inline source for the input content for products." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ProductLevelConfig": { +"description": "Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made.", +"id": "GoogleCloudRetailV2ProductLevelConfig", +"properties": { +"ingestionProductType": { +"description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can ingest Products of all types. When ingesting a Product, its type will default to Product.Type.PRIMARY if unset. * `variant` (incompatible with Retail Search): You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", +"type": "string" +}, +"merchantCenterProductIdField": { +"description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Promotion": { +"description": "Promotion specification.", +"id": "GoogleCloudRetailV2Promotion", +"properties": { +"promotionId": { +"description": "Promotion identifier, which is the final component of name. For example, this field is \"free_gift\", if name is `projects/*/locations/global/catalogs/default_catalog/promotions/free_gift`. The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Corresponds to Google Merchant Center property [promotion_id](https://support.google.com/merchants/answer/7050148).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PurchaseTransaction": { +"description": "A transaction represents the entire purchase transaction.", +"id": "GoogleCloudRetailV2PurchaseTransaction", +"properties": { +"cost": { +"description": "All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost", +"format": "float", +"type": "number" +}, +"currencyCode": { +"description": "Required. Currency code. Use three-character ISO-4217 code.", +"type": "string" +}, +"id": { +"description": "The transaction ID with a length limit of 128 characters.", +"type": "string" +}, +"revenue": { +"description": "Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.", +"format": "float", +"type": "number" +}, +"tax": { +"description": "All the taxes associated with the transaction.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeMetadata": { +"description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2PurgeMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeProductsMetadata": { +"description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2PurgeProductsMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were deleted successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeProductsRequest": { +"description": "Request message for PurgeProducts method.", +"id": "GoogleCloudRetailV2PurgeProductsRequest", +"properties": { +"filter": { +"description": "Required. The filter string to specify the products to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. \"*\" implies delete all items in a branch. The eligible fields for filtering are: * `availability`: Double quoted Product.availability string. * `create_time` : in ISO 8601 \"zulu\" format. Supported syntax: * Comparators (\">\", \"<\", \">=\", \"<=\", \"=\"). Examples: * create_time <= \"2015-02-13T17:05:46Z\" * availability = \"IN_STOCK\" * Conjunctions (\"AND\") Examples: * create_time <= \"2015-02-13T17:05:46Z\" AND availability = \"PREORDER\" * Disjunctions (\"OR\") Examples: * create_time <= \"2015-02-13T17:05:46Z\" OR availability = \"IN_STOCK\" * Can support nested queries. Examples: * (create_time <= \"2015-02-13T17:05:46Z\" AND availability = \"PREORDER\") OR (create_time >= \"2015-02-14T13:03:32Z\" AND availability = \"IN_STOCK\") * Filter Limits: * Filter should not contain more than 6 conditions. * Max nesting depth should not exceed 2 levels. Examples queries: * Delete back order products created before a timestamp. create_time <= \"2015-02-13T17:05:46Z\" OR availability = \"BACKORDER\"", +"type": "string" +}, +"force": { +"description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any products.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeProductsResponse": { +"description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2PurgeProductsResponse", +"properties": { +"purgeCount": { +"description": "The total count of products purged as a result of the operation.", +"format": "int64", +"type": "string" +}, +"purgeSample": { +"description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeUserEventsRequest": { +"description": "Request message for PurgeUserEvents method.", +"id": "GoogleCloudRetailV2PurgeUserEventsRequest", +"properties": { +"filter": { +"description": "Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in ISO 8601 \"zulu\" format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventTime < \"2012-04-23T18:30:43.511Z\"` * Deleting specific eventType in time range: `eventTime > \"2012-04-23T18:25:43.511Z\" eventType = \"detail-page-view\"` * Deleting all events for a specific visitor: `visitorId = \"visitor1024\"` The filtering fields are assumed to have an implicit AND.", +"type": "string" +}, +"force": { +"description": "Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2PurgeUserEventsResponse": { +"description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2PurgeUserEventsResponse", +"properties": { +"purgedEventsCount": { +"description": "The total count of events purged as a result of the operation.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2Rating": { +"description": "The rating of a Product.", +"id": "GoogleCloudRetailV2Rating", +"properties": { +"averageRating": { +"description": "The average rating of the Product. The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "float", +"type": "number" +}, +"ratingCount": { +"description": "The total number of ratings. This value is independent of the value of rating_histogram. This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"type": "integer" +}, +"ratingHistogram": { +"description": "List of rating counts per rating value (index = rating - 1). The list is empty if there is no rating. If the list is non-empty, its size is always 5. Otherwise, an INVALID_ARGUMENT error is returned. For example, [41, 14, 13, 47, 303]. It means that the Product got 41 ratings with 1 star, 14 ratings with 2 star, and so on.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RejoinUserEventsMetadata": { +"description": "Metadata for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2RejoinUserEventsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2RejoinUserEventsRequest": { +"description": "Request message for RejoinUserEvents method.", +"id": "GoogleCloudRetailV2RejoinUserEventsRequest", +"properties": { +"userEventRejoinScope": { +"description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to `USER_EVENT_REJOIN_SCOPE_UNSPECIFIED` if this field is not set, or set to an invalid integer value.", +"enum": [ +"USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", +"JOINED_EVENTS", +"UNJOINED_EVENTS" +], +"enumDescriptions": [ +"Rejoin all events with the latest product catalog, including both joined events and unjoined events.", +"Only rejoin joined events with the latest product catalog.", +"Only rejoin unjoined events with the latest product catalog." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RejoinUserEventsResponse": { +"description": "Response message for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2RejoinUserEventsResponse", +"properties": { +"rejoinedUserEventsCount": { +"description": "Number of user events that were joined with latest product catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveCatalogAttributeRequest": { +"description": "Request for CatalogService.RemoveCatalogAttribute method.", +"id": "GoogleCloudRetailV2RemoveCatalogAttributeRequest", +"properties": { +"key": { +"description": "Required. The attribute name key of the CatalogAttribute to remove.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveControlRequest": { +"description": "Request for RemoveControl method.", +"id": "GoogleCloudRetailV2RemoveControlRequest", +"properties": { +"controlId": { +"description": "Required. The id of the control to apply. Assumed to be in the same catalog as the serving config.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveFulfillmentPlacesRequest": { +"description": "Request message for ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2RemoveFulfillmentPlacesRequest", +"properties": { +"allowMissing": { +"description": "If set to true, and the Product is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"placeIds": { +"description": "Required. The IDs for this type, such as the store IDs for \"pickup-in-store\" or the region IDs for \"same-day-delivery\", to be removed for this type. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern `[a-zA-Z0-9_-]+`, such as \"store1\" or \"REGION-2\". Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"removeTime": { +"description": "The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +}, +"type": { +"description": "Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to Product.fulfillment_info.type.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveFulfillmentPlacesResponse": { +"description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2RemoveLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveLocalInventoriesRequest": { +"description": "Request message for ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2RemoveLocalInventoriesRequest", +"properties": { +"allowMissing": { +"description": "If set to true, and the Product is not found, the local inventory removal request will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"placeIds": { +"description": "Required. A list of place IDs to have their inventory deleted. At most 3000 place IDs are allowed per request.", +"items": { +"type": "string" +}, +"type": "array" +}, +"removeTime": { +"description": "The time when the inventory deletions are issued. Used to prevent out-of-order updates and deletions on local inventory fields. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RemoveLocalInventoriesResponse": { +"description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2RemoveLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2ReplaceCatalogAttributeRequest": { +"description": "Request for CatalogService.ReplaceCatalogAttribute method.", +"id": "GoogleCloudRetailV2ReplaceCatalogAttributeRequest", +"properties": { +"catalogAttribute": { +"$ref": "GoogleCloudRetailV2CatalogAttribute", +"description": "Required. The updated CatalogAttribute." +}, +"updateMask": { +"description": "Indicates which fields in the provided CatalogAttribute to update. The following are NOT supported: * CatalogAttribute.key If not set, all supported fields are updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ResumeModelRequest": { +"description": "Request for resuming training of a model.", +"id": "GoogleCloudRetailV2ResumeModelRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2Rule": { +"description": "A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH.", +"id": "GoogleCloudRetailV2Rule", +"properties": { +"boostAction": { +"$ref": "GoogleCloudRetailV2RuleBoostAction", +"description": "A boost action." +}, +"condition": { +"$ref": "GoogleCloudRetailV2Condition", +"description": "Required. The condition that triggers the rule. If the condition is empty, the rule will always apply." +}, +"doNotAssociateAction": { +"$ref": "GoogleCloudRetailV2RuleDoNotAssociateAction", +"description": "Prevents term from being associated with other terms." +}, +"filterAction": { +"$ref": "GoogleCloudRetailV2RuleFilterAction", +"description": "Filters results." +}, +"forceReturnFacetAction": { +"$ref": "GoogleCloudRetailV2RuleForceReturnFacetAction", +"description": "Force returns an attribute as a facet in the request." +}, +"ignoreAction": { +"$ref": "GoogleCloudRetailV2RuleIgnoreAction", +"description": "Ignores specific terms from query during search." +}, +"onewaySynonymsAction": { +"$ref": "GoogleCloudRetailV2RuleOnewaySynonymsAction", +"description": "Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term." +}, +"pinAction": { +"$ref": "GoogleCloudRetailV2RulePinAction", +"description": "Pins one or more specified products to a specific position in the results." +}, +"redirectAction": { +"$ref": "GoogleCloudRetailV2RuleRedirectAction", +"description": "Redirects a shopper to a specific page." +}, +"removeFacetAction": { +"$ref": "GoogleCloudRetailV2RuleRemoveFacetAction", +"description": "Remove an attribute as a facet in the request (if present)." +}, +"replacementAction": { +"$ref": "GoogleCloudRetailV2RuleReplacementAction", +"description": "Replaces specific terms in the query." +}, +"twowaySynonymsAction": { +"$ref": "GoogleCloudRetailV2RuleTwowaySynonymsAction", +"description": "Treats a set of terms as synonyms of one another." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleBoostAction": { +"description": "A boost action to apply to results matching condition specified above.", +"id": "GoogleCloudRetailV2RuleBoostAction", +"properties": { +"boost": { +"description": "Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", +"format": "float", +"type": "number" +}, +"productsFilter": { +"description": "The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleDoNotAssociateAction": { +"description": "Prevents `query_term` from being associated with specified terms during search. Example: Don't associate \"gShoe\" and \"cheap\".", +"id": "GoogleCloudRetailV2RuleDoNotAssociateAction", +"properties": { +"doNotAssociateTerms": { +"description": "Cannot contain duplicates or the query term. Can specify up to 100 terms.", +"items": { +"type": "string" +}, +"type": "array" +}, +"queryTerms": { +"description": "Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms.", +"items": { +"type": "string" +}, +"type": "array" +}, +"terms": { +"description": "Will be [deprecated = true] post migration;", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleFilterAction": { +"description": "* Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter.", +"id": "GoogleCloudRetailV2RuleFilterAction", +"properties": { +"filter": { +"description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleForceReturnFacetAction": { +"description": "Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is \"size\" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key \"size\" is not already in the top 8 slots, then the facet \"size\" will appear at a position close to 8. b) The facet key \"size\" in among the top 8 positions in the request, then it will stay at its current rank.", +"id": "GoogleCloudRetailV2RuleForceReturnFacetAction", +"properties": { +"facetPositionAdjustments": { +"description": "Each instance corresponds to a force return attribute for the given condition. There can't be more 15 instances here.", +"items": { +"$ref": "GoogleCloudRetailV2RuleForceReturnFacetActionFacetPositionAdjustment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleForceReturnFacetActionFacetPositionAdjustment": { +"description": "Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.", +"id": "GoogleCloudRetailV2RuleForceReturnFacetActionFacetPositionAdjustment", +"properties": { +"attributeName": { +"description": "The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.", +"type": "string" +}, +"position": { +"description": "This is the position in the request as explained above. It should be strictly positive be at most 100.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleIgnoreAction": { +"description": "Prevents a term in the query from being used in search. Example: Don't search for \"shoddy\".", +"id": "GoogleCloudRetailV2RuleIgnoreAction", +"properties": { +"ignoreTerms": { +"description": "Terms to ignore in the search query.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleOnewaySynonymsAction": { +"description": "Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: \"sneakers\" will use a synonym of \"shoes\". \"shoes\" will not use a synonym of \"sneakers\".", +"id": "GoogleCloudRetailV2RuleOnewaySynonymsAction", +"properties": { +"onewayTerms": { +"description": "Will be [deprecated = true] post migration;", +"items": { +"type": "string" +}, +"type": "array" +}, +"queryTerms": { +"description": "Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms.", +"items": { +"type": "string" +}, +"type": "array" +}, +"synonyms": { +"description": "Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RulePinAction": { +"description": "Pins one or more specified products to a specific position in the results. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: mapping of `[pin_position, product_id]` pairs (pin position uses 1-based indexing). * Action Result: Will pin products with matching ids to the position specified in the final result order. Example: Suppose the query is `shoes`, the Condition.query_terms is `shoes` and the pin_map has `{1, \"pid1\"}`, then product with `pid1` will be pinned to the top position in the final results. If multiple PinActions are matched to a single request the actions will be processed from most to least recently updated. Pins to positions larger than the max allowed page size of 120 are not allowed.", +"id": "GoogleCloudRetailV2RulePinAction", +"properties": { +"pinMap": { +"additionalProperties": { +"type": "string" +}, +"description": "Required. A map of positions to product_ids. Partial matches per action are allowed, if a certain position in the map is already filled that `[position, product_id]` pair will be ignored but the rest may still be applied. This case will only occur if multiple pin actions are matched to a single request, as the map guarantees that pin positions are unique within the same action. Duplicate product_ids are not permitted within a single pin map. The max size of this map is 120, equivalent to the max [request page size](https://cloud.google.com/retail/docs/reference/rest/v2/projects.locations.catalogs.placements/search#request-body).", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleRedirectAction": { +"description": "Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri.", +"id": "GoogleCloudRetailV2RuleRedirectAction", +"properties": { +"redirectUri": { +"description": "URL must have length equal or less than 2000 characters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleRemoveFacetAction": { +"description": "Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is \"shoes\", the Condition.query_terms is \"shoes\" and the attribute name \"size\", then facet key \"size\" will be removed from the request (if it is present).", +"id": "GoogleCloudRetailV2RuleRemoveFacetAction", +"properties": { +"attributeNames": { +"description": "The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleReplacementAction": { +"description": "Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace \"gShoe\" with \"google shoe\".", +"id": "GoogleCloudRetailV2RuleReplacementAction", +"properties": { +"queryTerms": { +"description": "Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms.", +"items": { +"type": "string" +}, +"type": "array" +}, +"replacementTerm": { +"description": "Term that will be used for replacement.", +"type": "string" +}, +"term": { +"description": "Will be [deprecated = true] post migration;", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2RuleTwowaySynonymsAction": { +"description": "Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of \"sneakers\" and \"shoes\": * \"sneakers\" will use a synonym of \"shoes\". * \"shoes\" will use a synonym of \"sneakers\".", +"id": "GoogleCloudRetailV2RuleTwowaySynonymsAction", +"properties": { +"synonyms": { +"description": "Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequest": { +"description": "Request message for SearchService.Search method.", +"id": "GoogleCloudRetailV2SearchRequest", +"properties": { +"boostSpec": { +"$ref": "GoogleCloudRetailV2SearchRequestBoostSpec", +"description": "Boost specification to boost certain products. For more information, see [Boost results](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." +}, +"branch": { +"description": "The branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use \"default_branch\" as the branch ID or leave this field empty, to search products under the default branch.", +"type": "string" +}, +"canonicalFilter": { +"description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. In the case a query does not have a sufficient amount of results this filter will be used to determine whether or not to enable the query expansion flow. The original filter will still be used for the query expanded search. This field is strongly recommended to achieve high search quality. For more information about filter syntax, see SearchRequest.filter.", +"type": "string" +}, +"conversationalSearchSpec": { +"$ref": "GoogleCloudRetailV2SearchRequestConversationalSearchSpec", +"description": "Optional. This field specifies all conversational related parameters addition to traditional retail search." +}, +"dynamicFacetSpec": { +"$ref": "GoogleCloudRetailV2SearchRequestDynamicFacetSpec", +"deprecated": true, +"description": "Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic to enable dynamic facets. Do not set this field. The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated." +}, +"entity": { +"description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get search results boosted by entity.", +"type": "string" +}, +"facetSpecs": { +"description": "Facet specifications for faceted search. If empty, no facets are returned. A maximum of 200 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"$ref": "GoogleCloudRetailV2SearchRequestFacetSpec" +}, +"type": "array" +}, +"filter": { +"description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. For more information, see [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. For more information, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) in the Resource Manager documentation.", +"type": "object" +}, +"offset": { +"description": "A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.", +"format": "int32", +"type": "integer" +}, +"orderBy": { +"description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see [Order](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", +"type": "string" +}, +"pageCategories": { +"description": "The categories associated with a category page. Must be set for category navigation queries to achieve good search quality. The format should be the same as UserEvent.page_categories; To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageSize": { +"description": "Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120. If this field is negative, an INVALID_ARGUMENT is returned.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"personalizationSpec": { +"$ref": "GoogleCloudRetailV2SearchRequestPersonalizationSpec", +"description": "The specification for personalization. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." +}, +"query": { +"description": "Raw search query. If this field is empty, the request is considered a category browsing request and returned results are based on filter and page_categories.", +"type": "string" +}, +"queryExpansionSpec": { +"$ref": "GoogleCloudRetailV2SearchRequestQueryExpansionSpec", +"description": "The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see [Query expansion](https://cloud.google.com/retail/docs/result-size#query_expansion)." +}, +"searchMode": { +"description": "The search mode of the search request. If not specified, a single search request triggers both product search and faceted search.", +"enum": [ +"SEARCH_MODE_UNSPECIFIED", +"PRODUCT_SEARCH_ONLY", +"FACETED_SEARCH_ONLY" +], +"enumDescriptions": [ +"Default value. In this case both product search and faceted search will be performed. Both SearchResponse.SearchResult and SearchResponse.Facet will be returned.", +"Only product search will be performed. The faceted search will be disabled. Only SearchResponse.SearchResult will be returned. SearchResponse.Facet will not be returned, even if SearchRequest.facet_specs or SearchRequest.dynamic_facet_spec is set.", +"Only faceted search will be performed. The product search will be disabled. When in this mode, one or both of SearchRequest.facet_specs and SearchRequest.dynamic_facet_spec should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only SearchResponse.Facet will be returned. SearchResponse.SearchResult will not be returned." +], +"type": "string" +}, +"spellCorrectionSpec": { +"$ref": "GoogleCloudRetailV2SearchRequestSpellCorrectionSpec", +"description": "The spell correction specification that specifies the mode under which spell correction will take effect." +}, +"tileNavigationSpec": { +"$ref": "GoogleCloudRetailV2SearchRequestTileNavigationSpec", +"description": "Optional. This field specifies tile navigation related parameters." +}, +"userInfo": { +"$ref": "GoogleCloudRetailV2UserInfo", +"description": "User information." +}, +"variantRollupKeys": { +"description": "The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30. For FulfillmentInfo, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.fulfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * variantId * inventory(place_id,price) * inventory(place_id,original_price) * inventory(place_id,attributes.key), where key is any key in the Product.local_inventories.attributes map. * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"pickup-in-store\". * shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"ship-to-store\". * sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"same-day-delivery\". * nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"next-day-delivery\". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-1\". * customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-2\". * customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-3\". * customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-4\". * customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-5\". If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"visitorId": { +"description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. This should be the same identifier as UserEvent.visitor_id. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestBoostSpec": { +"description": "Boost specification to boost certain items.", +"id": "GoogleCloudRetailV2SearchRequestBoostSpec", +"properties": { +"conditionBoostSpecs": { +"description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 20.", +"items": { +"$ref": "GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec" +}, +"type": "array" +}, +"skipBoostSpecValidation": { +"description": "Whether to skip boostspec validation. If this field is set to true, invalid BoostSpec.condition_boost_specs will be ignored and valid BoostSpec.condition_boost_specs will still be applied.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec": { +"description": "Boost applies to products which match a condition.", +"id": "GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec", +"properties": { +"boost": { +"description": "Strength of the condition boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", +"format": "float", +"type": "number" +}, +"condition": { +"description": "An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": * (id: ANY(\"product_1\", \"product_2\")) AND (colorFamilies: ANY(\"Red\",\"Blue\"))", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestConversationalSearchSpec": { +"description": "This field specifies all conversational related parameters addition to traditional retail search.", +"id": "GoogleCloudRetailV2SearchRequestConversationalSearchSpec", +"properties": { +"conversationId": { +"description": "This field specifies the conversation id, which maintains the state of the conversation between client side and server side. Use the value from the previous ConversationalSearchResult.conversation_id. For the initial request, this should be empty.", +"type": "string" +}, +"followupConversationRequested": { +"description": "This field specifies whether the customer would like to do conversational search. If this field is set to true, conversational related extra information will be returned from server side, including follow-up question, answer options, etc.", +"type": "boolean" +}, +"userAnswer": { +"$ref": "GoogleCloudRetailV2SearchRequestConversationalSearchSpecUserAnswer", +"description": "This field specifies the current user answer during the conversational search. This can be either user selected from suggested answers or user input plain text." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestConversationalSearchSpecUserAnswer": { +"description": "This field specifies the current user answer during the conversational search. This can be either user selected from suggested answers or user input plain text.", +"id": "GoogleCloudRetailV2SearchRequestConversationalSearchSpecUserAnswer", +"properties": { +"selectedAnswer": { +"$ref": "GoogleCloudRetailV2SearchRequestConversationalSearchSpecUserAnswerSelectedAnswer", +"description": "This field specifies the selected attributes during the conversational search. This should be a subset of ConversationalSearchResult.suggested_answers." +}, +"textAnswer": { +"description": "This field specifies the incremental input text from the user during the conversational search.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestConversationalSearchSpecUserAnswerSelectedAnswer": { +"description": "This field specifies the selected answers during the conversational search.", +"id": "GoogleCloudRetailV2SearchRequestConversationalSearchSpecUserAnswerSelectedAnswer", +"properties": { +"productAttributeValue": { +"$ref": "GoogleCloudRetailV2ProductAttributeValue", +"description": "This field specifies the selected answer which is a attribute key-value." +}, +"productAttributeValues": { +"deprecated": true, +"description": "This field is deprecated and should not be set.", +"items": { +"$ref": "GoogleCloudRetailV2ProductAttributeValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestDynamicFacetSpec": { +"description": "The specifications of dynamically generated facets.", +"id": "GoogleCloudRetailV2SearchRequestDynamicFacetSpec", +"properties": { +"mode": { +"description": "Mode of the DynamicFacet feature. Defaults to Mode.DISABLED if it's unset.", +"enum": [ +"MODE_UNSPECIFIED", +"DISABLED", +"ENABLED" +], +"enumDescriptions": [ +"Default value.", +"Disable Dynamic Facet.", +"Automatic mode built by Google Retail Search." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestFacetSpec": { +"description": "A facet specification to perform faceted search.", +"id": "GoogleCloudRetailV2SearchRequestFacetSpec", +"properties": { +"enableDynamicPosition": { +"description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet \"gender\". Then, the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" are always ranked at first and second position because their enable_dynamic_position values are false.", +"type": "boolean" +}, +"excludedFilterKeys": { +"description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. Listing a facet key in this field allows its values to appear as facet results, even when they are filtered out of search results. Using this field does not affect what search results are returned. For example, suppose there are 100 products with the color facet \"Red\" and 200 products with the color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and having \"colorFamilies\" as FacetKey.key would by default return only \"Red\" products in the search results, and also return \"Red\" with count 100 as the only color facet. Although there are also blue products available, \"Blue\" would not be shown as an available facet value. If \"colorFamilies\" is listed in \"excludedFilterKeys\", then the query returns the facet values \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. Because this field doesn't affect search results, the search results are still correctly filtered to return only \"Red\" products. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"facetKey": { +"$ref": "GoogleCloudRetailV2SearchRequestFacetSpecFacetKey", +"description": "Required. The facet key specification." +}, +"limit": { +"description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 50. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestFacetSpecFacetKey": { +"description": "Specifies how a facet is computed.", +"id": "GoogleCloudRetailV2SearchRequestFacetSpecFacetKey", +"properties": { +"caseInsensitive": { +"description": "True to make facet keys case insensitive when getting faceting values with prefixes or contains; false otherwise.", +"type": "boolean" +}, +"contains": { +"description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet gives only \"Women > Shoe\" and \"Men > Shoe\". Only supported on textual fields. Maximum is 10.", +"items": { +"type": "string" +}, +"type": "array" +}, +"intervals": { +"description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead.", +"items": { +"$ref": "GoogleCloudRetailV2Interval" +}, +"type": "array" +}, +"key": { +"description": "Required. Supported textual and numerical facet keys in Product object, over which the facet values are computed. Facet key is case-sensitive. Allowed facet keys when FacetKey.query is not specified: * textual_field = * \"brands\" * \"categories\" * \"genders\" * \"ageGroups\" * \"availability\" * \"colorFamilies\" * \"colors\" * \"sizes\" * \"materials\" * \"patterns\" * \"conditions\" * \"attributes.key\" * \"pickupInStore\" * \"shipToStore\" * \"sameDayDelivery\" * \"nextDayDelivery\" * \"customFulfillment1\" * \"customFulfillment2\" * \"customFulfillment3\" * \"customFulfillment4\" * \"customFulfillment5\" * \"inventory(place_id,attributes.key)\" * numerical_field = * \"price\" * \"discount\" * \"rating\" * \"ratingCount\" * \"attributes.key\" * \"inventory(place_id,price)\" * \"inventory(place_id,original_price)\" * \"inventory(place_id,attributes.key)\"", +"type": "string" +}, +"orderBy": { +"description": "The order in which SearchResponse.Facet.values are returned. Allowed values are: * \"count desc\", which means order by SearchResponse.Facet.values.count descending. * \"value desc\", which means order by SearchResponse.Facet.values.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", +"type": "string" +}, +"prefixes": { +"description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women > Shoe\", \"Women > Dress\" and \"Men > Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet gives only \"Women > Shoe\" and \"Women > Dress\". Only supported on textual fields. Maximum is 10.", +"items": { +"type": "string" +}, +"type": "array" +}, +"query": { +"description": "The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always \"1\" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet counts the products that are both in stock and ship to store \"123\".", +"type": "string" +}, +"restrictedValues": { +"description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on predefined textual fields, custom textual attributes and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", +"items": { +"type": "string" +}, +"type": "array" +}, +"returnMinMax": { +"description": "Returns the min and max value for each numerical facet intervals. Ignored for textual facets.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestPersonalizationSpec": { +"description": "The specification for personalization.", +"id": "GoogleCloudRetailV2SearchRequestPersonalizationSpec", +"properties": { +"mode": { +"description": "Defaults to Mode.AUTO.", +"enum": [ +"MODE_UNSPECIFIED", +"AUTO", +"DISABLED" +], +"enumDescriptions": [ +"Default value. In this case, server behavior defaults to Mode.AUTO.", +"Let CRS decide whether to use personalization based on quality of user event data.", +"Disable personalization." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestQueryExpansionSpec": { +"description": "Specification to determine under which conditions query expansion should occur.", +"id": "GoogleCloudRetailV2SearchRequestQueryExpansionSpec", +"properties": { +"condition": { +"description": "The condition under which query expansion should occur. Default to Condition.DISABLED.", +"enum": [ +"CONDITION_UNSPECIFIED", +"DISABLED", +"AUTO" +], +"enumDescriptions": [ +"Unspecified query expansion condition. In this case, server behavior defaults to Condition.DISABLED.", +"Disabled query expansion. Only the exact search query is used, even if SearchResponse.total_size is zero.", +"Automatic query expansion built by Google Retail Search." +], +"type": "string" +}, +"pinUnexpandedResults": { +"description": "Whether to pin unexpanded results. If this field is set to true, unexpanded products are always at the top of the search results, followed by the expanded results.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestSpellCorrectionSpec": { +"description": "The specification for query spell correction.", +"id": "GoogleCloudRetailV2SearchRequestSpellCorrectionSpec", +"properties": { +"mode": { +"description": "The mode under which spell correction should take effect to replace the original search query. Default to Mode.AUTO.", +"enum": [ +"MODE_UNSPECIFIED", +"SUGGESTION_ONLY", +"AUTO" +], +"enumDescriptions": [ +"Unspecified spell correction mode. In this case, server behavior defaults to Mode.AUTO.", +"Google Retail Search will try to find a spell suggestion if there is any and put in the SearchResponse.corrected_query. The spell suggestion will not be used as the search query.", +"Automatic spell correction built by Google Retail Search. Search will be based on the corrected query if found." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchRequestTileNavigationSpec": { +"description": "This field specifies tile navigation related parameters.", +"id": "GoogleCloudRetailV2SearchRequestTileNavigationSpec", +"properties": { +"appliedTiles": { +"description": "This field specifies the tiles which are already clicked in client side. NOTE: This field is not being used for filtering search products. Client side should also put all the applied tiles in SearchRequest.filter.", +"items": { +"$ref": "GoogleCloudRetailV2Tile" +}, +"type": "array" +}, +"tileNavigationRequested": { +"description": "This field specifies whether the customer would like to request tile navigation.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchResponse": { +"description": "Response message for SearchService.Search method.", +"id": "GoogleCloudRetailV2SearchResponse", +"properties": { +"appliedControls": { +"description": "The fully qualified resource name of applied [controls](https://cloud.google.com/retail/docs/serving-control-rules).", +"items": { +"type": "string" +}, +"type": "array" +}, +"attributionToken": { +"description": "A unique search token. This should be included in the UserEvent logs resulting from this search, which enables accurate attribution of search model performance.", +"type": "string" +}, +"conversationalSearchResult": { +"$ref": "GoogleCloudRetailV2SearchResponseConversationalSearchResult", +"description": "This field specifies all related information that is needed on client side for UI rendering of conversational retail search." +}, +"correctedQuery": { +"description": "Contains the spell corrected query, if found. If the spell correction type is AUTOMATIC, then the search results are based on corrected_query. Otherwise the original query is used for search.", +"type": "string" +}, +"experimentInfo": { +"description": "Metadata related to A/B testing experiment associated with this response. Only exists when an experiment is triggered.", +"items": { +"$ref": "GoogleCloudRetailV2ExperimentInfo" +}, +"type": "array" +}, +"facets": { +"description": "Results of facets requested by user.", +"items": { +"$ref": "GoogleCloudRetailV2SearchResponseFacet" +}, +"type": "array" +}, +"invalidConditionBoostSpecs": { +"description": "The invalid SearchRequest.BoostSpec.condition_boost_specs that are not applied during serving.", +"items": { +"$ref": "GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token that can be sent as SearchRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"pinControlMetadata": { +"$ref": "GoogleCloudRetailV2PinControlMetadata", +"description": "Metadata for pin controls which were applicable to the request. This contains two map fields, one for all matched pins and one for pins which were matched but not applied. The two maps are keyed by pin position, and the values are the product ids which were matched to that pin." +}, +"queryExpansionInfo": { +"$ref": "GoogleCloudRetailV2SearchResponseQueryExpansionInfo", +"description": "Query expansion information for the returned results." +}, +"redirectUri": { +"description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search is performed, and only redirect_uri and attribution_token are set in the response.", +"type": "string" +}, +"results": { +"description": "A list of matched items. The order represents the ranking.", +"items": { +"$ref": "GoogleCloudRetailV2SearchResponseSearchResult" +}, +"type": "array" +}, +"tileNavigationResult": { +"$ref": "GoogleCloudRetailV2SearchResponseTileNavigationResult", +"description": "This field specifies all related information for tile navigation that will be used in client side." +}, +"totalSize": { +"description": "The estimated total count of matched items irrespective of pagination. The count of results returned by pagination may be less than the total_size that matches.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchResponseConversationalSearchResult": { +"description": "This field specifies all related information that is needed on client side for UI rendering of conversational retail search.", +"id": "GoogleCloudRetailV2SearchResponseConversationalSearchResult", +"properties": { +"additionalFilter": { +"$ref": "GoogleCloudRetailV2SearchResponseConversationalSearchResultAdditionalFilter", +"description": "This is the incremental additional filters implied from the current user answer. User should add the suggested addition filters to the previous SearchRequest.filter, and use the merged filter in the follow up search request." +}, +"additionalFilters": { +"deprecated": true, +"description": "This field is deprecated but will be kept for backward compatibility. There is expected to have only one additional filter and the value will be the same to the same as field `additional_filter`.", +"items": { +"$ref": "GoogleCloudRetailV2SearchResponseConversationalSearchResultAdditionalFilter" +}, +"type": "array" +}, +"conversationId": { +"description": "Conversation UUID. This field will be stored in client side storage to maintain the conversation session with server and will be used for next search request's SearchRequest.ConversationalSearchSpec.conversation_id to restore conversation state in server.", +"type": "string" +}, +"followupQuestion": { +"description": "The follow-up question. e.g., `What is the color?`", +"type": "string" +}, +"refinedQuery": { +"description": "The current refined query for the conversational search. This field will be used in customer UI that the query in the search bar should be replaced with the refined query. For example, if SearchRequest.query is `dress` and next SearchRequest.ConversationalSearchSpec.UserAnswer.text_answer is `red color`, which does not match any product attribute value filters, the refined query will be `dress, red color`.", +"type": "string" +}, +"suggestedAnswers": { +"description": "The answer options provided to client for the follow-up question.", +"items": { +"$ref": "GoogleCloudRetailV2SearchResponseConversationalSearchResultSuggestedAnswer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchResponseConversationalSearchResultAdditionalFilter": { +"description": "Additional filter that client side need to apply.", +"id": "GoogleCloudRetailV2SearchResponseConversationalSearchResultAdditionalFilter", +"properties": { +"productAttributeValue": { +"$ref": "GoogleCloudRetailV2ProductAttributeValue", +"description": "Product attribute value, including an attribute key and an attribute value. Other types can be added here in the future." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchResponseConversationalSearchResultSuggestedAnswer": { +"description": "Suggested answers to the follow-up question.", +"id": "GoogleCloudRetailV2SearchResponseConversationalSearchResultSuggestedAnswer", +"properties": { +"productAttributeValue": { +"$ref": "GoogleCloudRetailV2ProductAttributeValue", +"description": "Product attribute value, including an attribute key and an attribute value. Other types can be added here in the future." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchResponseFacet": { +"description": "A facet result.", +"id": "GoogleCloudRetailV2SearchResponseFacet", +"properties": { +"dynamicFacet": { +"description": "Whether the facet is dynamically generated.", +"type": "boolean" +}, +"key": { +"description": "The key for this facet. E.g., \"colorFamilies\" or \"price\" or \"attributes.attr1\".", +"type": "string" +}, +"values": { +"description": "The facet values for this field.", +"items": { +"$ref": "GoogleCloudRetailV2SearchResponseFacetFacetValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchResponseFacetFacetValue": { +"description": "A facet value which contains value names and their count.", +"id": "GoogleCloudRetailV2SearchResponseFacetFacetValue", +"properties": { +"count": { +"description": "Number of items that have this facet value.", +"format": "int64", +"type": "string" +}, +"interval": { +"$ref": "GoogleCloudRetailV2Interval", +"description": "Interval value for a facet, such as [10, 20) for facet \"price\"." +}, +"maxValue": { +"description": "The maximum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", +"format": "double", +"type": "number" +}, +"minValue": { +"description": "The minimum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", +"format": "double", +"type": "number" +}, +"value": { +"description": "Text value of a facet, such as \"Black\" for facet \"colorFamilies\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchResponseQueryExpansionInfo": { +"description": "Information describing query expansion including whether expansion has occurred.", +"id": "GoogleCloudRetailV2SearchResponseQueryExpansionInfo", +"properties": { +"expandedQuery": { +"description": "Bool describing whether query expansion has occurred.", +"type": "boolean" +}, +"pinnedResultCount": { +"description": "Number of pinned results. This field will only be set when expansion happens and SearchRequest.QueryExpansionSpec.pin_unexpanded_results is set to true.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchResponseSearchResult": { +"description": "Represents the search results.", +"id": "GoogleCloudRetailV2SearchResponseSearchResult", +"properties": { +"id": { +"description": "Product.id of the searched Product.", +"type": "string" +}, +"matchingVariantCount": { +"description": "The count of matched variant Products.", +"format": "int32", +"type": "integer" +}, +"matchingVariantFields": { +"additionalProperties": { +"format": "google-fieldmask", +"type": "string" +}, +"description": "If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key \"sku1\" with field mask \"products.color_info\" indicates there is a match between \"sku1\" ColorInfo and the query.", +"type": "object" +}, +"personalLabels": { +"description": "Specifies previous events related to this product for this user based on UserEvent with same SearchRequest.visitor_id or UserInfo.user_id. This is set only when SearchRequest.PersonalizationSpec.mode is SearchRequest.PersonalizationSpec.Mode.AUTO. Possible values: * `purchased`: Indicates that this product has been purchased before.", +"items": { +"type": "string" +}, +"type": "array" +}, +"product": { +"$ref": "GoogleCloudRetailV2Product", +"description": "The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching \"shoe\" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless." +}, +"variantRollupValues": { +"additionalProperties": { +"type": "any" +}, +"description": "The rollup matching variant Product attributes. The key is one of the SearchRequest.variant_rollup_keys. The values are the merged and de-duplicated Product attributes. Notice that the rollup values are respect filter. For example, when filtering by \"colorFamilies:ANY(\\\"red\\\")\" and rollup \"colorFamilies\", only \"red\" is returned. For textual and numerical attributes, the rollup values is a list of string or double values with type google.protobuf.ListValue. For example, if there are two variants with colors \"red\" and \"blue\", the rollup values are { key: \"colorFamilies\" value { list_value { values { string_value: \"red\" } values { string_value: \"blue\" } } } } For FulfillmentInfo, the rollup values is a double value with type google.protobuf.Value. For example, `{key: \"pickupInStore.store1\" value { number_value: 10 }}` means a there are 10 variants in this product are available in the store \"store1\".", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SearchResponseTileNavigationResult": { +"description": "This field specifies all related information for tile navigation that will be used in client side.", +"id": "GoogleCloudRetailV2SearchResponseTileNavigationResult", +"properties": { +"tiles": { +"description": "The current tiles that are used for tile navigation, sorted by engagement.", +"items": { +"$ref": "GoogleCloudRetailV2Tile" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2ServingConfig": { +"description": "Configures metadata that is used to generate serving time results (e.g. search results or recommendation predictions).", +"id": "GoogleCloudRetailV2ServingConfig", +"properties": { +"boostControlIds": { +"description": "Condition boost specifications. If a product matches multiple conditions in the specifications, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 100. Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The human readable serving config display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"diversityLevel": { +"description": "How much diversity to use in recommendation model results e.g. `medium-diversity` or `high-diversity`. Currently supported values: * `no-diversity` * `low-diversity` * `medium-diversity` * `high-diversity` * `auto-diversity` If not specified, we choose default based on recommendation model type. Default value: `no-diversity`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", +"type": "string" +}, +"diversityType": { +"description": "What kind of diversity to use - data driven or rule based. If unset, the server behavior defaults to RULE_BASED_DIVERSITY.", +"enum": [ +"DIVERSITY_TYPE_UNSPECIFIED", +"RULE_BASED_DIVERSITY", +"DATA_DRIVEN_DIVERSITY" +], +"enumDescriptions": [ +"Default value.", +"Rule based diversity.", +"Data driven diversity." +], +"type": "string" +}, +"doNotAssociateControlIds": { +"description": "Condition do not associate specifications. If multiple do not associate conditions match, all matching do not associate controls in the list will execute. - Order does not matter. - Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"dynamicFacetSpec": { +"$ref": "GoogleCloudRetailV2SearchRequestDynamicFacetSpec", +"description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. Can only be set if solution_types is SOLUTION_TYPE_SEARCH." +}, +"enableCategoryFilterLevel": { +"description": "Whether to add additional category filters on the `similar-items` model. If not specified, we enable it by default. Allowed values are: * `no-category-match`: No additional filtering of original results from the model and the customer's filters. * `relaxed-category-match`: Only keep results with categories that match at least one item categories in the PredictRequests's context item. * If customer also sends filters in the PredictRequest, then the results will satisfy both conditions (user given and category match). Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", +"type": "string" +}, +"facetControlIds": { +"description": "Facet specifications for faceted search. If empty, no facets are returned. The ids refer to the ids of Control resources with only the Facet control set. These controls are assumed to be in the same Catalog as the ServingConfig. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"filterControlIds": { +"description": "Condition filter specifications. If a product matches multiple conditions in the specifications, filters from these specifications are all applied and combined via the AND operator. Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ignoreControlIds": { +"description": "Condition ignore specifications. If multiple ignore conditions match, all matching ignore controls in the list will execute. - Order does not matter. - Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ignoreRecsDenylist": { +"description": "When the flag is enabled, the products in the denylist will not be filtered out in the recommendation filtering results.", +"type": "boolean" +}, +"modelId": { +"description": "The id of the model in the same Catalog to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", +"type": "string" +}, +"name": { +"description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", +"type": "string" +}, +"onewaySynonymsControlIds": { +"description": "Condition oneway synonyms specifications. If multiple oneway synonyms conditions match, all matching oneway synonyms controls in the list will execute. Order of controls in the list will not matter. Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"personalizationSpec": { +"$ref": "GoogleCloudRetailV2SearchRequestPersonalizationSpec", +"description": "The specification for personalization spec. Can only be set if solution_types is SOLUTION_TYPE_SEARCH. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." +}, +"priceRerankingLevel": { +"description": "How much price ranking we want in serving results. Price reranking causes product items with a similar recommendation probability to be ordered by price, with the highest-priced items first. This setting could result in a decrease in click-through and conversion rates. Allowed values are: * `no-price-reranking` * `low-price-reranking` * `medium-price-reranking` * `high-price-reranking` If not specified, we choose default based on model type. Default value: `no-price-reranking`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", +"type": "string" +}, +"redirectControlIds": { +"description": "Condition redirect specifications. Only the first triggered redirect action is applied, even if multiple apply. Maximum number of specifications is 1000. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"replacementControlIds": { +"description": "Condition replacement specifications. - Applied according to the order in the list. - A previously replaced term can not be re-replaced. - Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +}, +"solutionTypes": { +"description": "Required. Immutable. Specifies the solution types that a serving config can be associated with. Currently we support setting only one type of solution.", +"items": { +"enum": [ +"SOLUTION_TYPE_UNSPECIFIED", +"SOLUTION_TYPE_RECOMMENDATION", +"SOLUTION_TYPE_SEARCH" +], +"enumDescriptions": [ +"Default value.", +"Used for Recommendations AI.", +"Used for Retail Search." +], +"type": "string" +}, +"type": "array" +}, +"twowaySynonymsControlIds": { +"description": "Condition synonyms specifications. If multiple syonyms conditions match, all matching synonyms control in the list will execute. Order of controls in the list will not matter. Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SetDefaultBranchRequest": { +"description": "Request message to set a specified branch as new default_branch.", +"id": "GoogleCloudRetailV2SetDefaultBranchRequest", +"properties": { +"branchId": { +"description": "The final component of the resource name of a branch. This field must be one of \"0\", \"1\" or \"2\". Otherwise, an INVALID_ARGUMENT error is returned. If there are no sufficient active products in the targeted branch and force is not set, a FAILED_PRECONDITION error is returned.", +"type": "string" +}, +"force": { +"description": "If set to true, it permits switching to a branch with branch_id even if it has no sufficient active products.", +"type": "boolean" +}, +"note": { +"description": "Some note on this request, this can be retrieved by CatalogService.GetDefaultBranch before next valid default branch set occurs. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SetInventoryMetadata": { +"description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2SetInventoryMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2SetInventoryRequest": { +"description": "Request message for ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2SetInventoryRequest", +"properties": { +"allowMissing": { +"description": "If set to true, and the Product with name Product.name is not found, the inventory update will still be processed and retained for at most 1 day until the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", +"type": "boolean" +}, +"inventory": { +"$ref": "GoogleCloudRetailV2Product", +"description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The caller can replace place IDs for a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types and corresponding place IDs to update in SetInventoryRequest.inventory.fulfillment_info The caller can clear all place IDs from a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types to clear in SetInventoryRequest.inventory.fulfillment_info * Checks that only the desired fulfillment info types have empty SetInventoryRequest.inventory.fulfillment_info.place_ids The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, ProductService.UpdateProduct should be invoked instead." +}, +"setMask": { +"description": "Indicates which inventory fields in the provided Product to update. At least one field must be provided. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", +"format": "google-fieldmask", +"type": "string" +}, +"setTime": { +"description": "The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2SetInventoryResponse": { +"description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2SetInventoryResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2Tile": { +"description": "This field specifies the tile information including an attribute key, attribute value. More fields will be added in the future, eg: product id or product counts, etc.", +"id": "GoogleCloudRetailV2Tile", +"properties": { +"productAttributeInterval": { +"$ref": "GoogleCloudRetailV2ProductAttributeInterval", +"description": "The product attribute key-numeric interval." +}, +"productAttributeValue": { +"$ref": "GoogleCloudRetailV2ProductAttributeValue", +"description": "The product attribute key-value." +}, +"representativeProductId": { +"description": "The representative product id for this tile.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2TuneModelMetadata": { +"description": "Metadata associated with a tune operation.", +"id": "GoogleCloudRetailV2TuneModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this tune applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2TuneModelRequest": { +"description": "Request to manually start a tuning process now (instead of waiting for the periodically scheduled tuning to happen).", +"id": "GoogleCloudRetailV2TuneModelRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2TuneModelResponse": { +"description": "Response associated with a tune operation.", +"id": "GoogleCloudRetailV2TuneModelResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2UpdateGenerativeQuestionConfigRequest": { +"description": "Request for UpdateGenerativeQuestionConfig method.", +"id": "GoogleCloudRetailV2UpdateGenerativeQuestionConfigRequest", +"properties": { +"generativeQuestionConfig": { +"$ref": "GoogleCloudRetailV2GenerativeQuestionConfig", +"description": "Required. The question to update." +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided GenerativeQuestionConfig to update. The following are NOT supported: * GenerativeQuestionConfig.frequency If not set or empty, all supported fields are updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2UserEvent": { +"description": "UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website.", +"id": "GoogleCloudRetailV2UserEvent", +"properties": { +"attributes": { +"additionalProperties": { +"$ref": "GoogleCloudRetailV2CustomAttribute" +}, +"description": "Extra user event features to include in the recommendation model. If you provide custom attributes for ingested user events, also include them in the user events that you associate with prediction requests. Custom attribute formatting must be consistent between imported events and events provided with prediction requests. This lets the Retail API use those custom attributes when training models and serving predictions, which helps improve recommendation quality. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * The key must be a UTF-8 encoded string with a length limit of 5,000 characters. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. For product recommendations, an example of extra user information is traffic_channel, which is how a user arrives at the site. Users can arrive at the site by coming to the site directly, coming through Google search, or in other ways.", +"type": "object" +}, +"attributionToken": { +"description": "Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. The value must be a valid SearchResponse.attribution_token for user events that are the result of SearchService.Search. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K's page. When recording events on product K's page, log the PredictResponse.attribution_token to this field.", +"type": "string" +}, +"cartId": { +"description": "The ID or name of the associated shopping cart. This ID is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.", +"type": "string" +}, +"completionDetail": { +"$ref": "GoogleCloudRetailV2CompletionDetail", +"description": "The main auto-completion details related to the event. This field should be set for `search` event when autocomplete function is enabled and the user clicks a suggestion for search." +}, +"entity": { +"description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend that you set this field to get better per-entity search, completion, and prediction results.", +"type": "string" +}, +"eventTime": { +"description": "Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.", +"format": "google-datetime", +"type": "string" +}, +"eventType": { +"description": "Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `remove-from-cart`: Products being removed from cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.", +"type": "string" +}, +"experimentIds": { +"description": "A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See SearchRequest.filter for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"offset": { +"description": "An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See SearchRequest.offset for definition. If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", +"format": "int32", +"type": "integer" +}, +"orderBy": { +"description": "The order in which products are returned. See SearchRequest.order_by for definition and syntax. The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"pageCategories": { +"description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageViewId": { +"description": "A unique ID of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.", +"type": "string" +}, +"productDetails": { +"description": "The main product details related to the event. This field is optional except for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished browsing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished browsing the whole page yet.", +"items": { +"$ref": "GoogleCloudRetailV2ProductDetail" +}, +"type": "array" +}, +"purchaseTransaction": { +"$ref": "GoogleCloudRetailV2PurchaseTransaction", +"description": "A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned." +}, +"referrerUri": { +"description": "The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.", +"type": "string" +}, +"searchQuery": { +"description": "The user's search query. See SearchRequest.query for definition. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +}, +"sessionId": { +"description": "A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new session_id should be assigned. 2. The session_id should be unique across users, suggest use uuid or add visitor_id as prefix.", +"type": "string" +}, +"uri": { +"description": "Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.", +"type": "string" +}, +"userInfo": { +"$ref": "GoogleCloudRetailV2UserInfo", +"description": "User information." +}, +"visitorId": { +"description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analytics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2UserEventImportSummary": { +"description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", +"id": "GoogleCloudRetailV2UserEventImportSummary", +"properties": { +"joinedEventsCount": { +"description": "Count of user events imported with complete existing catalog information.", +"format": "int64", +"type": "string" +}, +"unjoinedEventsCount": { +"description": "Count of user events imported, but with catalog information not found in the imported catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2UserEventInlineSource": { +"description": "The inline source for the input config for ImportUserEvents method.", +"id": "GoogleCloudRetailV2UserEventInlineSource", +"properties": { +"userEvents": { +"description": "Required. A list of user events to import. Recommended max of 10k items.", +"items": { +"$ref": "GoogleCloudRetailV2UserEvent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2UserEventInputConfig": { +"description": "The input config source for user events.", +"id": "GoogleCloudRetailV2UserEventInputConfig", +"properties": { +"bigQuerySource": { +"$ref": "GoogleCloudRetailV2BigQuerySource", +"description": "Required. BigQuery input source." +}, +"gcsSource": { +"$ref": "GoogleCloudRetailV2GcsSource", +"description": "Required. Google Cloud Storage location for the input content." +}, +"userEventInlineSource": { +"$ref": "GoogleCloudRetailV2UserEventInlineSource", +"description": "Required. The Inline source for the input content for UserEvents." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2UserInfo": { +"description": "Information of an end user.", +"id": "GoogleCloudRetailV2UserInfo", +"properties": { +"directUserRequest": { +"description": "True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.", +"type": "boolean" +}, +"ipAddress": { +"description": "The end user's IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when: * setting SearchRequest.user_info. * using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", +"type": "string" +}, +"userAgent": { +"description": "User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", +"type": "string" +}, +"userId": { +"description": "Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. Don't set for anonymous users. Always use a hashed value for this ID. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse": { +"description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaAddLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2alphaAddLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaAddLocalInventoriesResponse": { +"description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2alphaAddLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaBigQueryOutputResult": { +"description": "A BigQuery output result.", +"id": "GoogleCloudRetailV2alphaBigQueryOutputResult", +"properties": { +"datasetId": { +"description": "The ID of a BigQuery Dataset.", +"type": "string" +}, +"tableId": { +"description": "The ID of a BigQuery Table.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata": { +"description": "Common metadata related to the progress of the operations.", +"id": "GoogleCloudRetailV2alphaCreateMerchantCenterAccountLinkMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaCreateModelMetadata": { +"description": "Metadata associated with a create operation.", +"id": "GoogleCloudRetailV2alphaCreateModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this create applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaEnrollSolutionMetadata": { +"description": "Metadata related to the EnrollSolution method. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaEnrollSolutionMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaEnrollSolutionResponse": { +"description": "Response for EnrollSolution method.", +"id": "GoogleCloudRetailV2alphaEnrollSolutionResponse", +"properties": { +"enrolledSolution": { +"description": "Retail API solution that the project has enrolled.", +"enum": [ +"SOLUTION_TYPE_UNSPECIFIED", +"SOLUTION_TYPE_RECOMMENDATION", +"SOLUTION_TYPE_SEARCH" +], +"enumDescriptions": [ +"Default value.", +"Used for Recommendations AI.", +"Used for Retail Search." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportAnalyticsMetricsResponse": { +"description": "Response of the ExportAnalyticsMetricsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaExportAnalyticsMetricsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2alphaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportErrorsConfig": { +"description": "Configuration of destination for Export related errors.", +"id": "GoogleCloudRetailV2alphaExportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Export errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportMetadata": { +"description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaExportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportProductsResponse": { +"description": "Response of the ExportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaExportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2alphaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaExportUserEventsResponse": { +"description": "Response of the ExportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaExportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2alphaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaGcsOutputResult": { +"description": "A Gcs output result.", +"id": "GoogleCloudRetailV2alphaGcsOutputResult", +"properties": { +"outputUri": { +"description": "The uri of Gcs output", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportCompletionDataResponse": { +"description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", +"id": "GoogleCloudRetailV2alphaImportCompletionDataResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportErrorsConfig": { +"description": "Configuration of destination for Import related errors.", +"id": "GoogleCloudRetailV2alphaImportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportMetadata": { +"description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaImportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"notificationPubsubTopic": { +"description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", +"type": "string" +}, +"requestId": { +"deprecated": true, +"description": "Deprecated. This field is never set.", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were processed successfully.", +"format": "int64", +"type": "string" +}, +"transformedUserEventsMetadata": { +"$ref": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", +"description": "Metadata related to transform user events." +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportProductsResponse": { +"description": "Response of the ImportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaImportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaImportErrorsConfig", +"description": "Echoes the destination for the complete errors in the request if set." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaImportUserEventsResponse": { +"description": "Response of the ImportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2alphaImportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2alphaImportErrorsConfig", +"description": "Echoes the destination for the complete errors if this field was set in the request." +}, +"importSummary": { +"$ref": "GoogleCloudRetailV2alphaUserEventImportSummary", +"description": "Aggregated statistics of user event import status." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaMerchantCenterAccountLink": { +"description": "Represents a link between a Merchant Center account and a branch. After a link is established, products from the linked Merchant Center account are streamed to the linked branch.", +"id": "GoogleCloudRetailV2alphaMerchantCenterAccountLink", +"properties": { +"branchId": { +"description": "Required. The branch ID (e.g. 0/1/2) within the catalog that products from merchant_center_account_id are streamed to. When updating this field, an empty value will use the currently configured default branch. However, changing the default branch later on won't change the linked branch here. A single branch ID can only have one linked Merchant Center account ID.", +"type": "string" +}, +"feedFilters": { +"description": "Criteria for the Merchant Center feeds to be ingested via the link. All offers will be ingested if the list is empty. Otherwise the offers will be ingested from selected feeds.", +"items": { +"$ref": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter" +}, +"type": "array" +}, +"feedLabel": { +"description": "The FeedLabel used to perform filtering. Note: this replaces [region_id](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label). Example value: `US`. Example value: `FeedLabel1`.", +"type": "string" +}, +"id": { +"description": "Output only. Immutable. MerchantCenterAccountLink identifier, which is the final component of name. This field is auto generated and follows the convention: `BranchId_MerchantCenterAccountId`. `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/id_1`.", +"readOnly": true, +"type": "string" +}, +"languageCode": { +"description": "Language of the title/description and other string attributes. Use language tags defined by [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). ISO 639-1. This specifies the language of offers in Merchant Center that will be accepted. If empty, no language filtering will be performed. Example value: `en`.", +"type": "string" +}, +"merchantCenterAccountId": { +"description": "Required. The linked [Merchant center account id](https://developers.google.com/shopping-content/guides/accountstatuses). The account must be a standalone account or a sub-account of a MCA.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", +"readOnly": true, +"type": "string" +}, +"projectId": { +"description": "Output only. Google Cloud project ID.", +"readOnly": true, +"type": "string" +}, +"source": { +"description": "Optional. An optional arbitrary string that could be used as a tag for tracking link source.", +"type": "string" +}, +"state": { +"description": "Output only. Represents the state of the link.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"ACTIVE", +"FAILED" +], +"enumDescriptions": [ +"Default value.", +"Link is created and LRO is not complete.", +"Link is active.", +"Link creation failed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter": { +"description": "Merchant Center Feed filter criterion.", +"id": "GoogleCloudRetailV2alphaMerchantCenterAccountLinkMerchantCenterFeedFilter", +"properties": { +"primaryFeedId": { +"description": "Merchant Center primary feed ID.", +"format": "int64", +"type": "string" +}, +"primaryFeedName": { +"description": "Merchant Center primary feed name. The name is used for the display purposes only.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModel": { +"description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", +"id": "GoogleCloudRetailV2alphaModel", +"properties": { +"createTime": { +"description": "Output only. Timestamp the Recommendation Model was created at.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataState": { +"description": "Output only. The state of data requirements for this model: `DATA_OK` and `DATA_ERROR`. Recommendation model cannot be trained if the data is in `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even if serving state is `ACTIVE`: models were trained successfully before, but cannot be refreshed because model no longer has sufficient data for training.", +"enum": [ +"DATA_STATE_UNSPECIFIED", +"DATA_OK", +"DATA_ERROR" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has sufficient training data.", +"The model does not have sufficient training data. Error messages can be queried via Stackdriver." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the model. Should be human readable, used to display Recommendation Models in the Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 characters.", +"type": "string" +}, +"filteringOption": { +"description": "Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering by attributes is enabled for the model.", +"enum": [ +"RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", +"RECOMMENDATIONS_FILTERING_DISABLED", +"RECOMMENDATIONS_FILTERING_ENABLED" +], +"enumDescriptions": [ +"Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", +"Recommendation filtering is disabled.", +"Recommendation filtering is enabled." +], +"type": "string" +}, +"lastTuneTime": { +"description": "Output only. The timestamp when the latest successful tune finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"modelFeaturesConfig": { +"$ref": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", +"description": "Optional. Additional model features config." +}, +"name": { +"description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", +"type": "string" +}, +"optimizationObjective": { +"description": "Optional. The optimization objective e.g. `cvr`. Currently supported values: `ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on model type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `revenue_per_order` This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"pageOptimizationConfig": { +"$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", +"description": "Optional. The page optimization config." +}, +"periodicTuningState": { +"description": "Optional. The state of periodic tuning. The period we use is 3 months - to do a one-off tune earlier use the `TuneModel` method. Default value is `PERIODIC_TUNING_ENABLED`.", +"enum": [ +"PERIODIC_TUNING_STATE_UNSPECIFIED", +"PERIODIC_TUNING_DISABLED", +"ALL_TUNING_DISABLED", +"PERIODIC_TUNING_ENABLED" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has periodic tuning disabled. Tuning can be reenabled by calling the `EnableModelPeriodicTuning` method or by calling the `TuneModel` method.", +"The model cannot be tuned with periodic tuning OR the `TuneModel` method. Hide the options in customer UI and reject any requests through the backend self serve API.", +"The model has periodic tuning enabled. Tuning can be disabled by calling the `DisableModelPeriodicTuning` method." +], +"type": "string" +}, +"servingConfigLists": { +"description": "Output only. The list of valid serving configs associated with the PageOptimizationConfig.", +"items": { +"$ref": "GoogleCloudRetailV2alphaModelServingConfigList" +}, +"readOnly": true, +"type": "array" +}, +"servingState": { +"description": "Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`.", +"enum": [ +"SERVING_STATE_UNSPECIFIED", +"INACTIVE", +"ACTIVE", +"TUNED" +], +"enumDescriptions": [ +"Unspecified serving state.", +"The model is not serving.", +"The model is serving and can be queried.", +"The model is trained on tuned hyperparameters and can be queried." +], +"readOnly": true, +"type": "string" +}, +"trainingState": { +"description": "Optional. The training state that the model is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train model in order to control cost. If not specified: the default value for `CreateModel` method is `TRAINING`. The default value for `UpdateModel` method is to keep the state the same as before.", +"enum": [ +"TRAINING_STATE_UNSPECIFIED", +"PAUSED", +"TRAINING" +], +"enumDescriptions": [ +"Unspecified training state.", +"The model training is paused.", +"The model is training." +], +"type": "string" +}, +"tuningOperation": { +"description": "Output only. The tune operation associated with the model. Can be used to determine if there is an ongoing tune for this recommendation. Empty field implies no tune is goig on.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of model e.g. `home-page`. Currently supported values: `recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `page-optimization`, `similar-items`, `buy-it-again`, `on-sale-items`, and `recently-viewed`(readonly value). This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp the Recommendation Model was last updated. E.g. if a Recommendation Model was paused - this would be the time the pause was initiated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig": { +"description": "Additional configs for the frequently-bought-together model type.", +"id": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", +"properties": { +"contextProductsType": { +"description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"enum": [ +"CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", +"SINGLE_CONTEXT_PRODUCT", +"MULTIPLE_CONTEXT_PRODUCTS" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", +"Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelModelFeaturesConfig": { +"description": "Additional model features config.", +"id": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", +"properties": { +"frequentlyBoughtTogetherConfig": { +"$ref": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", +"description": "Additional configs for frequently-bought-together models." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelPageOptimizationConfig": { +"description": "The PageOptimizationConfig for model training. This determines how many panels to optimize for, and which serving configs to consider for each panel. The purpose of this model is to optimize which ServingConfig to show on which panels in way that optimizes the visitors shopping journey.", +"id": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", +"properties": { +"pageOptimizationEventType": { +"description": "Required. The type of UserEvent this page optimization is shown for. Each page has an associated event type - this will be the corresponding event type for the page that the page optimization model is used on. Supported types: * `add-to-cart`: Products being added to cart. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed * `category-page-view`: Homepage viewed * `shopping-cart-page-view`: User viewing a shopping cart. `home-page-view` only allows models with type `recommended-for-you`. All other page_optimization_event_type allow all Model.types.", +"type": "string" +}, +"panels": { +"description": "Required. A list of panel configurations. Limit = 5.", +"items": { +"$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel" +}, +"type": "array" +}, +"restriction": { +"description": "Optional. How to restrict results across panels e.g. can the same ServingConfig be shown on multiple panels at once. If unspecified, default to `UNIQUE_MODEL_RESTRICTION`.", +"enum": [ +"RESTRICTION_UNSPECIFIED", +"NO_RESTRICTION", +"UNIQUE_SERVING_CONFIG_RESTRICTION", +"UNIQUE_MODEL_RESTRICTION", +"UNIQUE_MODEL_TYPE_RESTRICTION" +], +"enumDescriptions": [ +"Unspecified value for restriction.", +"Allow any ServingConfig to be show on any number of panels. Example: `Panel1 candidates`: pdp_ctr, pdp_cvr, home_page_ctr_no_diversity `Panel2 candidates`: home_page_ctr_no_diversity, home_page_ctr_diversity, pdp_cvr_no_diversity `Restriction` = NO_RESTRICTION `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: []", +"Do not allow the same ServingConfig.name to be shown on multiple panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_SERVING_CONFIG_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity_low) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) *", +"Do not allow multiple ServingConfigs with same Model.name to be show on on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) *", +"Do not allow multiple ServingConfigs with same Model.type to be shown on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) *" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate": { +"description": "A candidate to consider for a given panel. Currently only ServingConfig are valid candidates.", +"id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", +"properties": { +"servingConfigId": { +"description": "This has to be a valid ServingConfig identifier. For example, for a ServingConfig with full name: `projects/*/locations/global/catalogs/default_catalog/servingConfigs/my_candidate_config`, this would be `my_candidate_config`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel": { +"description": "An individual panel with a list of ServingConfigs to consider for it.", +"id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel", +"properties": { +"candidates": { +"description": "Required. The candidates to consider on the panel.", +"items": { +"$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate" +}, +"type": "array" +}, +"defaultCandidate": { +"$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", +"description": "Required. The default candidate. If the model fails at serving time, we fall back to the default." +}, +"displayName": { +"description": "Optional. The name to display for the panel.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaModelServingConfigList": { +"description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", +"id": "GoogleCloudRetailV2alphaModelServingConfigList", +"properties": { +"servingConfigIds": { +"description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaOutputResult": { +"description": "Output result that stores the information about where the exported data is stored.", +"id": "GoogleCloudRetailV2alphaOutputResult", +"properties": { +"bigqueryResult": { +"description": "The BigQuery location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2alphaBigQueryOutputResult" +}, +"type": "array" +}, +"gcsResult": { +"description": "The Google Cloud Storage location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2alphaGcsOutputResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaPurgeMetadata": { +"description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaPurgeMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaPurgeProductsMetadata": { +"description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2alphaPurgeProductsMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were deleted successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaPurgeProductsResponse": { +"description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2alphaPurgeProductsResponse", +"properties": { +"purgeCount": { +"description": "The total count of products purged as a result of the operation.", +"format": "int64", +"type": "string" +}, +"purgeSample": { +"description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaPurgeUserEventsResponse": { +"description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2alphaPurgeUserEventsResponse", +"properties": { +"purgedEventsCount": { +"description": "The total count of events purged as a result of the operation.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRejoinUserEventsMetadata": { +"description": "Metadata for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2alphaRejoinUserEventsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRejoinUserEventsResponse": { +"description": "Response message for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2alphaRejoinUserEventsResponse", +"properties": { +"rejoinedUserEventsCount": { +"description": "Number of user events that were joined with latest product catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse": { +"description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse": { +"description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaSetInventoryMetadata": { +"description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2alphaSetInventoryMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaSetInventoryResponse": { +"description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2alphaSetInventoryResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaTransformedUserEventsMetadata": { +"description": "Metadata related to transform user events operation.", +"id": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", +"properties": { +"sourceEventsCount": { +"description": "Count of entries in the source user events BigQuery table.", +"format": "int64", +"type": "string" +}, +"transformedEventsCount": { +"description": "Count of entries in the transformed user events BigQuery table, which could be different from the actually imported number of user events.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaTuneModelMetadata": { +"description": "Metadata associated with a tune operation.", +"id": "GoogleCloudRetailV2alphaTuneModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this tune applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2alphaTuneModelResponse": { +"description": "Response associated with a tune operation.", +"id": "GoogleCloudRetailV2alphaTuneModelResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2alphaUserEventImportSummary": { +"description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", +"id": "GoogleCloudRetailV2alphaUserEventImportSummary", +"properties": { +"joinedEventsCount": { +"description": "Count of user events imported with complete existing catalog information.", +"format": "int64", +"type": "string" +}, +"unjoinedEventsCount": { +"description": "Count of user events imported, but with catalog information not found in the imported catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddFulfillmentPlacesResponse": { +"description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2betaAddLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaAddLocalInventoriesResponse": { +"description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", +"id": "GoogleCloudRetailV2betaAddLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaBigQueryOutputResult": { +"description": "A BigQuery output result.", +"id": "GoogleCloudRetailV2betaBigQueryOutputResult", +"properties": { +"datasetId": { +"description": "The ID of a BigQuery Dataset.", +"type": "string" +}, +"tableId": { +"description": "The ID of a BigQuery Table.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaCreateModelMetadata": { +"description": "Metadata associated with a create operation.", +"id": "GoogleCloudRetailV2betaCreateModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this create applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportAnalyticsMetricsResponse": { +"description": "Response of the ExportAnalyticsMetricsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaExportAnalyticsMetricsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2betaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportErrorsConfig": { +"description": "Configuration of destination for Export related errors.", +"id": "GoogleCloudRetailV2betaExportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Export errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportMetadata": { +"description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2betaExportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportProductsResponse": { +"description": "Response of the ExportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaExportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2betaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaExportUserEventsResponse": { +"description": "Response of the ExportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaExportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaExportErrorsConfig", +"description": "This field is never set." +}, +"outputResult": { +"$ref": "GoogleCloudRetailV2betaOutputResult", +"description": "Output result indicating where the data were exported to." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaGcsOutputResult": { +"description": "A Gcs output result.", +"id": "GoogleCloudRetailV2betaGcsOutputResult", +"properties": { +"outputUri": { +"description": "The uri of Gcs output", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportCompletionDataResponse": { +"description": "Response of the ImportCompletionDataRequest. If the long running operation is done, this message is returned by the google.longrunning.Operations.response field if the operation is successful.", +"id": "GoogleCloudRetailV2betaImportCompletionDataResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportErrorsConfig": { +"description": "Configuration of destination for Import related errors.", +"id": "GoogleCloudRetailV2betaImportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportMetadata": { +"description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2betaImportMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"notificationPubsubTopic": { +"description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", +"type": "string" +}, +"requestId": { +"deprecated": true, +"description": "Deprecated. This field is never set.", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were processed successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportProductsResponse": { +"description": "Response of the ImportProductsRequest. If the long running operation is done, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaImportProductsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaImportErrorsConfig", +"description": "Echoes the destination for the complete errors in the request if set." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaImportUserEventsResponse": { +"description": "Response of the ImportUserEventsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", +"id": "GoogleCloudRetailV2betaImportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRetailV2betaImportErrorsConfig", +"description": "Echoes the destination for the complete errors if this field was set in the request." +}, +"importSummary": { +"$ref": "GoogleCloudRetailV2betaUserEventImportSummary", +"description": "Aggregated statistics of user event import status." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaModel": { +"description": "Metadata that describes the training and serving parameters of a Model. A Model can be associated with a ServingConfig and then queried through the Predict API.", +"id": "GoogleCloudRetailV2betaModel", +"properties": { +"createTime": { +"description": "Output only. Timestamp the Recommendation Model was created at.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataState": { +"description": "Output only. The state of data requirements for this model: `DATA_OK` and `DATA_ERROR`. Recommendation model cannot be trained if the data is in `DATA_ERROR` state. Recommendation model can have `DATA_ERROR` state even if serving state is `ACTIVE`: models were trained successfully before, but cannot be refreshed because model no longer has sufficient data for training.", +"enum": [ +"DATA_STATE_UNSPECIFIED", +"DATA_OK", +"DATA_ERROR" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has sufficient training data.", +"The model does not have sufficient training data. Error messages can be queried via Stackdriver." +], +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The display name of the model. Should be human readable, used to display Recommendation Models in the Retail Cloud Console Dashboard. UTF-8 encoded string with limit of 1024 characters.", +"type": "string" +}, +"filteringOption": { +"description": "Optional. If `RECOMMENDATIONS_FILTERING_ENABLED`, recommendation filtering by attributes is enabled for the model.", +"enum": [ +"RECOMMENDATIONS_FILTERING_OPTION_UNSPECIFIED", +"RECOMMENDATIONS_FILTERING_DISABLED", +"RECOMMENDATIONS_FILTERING_ENABLED" +], +"enumDescriptions": [ +"Value used when unset. In this case, server behavior defaults to RECOMMENDATIONS_FILTERING_DISABLED.", +"Recommendation filtering is disabled.", +"Recommendation filtering is enabled." +], +"type": "string" +}, +"lastTuneTime": { +"description": "Output only. The timestamp when the latest successful tune finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"modelFeaturesConfig": { +"$ref": "GoogleCloudRetailV2betaModelModelFeaturesConfig", +"description": "Optional. Additional model features config." +}, +"name": { +"description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", +"type": "string" +}, +"optimizationObjective": { +"description": "Optional. The optimization objective e.g. `cvr`. Currently supported values: `ctr`, `cvr`, `revenue-per-order`. If not specified, we choose default based on model type. Default depends on type of recommendation: `recommended-for-you` => `ctr` `others-you-may-like` => `ctr` `frequently-bought-together` => `revenue_per_order` This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"periodicTuningState": { +"description": "Optional. The state of periodic tuning. The period we use is 3 months - to do a one-off tune earlier use the `TuneModel` method. Default value is `PERIODIC_TUNING_ENABLED`.", +"enum": [ +"PERIODIC_TUNING_STATE_UNSPECIFIED", +"PERIODIC_TUNING_DISABLED", +"ALL_TUNING_DISABLED", +"PERIODIC_TUNING_ENABLED" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set.", +"The model has periodic tuning disabled. Tuning can be reenabled by calling the `EnableModelPeriodicTuning` method or by calling the `TuneModel` method.", +"The model cannot be tuned with periodic tuning OR the `TuneModel` method. Hide the options in customer UI and reject any requests through the backend self serve API.", +"The model has periodic tuning enabled. Tuning can be disabled by calling the `DisableModelPeriodicTuning` method." +], +"type": "string" +}, +"servingConfigLists": { +"description": "Output only. The list of valid serving configs associated with the PageOptimizationConfig.", +"items": { +"$ref": "GoogleCloudRetailV2betaModelServingConfigList" +}, +"readOnly": true, +"type": "array" +}, +"servingState": { +"description": "Output only. The serving state of the model: `ACTIVE`, `NOT_ACTIVE`.", +"enum": [ +"SERVING_STATE_UNSPECIFIED", +"INACTIVE", +"ACTIVE", +"TUNED" +], +"enumDescriptions": [ +"Unspecified serving state.", +"The model is not serving.", +"The model is serving and can be queried.", +"The model is trained on tuned hyperparameters and can be queried." +], +"readOnly": true, +"type": "string" +}, +"trainingState": { +"description": "Optional. The training state that the model is in (e.g. `TRAINING` or `PAUSED`). Since part of the cost of running the service is frequency of training - this can be used to determine when to train model in order to control cost. If not specified: the default value for `CreateModel` method is `TRAINING`. The default value for `UpdateModel` method is to keep the state the same as before.", +"enum": [ +"TRAINING_STATE_UNSPECIFIED", +"PAUSED", +"TRAINING" +], +"enumDescriptions": [ +"Unspecified training state.", +"The model training is paused.", +"The model is training." +], +"type": "string" +}, +"tuningOperation": { +"description": "Output only. The tune operation associated with the model. Can be used to determine if there is an ongoing tune for this recommendation. Empty field implies no tune is goig on.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. The type of model e.g. `home-page`. Currently supported values: `recommended-for-you`, `others-you-may-like`, `frequently-bought-together`, `page-optimization`, `similar-items`, `buy-it-again`, `on-sale-items`, and `recently-viewed`(readonly value). This field together with optimization_objective describe model metadata to use to control model training and serving. See https://cloud.google.com/retail/docs/models for more details on what the model metadata control and which combination of parameters are valid. For invalid combinations of parameters (e.g. type = `frequently-bought-together` and optimization_objective = `ctr`), you receive an error 400 if you try to create/update a recommendation with this set of knobs.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp the Recommendation Model was last updated. E.g. if a Recommendation Model was paused - this would be the time the pause was initiated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig": { +"description": "Additional configs for the frequently-bought-together model type.", +"id": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", +"properties": { +"contextProductsType": { +"description": "Optional. Specifies the context of the model when it is used in predict requests. Can only be set for the `frequently-bought-together` type. If it isn't specified, it defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"enum": [ +"CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", +"SINGLE_CONTEXT_PRODUCT", +"MULTIPLE_CONTEXT_PRODUCTS" +], +"enumDescriptions": [ +"Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", +"Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", +"Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaModelModelFeaturesConfig": { +"description": "Additional model features config.", +"id": "GoogleCloudRetailV2betaModelModelFeaturesConfig", +"properties": { +"frequentlyBoughtTogetherConfig": { +"$ref": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", +"description": "Additional configs for frequently-bought-together models." +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaModelServingConfigList": { +"description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", +"id": "GoogleCloudRetailV2betaModelServingConfigList", +"properties": { +"servingConfigIds": { +"description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaOutputResult": { +"description": "Output result that stores the information about where the exported data is stored.", +"id": "GoogleCloudRetailV2betaOutputResult", +"properties": { +"bigqueryResult": { +"description": "The BigQuery location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2betaBigQueryOutputResult" +}, +"type": "array" +}, +"gcsResult": { +"description": "The Google Cloud Storage location where the result is stored.", +"items": { +"$ref": "GoogleCloudRetailV2betaGcsOutputResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeMetadata": { +"description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2betaPurgeMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeProductsMetadata": { +"description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRetailV2betaPurgeProductsMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"failureCount": { +"description": "Count of entries that encountered errors while processing.", +"format": "int64", +"type": "string" +}, +"successCount": { +"description": "Count of entries that were deleted successfully.", +"format": "int64", +"type": "string" +}, +"updateTime": { +"description": "Operation last update time. If the operation is done, this is also the finish time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeProductsResponse": { +"description": "Response of the PurgeProductsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2betaPurgeProductsResponse", +"properties": { +"purgeCount": { +"description": "The total count of products purged as a result of the operation.", +"format": "int64", +"type": "string" +}, +"purgeSample": { +"description": "A sample of the product names that will be deleted. Only populated if `force` is set to false. A max of 100 names will be returned and the names are chosen at random.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaPurgeUserEventsResponse": { +"description": "Response of the PurgeUserEventsRequest. If the long running operation is successfully done, then this message is returned by the google.longrunning.Operations.response field.", +"id": "GoogleCloudRetailV2betaPurgeUserEventsResponse", +"properties": { +"purgedEventsCount": { +"description": "The total count of events purged as a result of the operation.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRejoinUserEventsMetadata": { +"description": "Metadata for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2betaRejoinUserEventsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaRejoinUserEventsResponse": { +"description": "Response message for `RejoinUserEvents` method.", +"id": "GoogleCloudRetailV2betaRejoinUserEventsResponse", +"properties": { +"rejoinedUserEventsCount": { +"description": "Number of user events that were joined with latest product catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata": { +"description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse": { +"description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", +"id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata": { +"description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaRemoveLocalInventoriesResponse": { +"description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", +"id": "GoogleCloudRetailV2betaRemoveLocalInventoriesResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaSetInventoryMetadata": { +"description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2betaSetInventoryMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaSetInventoryResponse": { +"description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", +"id": "GoogleCloudRetailV2betaSetInventoryResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaTuneModelMetadata": { +"description": "Metadata associated with a tune operation.", +"id": "GoogleCloudRetailV2betaTuneModelMetadata", +"properties": { +"model": { +"description": "The resource name of the model that this tune applies to. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRetailV2betaTuneModelResponse": { +"description": "Response associated with a tune operation.", +"id": "GoogleCloudRetailV2betaTuneModelResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRetailV2betaUserEventImportSummary": { +"description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", +"id": "GoogleCloudRetailV2betaUserEventImportSummary", +"properties": { +"joinedEventsCount": { +"description": "Count of user events imported with complete existing catalog information.", +"format": "int64", +"type": "string" +}, +"unjoinedEventsCount": { +"description": "Count of user events imported, but with catalog information not found in the imported catalog.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"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": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeDate": { +"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", +"id": "GoogleTypeDate", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Vertex AI Search for Retail API", +"version": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/run.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/run.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..6c48fde7902e3b00202d78dc29919950ef4abe32 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/run.v1.json @@ -0,0 +1,6413 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://run.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Run", +"description": "Deploy and manage user provided container images that scale automatically based on incoming requests. The Cloud Run Admin API v1 follows the Knative Serving API specification, while v2 is aligned with Google Cloud AIP-based API standards, as described in https://google.aip.dev/.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/run/", +"endpoints": [ +{ +"description": "Locational Endpoint", +"endpointUrl": "https://africa-south1-run.googleapis.com/", +"location": "africa-south1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://asia-east1-run.googleapis.com/", +"location": "asia-east1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://asia-east2-run.googleapis.com/", +"location": "asia-east2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://asia-northeast1-run.googleapis.com/", +"location": "asia-northeast1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://asia-northeast2-run.googleapis.com/", +"location": "asia-northeast2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://asia-northeast3-run.googleapis.com/", +"location": "asia-northeast3" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://asia-south1-run.googleapis.com/", +"location": "asia-south1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://asia-south2-run.googleapis.com/", +"location": "asia-south2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://asia-southeast1-run.googleapis.com/", +"location": "asia-southeast1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://asia-southeast2-run.googleapis.com/", +"location": "asia-southeast2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://australia-southeast1-run.googleapis.com/", +"location": "australia-southeast1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://australia-southeast2-run.googleapis.com/", +"location": "australia-southeast2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-central2-run.googleapis.com/", +"location": "europe-central2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-north1-run.googleapis.com/", +"location": "europe-north1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-southwest1-run.googleapis.com/", +"location": "europe-southwest1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-west1-run.googleapis.com/", +"location": "europe-west1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-west10-run.googleapis.com/", +"location": "europe-west10" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-west12-run.googleapis.com/", +"location": "europe-west12" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-west2-run.googleapis.com/", +"location": "europe-west2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-west3-run.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-west4-run.googleapis.com/", +"location": "europe-west4" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-west6-run.googleapis.com/", +"location": "europe-west6" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-west8-run.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://europe-west9-run.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://me-central1-run.googleapis.com/", +"location": "me-central1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://me-central2-run.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://me-west1-run.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://northamerica-northeast1-run.googleapis.com/", +"location": "northamerica-northeast1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://northamerica-northeast2-run.googleapis.com/", +"location": "northamerica-northeast2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://southamerica-east1-run.googleapis.com/", +"location": "southamerica-east1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://southamerica-west1-run.googleapis.com/", +"location": "southamerica-west1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://us-central1-run.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://us-east1-run.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://us-east4-run.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://us-east5-run.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://us-south1-run.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://us-west1-run.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://us-west2-run.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://us-west3-run.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Locational Endpoint", +"endpointUrl": "https://us-west4-run.googleapis.com/", +"location": "us-west4" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "run:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://run.mtls.googleapis.com/", +"name": "run", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"namespaces": { +"resources": { +"authorizeddomains": { +"methods": { +"list": { +"description": "List authorized domains.", +"flatPath": "apis/domains.cloudrun.com/v1/namespaces/{namespacesId}/authorizeddomains", +"httpMethod": "GET", +"id": "run.namespaces.authorizeddomains.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Name of the parent Project resource. Example: `projects/myproject`.", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/domains.cloudrun.com/v1/{+parent}/authorizeddomains", +"response": { +"$ref": "ListAuthorizedDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"configurations": { +"methods": { +"get": { +"description": "Get information about a configuration.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/configurations/{configurationsId}", +"httpMethod": "GET", +"id": "run.namespaces.configurations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the configuration to retrieve. For Cloud Run, replace {namespace_id} with the project ID or number.", +"location": "path", +"pattern": "^namespaces/[^/]+/configurations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/serving.knative.dev/v1/{+name}", +"response": { +"$ref": "Configuration" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List configurations. Results are sorted by creation time, descending.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/configurations", +"httpMethod": "GET", +"id": "run.namespaces.configurations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of the records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "The namespace from which the configurations should be listed. For Cloud Run, replace {namespace_id} with the project ID or number.", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "apis/serving.knative.dev/v1/{+parent}/configurations", +"response": { +"$ref": "ListConfigurationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"domainmappings": { +"methods": { +"create": { +"description": "Create a new domain mapping.", +"flatPath": "apis/domains.cloudrun.com/v1/namespaces/{namespacesId}/domainmappings", +"httpMethod": "POST", +"id": "run.namespaces.domainmappings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The namespace in which the domain mapping should be created. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/domains.cloudrun.com/v1/{+parent}/domainmappings", +"request": { +"$ref": "DomainMapping" +}, +"response": { +"$ref": "DomainMapping" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a domain mapping.", +"flatPath": "apis/domains.cloudrun.com/v1/namespaces/{namespacesId}/domainmappings/{domainmappingsId}", +"httpMethod": "DELETE", +"id": "run.namespaces.domainmappings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"apiVersion": { +"description": "Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"kind": { +"description": "Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/domainmappings/[^/]+$", +"required": true, +"type": "string" +}, +"propagationPolicy": { +"description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/architecture/garbage-collection/ for more information.", +"location": "query", +"type": "string" +} +}, +"path": "apis/domains.cloudrun.com/v1/{+name}", +"response": { +"$ref": "Status" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get information about a domain mapping.", +"flatPath": "apis/domains.cloudrun.com/v1/namespaces/{namespacesId}/domainmappings/{domainmappingsId}", +"httpMethod": "GET", +"id": "run.namespaces.domainmappings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the domain mapping to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/domainmappings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/domains.cloudrun.com/v1/{+name}", +"response": { +"$ref": "DomainMapping" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List all domain mappings.", +"flatPath": "apis/domains.cloudrun.com/v1/namespaces/{namespacesId}/domainmappings", +"httpMethod": "GET", +"id": "run.namespaces.domainmappings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "Required. The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "apis/domains.cloudrun.com/v1/{+parent}/domainmappings", +"response": { +"$ref": "ListDomainMappingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"executions": { +"methods": { +"cancel": { +"description": "Cancel an execution.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/executions/{executionsId}:cancel", +"httpMethod": "POST", +"id": "run.namespaces.executions.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the execution to cancel. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/executions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/run.googleapis.com/v1/{+name}:cancel", +"request": { +"$ref": "CancelExecutionRequest" +}, +"response": { +"$ref": "Execution" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete an execution.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/executions/{executionsId}", +"httpMethod": "DELETE", +"id": "run.namespaces.executions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"apiVersion": { +"description": "Optional. Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"kind": { +"description": "Optional. Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the execution to delete. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/executions/[^/]+$", +"required": true, +"type": "string" +}, +"propagationPolicy": { +"description": "Optional. Specifies the propagation policy of delete. Cloud Run currently ignores this setting.", +"location": "query", +"type": "string" +} +}, +"path": "apis/run.googleapis.com/v1/{+name}", +"response": { +"$ref": "Status" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get information about an execution.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/executions/{executionsId}", +"httpMethod": "GET", +"id": "run.namespaces.executions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the execution to retrieve. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/executions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/run.googleapis.com/v1/{+name}", +"response": { +"$ref": "Execution" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List executions. Results are sorted by creation time, descending.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/executions", +"httpMethod": "GET", +"id": "run.namespaces.executions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Optional encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Optional. Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of the records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "Required. The namespace from which the executions should be listed. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "apis/run.googleapis.com/v1/{+parent}/executions", +"response": { +"$ref": "ListExecutionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"jobs": { +"methods": { +"create": { +"description": "Create a job.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/jobs", +"httpMethod": "POST", +"id": "run.namespaces.jobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The namespace in which the job should be created. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/run.googleapis.com/v1/{+parent}/jobs", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a job.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/jobs/{jobsId}", +"httpMethod": "DELETE", +"id": "run.namespaces.jobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"apiVersion": { +"description": "Optional. Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"kind": { +"description": "Optional. Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the job to delete. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +}, +"propagationPolicy": { +"description": "Optional. Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.", +"location": "query", +"type": "string" +} +}, +"path": "apis/run.googleapis.com/v1/{+name}", +"response": { +"$ref": "Status" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get information about a job.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/jobs/{jobsId}", +"httpMethod": "GET", +"id": "run.namespaces.jobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the job to retrieve. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/run.googleapis.com/v1/{+name}", +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List jobs. Results are sorted by creation time, descending.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/jobs", +"httpMethod": "GET", +"id": "run.namespaces.jobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Optional encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Optional. Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "Required. The namespace from which the jobs should be listed. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "apis/run.googleapis.com/v1/{+parent}/jobs", +"response": { +"$ref": "ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"replaceJob": { +"description": "Replace a job. Only the spec and metadata labels and annotations are modifiable. After the Replace request, Cloud Run will work to make the 'status' match the requested 'spec'. May provide metadata.resourceVersion to enforce update from last read for optimistic concurrency control.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/jobs/{jobsId}", +"httpMethod": "PUT", +"id": "run.namespaces.jobs.replaceJob", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the job being replaced. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/run.googleapis.com/v1/{+name}", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"run": { +"description": "Trigger creation of a new execution of this job.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/jobs/{jobsId}:run", +"httpMethod": "POST", +"id": "run.namespaces.jobs.run", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the job to run. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/run.googleapis.com/v1/{+name}:run", +"request": { +"$ref": "RunJobRequest" +}, +"response": { +"$ref": "Execution" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"revisions": { +"methods": { +"delete": { +"description": "Delete a revision.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/revisions/{revisionsId}", +"httpMethod": "DELETE", +"id": "run.namespaces.revisions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"apiVersion": { +"description": "Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"kind": { +"description": "Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the revision to delete. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +}, +"propagationPolicy": { +"description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background.", +"location": "query", +"type": "string" +} +}, +"path": "apis/serving.knative.dev/v1/{+name}", +"response": { +"$ref": "Status" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get information about a revision.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/revisions/{revisionsId}", +"httpMethod": "GET", +"id": "run.namespaces.revisions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the revision to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/serving.knative.dev/v1/{+name}", +"response": { +"$ref": "Revision" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List revisions. Results are sorted by creation time, descending.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/revisions", +"httpMethod": "GET", +"id": "run.namespaces.revisions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "The namespace from which the revisions should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "apis/serving.knative.dev/v1/{+parent}/revisions", +"response": { +"$ref": "ListRevisionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"routes": { +"methods": { +"get": { +"description": "Get information about a route.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/routes/{routesId}", +"httpMethod": "GET", +"id": "run.namespaces.routes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the route to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/routes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/serving.knative.dev/v1/{+name}", +"response": { +"$ref": "Route" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List routes. Results are sorted by creation time, descending.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/routes", +"httpMethod": "GET", +"id": "run.namespaces.routes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "The namespace from which the routes should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "apis/serving.knative.dev/v1/{+parent}/routes", +"response": { +"$ref": "ListRoutesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"services": { +"methods": { +"create": { +"description": "Creates a new Service. Service creation will trigger a new deployment. Use GetService, and check service.status to determine if the Service is ready.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services", +"httpMethod": "POST", +"id": "run.namespaces.services.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource's parent. In Cloud Run, it may be one of the following: * `{project_id_or_number}` * `namespaces/{project_id_or_number}` * `namespaces/{project_id_or_number}/services` * `projects/{project_id_or_number}/locations/{region}` * `projects/{project_id_or_number}/regions/{region}`", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/serving.knative.dev/v1/{+parent}/services", +"request": { +"$ref": "Service" +}, +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the provided service. This will cause the Service to stop serving traffic and will delete all associated Revisions.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services/{servicesId}", +"httpMethod": "DELETE", +"id": "run.namespaces.services.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"apiVersion": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +}, +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"kind": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The fully qualified name of the service to delete. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", +"location": "path", +"pattern": "^namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"propagationPolicy": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +} +}, +"path": "apis/serving.knative.dev/v1/{+name}", +"response": { +"$ref": "Status" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets information about a service.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services/{servicesId}", +"httpMethod": "GET", +"id": "run.namespaces.services.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully qualified name of the service to retrieve. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", +"location": "path", +"pattern": "^namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/serving.knative.dev/v1/{+name}", +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists services for the given project and region. Results are sorted by creation time, descending.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services", +"httpMethod": "GET", +"id": "run.namespaces.services.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "Required. The parent from where the resources should be listed. In Cloud Run, it may be one of the following: * `{project_id_or_number}` * `namespaces/{project_id_or_number}` * `namespaces/{project_id_or_number}/services` * `projects/{project_id_or_number}/locations/{region}` * `projects/{project_id_or_number}/regions/{region}`", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "apis/serving.knative.dev/v1/{+parent}/services", +"response": { +"$ref": "ListServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"replaceService": { +"description": "Replaces a service. Only the spec and metadata labels and annotations are modifiable. After the Update request, Cloud Run will work to make the 'status' match the requested 'spec'. May provide metadata.resourceVersion to enforce update from last read for optimistic concurrency control.", +"flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services/{servicesId}", +"httpMethod": "PUT", +"id": "run.namespaces.services.replaceService", +"parameterOrder": [ +"name" +], +"parameters": { +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The fully qualified name of the service to replace. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", +"location": "path", +"pattern": "^namespaces/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/serving.knative.dev/v1/{+name}", +"request": { +"$ref": "Service" +}, +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"tasks": { +"methods": { +"get": { +"description": "Get information about a task.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/tasks/{tasksId}", +"httpMethod": "GET", +"id": "run.namespaces.tasks.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the task to retrieve. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+/tasks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "apis/run.googleapis.com/v1/{+name}", +"response": { +"$ref": "Task" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List tasks.", +"flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/tasks", +"httpMethod": "GET", +"id": "run.namespaces.tasks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Optional encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Optional. Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. For example, to list all tasks of execution \"foo\" in succeeded state: `run.googleapis.com/execution=foo,run.googleapis.com/runningState=Succeeded`. Supported states are: * `Pending`: Initial state of all tasks. The task has not yet started but eventually will. * `Running`: Container instances for this task are running or will be running shortly. * `Succeeded`: No more container instances to run for the task, and the last attempt succeeded. * `Failed`: No more container instances to run for the task, and the last attempt failed. This task has run out of retry attempts. * `Cancelled`: Task was running but got stopped because its parent execution has been aborted. * `Abandoned`: The task has not yet started and never will because its parent execution has been aborted.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "Required. The namespace from which the tasks should be listed. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Optional. Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "apis/run.googleapis.com/v1/{+parent}/tasks", +"response": { +"$ref": "ListTasksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"projects": { +"resources": { +"authorizeddomains": { +"methods": { +"list": { +"description": "List authorized domains.", +"flatPath": "v1/projects/{projectsId}/authorizeddomains", +"httpMethod": "GET", +"id": "run.projects.authorizeddomains.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Name of the parent Project resource. Example: `projects/myproject`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/authorizeddomains", +"response": { +"$ref": "ListAuthorizedDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"methods": { +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "run.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"authorizeddomains": { +"methods": { +"list": { +"description": "List authorized domains.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/authorizeddomains", +"httpMethod": "GET", +"id": "run.projects.locations.authorizeddomains.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum results to return per page.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token for fetching the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Name of the parent Project resource. Example: `projects/myproject`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/authorizeddomains", +"response": { +"$ref": "ListAuthorizedDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"configurations": { +"methods": { +"get": { +"description": "Get information about a configuration.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/configurations/{configurationsId}", +"httpMethod": "GET", +"id": "run.projects.locations.configurations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the configuration to retrieve. For Cloud Run, replace {namespace_id} with the project ID or number.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/configurations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Configuration" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List configurations. Results are sorted by creation time, descending.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/configurations", +"httpMethod": "GET", +"id": "run.projects.locations.configurations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of the records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "The namespace from which the configurations should be listed. For Cloud Run, replace {namespace_id} with the project ID or number.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "Not supported by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Not supported by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/configurations", +"response": { +"$ref": "ListConfigurationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"domainmappings": { +"methods": { +"create": { +"description": "Create a new domain mapping.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/domainmappings", +"httpMethod": "POST", +"id": "run.projects.locations.domainmappings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The namespace in which the domain mapping should be created. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/domainmappings", +"request": { +"$ref": "DomainMapping" +}, +"response": { +"$ref": "DomainMapping" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a domain mapping.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/domainmappings/{domainmappingsId}", +"httpMethod": "DELETE", +"id": "run.projects.locations.domainmappings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"apiVersion": { +"description": "Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"kind": { +"description": "Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/domainmappings/[^/]+$", +"required": true, +"type": "string" +}, +"propagationPolicy": { +"description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/architecture/garbage-collection/ for more information.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Status" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get information about a domain mapping.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/domainmappings/{domainmappingsId}", +"httpMethod": "GET", +"id": "run.projects.locations.domainmappings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the domain mapping to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/domainmappings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DomainMapping" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List all domain mappings.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/domainmappings", +"httpMethod": "GET", +"id": "run.projects.locations.domainmappings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "Required. The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/domainmappings", +"response": { +"$ref": "ListDomainMappingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"jobs": { +"methods": { +"getIamPolicy": { +"description": "Get the IAM Access Control policy currently in effect for the given job. This result does not include any inherited policies.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:getIamPolicy", +"httpMethod": "GET", +"id": "run.projects.locations.jobs.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM Access control policy for the specified job. Overwrites any existing policy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:setIamPolicy", +"httpMethod": "POST", +"id": "run.projects.locations.jobs.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified job. There are no permissions required for making this API call.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:testIamPermissions", +"httpMethod": "POST", +"id": "run.projects.locations.jobs.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"operations": { +"methods": { +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "run.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "run.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "run.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "Optional. A filter for matching the completed or in-progress operations. The supported formats of *filter* are: To query for only completed operations: done:true To query for only ongoing operations: done:false Must be empty to query for all of the latest operations for the given parent project.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. To query for all of the operations for a project.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of records that should be returned. Requested page size cannot exceed 100. If not set or set to less than or equal to 0, the default page size is 100. .", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token identifying which result to start with, which is returned by a previous list call.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"wait": { +"description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:wait", +"httpMethod": "POST", +"id": "run.projects.locations.operations.wait", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to wait on.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:wait", +"request": { +"$ref": "GoogleLongrunningWaitOperationRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"revisions": { +"methods": { +"delete": { +"description": "Delete a revision.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/revisions/{revisionsId}", +"httpMethod": "DELETE", +"id": "run.projects.locations.revisions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"apiVersion": { +"description": "Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"kind": { +"description": "Cloud Run currently ignores this parameter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the revision to delete. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +}, +"propagationPolicy": { +"description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Status" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get information about a revision.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/revisions/{revisionsId}", +"httpMethod": "GET", +"id": "run.projects.locations.revisions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the revision to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/revisions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Revision" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List revisions. Results are sorted by creation time, descending.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/revisions", +"httpMethod": "GET", +"id": "run.projects.locations.revisions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "The namespace from which the revisions should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/revisions", +"response": { +"$ref": "ListRevisionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"routes": { +"methods": { +"get": { +"description": "Get information about a route.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/routes/{routesId}", +"httpMethod": "GET", +"id": "run.projects.locations.routes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the route to retrieve. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/routes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Route" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List routes. Results are sorted by creation time, descending.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/routes", +"httpMethod": "GET", +"id": "run.projects.locations.routes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Optional. Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "Optional. The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "The namespace from which the routes should be listed. For Cloud Run (fully managed), replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/routes", +"response": { +"$ref": "ListRoutesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"services": { +"methods": { +"create": { +"description": "Creates a new Service. Service creation will trigger a new deployment. Use GetService, and check service.status to determine if the Service is ready.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services", +"httpMethod": "POST", +"id": "run.projects.locations.services.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource's parent. In Cloud Run, it may be one of the following: * `{project_id_or_number}` * `namespaces/{project_id_or_number}` * `namespaces/{project_id_or_number}/services` * `projects/{project_id_or_number}/locations/{region}` * `projects/{project_id_or_number}/regions/{region}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/services", +"request": { +"$ref": "Service" +}, +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the provided service. This will cause the Service to stop serving traffic and will delete all associated Revisions.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", +"httpMethod": "DELETE", +"id": "run.projects.locations.services.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"apiVersion": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +}, +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"kind": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The fully qualified name of the service to delete. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +}, +"propagationPolicy": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Status" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets information about a service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", +"httpMethod": "GET", +"id": "run.projects.locations.services.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The fully qualified name of the service to retrieve. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the IAM Access Control policy currently in effect for the given Cloud Run service. This result does not include any inherited policies.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:getIamPolicy", +"httpMethod": "GET", +"id": "run.projects.locations.services.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists services for the given project and region. Results are sorted by creation time, descending.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services", +"httpMethod": "GET", +"id": "run.projects.locations.services.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"continue": { +"description": "Encoded string to continue paging.", +"location": "query", +"type": "string" +}, +"fieldSelector": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +}, +"includeUninitialized": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "boolean" +}, +"labelSelector": { +"description": "Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", +"location": "query", +"type": "string" +}, +"limit": { +"description": "The maximum number of records that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"parent": { +"description": "Required. The parent from where the resources should be listed. In Cloud Run, it may be one of the following: * `{project_id_or_number}` * `namespaces/{project_id_or_number}` * `namespaces/{project_id_or_number}/services` * `projects/{project_id_or_number}/locations/{region}` * `projects/{project_id_or_number}/regions/{region}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"resourceVersion": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "string" +}, +"watch": { +"description": "Not supported, and ignored by Cloud Run.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/services", +"response": { +"$ref": "ListServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"replaceService": { +"description": "Replaces a service. Only the spec and metadata labels and annotations are modifiable. After the Update request, Cloud Run will work to make the 'status' match the requested 'spec'. May provide metadata.resourceVersion to enforce update from last read for optimistic concurrency control.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", +"httpMethod": "PUT", +"id": "run.projects.locations.services.replaceService", +"parameterOrder": [ +"name" +], +"parameters": { +"dryRun": { +"description": "Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The fully qualified name of the service to replace. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Service" +}, +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the IAM Access control policy for the specified Service. Overwrites any existing policy.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:setIamPolicy", +"httpMethod": "POST", +"id": "run.projects.locations.services.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified Project. There are no permissions required for making this API call.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:testIamPermissions", +"httpMethod": "POST", +"id": "run.projects.locations.services.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241004", +"rootUrl": "https://run.googleapis.com/", +"schemas": { +"Addressable": { +"description": "Information for connecting over HTTP(s).", +"id": "Addressable", +"properties": { +"url": { +"type": "string" +} +}, +"type": "object" +}, +"AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"AuthorizedDomain": { +"description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via [Search Console](https://search.google.com/search-console/welcome).", +"id": "AuthorizedDomain", +"properties": { +"id": { +"description": "Relative name of the domain authorized for use. Example: `example.com`.", +"type": "string" +}, +"name": { +"deprecated": true, +"description": "Deprecated Read only. Full path to the `AuthorizedDomain` resource in the API. Example: `projects/myproject/authorizedDomains/example.com`.", +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"CSIVolumeSource": { +"description": "Storage volume source using the Container Storage Interface.", +"id": "CSIVolumeSource", +"properties": { +"driver": { +"description": "name of the CSI driver for the requested storage system. Cloud Run supports the following drivers: * gcsfuse.run.googleapis.com : Mount a Cloud Storage Bucket as a volume.", +"type": "string" +}, +"readOnly": { +"description": "If true, mount the volume as read only. Defaults to false.", +"type": "boolean" +}, +"volumeAttributes": { +"additionalProperties": { +"type": "string" +}, +"description": "stores driver specific attributes. For Google Cloud Storage volumes, the following attributes are supported: * bucketName: the name of the Cloud Storage bucket to mount. The Cloud Run Service identity must have access to this bucket.", +"type": "object" +} +}, +"type": "object" +}, +"CancelExecutionRequest": { +"description": "Request message for cancelling an execution.", +"id": "CancelExecutionRequest", +"properties": {}, +"type": "object" +}, +"ConfigMapEnvSource": { +"description": "Not supported by Cloud Run. ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", +"id": "ConfigMapEnvSource", +"properties": { +"localObjectReference": { +"$ref": "LocalObjectReference", +"deprecated": true, +"description": "This field should not be used directly as it is meant to be inlined directly into the message. Use the \"name\" field instead." +}, +"name": { +"description": "The ConfigMap to select from.", +"type": "string" +}, +"optional": { +"description": "Specify whether the ConfigMap must be defined.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigMapKeySelector": { +"description": "Not supported by Cloud Run.", +"id": "ConfigMapKeySelector", +"properties": { +"key": { +"description": "Required. Not supported by Cloud Run.", +"type": "string" +}, +"localObjectReference": { +"$ref": "LocalObjectReference", +"deprecated": true, +"description": "Not supported by Cloud Run." +}, +"name": { +"description": "Required. Not supported by Cloud Run.", +"type": "string" +}, +"optional": { +"description": "Not supported by Cloud Run.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigMapVolumeSource": { +"description": "Not supported by Cloud Run. Adapts a ConfigMap into a volume. The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths.", +"id": "ConfigMapVolumeSource", +"properties": { +"defaultMode": { +"description": "(Optional) Integer representation of mode bits to use on created files by default. Must be a value between 01 and 0777 (octal). If 0 or not set, it will default to 0644. Directories within the path are not affected by this setting. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", +"format": "int32", +"type": "integer" +}, +"items": { +"description": "(Optional) If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified that is not present in the Secret, the volume setup will error unless it is marked optional.", +"items": { +"$ref": "KeyToPath" +}, +"type": "array" +}, +"name": { +"description": "Name of the config.", +"type": "string" +}, +"optional": { +"description": "(Optional) Specify whether the Secret or its keys must be defined.", +"type": "boolean" +} +}, +"type": "object" +}, +"Configuration": { +"description": "Configuration represents the \"floating HEAD\" of a linear history of Revisions, and optionally how the containers those revisions reference are built. Users create new Revisions by updating the Configuration's spec. The \"latest created\" revision's name is available under status, as is the \"latest ready\" revision's name.", +"id": "Configuration", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"serving.knative.dev/v1\".", +"type": "string" +}, +"kind": { +"description": "The kind of resource, in this case always \"Configuration\".", +"type": "string" +}, +"metadata": { +"$ref": "ObjectMeta", +"description": "Metadata associated with this Configuration, including name, namespace, labels, and annotations." +}, +"spec": { +"$ref": "ConfigurationSpec", +"description": "Spec holds the desired state of the Configuration (from the client)." +}, +"status": { +"$ref": "ConfigurationStatus", +"description": "Status communicates the observed state of the Configuration (from the controller)." +} +}, +"type": "object" +}, +"ConfigurationSpec": { +"description": "ConfigurationSpec holds the desired state of the Configuration (from the client).", +"id": "ConfigurationSpec", +"properties": { +"template": { +"$ref": "RevisionTemplate", +"description": "Template holds the latest specification for the Revision to be stamped out." +} +}, +"type": "object" +}, +"ConfigurationStatus": { +"description": "ConfigurationStatus communicates the observed state of the Configuration (from the controller).", +"id": "ConfigurationStatus", +"properties": { +"conditions": { +"description": "Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world.", +"items": { +"$ref": "GoogleCloudRunV1Condition" +}, +"type": "array" +}, +"latestCreatedRevisionName": { +"description": "LatestCreatedRevisionName is the last revision that was created from this Configuration. It might not be ready yet, so for the latest ready revision, use LatestReadyRevisionName.", +"type": "string" +}, +"latestReadyRevisionName": { +"description": "LatestReadyRevisionName holds the name of the latest Revision stamped out from this Configuration that has had its \"Ready\" condition become \"True\".", +"type": "string" +}, +"observedGeneration": { +"description": "ObservedGeneration is the 'Generation' of the Configuration that was last processed by the controller. The observed generation is updated even if the controller failed to process the spec and create the Revision. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation, and the Ready condition's status is True or False.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Container": { +"description": "A single application container. This specifies both the container to run, the command to run in the container and the arguments to supply to it. Note that additional arguments may be supplied by the system to the container at runtime.", +"id": "Container", +"properties": { +"args": { +"description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references are not supported in Cloud Run.", +"items": { +"type": "string" +}, +"type": "array" +}, +"command": { +"description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references are not supported in Cloud Run.", +"items": { +"type": "string" +}, +"type": "array" +}, +"env": { +"description": "List of environment variables to set in the container. EnvVar with duplicate names are generally allowed; if referencing a secret, the name must be unique for the container. For non-secret EnvVar names, the Container will only get the last-declared one.", +"items": { +"$ref": "EnvVar" +}, +"type": "array" +}, +"envFrom": { +"description": "Not supported by Cloud Run.", +"items": { +"$ref": "EnvFromSource" +}, +"type": "array" +}, +"image": { +"description": "Required. Name of the container image in Dockerhub, Google Artifact Registry, or Google Container Registry. If the host is not provided, Dockerhub is assumed.", +"type": "string" +}, +"imagePullPolicy": { +"description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", +"type": "string" +}, +"livenessProbe": { +"$ref": "Probe", +"description": "Periodic probe of container liveness. Container will be restarted if the probe fails." +}, +"name": { +"description": "Name of the container specified as a DNS_LABEL (RFC 1123).", +"type": "string" +}, +"ports": { +"description": "List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.", +"items": { +"$ref": "ContainerPort" +}, +"type": "array" +}, +"readinessProbe": { +"$ref": "Probe", +"description": "Readiness probe to be used for health checks. Not supported by Cloud Run." +}, +"resources": { +"$ref": "ResourceRequirements", +"description": "Compute Resources required by this container." +}, +"securityContext": { +"$ref": "SecurityContext", +"description": "Not supported by Cloud Run." +}, +"startupProbe": { +"$ref": "Probe", +"description": "Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not receive traffic if the probe fails. If not provided, a default startup probe with TCP socket action is used." +}, +"terminationMessagePath": { +"description": "Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.", +"type": "string" +}, +"terminationMessagePolicy": { +"description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", +"type": "string" +}, +"volumeMounts": { +"description": "Volume to mount into the container's filesystem. Only supports SecretVolumeSources. Pod volumes to mount into the container's filesystem.", +"items": { +"$ref": "VolumeMount" +}, +"type": "array" +}, +"workingDir": { +"description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.", +"type": "string" +} +}, +"type": "object" +}, +"ContainerOverride": { +"description": "Per container override specification.", +"id": "ContainerOverride", +"properties": { +"args": { +"description": "Arguments to the entrypoint. The specified arguments replace and override any existing entrypoint arguments. Must be empty if `clear_args` is set to true.", +"items": { +"type": "string" +}, +"type": "array" +}, +"clearArgs": { +"description": "Optional. Set to True to clear all existing arguments.", +"type": "boolean" +}, +"env": { +"description": "List of environment variables to set in the container. All specified environment variables are merged with existing environment variables. When the specified environment variables exist, these values override any existing values.", +"items": { +"$ref": "EnvVar" +}, +"type": "array" +}, +"name": { +"description": "The name of the container specified as a DNS_LABEL.", +"type": "string" +} +}, +"type": "object" +}, +"ContainerPort": { +"description": "ContainerPort represents a network port in a single container.", +"id": "ContainerPort", +"properties": { +"containerPort": { +"description": "Port number the container listens on. If present, this must be a valid port number, 0 < x < 65536. If not present, it will default to port 8080. For more information, see https://cloud.google.com/run/docs/container-contract#port", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "If specified, used to specify which protocol to use. Allowed values are \"http1\" and \"h2c\".", +"type": "string" +}, +"protocol": { +"description": "Protocol for port. Must be \"TCP\". Defaults to \"TCP\".", +"type": "string" +} +}, +"type": "object" +}, +"DomainMapping": { +"description": "Resource to hold the state and status of a user's domain mapping. NOTE: This resource is currently in Beta.", +"id": "DomainMapping", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"domains.cloudrun.com/v1\".", +"type": "string" +}, +"kind": { +"description": "The kind of resource, in this case \"DomainMapping\".", +"type": "string" +}, +"metadata": { +"$ref": "ObjectMeta", +"description": "Metadata associated with this BuildTemplate." +}, +"spec": { +"$ref": "DomainMappingSpec", +"description": "The spec for this DomainMapping." +}, +"status": { +"$ref": "DomainMappingStatus", +"description": "The current status of the DomainMapping." +} +}, +"type": "object" +}, +"DomainMappingSpec": { +"description": "The desired state of the Domain Mapping.", +"id": "DomainMappingSpec", +"properties": { +"certificateMode": { +"description": "The mode of the certificate.", +"enum": [ +"CERTIFICATE_MODE_UNSPECIFIED", +"NONE", +"AUTOMATIC" +], +"enumDescriptions": [ +"", +"Do not provision an HTTPS certificate.", +"Automatically provisions an HTTPS certificate via GoogleCA." +], +"type": "string" +}, +"forceOverride": { +"description": "If set, the mapping will override any mapping set before this spec was set. It is recommended that the user leaves this empty to receive an error warning about a potential conflict and only set it once the respective UI has given such a warning.", +"type": "boolean" +}, +"routeName": { +"description": "The name of the Knative Route that this DomainMapping applies to. The route must exist.", +"type": "string" +} +}, +"type": "object" +}, +"DomainMappingStatus": { +"description": "The current state of the Domain Mapping.", +"id": "DomainMappingStatus", +"properties": { +"conditions": { +"description": "Array of observed DomainMappingConditions, indicating the current state of the DomainMapping.", +"items": { +"$ref": "GoogleCloudRunV1Condition" +}, +"type": "array" +}, +"mappedRouteName": { +"description": "The name of the route that the mapping currently points to.", +"type": "string" +}, +"observedGeneration": { +"description": "ObservedGeneration is the 'Generation' of the DomainMapping that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation and the Ready condition's status is True or False.", +"format": "int32", +"type": "integer" +}, +"resourceRecords": { +"description": "The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.", +"items": { +"$ref": "ResourceRecord" +}, +"type": "array" +}, +"url": { +"description": "Optional. Not supported by Cloud Run.", +"type": "string" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EmptyDirVolumeSource": { +"description": "In memory (tmpfs) ephemeral storage. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs).", +"id": "EmptyDirVolumeSource", +"properties": { +"medium": { +"description": "The medium on which the data is stored. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", +"type": "string" +}, +"sizeLimit": { +"description": "Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers. The default is nil which means that the limit is undefined. More info: https://cloud.google.com/run/docs/configuring/in-memory-volumes#configure-volume. Info in Kubernetes: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir", +"type": "string" +} +}, +"type": "object" +}, +"EnvFromSource": { +"description": "Not supported by Cloud Run. EnvFromSource represents the source of a set of ConfigMaps", +"id": "EnvFromSource", +"properties": { +"configMapRef": { +"$ref": "ConfigMapEnvSource", +"description": "The ConfigMap to select from" +}, +"prefix": { +"description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", +"type": "string" +}, +"secretRef": { +"$ref": "SecretEnvSource", +"description": "The Secret to select from" +} +}, +"type": "object" +}, +"EnvVar": { +"description": "EnvVar represents an environment variable present in a Container.", +"id": "EnvVar", +"properties": { +"name": { +"description": "Required. Name of the environment variable.", +"type": "string" +}, +"value": { +"description": "Value of the environment variable. Defaults to \"\". Variable references are not supported in Cloud Run.", +"type": "string" +}, +"valueFrom": { +"$ref": "EnvVarSource", +"description": "Source for the environment variable's value. Only supports secret_key_ref. Cannot be used if value is not empty." +} +}, +"type": "object" +}, +"EnvVarSource": { +"description": "EnvVarSource represents a source for the value of an EnvVar.", +"id": "EnvVarSource", +"properties": { +"configMapKeyRef": { +"$ref": "ConfigMapKeySelector", +"description": "Not supported by Cloud Run. Not supported in Cloud Run." +}, +"secretKeyRef": { +"$ref": "SecretKeySelector", +"description": "Selects a key (version) of a secret in Secret Manager." +} +}, +"type": "object" +}, +"ExecAction": { +"description": "Not supported by Cloud Run. ExecAction describes a \"run in container\" action.", +"id": "ExecAction", +"properties": { +"command": { +"description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Execution": { +"description": "Execution represents the configuration of a single execution. An execution is an immutable resource that references a container image which is run to completion.", +"id": "Execution", +"properties": { +"apiVersion": { +"description": "Optional. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values.", +"type": "string" +}, +"kind": { +"description": "Optional. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase.", +"type": "string" +}, +"metadata": { +"$ref": "ObjectMeta", +"description": "Optional. Standard object's metadata." +}, +"spec": { +"$ref": "ExecutionSpec", +"description": "Optional. Specification of the desired behavior of an execution." +}, +"status": { +"$ref": "ExecutionStatus", +"description": "Output only. Current status of an execution.", +"readOnly": true +} +}, +"type": "object" +}, +"ExecutionReference": { +"description": "Reference to an Execution. Use /Executions.GetExecution with the given name to get full execution including the latest status.", +"id": "ExecutionReference", +"properties": { +"completionStatus": { +"description": "Optional. Status for the execution completion.", +"enum": [ +"COMPLETION_STATUS_UNSPECIFIED", +"EXECUTION_SUCCEEDED", +"EXECUTION_FAILED", +"EXECUTION_RUNNING", +"EXECUTION_PENDING", +"EXECUTION_CANCELLED" +], +"enumDescriptions": [ +"The default value. This value is used if the state is omitted.", +"Job execution has succeeded.", +"Job execution has failed.", +"Job execution is running normally.", +"Waiting for backing resources to be provisioned.", +"Job execution has been cancelled by the user." +], +"type": "string" +}, +"completionTimestamp": { +"description": "Optional. Completion timestamp of the execution.", +"format": "google-datetime", +"type": "string" +}, +"creationTimestamp": { +"description": "Optional. Creation timestamp of the execution.", +"format": "google-datetime", +"type": "string" +}, +"deletionTimestamp": { +"description": "Optional. The read-only soft deletion timestamp of the execution.", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "Optional. Name of the execution.", +"type": "string" +} +}, +"type": "object" +}, +"ExecutionSpec": { +"description": "ExecutionSpec describes how the execution will look.", +"id": "ExecutionSpec", +"properties": { +"parallelism": { +"description": "Optional. Specifies the maximum desired number of tasks the execution should run at given time. Must be <= task_count. When the job is run, if this field is 0 or unset, the maximum possible value will be used for that execution. The actual number of tasks running in steady state will be less than this number when there are fewer tasks waiting to be completed, i.e. when the work left to do is less than max parallelism.", +"format": "int32", +"type": "integer" +}, +"taskCount": { +"description": "Optional. Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution. Defaults to 1.", +"format": "int32", +"type": "integer" +}, +"template": { +"$ref": "TaskTemplateSpec", +"description": "Optional. The template used to create tasks for this execution." +} +}, +"type": "object" +}, +"ExecutionStatus": { +"description": "ExecutionStatus represents the current state of an Execution.", +"id": "ExecutionStatus", +"properties": { +"cancelledCount": { +"description": "Optional. The number of tasks which reached phase Cancelled.", +"format": "int32", +"type": "integer" +}, +"completionTime": { +"description": "Optional. Represents the time that the execution was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. +optional", +"format": "google-datetime", +"type": "string" +}, +"conditions": { +"description": "Optional. Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. Execution-specific conditions include: * `ResourcesAvailable`: `True` when underlying resources have been provisioned. * `Started`: `True` when the execution has started to execute. * `Completed`: `True` when the execution has succeeded. `False` when the execution has failed.", +"items": { +"$ref": "GoogleCloudRunV1Condition" +}, +"type": "array" +}, +"failedCount": { +"description": "Optional. The number of tasks which reached phase Failed.", +"format": "int32", +"type": "integer" +}, +"logUri": { +"description": "Optional. URI where logs for this execution can be found in Cloud Console.", +"type": "string" +}, +"observedGeneration": { +"description": "Optional. The 'generation' of the execution that was last processed by the controller.", +"format": "int32", +"type": "integer" +}, +"retriedCount": { +"description": "Optional. The number of tasks which have retried at least once.", +"format": "int32", +"type": "integer" +}, +"runningCount": { +"description": "Optional. The number of actively running tasks.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Optional. Represents the time that the execution started to run. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", +"format": "google-datetime", +"type": "string" +}, +"succeededCount": { +"description": "Optional. The number of tasks which reached phase Succeeded.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ExecutionTemplateSpec": { +"description": "ExecutionTemplateSpec describes the metadata and spec an Execution should have when created from a job.", +"id": "ExecutionTemplateSpec", +"properties": { +"metadata": { +"$ref": "ObjectMeta", +"description": "Optional. Optional metadata for this Execution, including labels and annotations. The following annotation keys set properties of the created execution: * `run.googleapis.com/cloudsql-instances` sets Cloud SQL connections. Multiple values should be comma separated. * `run.googleapis.com/vpc-access-connector` sets a Serverless VPC Access connector. * `run.googleapis.com/vpc-access-egress` sets VPC egress. Supported values are `all-traffic`, `all` (deprecated), and `private-ranges-only`. `all-traffic` and `all` provide the same functionality. `all` is deprecated but will continue to be supported. Prefer `all-traffic`." +}, +"spec": { +"$ref": "ExecutionSpec", +"description": "Required. ExecutionSpec holds the desired configuration for executions of this job." +} +}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GRPCAction": { +"description": "GRPCAction describes an action involving a GRPC port.", +"id": "GRPCAction", +"properties": { +"port": { +"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", +"format": "int32", +"type": "integer" +}, +"service": { +"description": "Service is the name of the service to place in the gRPC HealthCheckRequest. If this is not specified, the default behavior is defined by gRPC.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRunV1Condition": { +"description": "Conditions show the status of reconciliation progress on a given resource. Most resource use a top-level condition type \"Ready\" or \"Completed\" to show overall status with other conditions to checkpoint each stage of reconciliation. Note that if metadata.Generation does not equal status.ObservedGeneration, the conditions shown may not be relevant for the current spec.", +"id": "GoogleCloudRunV1Condition", +"properties": { +"lastTransitionTime": { +"description": "Optional. Last time the condition transitioned from one status to another.", +"format": "google-datetime", +"type": "string" +}, +"message": { +"description": "Optional. Human readable message indicating details about the current status.", +"type": "string" +}, +"reason": { +"description": "Optional. One-word CamelCase reason for the condition's last transition. These are intended to be stable, unique values which the client may use to trigger error handling logic, whereas messages which may be changed later by the server.", +"type": "string" +}, +"severity": { +"description": "Optional. How to interpret this condition. One of Error, Warning, or Info. Conditions of severity Info do not contribute to resource readiness.", +"type": "string" +}, +"status": { +"description": "Status of the condition, one of True, False, Unknown.", +"type": "string" +}, +"type": { +"description": "type is used to communicate the status of the reconciliation process. Types common to all resources include: * \"Ready\" or \"Completed\": True when the Resource is ready.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1ApprovalConfig": { +"description": "ApprovalConfig describes configuration for manual approval of a build.", +"id": "GoogleDevtoolsCloudbuildV1ApprovalConfig", +"properties": { +"approvalRequired": { +"description": "Whether or not approval is needed. If this is set on a build, it will become pending when created, and will need to be explicitly approved to start.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1ApprovalResult": { +"description": "ApprovalResult describes the decision and associated metadata of a manual approval of a build.", +"id": "GoogleDevtoolsCloudbuildV1ApprovalResult", +"properties": { +"approvalTime": { +"description": "Output only. The time when the approval decision was made.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"approverAccount": { +"description": "Output only. Email of the user that called the ApproveBuild API to approve or reject a build at the time that the API was called.", +"readOnly": true, +"type": "string" +}, +"comment": { +"description": "Optional. An optional comment for this manual approval result.", +"type": "string" +}, +"decision": { +"description": "Required. The decision of this manual approval.", +"enum": [ +"DECISION_UNSPECIFIED", +"APPROVED", +"REJECTED" +], +"enumDescriptions": [ +"Default enum type. This should not be used.", +"Build is approved.", +"Build is rejected." +], +"type": "string" +}, +"url": { +"description": "Optional. An optional URL tied to this manual approval result. This field is essentially the same as comment, except that it will be rendered by the UI differently. An example use case is a link to an external job that approved this Build.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1ArtifactObjects": { +"description": "Files in the workspace to upload to Cloud Storage upon successful completion of all build steps.", +"id": "GoogleDevtoolsCloudbuildV1ArtifactObjects", +"properties": { +"location": { +"description": "Cloud Storage bucket and optional object path, in the form \"gs://bucket/path/to/somewhere/\". (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Files in the workspace matching any path pattern will be uploaded to Cloud Storage with this location as a prefix.", +"type": "string" +}, +"paths": { +"description": "Path globs used to match files in the build's workspace.", +"items": { +"type": "string" +}, +"type": "array" +}, +"timing": { +"$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing all artifact objects.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1Artifacts": { +"description": "Artifacts produced by a build that should be uploaded upon successful completion of all build steps.", +"id": "GoogleDevtoolsCloudbuildV1Artifacts", +"properties": { +"images": { +"description": "A list of images to be pushed upon the successful completion of all build steps. The images will be pushed using the builder service account's credentials. The digests of the pushed images will be stored in the Build resource's results field. If any of the images fail to be pushed, the build is marked FAILURE.", +"items": { +"type": "string" +}, +"type": "array" +}, +"mavenArtifacts": { +"description": "A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1MavenArtifact" +}, +"type": "array" +}, +"npmPackages": { +"description": "A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1NpmPackage" +}, +"type": "array" +}, +"objects": { +"$ref": "GoogleDevtoolsCloudbuildV1ArtifactObjects", +"description": "A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE." +}, +"pythonPackages": { +"description": "A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1PythonPackage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1Build": { +"description": "A build resource in the Cloud Build API. At a high level, a `Build` describes where to find source code, how to build it (for example, the builder image to run on the source), and where to store the built artifacts. Fields can include the following variables, which will be expanded when the build is created: - $PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the autogenerated ID of the build. - $REPO_NAME: the source repository name specified by RepoSource. - $BRANCH_NAME: the branch name specified by RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.", +"id": "GoogleDevtoolsCloudbuildV1Build", +"properties": { +"approval": { +"$ref": "GoogleDevtoolsCloudbuildV1BuildApproval", +"description": "Output only. Describes this build's approval configuration, status, and result.", +"readOnly": true +}, +"artifacts": { +"$ref": "GoogleDevtoolsCloudbuildV1Artifacts", +"description": "Artifacts produced by the build that should be uploaded upon successful completion of all build steps." +}, +"availableSecrets": { +"$ref": "GoogleDevtoolsCloudbuildV1Secrets", +"description": "Secrets and secret environment variables." +}, +"buildTriggerId": { +"description": "Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. Time at which the request to create the build was received.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"failureInfo": { +"$ref": "GoogleDevtoolsCloudbuildV1FailureInfo", +"description": "Output only. Contains information about the build when status=FAILURE.", +"readOnly": true +}, +"finishTime": { +"description": "Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"gitConfig": { +"$ref": "GoogleDevtoolsCloudbuildV1GitConfig", +"description": "Optional. Configuration for git operations." +}, +"id": { +"description": "Output only. Unique identifier of the build.", +"readOnly": true, +"type": "string" +}, +"images": { +"description": "A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logUrl": { +"description": "Output only. URL to logs for this build in Google Cloud Console.", +"readOnly": true, +"type": "string" +}, +"logsBucket": { +"description": "Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", +"type": "string" +}, +"name": { +"description": "Output only. The 'Build' name with format: `projects/{project}/locations/{location}/builds/{build}`, where {build} is a unique identifier generated by the service.", +"readOnly": true, +"type": "string" +}, +"options": { +"$ref": "GoogleDevtoolsCloudbuildV1BuildOptions", +"description": "Special options for this build." +}, +"projectId": { +"description": "Output only. ID of the project.", +"readOnly": true, +"type": "string" +}, +"queueTtl": { +"description": "TTL in queue for this build. If provided and the build is enqueued longer than this value, the build will expire and the build status will be `EXPIRED`. The TTL starts ticking from create_time.", +"format": "google-duration", +"type": "string" +}, +"results": { +"$ref": "GoogleDevtoolsCloudbuildV1Results", +"description": "Output only. Results of the build.", +"readOnly": true +}, +"secrets": { +"description": "Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is the recommended technique for managing sensitive data with Cloud Build. Use `available_secrets` to configure builds to access secrets from Secret Manager. For instructions, see: https://cloud.google.com/cloud-build/docs/securing-builds/use-secrets", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1Secret" +}, +"type": "array" +}, +"serviceAccount": { +"description": "IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. ", +"type": "string" +}, +"source": { +"$ref": "GoogleDevtoolsCloudbuildV1Source", +"description": "Optional. The location of the source files to build." +}, +"sourceProvenance": { +"$ref": "GoogleDevtoolsCloudbuildV1SourceProvenance", +"description": "Output only. A permanent fixed identifier for source.", +"readOnly": true +}, +"startTime": { +"description": "Output only. Time at which execution of the build was started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. Status of the build.", +"enum": [ +"STATUS_UNKNOWN", +"PENDING", +"QUEUED", +"WORKING", +"SUCCESS", +"FAILURE", +"INTERNAL_ERROR", +"TIMEOUT", +"CANCELLED", +"EXPIRED" +], +"enumDescriptions": [ +"Status of the build is unknown.", +"Build has been created and is pending execution and queuing. It has not been queued.", +"Build or step is queued; work has not yet begun.", +"Build or step is being executed.", +"Build or step finished successfully.", +"Build or step failed to complete successfully.", +"Build or step failed due to an internal cause.", +"Build or step took longer than was allowed.", +"Build or step was canceled by a user.", +"Build was enqueued for longer than the value of `queue_ttl`." +], +"readOnly": true, +"type": "string" +}, +"statusDetail": { +"description": "Output only. Customer-readable message about the current status.", +"readOnly": true, +"type": "string" +}, +"steps": { +"description": "Required. The operations to be performed on the workspace.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1BuildStep" +}, +"type": "array" +}, +"substitutions": { +"additionalProperties": { +"type": "string" +}, +"description": "Substitutions data for `Build` resource.", +"type": "object" +}, +"tags": { +"description": "Tags for annotation of a `Build`. These are not docker tags.", +"items": { +"type": "string" +}, +"type": "array" +}, +"timeout": { +"description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", +"format": "google-duration", +"type": "string" +}, +"timing": { +"additionalProperties": { +"$ref": "GoogleDevtoolsCloudbuildV1TimeSpan" +}, +"description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", +"readOnly": true, +"type": "object" +}, +"warnings": { +"description": "Output only. Non-fatal problems encountered during the execution of the build.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1Warning" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1BuildApproval": { +"description": "BuildApproval describes a build's approval configuration, state, and result.", +"id": "GoogleDevtoolsCloudbuildV1BuildApproval", +"properties": { +"config": { +"$ref": "GoogleDevtoolsCloudbuildV1ApprovalConfig", +"description": "Output only. Configuration for manual approval of this build.", +"readOnly": true +}, +"result": { +"$ref": "GoogleDevtoolsCloudbuildV1ApprovalResult", +"description": "Output only. Result of manual approval for this Build.", +"readOnly": true +}, +"state": { +"description": "Output only. The state of this build's approval.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"APPROVED", +"REJECTED", +"CANCELLED" +], +"enumDescriptions": [ +"Default enum type. This should not be used.", +"Build approval is pending.", +"Build approval has been approved.", +"Build approval has been rejected.", +"Build was cancelled while it was still pending approval." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1BuildOperationMetadata": { +"description": "Metadata for build operations.", +"id": "GoogleDevtoolsCloudbuildV1BuildOperationMetadata", +"properties": { +"build": { +"$ref": "GoogleDevtoolsCloudbuildV1Build", +"description": "The build that the operation is tracking." +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1BuildOptions": { +"description": "Optional arguments to enable specific features of builds.", +"id": "GoogleDevtoolsCloudbuildV1BuildOptions", +"properties": { +"automapSubstitutions": { +"description": "Option to include built-in and custom substitutions as env variables for all build steps.", +"type": "boolean" +}, +"defaultLogsBucketBehavior": { +"description": "Optional. Option to specify how default logs buckets are setup.", +"enum": [ +"DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED", +"REGIONAL_USER_OWNED_BUCKET", +"LEGACY_BUCKET" +], +"enumDescriptions": [ +"Unspecified.", +"Bucket is located in user-owned project in the same region as the build. The builder service account must have access to create and write to Cloud Storage buckets in the build project.", +"Bucket is located in a Google-owned project and is not regionalized." +], +"type": "string" +}, +"diskSizeGb": { +"description": "Requested disk size for the VM that runs the build. Note that this is *NOT* \"disk free\"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 4000GB; builds that request more than the maximum are rejected with an error.", +"format": "int64", +"type": "string" +}, +"dynamicSubstitutions": { +"description": "Option to specify whether or not to apply bash style string operations to the substitutions. NOTE: this is always enabled for triggered builds and cannot be overridden in the build configuration file.", +"type": "boolean" +}, +"env": { +"description": "A list of global environment variable definitions that will exist for all build steps in this build. If a variable is defined in both globally and in a build step, the variable will use the build step value. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"logStreamingOption": { +"description": "Option to define build log streaming behavior to Cloud Storage.", +"enum": [ +"STREAM_DEFAULT", +"STREAM_ON", +"STREAM_OFF" +], +"enumDescriptions": [ +"Service may automatically determine build log streaming behavior.", +"Build logs should be streamed to Cloud Storage.", +"Build logs should not be streamed to Cloud Storage; they will be written when the build is completed." +], +"type": "string" +}, +"logging": { +"description": "Option to specify the logging mode, which determines if and where build logs are stored.", +"enum": [ +"LOGGING_UNSPECIFIED", +"LEGACY", +"GCS_ONLY", +"STACKDRIVER_ONLY", +"CLOUD_LOGGING_ONLY", +"NONE" +], +"enumDeprecated": [ +false, +false, +false, +true, +false, +false +], +"enumDescriptions": [ +"The service determines the logging mode. The default is `LEGACY`. Do not rely on the default logging behavior as it may change in the future.", +"Build logs are stored in Cloud Logging and Cloud Storage.", +"Build logs are stored in Cloud Storage.", +"This option is the same as CLOUD_LOGGING_ONLY.", +"Build logs are stored in Cloud Logging. Selecting this option will not allow [logs streaming](https://cloud.google.com/sdk/gcloud/reference/builds/log).", +"Turn off all logging. No build logs will be captured." +], +"type": "string" +}, +"machineType": { +"description": "Compute Engine machine type on which to run the build.", +"enum": [ +"UNSPECIFIED", +"N1_HIGHCPU_8", +"N1_HIGHCPU_32", +"E2_HIGHCPU_8", +"E2_HIGHCPU_32", +"E2_MEDIUM" +], +"enumDeprecated": [ +false, +true, +true, +false, +false, +false +], +"enumDescriptions": [ +"Standard machine type.", +"Highcpu machine with 8 CPUs.", +"Highcpu machine with 32 CPUs.", +"Highcpu e2 machine with 8 CPUs.", +"Highcpu e2 machine with 32 CPUs.", +"E2 machine with 1 CPU." +], +"type": "string" +}, +"pool": { +"$ref": "GoogleDevtoolsCloudbuildV1PoolOption", +"description": "Optional. Specification for execution on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information." +}, +"requestedVerifyOption": { +"description": "Requested verifiability options.", +"enum": [ +"NOT_VERIFIED", +"VERIFIED" +], +"enumDescriptions": [ +"Not a verifiable build (the default).", +"Build must be verified." +], +"type": "string" +}, +"secretEnv": { +"description": "A list of global environment variables, which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`. These variables will be available to all build steps in this build.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sourceProvenanceHash": { +"description": "Requested hash for SourceProvenance.", +"items": { +"enum": [ +"NONE", +"SHA256", +"MD5", +"SHA512" +], +"enumDescriptions": [ +"No hash requested.", +"Use a sha256 hash.", +"Use a md5 hash.", +"Use a sha512 hash." +], +"type": "string" +}, +"type": "array" +}, +"substitutionOption": { +"description": "Option to specify behavior when there is an error in the substitution checks. NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden in the build configuration file.", +"enum": [ +"MUST_MATCH", +"ALLOW_LOOSE" +], +"enumDescriptions": [ +"Fails the build if error in substitutions checks, like missing a substitution in the template or in the map.", +"Do not fail the build if error in substitutions checks." +], +"type": "string" +}, +"volumes": { +"description": "Global list of volumes to mount for ALL build steps Each volume is created as an empty volume prior to starting the build process. Upon completion of the build, volumes and their contents are discarded. Global volume names and paths cannot conflict with the volumes defined a build step. Using a global volume in a build with only one step is not valid as it is indicative of a build request with an incorrect configuration.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1Volume" +}, +"type": "array" +}, +"workerPool": { +"deprecated": true, +"description": "This field deprecated; please use `pool.name` instead.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1BuildStep": { +"description": "A step in the build pipeline.", +"id": "GoogleDevtoolsCloudbuildV1BuildStep", +"properties": { +"allowExitCodes": { +"description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"allowFailure": { +"description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", +"type": "boolean" +}, +"args": { +"description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", +"items": { +"type": "string" +}, +"type": "array" +}, +"automapSubstitutions": { +"description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", +"type": "boolean" +}, +"dir": { +"description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", +"type": "string" +}, +"entrypoint": { +"description": "Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used.", +"type": "string" +}, +"env": { +"description": "A list of environment variable definitions to be used when running a step. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"exitCode": { +"description": "Output only. Return code from running the step.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"id": { +"description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", +"type": "string" +}, +"name": { +"description": "Required. The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like \"ubuntu\", \"debian\", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step.", +"type": "string" +}, +"pullTiming": { +"$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pulling this build step's builder image only.", +"readOnly": true +}, +"script": { +"description": "A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args.", +"type": "string" +}, +"secretEnv": { +"description": "A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"status": { +"description": "Output only. Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses.", +"enum": [ +"STATUS_UNKNOWN", +"PENDING", +"QUEUED", +"WORKING", +"SUCCESS", +"FAILURE", +"INTERNAL_ERROR", +"TIMEOUT", +"CANCELLED", +"EXPIRED" +], +"enumDescriptions": [ +"Status of the build is unknown.", +"Build has been created and is pending execution and queuing. It has not been queued.", +"Build or step is queued; work has not yet begun.", +"Build or step is being executed.", +"Build or step finished successfully.", +"Build or step failed to complete successfully.", +"Build or step failed due to an internal cause.", +"Build or step took longer than was allowed.", +"Build or step was canceled by a user.", +"Build was enqueued for longer than the value of `queue_ttl`." +], +"readOnly": true, +"type": "string" +}, +"timeout": { +"description": "Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out.", +"format": "google-duration", +"type": "string" +}, +"timing": { +"$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for executing this build step.", +"readOnly": true +}, +"volumes": { +"description": "List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1Volume" +}, +"type": "array" +}, +"waitFor": { +"description": "The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1BuiltImage": { +"description": "An image built by the pipeline.", +"id": "GoogleDevtoolsCloudbuildV1BuiltImage", +"properties": { +"digest": { +"description": "Docker Registry 2.0 digest.", +"type": "string" +}, +"name": { +"description": "Name used to push the container image to Google Container Registry, as presented to `docker push`.", +"type": "string" +}, +"pushTiming": { +"$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing the specified image.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1ConnectedRepository": { +"description": "Location of the source in a 2nd-gen Google Cloud Build repository resource.", +"id": "GoogleDevtoolsCloudbuildV1ConnectedRepository", +"properties": { +"dir": { +"description": "Optional. Directory, relative to the source root, in which to run the build.", +"type": "string" +}, +"repository": { +"description": "Required. Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`.", +"type": "string" +}, +"revision": { +"description": "Required. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1DeveloperConnectConfig": { +"description": "This config defines the location of a source through Developer Connect.", +"id": "GoogleDevtoolsCloudbuildV1DeveloperConnectConfig", +"properties": { +"dir": { +"description": "Required. Directory, relative to the source root, in which to run the build.", +"type": "string" +}, +"gitRepositoryLink": { +"description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`.", +"type": "string" +}, +"revision": { +"description": "Required. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1FailureInfo": { +"description": "A fatal problem encountered during the execution of the build.", +"id": "GoogleDevtoolsCloudbuildV1FailureInfo", +"properties": { +"detail": { +"description": "Explains the failure issue in more detail using hard-coded text.", +"type": "string" +}, +"type": { +"description": "The name of the failure.", +"enum": [ +"FAILURE_TYPE_UNSPECIFIED", +"PUSH_FAILED", +"PUSH_IMAGE_NOT_FOUND", +"PUSH_NOT_AUTHORIZED", +"LOGGING_FAILURE", +"USER_BUILD_STEP", +"FETCH_SOURCE_FAILED" +], +"enumDescriptions": [ +"Type unspecified", +"Unable to push the image to the repository.", +"Final image not found.", +"Unauthorized push of the final image.", +"Backend logging failures. Should retry.", +"A build step has failed.", +"The source fetching has failed." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1FileHashes": { +"description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", +"id": "GoogleDevtoolsCloudbuildV1FileHashes", +"properties": { +"fileHash": { +"description": "Collection of file hashes.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1Hash" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1GitConfig": { +"description": "GitConfig is a configuration for git operations.", +"id": "GoogleDevtoolsCloudbuildV1GitConfig", +"properties": { +"http": { +"$ref": "GoogleDevtoolsCloudbuildV1HttpConfig", +"description": "Configuration for HTTP related git operations." +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1GitSource": { +"description": "Location of the source in any accessible Git repository.", +"id": "GoogleDevtoolsCloudbuildV1GitSource", +"properties": { +"dir": { +"description": "Optional. Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", +"type": "string" +}, +"revision": { +"description": "Optional. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch.", +"type": "string" +}, +"url": { +"description": "Required. Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1Hash": { +"description": "Container message for hash values.", +"id": "GoogleDevtoolsCloudbuildV1Hash", +"properties": { +"type": { +"description": "The type of hash that was performed.", +"enum": [ +"NONE", +"SHA256", +"MD5", +"SHA512" +], +"enumDescriptions": [ +"No hash requested.", +"Use a sha256 hash.", +"Use a md5 hash.", +"Use a sha512 hash." +], +"type": "string" +}, +"value": { +"description": "The hash value.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1HttpConfig": { +"description": "HttpConfig is a configuration for HTTP related git operations.", +"id": "GoogleDevtoolsCloudbuildV1HttpConfig", +"properties": { +"proxySecretVersionName": { +"description": "SecretVersion resource of the HTTP proxy URL. The Service Account used in the build (either the default Service Account or user-specified Service Account) should have `secretmanager.versions.access` permissions on this secret. The proxy URL should be in format `protocol://@]proxyhost[:port]`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1InlineSecret": { +"description": "Pairs a set of secret environment variables mapped to encrypted values with the Cloud KMS key to use to decrypt the value.", +"id": "GoogleDevtoolsCloudbuildV1InlineSecret", +"properties": { +"envMap": { +"additionalProperties": { +"format": "byte", +"type": "string" +}, +"description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", +"type": "object" +}, +"kmsKeyName": { +"description": "Resource name of Cloud KMS crypto key to decrypt the encrypted value. In format: projects/*/locations/*/keyRings/*/cryptoKeys/*", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1MavenArtifact": { +"description": "A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.", +"id": "GoogleDevtoolsCloudbuildV1MavenArtifact", +"properties": { +"artifactId": { +"description": "Maven `artifactId` value used when uploading the artifact to Artifact Registry.", +"type": "string" +}, +"groupId": { +"description": "Maven `groupId` value used when uploading the artifact to Artifact Registry.", +"type": "string" +}, +"path": { +"description": "Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.", +"type": "string" +}, +"repository": { +"description": "Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.", +"type": "string" +}, +"version": { +"description": "Maven `version` value used when uploading the artifact to Artifact Registry.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1NpmPackage": { +"description": "Npm package to upload to Artifact Registry upon successful completion of all build steps.", +"id": "GoogleDevtoolsCloudbuildV1NpmPackage", +"properties": { +"packagePath": { +"description": "Path to the package.json. e.g. workspace/path/to/package", +"type": "string" +}, +"repository": { +"description": "Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1PoolOption": { +"description": "Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information.", +"id": "GoogleDevtoolsCloudbuildV1PoolOption", +"properties": { +"name": { +"description": "The `WorkerPool` resource to execute the build on. You must have `cloudbuild.workerpools.use` on the project hosting the WorkerPool. Format projects/{project}/locations/{location}/workerPools/{workerPoolId}", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1PythonPackage": { +"description": "Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.", +"id": "GoogleDevtoolsCloudbuildV1PythonPackage", +"properties": { +"paths": { +"description": "Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file.", +"items": { +"type": "string" +}, +"type": "array" +}, +"repository": { +"description": "Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1RepoSource": { +"description": "Location of the source in a Google Cloud Source Repository.", +"id": "GoogleDevtoolsCloudbuildV1RepoSource", +"properties": { +"branchName": { +"description": "Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", +"type": "string" +}, +"commitSha": { +"description": "Explicit commit SHA to build.", +"type": "string" +}, +"dir": { +"description": "Optional. Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", +"type": "string" +}, +"invertRegex": { +"description": "Optional. Only trigger a build if the revision regex does NOT match the revision regex.", +"type": "boolean" +}, +"projectId": { +"description": "Optional. ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed.", +"type": "string" +}, +"repoName": { +"description": "Required. Name of the Cloud Source Repository.", +"type": "string" +}, +"substitutions": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Substitutions to use in a triggered build. Should only be used with RunBuildTrigger", +"type": "object" +}, +"tagName": { +"description": "Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1Results": { +"description": "Artifacts created by the build pipeline.", +"id": "GoogleDevtoolsCloudbuildV1Results", +"properties": { +"artifactManifest": { +"description": "Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", +"type": "string" +}, +"artifactTiming": { +"$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Time to push all non-container artifacts to Cloud Storage." +}, +"buildStepImages": { +"description": "List of build step digests, in the order corresponding to build step indices.", +"items": { +"type": "string" +}, +"type": "array" +}, +"buildStepOutputs": { +"description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored. Note that the `$BUILDER_OUTPUT` variable is read-only and can't be substituted.", +"items": { +"format": "byte", +"type": "string" +}, +"type": "array" +}, +"images": { +"description": "Container images that were built as a part of the build.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1BuiltImage" +}, +"type": "array" +}, +"mavenArtifacts": { +"description": "Maven artifacts uploaded to Artifact Registry at the end of the build.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1UploadedMavenArtifact" +}, +"type": "array" +}, +"npmPackages": { +"description": "Npm packages uploaded to Artifact Registry at the end of the build.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1UploadedNpmPackage" +}, +"type": "array" +}, +"numArtifacts": { +"description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", +"format": "int64", +"type": "string" +}, +"pythonPackages": { +"description": "Python artifacts uploaded to Artifact Registry at the end of the build.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1UploadedPythonPackage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1Secret": { +"description": "Pairs a set of secret environment variables containing encrypted values with the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `available_secrets` instead of using `kmsKeyName` with `secret`. For instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/use-encrypted-credentials.", +"id": "GoogleDevtoolsCloudbuildV1Secret", +"properties": { +"kmsKeyName": { +"description": "Cloud KMS key name to use to decrypt these envs.", +"type": "string" +}, +"secretEnv": { +"additionalProperties": { +"format": "byte", +"type": "string" +}, +"description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1SecretManagerSecret": { +"description": "Pairs a secret environment variable with a SecretVersion in Secret Manager.", +"id": "GoogleDevtoolsCloudbuildV1SecretManagerSecret", +"properties": { +"env": { +"description": "Environment variable name to associate with the secret. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step.", +"type": "string" +}, +"versionName": { +"description": "Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1Secrets": { +"description": "Secrets and secret environment variables.", +"id": "GoogleDevtoolsCloudbuildV1Secrets", +"properties": { +"inline": { +"description": "Secrets encrypted with KMS key and the associated secret environment variable.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1InlineSecret" +}, +"type": "array" +}, +"secretManager": { +"description": "Secrets in Secret Manager and associated secret environment variable.", +"items": { +"$ref": "GoogleDevtoolsCloudbuildV1SecretManagerSecret" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1Source": { +"description": "Location of the source in a supported storage service.", +"id": "GoogleDevtoolsCloudbuildV1Source", +"properties": { +"connectedRepository": { +"$ref": "GoogleDevtoolsCloudbuildV1ConnectedRepository", +"description": "Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource." +}, +"developerConnectConfig": { +"$ref": "GoogleDevtoolsCloudbuildV1DeveloperConnectConfig", +"description": "If provided, get the source from this Developer Connect config." +}, +"gitSource": { +"$ref": "GoogleDevtoolsCloudbuildV1GitSource", +"description": "If provided, get the source from this Git repository." +}, +"repoSource": { +"$ref": "GoogleDevtoolsCloudbuildV1RepoSource", +"description": "If provided, get the source from this location in a Cloud Source Repository." +}, +"storageSource": { +"$ref": "GoogleDevtoolsCloudbuildV1StorageSource", +"description": "If provided, get the source from this location in Cloud Storage." +}, +"storageSourceManifest": { +"$ref": "GoogleDevtoolsCloudbuildV1StorageSourceManifest", +"description": "If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1SourceProvenance": { +"description": "Provenance of the source. Ways to find the original source, or verify that some source was used for this build.", +"id": "GoogleDevtoolsCloudbuildV1SourceProvenance", +"properties": { +"fileHashes": { +"additionalProperties": { +"$ref": "GoogleDevtoolsCloudbuildV1FileHashes" +}, +"description": "Output only. Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. Note that `FileHashes` will only be populated if `BuildOptions` has requested a `SourceProvenanceHash`. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (`.tar.gz`), the `FileHash` will be for the single path to that file.", +"readOnly": true, +"type": "object" +}, +"resolvedConnectedRepository": { +"$ref": "GoogleDevtoolsCloudbuildV1ConnectedRepository", +"description": "Output only. A copy of the build's `source.connected_repository`, if exists, with any revisions resolved.", +"readOnly": true +}, +"resolvedGitSource": { +"$ref": "GoogleDevtoolsCloudbuildV1GitSource", +"description": "Output only. A copy of the build's `source.git_source`, if exists, with any revisions resolved.", +"readOnly": true +}, +"resolvedRepoSource": { +"$ref": "GoogleDevtoolsCloudbuildV1RepoSource", +"description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." +}, +"resolvedStorageSource": { +"$ref": "GoogleDevtoolsCloudbuildV1StorageSource", +"description": "A copy of the build's `source.storage_source`, if exists, with any generations resolved." +}, +"resolvedStorageSourceManifest": { +"$ref": "GoogleDevtoolsCloudbuildV1StorageSourceManifest", +"description": "A copy of the build's `source.storage_source_manifest`, if exists, with any revisions resolved. This feature is in Preview." +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1StorageSource": { +"description": "Location of the source in an archive file in Cloud Storage.", +"id": "GoogleDevtoolsCloudbuildV1StorageSource", +"properties": { +"bucket": { +"description": "Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", +"type": "string" +}, +"generation": { +"description": "Optional. Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Required. Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", +"type": "string" +}, +"sourceFetcher": { +"description": "Optional. Option to specify the tool to fetch the source file for the build.", +"enum": [ +"SOURCE_FETCHER_UNSPECIFIED", +"GSUTIL", +"GCS_FETCHER" +], +"enumDescriptions": [ +"Unspecified defaults to GSUTIL.", +"Use the \"gsutil\" tool to download the source file.", +"Use the Cloud Storage Fetcher tool to download the source file." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1StorageSourceManifest": { +"description": "Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", +"id": "GoogleDevtoolsCloudbuildV1StorageSourceManifest", +"properties": { +"bucket": { +"description": "Required. Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", +"type": "string" +}, +"generation": { +"description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Required. Cloud Storage object containing the source manifest. This object must be a JSON file.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1TimeSpan": { +"description": "Start and end times for a build execution phase.", +"id": "GoogleDevtoolsCloudbuildV1TimeSpan", +"properties": { +"endTime": { +"description": "End of time span.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Start of time span.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1UploadedMavenArtifact": { +"description": "A Maven artifact uploaded using the MavenArtifact directive.", +"id": "GoogleDevtoolsCloudbuildV1UploadedMavenArtifact", +"properties": { +"fileHashes": { +"$ref": "GoogleDevtoolsCloudbuildV1FileHashes", +"description": "Hash types and values of the Maven Artifact." +}, +"pushTiming": { +"$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing the specified artifact.", +"readOnly": true +}, +"uri": { +"description": "URI of the uploaded artifact.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1UploadedNpmPackage": { +"description": "An npm package uploaded to Artifact Registry using the NpmPackage directive.", +"id": "GoogleDevtoolsCloudbuildV1UploadedNpmPackage", +"properties": { +"fileHashes": { +"$ref": "GoogleDevtoolsCloudbuildV1FileHashes", +"description": "Hash types and values of the npm package." +}, +"pushTiming": { +"$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing the specified artifact.", +"readOnly": true +}, +"uri": { +"description": "URI of the uploaded npm package.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1UploadedPythonPackage": { +"description": "Artifact uploaded using the PythonPackage directive.", +"id": "GoogleDevtoolsCloudbuildV1UploadedPythonPackage", +"properties": { +"fileHashes": { +"$ref": "GoogleDevtoolsCloudbuildV1FileHashes", +"description": "Hash types and values of the Python Artifact." +}, +"pushTiming": { +"$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", +"description": "Output only. Stores timing information for pushing the specified artifact.", +"readOnly": true +}, +"uri": { +"description": "URI of the uploaded artifact.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1Volume": { +"description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution.", +"id": "GoogleDevtoolsCloudbuildV1Volume", +"properties": { +"name": { +"description": "Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps.", +"type": "string" +}, +"path": { +"description": "Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsCloudbuildV1Warning": { +"description": "A non-fatal problem encountered during the execution of the build.", +"id": "GoogleDevtoolsCloudbuildV1Warning", +"properties": { +"priority": { +"description": "The priority for this warning.", +"enum": [ +"PRIORITY_UNSPECIFIED", +"INFO", +"WARNING", +"ALERT" +], +"enumDescriptions": [ +"Should not be used.", +"e.g. deprecation warnings and alternative feature highlights.", +"e.g. automated detection of possible issues with the build.", +"e.g. alerts that a feature used in the build is pending removal" +], +"type": "string" +}, +"text": { +"description": "Explanation of the warning generated.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunningListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunningListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "GoogleLongrunningOperation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunningOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunningOperation", +"properties": { +"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": { +"$ref": "GoogleRpcStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleLongrunningWaitOperationRequest": { +"description": "The request message for Operations.WaitOperation.", +"id": "GoogleLongrunningWaitOperationRequest", +"properties": { +"timeout": { +"description": "The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleRpcStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "GoogleRpcStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"HTTPGetAction": { +"description": "HTTPGetAction describes an action based on HTTP Get requests.", +"id": "HTTPGetAction", +"properties": { +"host": { +"description": "Not supported by Cloud Run.", +"type": "string" +}, +"httpHeaders": { +"description": "Custom headers to set in the request. HTTP allows repeated headers.", +"items": { +"$ref": "HTTPHeader" +}, +"type": "array" +}, +"path": { +"description": "Path to access on the HTTP server.", +"type": "string" +}, +"port": { +"description": "Port number to access on the container. Number must be in the range 1 to 65535.", +"format": "int32", +"type": "integer" +}, +"scheme": { +"description": "Not supported by Cloud Run.", +"type": "string" +} +}, +"type": "object" +}, +"HTTPHeader": { +"description": "HTTPHeader describes a custom header to be used in HTTP probes", +"id": "HTTPHeader", +"properties": { +"name": { +"description": "Required. The header field name", +"type": "string" +}, +"value": { +"description": "The header field value", +"type": "string" +} +}, +"type": "object" +}, +"Job": { +"description": "Job represents the configuration of a single job, which references a container image which is run to completion.", +"id": "Job", +"properties": { +"apiVersion": { +"description": "Optional. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values.", +"type": "string" +}, +"kind": { +"description": "Optional. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase.", +"type": "string" +}, +"metadata": { +"$ref": "ObjectMeta", +"description": "Optional. Standard object's metadata." +}, +"spec": { +"$ref": "JobSpec", +"description": "Optional. Specification of the desired behavior of a job." +}, +"status": { +"$ref": "JobStatus", +"description": "Output only. Current status of a job.", +"readOnly": true +} +}, +"type": "object" +}, +"JobSpec": { +"description": "JobSpec describes how the job will look.", +"id": "JobSpec", +"properties": { +"runExecutionToken": { +"description": "A unique string used as a suffix for creating a new execution. The Job will become ready when the execution is successfully completed. The sum of job name and token length must be fewer than 63 characters.", +"type": "string" +}, +"startExecutionToken": { +"description": "A unique string used as a suffix for creating a new execution. The Job will become ready when the execution is successfully started. The sum of job name and token length must be fewer than 63 characters.", +"type": "string" +}, +"template": { +"$ref": "ExecutionTemplateSpec", +"description": "Optional. Describes the execution that will be created when running a job." +} +}, +"type": "object" +}, +"JobStatus": { +"description": "JobStatus represents the current state of a Job.", +"id": "JobStatus", +"properties": { +"conditions": { +"description": "Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. Job-specific conditions include: * `Ready`: `True` when the job is ready to be executed.", +"items": { +"$ref": "GoogleCloudRunV1Condition" +}, +"type": "array" +}, +"executionCount": { +"description": "Number of executions created for this job.", +"format": "int32", +"type": "integer" +}, +"latestCreatedExecution": { +"$ref": "ExecutionReference", +"description": "A pointer to the most recently created execution for this job. This is set regardless of the eventual state of the execution." +}, +"observedGeneration": { +"description": "The 'generation' of the job that was last processed by the controller.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"KeyToPath": { +"description": "Maps a string key to a path within a volume.", +"id": "KeyToPath", +"properties": { +"key": { +"description": "The Cloud Secret Manager secret version. Can be 'latest' for the latest value, or an integer or a secret alias for a specific version. The key to project.", +"type": "string" +}, +"mode": { +"description": "(Optional) Mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", +"format": "int32", +"type": "integer" +}, +"path": { +"description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", +"type": "string" +} +}, +"type": "object" +}, +"ListAuthorizedDomainsResponse": { +"description": "A list of Authorized Domains.", +"id": "ListAuthorizedDomainsResponse", +"properties": { +"domains": { +"description": "The authorized domains belonging to the user.", +"items": { +"$ref": "AuthorizedDomain" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token for fetching the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListConfigurationsResponse": { +"description": "ListConfigurationsResponse is a list of Configuration resources.", +"id": "ListConfigurationsResponse", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"serving.knative.dev/v1\".", +"type": "string" +}, +"items": { +"description": "List of Configurations.", +"items": { +"$ref": "Configuration" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this resource, in this case \"ConfigurationList\".", +"type": "string" +}, +"metadata": { +"$ref": "ListMeta", +"description": "Metadata associated with this Configuration list." +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListDomainMappingsResponse": { +"description": "ListDomainMappingsResponse is a list of DomainMapping resources.", +"id": "ListDomainMappingsResponse", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"domains.cloudrun.com/v1\".", +"type": "string" +}, +"items": { +"description": "List of DomainMappings.", +"items": { +"$ref": "DomainMapping" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this resource, in this case \"DomainMappingList\".", +"type": "string" +}, +"metadata": { +"$ref": "ListMeta", +"description": "Metadata associated with this DomainMapping list." +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListExecutionsResponse": { +"description": "ListExecutionsResponse is a list of Executions resources.", +"id": "ListExecutionsResponse", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"run.googleapis.com/v1\".", +"type": "string" +}, +"items": { +"description": "List of Executions.", +"items": { +"$ref": "Execution" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this resource, in this case \"ExecutionsList\".", +"type": "string" +}, +"metadata": { +"$ref": "ListMeta", +"description": "Metadata associated with this executions list." +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListJobsResponse": { +"description": "ListJobsResponse is a list of Jobs resources.", +"id": "ListJobsResponse", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"run.googleapis.com/v1\".", +"type": "string" +}, +"items": { +"description": "List of Jobs.", +"items": { +"$ref": "Job" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this resource, in this case \"JobsList\".", +"type": "string" +}, +"metadata": { +"$ref": "ListMeta", +"description": "Metadata associated with this jobs list." +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListMeta": { +"description": "Metadata for synthetic resources like List. In Cloud Run, all List Resources Responses will have a ListMeta instead of ObjectMeta.", +"id": "ListMeta", +"properties": { +"continue": { +"description": "Continuation token is a value emitted when the count of items is larger than the user/system limit. To retrieve the next page of items, pass the value of `continue` as the next request's `page_token`.", +"type": "string" +}, +"resourceVersion": { +"description": "Opaque string that identifies the server's internal version of this object. It can be used by clients to determine when objects have changed. If the message is passed back to the server, it must be left unmodified.", +"type": "string" +}, +"selfLink": { +"description": "URL representing this object.", +"type": "string" +} +}, +"type": "object" +}, +"ListRevisionsResponse": { +"description": "ListRevisionsResponse is a list of Revision resources.", +"id": "ListRevisionsResponse", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"serving.knative.dev/v1\".", +"type": "string" +}, +"items": { +"description": "List of Revisions.", +"items": { +"$ref": "Revision" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this resource, in this case \"RevisionList\".", +"type": "string" +}, +"metadata": { +"$ref": "ListMeta", +"description": "Metadata associated with this revision list." +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRoutesResponse": { +"description": "ListRoutesResponse is a list of Route resources.", +"id": "ListRoutesResponse", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"serving.knative.dev/v1\".", +"type": "string" +}, +"items": { +"description": "List of Routes.", +"items": { +"$ref": "Route" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this resource, in this case always \"RouteList\".", +"type": "string" +}, +"metadata": { +"$ref": "ListMeta", +"description": "Metadata associated with this Route list." +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServicesResponse": { +"description": "A list of Service resources.", +"id": "ListServicesResponse", +"properties": { +"apiVersion": { +"description": "The API version for this call; returns \"serving.knative.dev/v1\".", +"type": "string" +}, +"items": { +"description": "List of Services.", +"items": { +"$ref": "Service" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this resource; returns \"ServiceList\".", +"type": "string" +}, +"metadata": { +"$ref": "ListMeta", +"description": "Metadata associated with this Service list." +}, +"unreachable": { +"description": "For calls against the global endpoint, returns the list of Cloud locations that could not be reached. For regional calls, this field is not used.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTasksResponse": { +"description": "ListTasksResponse is a list of Tasks resources.", +"id": "ListTasksResponse", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"run.googleapis.com/v1\".", +"type": "string" +}, +"items": { +"description": "List of Tasks.", +"items": { +"$ref": "Task" +}, +"type": "array" +}, +"kind": { +"description": "The kind of this resource, in this case \"TasksList\".", +"type": "string" +}, +"metadata": { +"$ref": "ListMeta", +"description": "Metadata associated with this tasks list." +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"LocalObjectReference": { +"description": "Not supported by Cloud Run. LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", +"id": "LocalObjectReference", +"properties": { +"name": { +"description": "Name of the referent.", +"type": "string" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"NFSVolumeSource": { +"description": "Represents a persistent volume that will be mounted using NFS. This volume will be shared between all instances of the resource and data will not be deleted when the instance is shut down.", +"id": "NFSVolumeSource", +"properties": { +"path": { +"description": "Path that is exported by the NFS server.", +"type": "string" +}, +"readOnly": { +"description": "If true, mount the NFS volume as read only. Defaults to false.", +"type": "boolean" +}, +"server": { +"description": "Hostname or IP address of the NFS server.", +"type": "string" +} +}, +"type": "object" +}, +"ObjectMeta": { +"description": "google.cloud.run.meta.v1.ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", +"id": "ObjectMeta", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. In Cloud Run, annotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted, and the accepted annotations will be different depending on the resource type. * `autoscaling.knative.dev/maxScale`: Revision. * `autoscaling.knative.dev/minScale`: Revision. * `run.googleapis.com/base-images`: Service, Revision. * `run.googleapis.com/binary-authorization-breakglass`: Service, Job, * `run.googleapis.com/binary-authorization`: Service, Job, Execution. * `run.googleapis.com/build-base-image`: Service. * `run.googleapis.com/build-enable-automatic-updates`: Service. * `run.googleapis.com/build-environment-variables`: Service. * `run.googleapis.com/build-function-target`: Service. * `run.googleapis.com/build-id`: Service. * `run.googleapis.com/build-image-uri`: Service. * `run.googleapis.com/build-name`: Service. * `run.googleapis.com/build-service-account`: Service. * `run.googleapis.com/build-source-location`: Service. * `run.googleapis.com/build-worker-pool`: Service. * `run.googleapis.com/client-name`: All resources. * `run.googleapis.com/cloudsql-instances`: Revision, Execution. * `run.googleapis.com/container-dependencies`: Revision . * `run.googleapis.com/cpu-throttling`: Revision. * `run.googleapis.com/custom-audiences`: Service. * `run.googleapis.com/default-url-disabled`: Service. * `run.googleapis.com/description`: Service. * `run.googleapis.com/encryption-key-shutdown-hours`: Revision * `run.googleapis.com/encryption-key`: Revision, Execution. * `run.googleapis.com/execution-environment`: Revision, Execution. * `run.googleapis.com/gc-traffic-tags`: Service. * `run.googleapis.com/health-check-disabled`: Revision. * `run.googleapis.com/ingress`: Service. * `run.googleapis.com/launch-stage`: Service, Job. * `run.googleapis.com/minScale`: Service * `run.googleapis.com/network-interfaces`: Revision, Execution. * `run.googleapis.com/post-key-revocation-action-type`: Revision. * `run.googleapis.com/secrets`: Revision, Execution. * `run.googleapis.com/secure-session-agent`: Revision. * `run.googleapis.com/sessionAffinity`: Revision. * `run.googleapis.com/startup-cpu-boost`: Revision. * `run.googleapis.com/vpc-access-connector`: Revision, Execution. * `run.googleapis.com/vpc-access-egress`: Revision, Execution.", +"type": "object" +}, +"clusterName": { +"description": "Not supported by Cloud Run", +"type": "string" +}, +"creationTimestamp": { +"description": "UTC timestamp representing the server time when this object was created.", +"format": "google-datetime", +"type": "string" +}, +"deletionGracePeriodSeconds": { +"description": "Not supported by Cloud Run", +"format": "int32", +"type": "integer" +}, +"deletionTimestamp": { +"description": "The read-only soft deletion timestamp for this resource. In Cloud Run, users are not able to set this field. Instead, they must call the corresponding Delete API.", +"format": "google-datetime", +"type": "string" +}, +"finalizers": { +"description": "Not supported by Cloud Run", +"items": { +"type": "string" +}, +"type": "array" +}, +"generateName": { +"description": "Not supported by Cloud Run", +"type": "string" +}, +"generation": { +"description": "A system-provided sequence number representing a specific generation of the desired state.", +"format": "int32", +"type": "integer" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and routes.", +"type": "object" +}, +"name": { +"description": "Required. The name of the resource. Name is required when creating top-level resources (Service, Job), must be unique within a Cloud Run project/region, and cannot be changed once created.", +"type": "string" +}, +"namespace": { +"description": "Required. Defines the space within each name must be unique within a Cloud Run region. In Cloud Run, it must be project ID or number.", +"type": "string" +}, +"ownerReferences": { +"description": "Not supported by Cloud Run", +"items": { +"$ref": "OwnerReference" +}, +"type": "array" +}, +"resourceVersion": { +"description": "Opaque, system-generated value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection.", +"type": "string" +}, +"selfLink": { +"description": "URL representing this object.", +"type": "string" +}, +"uid": { +"description": "Unique, system-generated identifier for this resource.", +"type": "string" +} +}, +"type": "object" +}, +"Overrides": { +"description": "RunJob Overrides that contains Execution fields to be overridden on the go.", +"id": "Overrides", +"properties": { +"containerOverrides": { +"description": "Per container override specification.", +"items": { +"$ref": "ContainerOverride" +}, +"type": "array" +}, +"taskCount": { +"description": "The desired number of tasks the execution should run. Will replace existing task_count value.", +"format": "int32", +"type": "integer" +}, +"timeoutSeconds": { +"description": "Duration in seconds the task may be active before the system will actively try to mark it failed and kill associated containers. Will replace existing timeout_seconds value.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"OwnerReference": { +"description": "This is not supported or used by Cloud Run.", +"id": "OwnerReference", +"properties": { +"apiVersion": { +"description": "This is not supported or used by Cloud Run.", +"type": "string" +}, +"blockOwnerDeletion": { +"description": "This is not supported or used by Cloud Run.", +"type": "boolean" +}, +"controller": { +"description": "This is not supported or used by Cloud Run.", +"type": "boolean" +}, +"kind": { +"description": "This is not supported or used by Cloud Run.", +"type": "string" +}, +"name": { +"description": "This is not supported or used by Cloud Run.", +"type": "string" +}, +"uid": { +"description": "This is not supported or used by Cloud Run.", +"type": "string" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Probe": { +"description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", +"id": "Probe", +"properties": { +"exec": { +"$ref": "ExecAction", +"description": "Not supported by Cloud Run." +}, +"failureThreshold": { +"description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", +"format": "int32", +"type": "integer" +}, +"grpc": { +"$ref": "GRPCAction", +"description": "GRPCAction specifies an action involving a GRPC port." +}, +"httpGet": { +"$ref": "HTTPGetAction", +"description": "HTTPGet specifies the http request to perform." +}, +"initialDelaySeconds": { +"description": "Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240.", +"format": "int32", +"type": "integer" +}, +"periodSeconds": { +"description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds.", +"format": "int32", +"type": "integer" +}, +"successThreshold": { +"description": "Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 if set.", +"format": "int32", +"type": "integer" +}, +"tcpSocket": { +"$ref": "TCPSocketAction", +"description": "TCPSocket specifies an action involving a TCP port." +}, +"timeoutSeconds": { +"description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds; if period_seconds is not set, must be less or equal than 10.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ResourceRecord": { +"description": "A DNS resource record.", +"id": "ResourceRecord", +"properties": { +"name": { +"description": "Relative name of the object affected by this record. Only applicable for `CNAME` records. Example: 'www'.", +"type": "string" +}, +"rrdata": { +"description": "Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).", +"type": "string" +}, +"type": { +"description": "Resource record type. Example: `AAAA`.", +"enum": [ +"RECORD_TYPE_UNSPECIFIED", +"A", +"AAAA", +"CNAME" +], +"enumDescriptions": [ +"An unknown resource record.", +"An A resource record. Data is an IPv4 address.", +"An AAAA resource record. Data is an IPv6 address.", +"A CNAME resource record. Data is a domain name to be aliased." +], +"type": "string" +} +}, +"type": "object" +}, +"ResourceRequirements": { +"description": "ResourceRequirements describes the compute resource requirements.", +"id": "ResourceRequirements", +"properties": { +"limits": { +"additionalProperties": { +"type": "string" +}, +"description": "Limits describes the maximum amount of compute resources allowed. Only 'cpu' and 'memory' keys are supported. * For supported 'cpu' values, go to https://cloud.google.com/run/docs/configuring/cpu. * For supported 'memory' values and syntax, go to https://cloud.google.com/run/docs/configuring/memory-limits", +"type": "object" +}, +"requests": { +"additionalProperties": { +"type": "string" +}, +"description": "Requests describes the minimum amount of compute resources required. Only `cpu` and `memory` are supported. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. * For supported 'cpu' values, go to https://cloud.google.com/run/docs/configuring/cpu. * For supported 'memory' values and syntax, go to https://cloud.google.com/run/docs/configuring/memory-limits", +"type": "object" +} +}, +"type": "object" +}, +"Revision": { +"description": "Revision is an immutable snapshot of code and configuration. A revision references a container image. Revisions are created by updates to a Configuration. See also: https://github.com/knative/specs/blob/main/specs/serving/overview.md#revision", +"id": "Revision", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"serving.knative.dev/v1\".", +"type": "string" +}, +"kind": { +"description": "The kind of this resource, in this case \"Revision\".", +"type": "string" +}, +"metadata": { +"$ref": "ObjectMeta", +"description": "Metadata associated with this Revision, including name, namespace, labels, and annotations." +}, +"spec": { +"$ref": "RevisionSpec", +"description": "Spec holds the desired state of the Revision (from the client)." +}, +"status": { +"$ref": "RevisionStatus", +"description": "Status communicates the observed state of the Revision (from the controller)." +} +}, +"type": "object" +}, +"RevisionSpec": { +"description": "RevisionSpec holds the desired state of the Revision (from the client).", +"id": "RevisionSpec", +"properties": { +"containerConcurrency": { +"description": "ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1.", +"format": "int32", +"type": "integer" +}, +"containers": { +"description": "Required. Containers holds the list which define the units of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle.", +"items": { +"$ref": "Container" +}, +"type": "array" +}, +"enableServiceLinks": { +"description": "Not supported by Cloud Run.", +"type": "boolean" +}, +"imagePullSecrets": { +"description": "Not supported by Cloud Run.", +"items": { +"$ref": "LocalObjectReference" +}, +"type": "array" +}, +"nodeSelector": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The Node Selector configuration. Map of selector key to a value which matches a node.", +"type": "object" +}, +"runtimeClassName": { +"description": "Runtime. Leave unset for default.", +"type": "string" +}, +"serviceAccountName": { +"description": "Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account.", +"type": "string" +}, +"timeoutSeconds": { +"description": "TimeoutSeconds holds the max duration the instance is allowed for responding to a request. Cloud Run: defaults to 300 seconds (5 minutes). Maximum allowed value is 3600 seconds (1 hour).", +"format": "int32", +"type": "integer" +}, +"volumes": { +"items": { +"$ref": "Volume" +}, +"type": "array" +} +}, +"type": "object" +}, +"RevisionStatus": { +"description": "RevisionStatus communicates the observed state of the Revision (from the controller).", +"id": "RevisionStatus", +"properties": { +"conditions": { +"description": "Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. As a Revision is being prepared, it will incrementally update conditions. Revision-specific conditions include: * `ResourcesAvailable`: `True` when underlying resources have been provisioned. * `ContainerHealthy`: `True` when the Revision readiness check completes. * `Active`: `True` when the Revision may receive traffic.", +"items": { +"$ref": "GoogleCloudRunV1Condition" +}, +"type": "array" +}, +"desiredReplicas": { +"description": "Output only. The configured number of instances running this revision. For Cloud Run, this only includes instances provisioned using the minScale annotation. It does not include instances created by autoscaling.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"imageDigest": { +"description": "ImageDigest holds the resolved digest for the image specified within .Spec.Container.Image. The digest is resolved during the creation of Revision. This field holds the digest value regardless of whether a tag or digest was originally specified in the Container object.", +"type": "string" +}, +"logUrl": { +"description": "Optional. Specifies the generated logging url for this particular revision based on the revision url template specified in the controller's config.", +"type": "string" +}, +"observedGeneration": { +"description": "ObservedGeneration is the 'Generation' of the Revision that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation, and the Ready condition's status is True or False.", +"format": "int32", +"type": "integer" +}, +"serviceName": { +"description": "Not currently used by Cloud Run.", +"type": "string" +} +}, +"type": "object" +}, +"RevisionTemplate": { +"description": "RevisionTemplateSpec describes the data a revision should have when created from a template.", +"id": "RevisionTemplate", +"properties": { +"metadata": { +"$ref": "ObjectMeta", +"description": "Optional metadata for this Revision, including labels and annotations. Name will be generated by the Configuration. The following annotation keys set properties of the created revision: * `autoscaling.knative.dev/minScale` sets the minimum number of instances. * `autoscaling.knative.dev/maxScale` sets the maximum number of instances. * `run.googleapis.com/cloudsql-instances` sets Cloud SQL connections. Multiple values should be comma separated. * `run.googleapis.com/health-check-disabled`: if true, deploy-time startup probes will not run for this revision. * `run.googleapis.com/vpc-access-connector` sets a Serverless VPC Access connector. * `run.googleapis.com/vpc-access-egress` sets VPC egress. Supported values are `all-traffic`, `all` (deprecated), and `private-ranges-only`. `all-traffic` and `all` provide the same functionality. `all` is deprecated but will continue to be supported. Prefer `all-traffic`." +}, +"spec": { +"$ref": "RevisionSpec", +"description": "RevisionSpec holds the desired state of the Revision (from the client)." +} +}, +"type": "object" +}, +"Route": { +"description": "Route is responsible for configuring ingress over a collection of Revisions. Some of the Revisions a Route distributes traffic over may be specified by referencing the Configuration responsible for creating them; in these cases the Route is additionally responsible for monitoring the Configuration for \"latest ready\" revision changes, and smoothly rolling out latest revisions. Cloud Run currently supports referencing a single Configuration to automatically deploy the \"latest ready\" Revision from that Configuration.", +"id": "Route", +"properties": { +"apiVersion": { +"description": "The API version for this call such as \"serving.knative.dev/v1\".", +"type": "string" +}, +"kind": { +"description": "The kind of this resource, in this case always \"Route\".", +"type": "string" +}, +"metadata": { +"$ref": "ObjectMeta", +"description": "Metadata associated with this Route, including name, namespace, labels, and annotations." +}, +"spec": { +"$ref": "RouteSpec", +"description": "Spec holds the desired state of the Route (from the client)." +}, +"status": { +"$ref": "RouteStatus", +"description": "Status communicates the observed state of the Route (from the controller)." +} +}, +"type": "object" +}, +"RouteSpec": { +"description": "RouteSpec holds the desired state of the Route (from the client).", +"id": "RouteSpec", +"properties": { +"traffic": { +"description": "Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations. Cloud Run currently supports a single configurationName.", +"items": { +"$ref": "TrafficTarget" +}, +"type": "array" +} +}, +"type": "object" +}, +"RouteStatus": { +"description": "RouteStatus communicates the observed state of the Route (from the controller).", +"id": "RouteStatus", +"properties": { +"address": { +"$ref": "Addressable", +"description": "Similar to url, information on where the service is available on HTTP." +}, +"conditions": { +"description": "Conditions communicates information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world.", +"items": { +"$ref": "GoogleCloudRunV1Condition" +}, +"type": "array" +}, +"observedGeneration": { +"description": "ObservedGeneration is the 'Generation' of the Route that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation and the Ready condition's status is True or False. Note that providing a TrafficTarget that has latest_revision=True will result in a Route that does not increment either its metadata.generation or its observedGeneration, as new \"latest ready\" revisions from the Configuration are processed without an update to the Route's spec.", +"format": "int32", +"type": "integer" +}, +"traffic": { +"description": "Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that was last observed.", +"items": { +"$ref": "TrafficTarget" +}, +"type": "array" +}, +"url": { +"description": "URL holds the url that will distribute traffic over the provided traffic targets. It generally has the form: `https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app`", +"type": "string" +} +}, +"type": "object" +}, +"RunJobRequest": { +"description": "Request message for creating a new execution of a job.", +"id": "RunJobRequest", +"properties": { +"overrides": { +"$ref": "Overrides", +"description": "Optional. Overrides existing job configuration for one specific new job execution only, using the specified values to update the job configuration for the new execution." +} +}, +"type": "object" +}, +"SecretEnvSource": { +"description": "Not supported by Cloud Run. SecretEnvSource selects a Secret to populate the environment variables with. The contents of the target Secret's Data field will represent the key-value pairs as environment variables.", +"id": "SecretEnvSource", +"properties": { +"localObjectReference": { +"$ref": "LocalObjectReference", +"deprecated": true, +"description": "This field should not be used directly as it is meant to be inlined directly into the message. Use the \"name\" field instead." +}, +"name": { +"description": "The Secret to select from.", +"type": "string" +}, +"optional": { +"description": "Specify whether the Secret must be defined", +"type": "boolean" +} +}, +"type": "object" +}, +"SecretKeySelector": { +"description": "SecretKeySelector selects a key of a Secret.", +"id": "SecretKeySelector", +"properties": { +"key": { +"description": "Required. A Cloud Secret Manager secret version. Must be 'latest' for the latest version, an integer for a specific version, or a version alias. The key of the secret to select from. Must be a valid secret key.", +"type": "string" +}, +"localObjectReference": { +"$ref": "LocalObjectReference", +"deprecated": true, +"description": "This field should not be used directly as it is meant to be inlined directly into the message. Use the \"name\" field instead." +}, +"name": { +"description": "The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. The name of the secret in the pod's namespace to select from.", +"type": "string" +}, +"optional": { +"description": "Specify whether the Secret or its key must be defined.", +"type": "boolean" +} +}, +"type": "object" +}, +"SecretVolumeSource": { +"description": "A volume representing a secret stored in Google Secret Manager. The secret's value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names.", +"id": "SecretVolumeSource", +"properties": { +"defaultMode": { +"description": "Integer representation of mode bits to use on created files by default. Must be a value between 01 and 0777 (octal). If 0 or not set, it will default to 0444. Directories within the path are not affected by this setting. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", +"format": "int32", +"type": "integer" +}, +"items": { +"description": "A list of secret versions to mount in the volume. If no items are specified, the volume will expose a file with the same name as the secret name. The contents of the file will be the data in the latest version of the secret. If items are specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify both a key and a path.", +"items": { +"$ref": "KeyToPath" +}, +"type": "array" +}, +"optional": { +"description": "Not supported by Cloud Run.", +"type": "boolean" +}, +"secretName": { +"description": "The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Name of the secret in the container's namespace to use.", +"type": "string" +} +}, +"type": "object" +}, +"SecurityContext": { +"description": "Not supported by Cloud Run. SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", +"id": "SecurityContext", +"properties": { +"runAsUser": { +"description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Service": { +"description": "Service acts as a top-level container that manages a set of Routes and Configurations which implement a network service. Service exists to provide a singular abstraction which can be access controlled, reasoned about, and which encapsulates software lifecycle decisions such as rollout policy and team resource ownership. Service acts only as an orchestrator of the underlying Routes and Configurations (much as a kubernetes Deployment orchestrates ReplicaSets). The Service's controller will track the statuses of its owned Configuration and Route, reflecting their statuses and conditions as its own.", +"id": "Service", +"properties": { +"apiVersion": { +"description": "The API version for this call. It must be \"serving.knative.dev/v1\".", +"type": "string" +}, +"kind": { +"description": "The kind of resource. It must be \"Service\".", +"type": "string" +}, +"metadata": { +"$ref": "ObjectMeta", +"description": "Metadata associated with this Service, including name, namespace, labels, and annotations. In Cloud Run, annotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted, and the accepted annotations will be different depending on the resource type. The following Cloud Run-specific annotations are accepted in Service.metadata.annotations. * `run.googleapis.com/binary-authorization-breakglass` * `run.googleapis.com/binary-authorization` * `run.googleapis.com/client-name` * `run.googleapis.com/custom-audiences` * `run.googleapis.com/default-url-disabled` * `run.googleapis.com/description` * `run.googleapis.com/gc-traffic-tags` * `run.googleapis.com/ingress` * `run.googleapis.com/ingress` sets the ingress settings for the Service. See [the ingress settings documentation](/run/docs/securing/ingress) for details on configuring ingress settings. * `run.googleapis.com/ingress-status` is output-only and contains the currently active ingress settings for the Service. `run.googleapis.com/ingress-status` may differ from `run.googleapis.com/ingress` while the system is processing a change to `run.googleapis.com/ingress` or if the system failed to process a change to `run.googleapis.com/ingress`. When the system has processed all changes successfully `run.googleapis.com/ingress-status` and `run.googleapis.com/ingress` are equal." +}, +"spec": { +"$ref": "ServiceSpec", +"description": "Holds the desired state of the Service (from the client)." +}, +"status": { +"$ref": "ServiceStatus", +"description": "Communicates the system-controlled state of the Service." +} +}, +"type": "object" +}, +"ServiceSpec": { +"description": "ServiceSpec holds the desired state of the Route (from the client), which is used to manipulate the underlying Route and Configuration(s).", +"id": "ServiceSpec", +"properties": { +"template": { +"$ref": "RevisionTemplate", +"description": "Holds the latest specification for the Revision to be stamped out." +}, +"traffic": { +"description": "Specifies how to distribute traffic over a collection of Knative Revisions and Configurations to the Service's main URL.", +"items": { +"$ref": "TrafficTarget" +}, +"type": "array" +} +}, +"type": "object" +}, +"ServiceStatus": { +"description": "The current state of the Service. Output only.", +"id": "ServiceStatus", +"properties": { +"address": { +"$ref": "Addressable", +"description": "Similar to url, information on where the service is available on HTTP." +}, +"conditions": { +"description": "Conditions communicate information about ongoing/complete reconciliation processes that bring the `spec` inline with the observed state of the world. Service-specific conditions include: * `ConfigurationsReady`: `True` when the underlying Configuration is ready. * `RoutesReady`: `True` when the underlying Route is ready. * `Ready`: `True` when all underlying resources are ready.", +"items": { +"$ref": "GoogleCloudRunV1Condition" +}, +"type": "array" +}, +"latestCreatedRevisionName": { +"description": "Name of the last revision that was created from this Service's Configuration. It might not be ready yet, for that use LatestReadyRevisionName.", +"type": "string" +}, +"latestReadyRevisionName": { +"description": "Name of the latest Revision from this Service's Configuration that has had its `Ready` condition become `True`.", +"type": "string" +}, +"observedGeneration": { +"description": "Returns the generation last seen by the system. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation and the Ready condition's status is True or False.", +"format": "int32", +"type": "integer" +}, +"traffic": { +"description": "Holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed.", +"items": { +"$ref": "TrafficTarget" +}, +"type": "array" +}, +"url": { +"description": "URL that will distribute traffic over the provided traffic targets. It generally has the form `https://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app`", +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Status": { +"description": "Status is a return value for calls that don't return other objects.", +"id": "Status", +"properties": { +"code": { +"description": "Suggested HTTP return code for this status, 0 if not set.", +"format": "int32", +"type": "integer" +}, +"details": { +"$ref": "StatusDetails", +"description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." +}, +"message": { +"description": "A human-readable description of the status of this operation.", +"type": "string" +}, +"metadata": { +"$ref": "ListMeta", +"description": "Standard list metadata." +}, +"reason": { +"description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", +"type": "string" +}, +"status": { +"description": "Status of the operation. One of: \"Success\" or \"Failure\".", +"type": "string" +} +}, +"type": "object" +}, +"StatusCause": { +"description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", +"id": "StatusCause", +"properties": { +"field": { +"description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Examples: \"name\" - the field \"name\" on the current resource \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", +"type": "string" +}, +"message": { +"description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", +"type": "string" +}, +"reason": { +"description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", +"type": "string" +} +}, +"type": "object" +}, +"StatusDetails": { +"description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", +"id": "StatusDetails", +"properties": { +"causes": { +"description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", +"items": { +"$ref": "StatusCause" +}, +"type": "array" +}, +"group": { +"description": "The group attribute of the resource associated with the status StatusReason.", +"type": "string" +}, +"kind": { +"description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind.", +"type": "string" +}, +"name": { +"description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", +"type": "string" +}, +"retryAfterSeconds": { +"description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", +"format": "int32", +"type": "integer" +}, +"uid": { +"description": "UID of the resource. (when there is a single resource which can be described).", +"type": "string" +} +}, +"type": "object" +}, +"TCPSocketAction": { +"description": "TCPSocketAction describes an action based on opening a socket", +"id": "TCPSocketAction", +"properties": { +"host": { +"description": "Not supported by Cloud Run.", +"type": "string" +}, +"port": { +"description": "Port number to access on the container. Number must be in the range 1 to 65535.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Task": { +"description": "Task represents a single run of a container to completion.", +"id": "Task", +"properties": { +"apiVersion": { +"description": "Optional. APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values.", +"type": "string" +}, +"kind": { +"description": "Optional. Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase.", +"type": "string" +}, +"metadata": { +"$ref": "ObjectMeta", +"description": "Optional. Standard object's metadata." +}, +"spec": { +"$ref": "TaskSpec", +"description": "Optional. Specification of the desired behavior of a task." +}, +"status": { +"$ref": "TaskStatus", +"description": "Output only. Current status of a task.", +"readOnly": true +} +}, +"type": "object" +}, +"TaskAttemptResult": { +"description": "Result of a task attempt.", +"id": "TaskAttemptResult", +"properties": { +"exitCode": { +"description": "Optional. The exit code of this attempt. This may be unset if the container was unable to exit cleanly with a code due to some other failure. See status field for possible failure details.", +"format": "int32", +"type": "integer" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "Optional. The status of this attempt. If the status code is OK, then the attempt succeeded." +} +}, +"type": "object" +}, +"TaskSpec": { +"description": "TaskSpec is a description of a task.", +"id": "TaskSpec", +"properties": { +"containers": { +"description": "Optional. List of containers belonging to the task. We disallow a number of fields on this Container.", +"items": { +"$ref": "Container" +}, +"type": "array" +}, +"maxRetries": { +"description": "Optional. Number of retries allowed per task, before marking this job failed. Defaults to 3.", +"format": "int32", +"type": "integer" +}, +"serviceAccountName": { +"description": "Optional. Email address of the IAM service account associated with the task of a job execution. The service account represents the identity of the running task, and determines what permissions the task has. If not provided, the task will use the project's default service account.", +"type": "string" +}, +"timeoutSeconds": { +"description": "Optional. Duration in seconds the task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout. Defaults to 600 seconds.", +"format": "int64", +"type": "string" +}, +"volumes": { +"description": "Optional. List of volumes that can be mounted by containers belonging to the task.", +"items": { +"$ref": "Volume" +}, +"type": "array" +} +}, +"type": "object" +}, +"TaskStatus": { +"description": "TaskStatus represents the status of a task.", +"id": "TaskStatus", +"properties": { +"completionTime": { +"description": "Optional. Represents time when the task was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", +"format": "google-datetime", +"type": "string" +}, +"conditions": { +"description": "Optional. Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. Task-specific conditions include: * `Started`: `True` when the task has started to execute. * `Completed`: `True` when the task has succeeded. `False` when the task has failed.", +"items": { +"$ref": "GoogleCloudRunV1Condition" +}, +"type": "array" +}, +"index": { +"description": "Required. Index of the task, unique per execution, and beginning at 0.", +"format": "int32", +"type": "integer" +}, +"lastAttemptResult": { +"$ref": "TaskAttemptResult", +"description": "Optional. Result of the last attempt of this task." +}, +"logUri": { +"description": "Optional. URI where logs for this task can be found in Cloud Console.", +"type": "string" +}, +"observedGeneration": { +"description": "Optional. The 'generation' of the task that was last processed by the controller.", +"format": "int32", +"type": "integer" +}, +"retried": { +"description": "Optional. The number of times this task was retried. Instances are retried when they fail up to the maxRetries limit.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Optional. Represents time when the task started to run. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"TaskTemplateSpec": { +"description": "TaskTemplateSpec describes the data a task should have when created from a template.", +"id": "TaskTemplateSpec", +"properties": { +"spec": { +"$ref": "TaskSpec", +"description": "Optional. Specification of the desired behavior of the task." +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TrafficTarget": { +"description": "TrafficTarget holds a single entry of the routing table for a Route.", +"id": "TrafficTarget", +"properties": { +"configurationName": { +"deprecated": true, +"description": "[Deprecated] Not supported in Cloud Run. It must be empty.", +"type": "string" +}, +"latestRevision": { +"description": "Uses the \"status.latestReadyRevisionName\" of the Service to determine the traffic target. When it changes, traffic will automatically migrate from the prior \"latest ready\" revision to the new one. This field must be false if RevisionName is set. This field defaults to true otherwise. If the field is set to true on Status, this means that the Revision was resolved from the Service's latest ready revision.", +"type": "boolean" +}, +"percent": { +"description": "Percent specifies percent of the traffic to this Revision or Configuration. This defaults to zero if unspecified.", +"format": "int32", +"type": "integer" +}, +"revisionName": { +"description": "Points this traffic target to a specific Revision. This field is mutually exclusive with latest_revision.", +"type": "string" +}, +"tag": { +"description": "Tag is used to expose a dedicated url for referencing this target exclusively.", +"type": "string" +}, +"url": { +"description": "Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. https://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.)", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Volume": { +"description": "Volume represents a named volume in a container.", +"id": "Volume", +"properties": { +"configMap": { +"$ref": "ConfigMapVolumeSource", +"description": "Not supported in Cloud Run." +}, +"csi": { +"$ref": "CSIVolumeSource", +"description": "Volume specified by the Container Storage Interface driver" +}, +"emptyDir": { +"$ref": "EmptyDirVolumeSource", +"description": "Ephemeral storage used as a shared volume." +}, +"name": { +"description": "Volume's name. In Cloud Run Fully Managed, the name 'cloudsql' is reserved.", +"type": "string" +}, +"nfs": { +"$ref": "NFSVolumeSource" +}, +"secret": { +"$ref": "SecretVolumeSource", +"description": "The secret's value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secretName." +} +}, +"type": "object" +}, +"VolumeMount": { +"description": "VolumeMount describes a mounting of a Volume within a container.", +"id": "VolumeMount", +"properties": { +"mountPath": { +"description": "Required. Path within the container at which the volume should be mounted. Must not contain ':'.", +"type": "string" +}, +"name": { +"description": "Required. The name of the volume. There must be a corresponding Volume with the same name.", +"type": "string" +}, +"readOnly": { +"description": "Sets the mount to be read-only or read-write. Not used by Cloud Run.", +"type": "boolean" +}, +"subPath": { +"description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Run Admin API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/sasportal.v1alpha1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/sasportal.v1alpha1.json new file mode 100644 index 0000000000000000000000000000000000000000..0812c53d3cded13d543298a9d6bba1ce1afe7af3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/sasportal.v1alpha1.json @@ -0,0 +1,3773 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/sasportal": { +"description": "Read, create, update, and delete your SAS Portal data." +} +} +} +}, +"basePath": "", +"baseUrl": "https://sasportal.googleapis.com/", +"batchPath": "batch", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/spectrum-access-system/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "sasportal:v1alpha1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://sasportal.mtls.googleapis.com/", +"name": "sasportal", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"customers": { +"methods": { +"get": { +"description": "Returns a requested customer.", +"flatPath": "v1alpha1/customers/{customersId}", +"httpMethod": "GET", +"id": "sasportal.customers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the customer.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalCustomer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Returns a list of requested customers.", +"flatPath": "v1alpha1/customers", +"httpMethod": "GET", +"id": "sasportal.customers.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "The maximum number of customers to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListCustomers that indicates where this listing should continue from.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/customers", +"response": { +"$ref": "SasPortalListCustomersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"listGcpProjectDeployments": { +"description": "Returns a list of SAS deployments associated with current GCP project. Includes whether SAS analytics has been enabled or not.", +"flatPath": "v1alpha1/customers:listGcpProjectDeployments", +"httpMethod": "GET", +"id": "sasportal.customers.listGcpProjectDeployments", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/customers:listGcpProjectDeployments", +"response": { +"$ref": "SasPortalListGcpProjectDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"listLegacyOrganizations": { +"description": "Returns a list of legacy organizations.", +"flatPath": "v1alpha1/customers:listLegacyOrganizations", +"httpMethod": "GET", +"id": "sasportal.customers.listLegacyOrganizations", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/customers:listLegacyOrganizations", +"response": { +"$ref": "SasPortalListLegacyOrganizationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"migrateOrganization": { +"description": "Migrates a SAS organization to the cloud. This will create GCP projects for each deployment and associate them. The SAS Organization is linked to the gcp project that called the command. go/sas-legacy-customer-migration", +"flatPath": "v1alpha1/customers:migrateOrganization", +"httpMethod": "POST", +"id": "sasportal.customers.migrateOrganization", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/customers:migrateOrganization", +"request": { +"$ref": "SasPortalMigrateOrganizationRequest" +}, +"response": { +"$ref": "SasPortalOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"patch": { +"description": "Updates an existing customer.", +"flatPath": "v1alpha1/customers/{customersId}", +"httpMethod": "PATCH", +"id": "sasportal.customers.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of the customer.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "SasPortalCustomer" +}, +"response": { +"$ref": "SasPortalCustomer" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"provisionDeployment": { +"description": "Creates a new SAS deployment through the GCP workflow. Creates a SAS organization if an organization match is not found.", +"flatPath": "v1alpha1/customers:provisionDeployment", +"httpMethod": "POST", +"id": "sasportal.customers.provisionDeployment", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/customers:provisionDeployment", +"request": { +"$ref": "SasPortalProvisionDeploymentRequest" +}, +"response": { +"$ref": "SasPortalProvisionDeploymentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"setupSasAnalytics": { +"description": "Setups the a GCP Project to receive SAS Analytics messages via GCP Pub/Sub with a subscription to BigQuery. All the Pub/Sub topics and BigQuery tables are created automatically as part of this service.", +"flatPath": "v1alpha1/customers:setupSasAnalytics", +"httpMethod": "POST", +"id": "sasportal.customers.setupSasAnalytics", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/customers:setupSasAnalytics", +"request": { +"$ref": "SasPortalSetupSasAnalyticsRequest" +}, +"response": { +"$ref": "SasPortalOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +}, +"resources": { +"deployments": { +"methods": { +"create": { +"description": "Creates a new deployment.", +"flatPath": "v1alpha1/customers/{customersId}/deployments", +"httpMethod": "POST", +"id": "sasportal.customers.deployments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name where the deployment is to be created.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/deployments", +"request": { +"$ref": "SasPortalDeployment" +}, +"response": { +"$ref": "SasPortalDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"delete": { +"description": "Deletes a deployment.", +"flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}", +"httpMethod": "DELETE", +"id": "sasportal.customers.deployments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the deployment.", +"location": "path", +"pattern": "^customers/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"get": { +"description": "Returns a requested deployment.", +"flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}", +"httpMethod": "GET", +"id": "sasportal.customers.deployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the deployment.", +"location": "path", +"pattern": "^customers/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists deployments.", +"flatPath": "v1alpha1/customers/{customersId}/deployments", +"httpMethod": "GET", +"id": "sasportal.customers.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have the following format: \"DIRECT_CHILDREN\" or format: \"direct_children\". The filter is case insensitive. If empty, then no deployments are filtered.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of deployments to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDeployments that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, for example, \"nodes/1\", customer/1/nodes/2.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/deployments", +"response": { +"$ref": "SasPortalListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"move": { +"description": "Moves a deployment under another node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}:move", +"httpMethod": "POST", +"id": "sasportal.customers.deployments.move", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the deployment to move.", +"location": "path", +"pattern": "^customers/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:move", +"request": { +"$ref": "SasPortalMoveDeploymentRequest" +}, +"response": { +"$ref": "SasPortalOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"patch": { +"description": "Updates an existing deployment.", +"flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}", +"httpMethod": "PATCH", +"id": "sasportal.customers.deployments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name.", +"location": "path", +"pattern": "^customers/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "SasPortalDeployment" +}, +"response": { +"$ref": "SasPortalDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +}, +"resources": { +"devices": { +"methods": { +"create": { +"description": "Creates a device under a node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}/devices", +"httpMethod": "POST", +"id": "sasportal.customers.deployments.devices.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^customers/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"request": { +"$ref": "SasPortalDevice" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"createSigned": { +"description": "Creates a signed device under a node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}/devices:createSigned", +"httpMethod": "POST", +"id": "sasportal.customers.deployments.devices.createSigned", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^customers/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices:createSigned", +"request": { +"$ref": "SasPortalCreateSignedDeviceRequest" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists devices under a node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}/devices", +"httpMethod": "GET", +"id": "sasportal.customers.deployments.devices.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial number of the device. The filter is case insensitive.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000].", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^customers/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"response": { +"$ref": "SasPortalListDevicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +} +} +}, +"devices": { +"methods": { +"create": { +"description": "Creates a device under a node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/devices", +"httpMethod": "POST", +"id": "sasportal.customers.devices.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"request": { +"$ref": "SasPortalDevice" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"createSigned": { +"description": "Creates a signed device under a node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/devices:createSigned", +"httpMethod": "POST", +"id": "sasportal.customers.devices.createSigned", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices:createSigned", +"request": { +"$ref": "SasPortalCreateSignedDeviceRequest" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"delete": { +"description": "Deletes a device.", +"flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}", +"httpMethod": "DELETE", +"id": "sasportal.customers.devices.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device.", +"location": "path", +"pattern": "^customers/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"get": { +"description": "Gets details about a device.", +"flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}", +"httpMethod": "GET", +"id": "sasportal.customers.devices.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device.", +"location": "path", +"pattern": "^customers/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists devices under a node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/devices", +"httpMethod": "GET", +"id": "sasportal.customers.devices.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial number of the device. The filter is case insensitive.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000].", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"response": { +"$ref": "SasPortalListDevicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"move": { +"description": "Moves a device under another node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}:move", +"httpMethod": "POST", +"id": "sasportal.customers.devices.move", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device to move.", +"location": "path", +"pattern": "^customers/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:move", +"request": { +"$ref": "SasPortalMoveDeviceRequest" +}, +"response": { +"$ref": "SasPortalOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"patch": { +"description": "Updates a device.", +"flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}", +"httpMethod": "PATCH", +"id": "sasportal.customers.devices.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource path name.", +"location": "path", +"pattern": "^customers/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "SasPortalDevice" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"signDevice": { +"description": "Signs a device.", +"flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}:signDevice", +"httpMethod": "POST", +"id": "sasportal.customers.devices.signDevice", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource path name.", +"location": "path", +"pattern": "^customers/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:signDevice", +"request": { +"$ref": "SasPortalSignDeviceRequest" +}, +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"updateSigned": { +"description": "Updates a signed device.", +"flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}:updateSigned", +"httpMethod": "PATCH", +"id": "sasportal.customers.devices.updateSigned", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device to update.", +"location": "path", +"pattern": "^customers/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:updateSigned", +"request": { +"$ref": "SasPortalUpdateSignedDeviceRequest" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +}, +"nodes": { +"methods": { +"create": { +"description": "Creates a new node.", +"flatPath": "v1alpha1/customers/{customersId}/nodes", +"httpMethod": "POST", +"id": "sasportal.customers.nodes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name where the node is to be created.", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"request": { +"$ref": "SasPortalNode" +}, +"response": { +"$ref": "SasPortalNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"delete": { +"description": "Deletes a node.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}", +"httpMethod": "DELETE", +"id": "sasportal.customers.nodes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the node.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"get": { +"description": "Returns a requested node.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}", +"httpMethod": "GET", +"id": "sasportal.customers.nodes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the node.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists nodes.", +"flatPath": "v1alpha1/customers/{customersId}/nodes", +"httpMethod": "GET", +"id": "sasportal.customers.nodes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have the following format: \"DIRECT_CHILDREN\" or format: \"direct_children\". The filter is case insensitive. If empty, then no nodes are filtered.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of nodes to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListNodes that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, for example, \"nodes/1\".", +"location": "path", +"pattern": "^customers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"response": { +"$ref": "SasPortalListNodesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"move": { +"description": "Moves a node under another node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}:move", +"httpMethod": "POST", +"id": "sasportal.customers.nodes.move", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the node to move.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:move", +"request": { +"$ref": "SasPortalMoveNodeRequest" +}, +"response": { +"$ref": "SasPortalOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"patch": { +"description": "Updates an existing node.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}", +"httpMethod": "PATCH", +"id": "sasportal.customers.nodes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "SasPortalNode" +}, +"response": { +"$ref": "SasPortalNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +}, +"resources": { +"deployments": { +"methods": { +"create": { +"description": "Creates a new deployment.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/deployments", +"httpMethod": "POST", +"id": "sasportal.customers.nodes.deployments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name where the deployment is to be created.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/deployments", +"request": { +"$ref": "SasPortalDeployment" +}, +"response": { +"$ref": "SasPortalDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists deployments.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/deployments", +"httpMethod": "GET", +"id": "sasportal.customers.nodes.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have the following format: \"DIRECT_CHILDREN\" or format: \"direct_children\". The filter is case insensitive. If empty, then no deployments are filtered.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of deployments to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDeployments that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, for example, \"nodes/1\", customer/1/nodes/2.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/deployments", +"response": { +"$ref": "SasPortalListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +}, +"devices": { +"methods": { +"create": { +"description": "Creates a device under a node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/devices", +"httpMethod": "POST", +"id": "sasportal.customers.nodes.devices.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"request": { +"$ref": "SasPortalDevice" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"createSigned": { +"description": "Creates a signed device under a node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/devices:createSigned", +"httpMethod": "POST", +"id": "sasportal.customers.nodes.devices.createSigned", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices:createSigned", +"request": { +"$ref": "SasPortalCreateSignedDeviceRequest" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists devices under a node or customer.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/devices", +"httpMethod": "GET", +"id": "sasportal.customers.nodes.devices.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial number of the device. The filter is case insensitive.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000].", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"response": { +"$ref": "SasPortalListDevicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +}, +"nodes": { +"methods": { +"create": { +"description": "Creates a new node.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/nodes", +"httpMethod": "POST", +"id": "sasportal.customers.nodes.nodes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name where the node is to be created.", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"request": { +"$ref": "SasPortalNode" +}, +"response": { +"$ref": "SasPortalNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists nodes.", +"flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/nodes", +"httpMethod": "GET", +"id": "sasportal.customers.nodes.nodes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have the following format: \"DIRECT_CHILDREN\" or format: \"direct_children\". The filter is case insensitive. If empty, then no nodes are filtered.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of nodes to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListNodes that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, for example, \"nodes/1\".", +"location": "path", +"pattern": "^customers/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"response": { +"$ref": "SasPortalListNodesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +} +} +} +} +}, +"deployments": { +"methods": { +"get": { +"description": "Returns a requested deployment.", +"flatPath": "v1alpha1/deployments/{deploymentsId}", +"httpMethod": "GET", +"id": "sasportal.deployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the deployment.", +"location": "path", +"pattern": "^deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +}, +"resources": { +"devices": { +"methods": { +"delete": { +"description": "Deletes a device.", +"flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}", +"httpMethod": "DELETE", +"id": "sasportal.deployments.devices.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device.", +"location": "path", +"pattern": "^deployments/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"get": { +"description": "Gets details about a device.", +"flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}", +"httpMethod": "GET", +"id": "sasportal.deployments.devices.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device.", +"location": "path", +"pattern": "^deployments/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"move": { +"description": "Moves a device under another node or customer.", +"flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}:move", +"httpMethod": "POST", +"id": "sasportal.deployments.devices.move", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device to move.", +"location": "path", +"pattern": "^deployments/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:move", +"request": { +"$ref": "SasPortalMoveDeviceRequest" +}, +"response": { +"$ref": "SasPortalOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"patch": { +"description": "Updates a device.", +"flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}", +"httpMethod": "PATCH", +"id": "sasportal.deployments.devices.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource path name.", +"location": "path", +"pattern": "^deployments/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "SasPortalDevice" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"signDevice": { +"description": "Signs a device.", +"flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}:signDevice", +"httpMethod": "POST", +"id": "sasportal.deployments.devices.signDevice", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource path name.", +"location": "path", +"pattern": "^deployments/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:signDevice", +"request": { +"$ref": "SasPortalSignDeviceRequest" +}, +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"updateSigned": { +"description": "Updates a signed device.", +"flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}:updateSigned", +"httpMethod": "PATCH", +"id": "sasportal.deployments.devices.updateSigned", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device to update.", +"location": "path", +"pattern": "^deployments/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:updateSigned", +"request": { +"$ref": "SasPortalUpdateSignedDeviceRequest" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +} +} +}, +"installer": { +"methods": { +"generateSecret": { +"description": "Generates a secret to be used with the ValidateInstaller.", +"flatPath": "v1alpha1/installer:generateSecret", +"httpMethod": "POST", +"id": "sasportal.installer.generateSecret", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/installer:generateSecret", +"request": { +"$ref": "SasPortalGenerateSecretRequest" +}, +"response": { +"$ref": "SasPortalGenerateSecretResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"validate": { +"description": "Validates the identity of a Certified Professional Installer (CPI).", +"flatPath": "v1alpha1/installer:validate", +"httpMethod": "POST", +"id": "sasportal.installer.validate", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/installer:validate", +"request": { +"$ref": "SasPortalValidateInstallerRequest" +}, +"response": { +"$ref": "SasPortalValidateInstallerResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +}, +"nodes": { +"methods": { +"get": { +"description": "Returns a requested node.", +"flatPath": "v1alpha1/nodes/{nodesId}", +"httpMethod": "GET", +"id": "sasportal.nodes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the node.", +"location": "path", +"pattern": "^nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +}, +"resources": { +"deployments": { +"methods": { +"delete": { +"description": "Deletes a deployment.", +"flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}", +"httpMethod": "DELETE", +"id": "sasportal.nodes.deployments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the deployment.", +"location": "path", +"pattern": "^nodes/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"get": { +"description": "Returns a requested deployment.", +"flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}", +"httpMethod": "GET", +"id": "sasportal.nodes.deployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the deployment.", +"location": "path", +"pattern": "^nodes/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists deployments.", +"flatPath": "v1alpha1/nodes/{nodesId}/deployments", +"httpMethod": "GET", +"id": "sasportal.nodes.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have the following format: \"DIRECT_CHILDREN\" or format: \"direct_children\". The filter is case insensitive. If empty, then no deployments are filtered.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of deployments to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDeployments that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, for example, \"nodes/1\", customer/1/nodes/2.", +"location": "path", +"pattern": "^nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/deployments", +"response": { +"$ref": "SasPortalListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"move": { +"description": "Moves a deployment under another node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}:move", +"httpMethod": "POST", +"id": "sasportal.nodes.deployments.move", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the deployment to move.", +"location": "path", +"pattern": "^nodes/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:move", +"request": { +"$ref": "SasPortalMoveDeploymentRequest" +}, +"response": { +"$ref": "SasPortalOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"patch": { +"description": "Updates an existing deployment.", +"flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}", +"httpMethod": "PATCH", +"id": "sasportal.nodes.deployments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name.", +"location": "path", +"pattern": "^nodes/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "SasPortalDeployment" +}, +"response": { +"$ref": "SasPortalDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +}, +"resources": { +"devices": { +"methods": { +"create": { +"description": "Creates a device under a node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}/devices", +"httpMethod": "POST", +"id": "sasportal.nodes.deployments.devices.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^nodes/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"request": { +"$ref": "SasPortalDevice" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"createSigned": { +"description": "Creates a signed device under a node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}/devices:createSigned", +"httpMethod": "POST", +"id": "sasportal.nodes.deployments.devices.createSigned", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^nodes/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices:createSigned", +"request": { +"$ref": "SasPortalCreateSignedDeviceRequest" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists devices under a node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}/devices", +"httpMethod": "GET", +"id": "sasportal.nodes.deployments.devices.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial number of the device. The filter is case insensitive.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000].", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^nodes/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"response": { +"$ref": "SasPortalListDevicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +} +} +}, +"devices": { +"methods": { +"create": { +"description": "Creates a device under a node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/devices", +"httpMethod": "POST", +"id": "sasportal.nodes.devices.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"request": { +"$ref": "SasPortalDevice" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"createSigned": { +"description": "Creates a signed device under a node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/devices:createSigned", +"httpMethod": "POST", +"id": "sasportal.nodes.devices.createSigned", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices:createSigned", +"request": { +"$ref": "SasPortalCreateSignedDeviceRequest" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"delete": { +"description": "Deletes a device.", +"flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}", +"httpMethod": "DELETE", +"id": "sasportal.nodes.devices.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device.", +"location": "path", +"pattern": "^nodes/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"get": { +"description": "Gets details about a device.", +"flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}", +"httpMethod": "GET", +"id": "sasportal.nodes.devices.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device.", +"location": "path", +"pattern": "^nodes/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists devices under a node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/devices", +"httpMethod": "GET", +"id": "sasportal.nodes.devices.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial number of the device. The filter is case insensitive.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000].", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"response": { +"$ref": "SasPortalListDevicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"move": { +"description": "Moves a device under another node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}:move", +"httpMethod": "POST", +"id": "sasportal.nodes.devices.move", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device to move.", +"location": "path", +"pattern": "^nodes/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:move", +"request": { +"$ref": "SasPortalMoveDeviceRequest" +}, +"response": { +"$ref": "SasPortalOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"patch": { +"description": "Updates a device.", +"flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}", +"httpMethod": "PATCH", +"id": "sasportal.nodes.devices.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource path name.", +"location": "path", +"pattern": "^nodes/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "SasPortalDevice" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"signDevice": { +"description": "Signs a device.", +"flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}:signDevice", +"httpMethod": "POST", +"id": "sasportal.nodes.devices.signDevice", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource path name.", +"location": "path", +"pattern": "^nodes/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:signDevice", +"request": { +"$ref": "SasPortalSignDeviceRequest" +}, +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"updateSigned": { +"description": "Updates a signed device.", +"flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}:updateSigned", +"httpMethod": "PATCH", +"id": "sasportal.nodes.devices.updateSigned", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the device to update.", +"location": "path", +"pattern": "^nodes/[^/]+/devices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:updateSigned", +"request": { +"$ref": "SasPortalUpdateSignedDeviceRequest" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +}, +"nodes": { +"methods": { +"create": { +"description": "Creates a new node.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes", +"httpMethod": "POST", +"id": "sasportal.nodes.nodes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name where the node is to be created.", +"location": "path", +"pattern": "^nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"request": { +"$ref": "SasPortalNode" +}, +"response": { +"$ref": "SasPortalNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"delete": { +"description": "Deletes a node.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}", +"httpMethod": "DELETE", +"id": "sasportal.nodes.nodes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the node.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"get": { +"description": "Returns a requested node.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}", +"httpMethod": "GET", +"id": "sasportal.nodes.nodes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the node.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SasPortalNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists nodes.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes", +"httpMethod": "GET", +"id": "sasportal.nodes.nodes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have the following format: \"DIRECT_CHILDREN\" or format: \"direct_children\". The filter is case insensitive. If empty, then no nodes are filtered.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of nodes to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListNodes that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, for example, \"nodes/1\".", +"location": "path", +"pattern": "^nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"response": { +"$ref": "SasPortalListNodesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"move": { +"description": "Moves a node under another node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}:move", +"httpMethod": "POST", +"id": "sasportal.nodes.nodes.move", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the node to move.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:move", +"request": { +"$ref": "SasPortalMoveNodeRequest" +}, +"response": { +"$ref": "SasPortalOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"patch": { +"description": "Updates an existing node.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}", +"httpMethod": "PATCH", +"id": "sasportal.nodes.nodes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "SasPortalNode" +}, +"response": { +"$ref": "SasPortalNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +}, +"resources": { +"deployments": { +"methods": { +"create": { +"description": "Creates a new deployment.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/deployments", +"httpMethod": "POST", +"id": "sasportal.nodes.nodes.deployments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name where the deployment is to be created.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/deployments", +"request": { +"$ref": "SasPortalDeployment" +}, +"response": { +"$ref": "SasPortalDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists deployments.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/deployments", +"httpMethod": "GET", +"id": "sasportal.nodes.nodes.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have the following format: \"DIRECT_CHILDREN\" or format: \"direct_children\". The filter is case insensitive. If empty, then no deployments are filtered.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of deployments to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDeployments that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, for example, \"nodes/1\", customer/1/nodes/2.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/deployments", +"response": { +"$ref": "SasPortalListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +}, +"devices": { +"methods": { +"create": { +"description": "Creates a device under a node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/devices", +"httpMethod": "POST", +"id": "sasportal.nodes.nodes.devices.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"request": { +"$ref": "SasPortalDevice" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"createSigned": { +"description": "Creates a signed device under a node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/devices:createSigned", +"httpMethod": "POST", +"id": "sasportal.nodes.nodes.devices.createSigned", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices:createSigned", +"request": { +"$ref": "SasPortalCreateSignedDeviceRequest" +}, +"response": { +"$ref": "SasPortalDevice" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists devices under a node or customer.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/devices", +"httpMethod": "GET", +"id": "sasportal.nodes.nodes.devices.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial number of the device. The filter is case insensitive.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000].", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/devices", +"response": { +"$ref": "SasPortalListDevicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +}, +"nodes": { +"methods": { +"create": { +"description": "Creates a new node.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/nodes", +"httpMethod": "POST", +"id": "sasportal.nodes.nodes.nodes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name where the node is to be created.", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"request": { +"$ref": "SasPortalNode" +}, +"response": { +"$ref": "SasPortalNode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"list": { +"description": "Lists nodes.", +"flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/nodes", +"httpMethod": "GET", +"id": "sasportal.nodes.nodes.nodes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The filter should have the following format: \"DIRECT_CHILDREN\" or format: \"direct_children\". The filter is case insensitive. If empty, then no nodes are filtered.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of nodes to return in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListNodes that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, for example, \"nodes/1\".", +"location": "path", +"pattern": "^nodes/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"response": { +"$ref": "SasPortalListNodesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +} +} +} +} +}, +"policies": { +"methods": { +"get": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1alpha1/policies:get", +"httpMethod": "POST", +"id": "sasportal.policies.get", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/policies:get", +"request": { +"$ref": "SasPortalGetPolicyRequest" +}, +"response": { +"$ref": "SasPortalPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"set": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.", +"flatPath": "v1alpha1/policies:set", +"httpMethod": "POST", +"id": "sasportal.policies.set", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/policies:set", +"request": { +"$ref": "SasPortalSetPolicyRequest" +}, +"response": { +"$ref": "SasPortalPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +}, +"test": { +"description": "Returns permissions that a caller has on the specified resource.", +"flatPath": "v1alpha1/policies:test", +"httpMethod": "POST", +"id": "sasportal.policies.test", +"parameterOrder": [], +"parameters": {}, +"path": "v1alpha1/policies:test", +"request": { +"$ref": "SasPortalTestPermissionsRequest" +}, +"response": { +"$ref": "SasPortalTestPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/sasportal" +] +} +} +} +}, +"revision": "20240801", +"rootUrl": "https://sasportal.googleapis.com/", +"schemas": { +"SasPortalAssignment": { +"description": "Associates `members` with a `role`.", +"id": "SasPortalAssignment", +"properties": { +"members": { +"description": "The identities the role is assigned to. It can have the following values: * `{user_email}`: An email address that represents a specific Google account. For example: `alice@gmail.com`. * `{group_email}`: An email address that represents a Google group. For example, `viewers@gmail.com`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Required. Role that is assigned to `members`.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalChannelWithScore": { +"description": "The channel with score.", +"id": "SasPortalChannelWithScore", +"properties": { +"frequencyRange": { +"$ref": "SasPortalFrequencyRange", +"description": "The frequency range of the channel." +}, +"score": { +"description": "The channel score, normalized to be in the range [0,100].", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"SasPortalCreateSignedDeviceRequest": { +"description": "Request for CreateSignedDevice.", +"id": "SasPortalCreateSignedDeviceRequest", +"properties": { +"encodedDevice": { +"description": "Required. JSON Web Token signed using a CPI private key. Payload must be the JSON encoding of the device. The user_id field must be set.", +"format": "byte", +"type": "string" +}, +"installerId": { +"description": "Required. Unique installer id (CPI ID) from the Certified Professional Installers database.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalCustomer": { +"description": "Entity representing a SAS customer.", +"id": "SasPortalCustomer", +"properties": { +"displayName": { +"description": "Required. Name of the organization that the customer entity represents.", +"type": "string" +}, +"name": { +"description": "Output only. Resource name of the customer.", +"type": "string" +}, +"sasUserIds": { +"description": "User IDs used by the devices belonging to this customer.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SasPortalDeployment": { +"description": "The Deployment.", +"id": "SasPortalDeployment", +"properties": { +"displayName": { +"description": "The deployment's display name.", +"type": "string" +}, +"frns": { +"description": "Output only. The FCC Registration Numbers (FRNs) copied from its direct parent.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. Resource name.", +"readOnly": true, +"type": "string" +}, +"sasUserIds": { +"description": "User ID used by the devices belonging to this deployment. Each deployment should be associated with one unique user ID.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SasPortalDeploymentAssociation": { +"description": "Association between a gcp project and a SAS user id.", +"id": "SasPortalDeploymentAssociation", +"properties": { +"gcpProjectId": { +"description": "GCP project id of the associated project.", +"type": "string" +}, +"userId": { +"description": "User id of the deployment.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalDevice": { +"id": "SasPortalDevice", +"properties": { +"activeConfig": { +"$ref": "SasPortalDeviceConfig", +"description": "Output only. Current configuration of the device as registered to the SAS." +}, +"currentChannels": { +"deprecated": true, +"description": "Output only. Current channels with scores.", +"items": { +"$ref": "SasPortalChannelWithScore" +}, +"readOnly": true, +"type": "array" +}, +"deviceMetadata": { +"$ref": "SasPortalDeviceMetadata", +"description": "Device parameters that can be overridden by both SAS Portal and SAS registration requests." +}, +"displayName": { +"description": "Device display name.", +"type": "string" +}, +"fccId": { +"description": "The FCC identifier of the device. Refer to https://www.fcc.gov/oet/ea/fccid for FccID format. Accept underscores and periods because some test-SAS customers use them.", +"type": "string" +}, +"grantRangeAllowlists": { +"description": "Only ranges that are within the allowlists are available for new grants.", +"items": { +"$ref": "SasPortalFrequencyRange" +}, +"type": "array" +}, +"grants": { +"description": "Output only. Grants held by the device.", +"items": { +"$ref": "SasPortalDeviceGrant" +}, +"type": "array" +}, +"name": { +"description": "Output only. The resource path name.", +"type": "string" +}, +"preloadedConfig": { +"$ref": "SasPortalDeviceConfig", +"description": "Configuration of the device, as specified via SAS Portal API." +}, +"serialNumber": { +"description": "A serial number assigned to the device by the device manufacturer.", +"type": "string" +}, +"state": { +"description": "Output only. Device state.", +"enum": [ +"DEVICE_STATE_UNSPECIFIED", +"RESERVED", +"REGISTERED", +"DEREGISTERED" +], +"enumDescriptions": [ +"Unspecified state.", +"Device created in the SAS Portal, however, not yet registered with SAS.", +"Device registered with SAS.", +"Device de-registered with SAS." +], +"type": "string" +} +}, +"type": "object" +}, +"SasPortalDeviceAirInterface": { +"description": "Information about the device's air interface.", +"id": "SasPortalDeviceAirInterface", +"properties": { +"radioTechnology": { +"description": "Conditional. This field specifies the radio access technology that is used for the CBSD.", +"enum": [ +"RADIO_TECHNOLOGY_UNSPECIFIED", +"E_UTRA", +"CAMBIUM_NETWORKS", +"FOUR_G_BBW_SAA_1", +"NR", +"DOODLE_CBRS", +"CW", +"REDLINE", +"TARANA_WIRELESS", +"FAROS" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"supportedSpec": { +"description": "Optional. This field is related to the `radioTechnology` and provides the air interface specification that the CBSD is compliant with at the time of registration.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalDeviceConfig": { +"description": "Information about the device configuration.", +"id": "SasPortalDeviceConfig", +"properties": { +"airInterface": { +"$ref": "SasPortalDeviceAirInterface", +"description": "Information about this device's air interface." +}, +"callSign": { +"description": "The call sign of the device operator.", +"type": "string" +}, +"category": { +"description": "FCC category of the device.", +"enum": [ +"DEVICE_CATEGORY_UNSPECIFIED", +"DEVICE_CATEGORY_A", +"DEVICE_CATEGORY_B" +], +"enumDescriptions": [ +"Unspecified device category.", +"Category A.", +"Category B." +], +"type": "string" +}, +"installationParams": { +"$ref": "SasPortalInstallationParams", +"description": "Installation parameters for the device." +}, +"isSigned": { +"description": "Output only. Whether the configuration has been signed by a CPI.", +"type": "boolean" +}, +"measurementCapabilities": { +"description": "Measurement reporting capabilities of the device.", +"items": { +"enum": [ +"MEASUREMENT_CAPABILITY_UNSPECIFIED", +"MEASUREMENT_CAPABILITY_RECEIVED_POWER_WITH_GRANT", +"MEASUREMENT_CAPABILITY_RECEIVED_POWER_WITHOUT_GRANT" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"model": { +"$ref": "SasPortalDeviceModel", +"description": "Information about this device model." +}, +"state": { +"description": "State of the configuration.", +"enum": [ +"DEVICE_CONFIG_STATE_UNSPECIFIED", +"DRAFT", +"FINAL" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The last time the device configuration was edited.", +"format": "google-datetime", +"type": "string" +}, +"userId": { +"description": "The identifier of a device user.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalDeviceGrant": { +"description": "Device grant. It is an authorization provided by the Spectrum Access System to a device to transmit using specified operating parameters after a successful heartbeat by the device.", +"id": "SasPortalDeviceGrant", +"properties": { +"channelType": { +"description": "Type of channel used.", +"enum": [ +"CHANNEL_TYPE_UNSPECIFIED", +"CHANNEL_TYPE_GAA", +"CHANNEL_TYPE_PAL" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"expireTime": { +"description": "The expiration time of the grant.", +"format": "google-datetime", +"type": "string" +}, +"frequencyRange": { +"$ref": "SasPortalFrequencyRange", +"description": "The transmission frequency range." +}, +"grantId": { +"description": "Grant Id.", +"type": "string" +}, +"lastHeartbeatTransmitExpireTime": { +"description": "The transmit expiration time of the last heartbeat.", +"format": "google-datetime", +"type": "string" +}, +"maxEirp": { +"description": "Maximum Equivalent Isotropically Radiated Power (EIRP) permitted by the grant. The maximum EIRP is in units of dBm/MHz. The value of `maxEirp` represents the average (RMS) EIRP that would be measured by the procedure defined in FCC part 96.41(e)(3).", +"format": "double", +"type": "number" +}, +"moveList": { +"description": "The DPA move lists on which this grant appears.", +"items": { +"$ref": "SasPortalDpaMoveList" +}, +"type": "array" +}, +"state": { +"description": "State of the grant.", +"enum": [ +"GRANT_STATE_UNSPECIFIED", +"GRANT_STATE_GRANTED", +"GRANT_STATE_TERMINATED", +"GRANT_STATE_SUSPENDED", +"GRANT_STATE_AUTHORIZED", +"GRANT_STATE_EXPIRED" +], +"enumDescriptions": [ +"", +"The grant has been granted but the device is not heartbeating on it.", +"The grant has been terminated by the SAS.", +"The grant has been suspended by the SAS.", +"The device is currently transmitting.", +"The grant has expired." +], +"type": "string" +}, +"suspensionReason": { +"description": "If the grant is suspended, the reason(s) for suspension.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SasPortalDeviceMetadata": { +"description": "Device data overridable by both SAS Portal and registration requests.", +"id": "SasPortalDeviceMetadata", +"properties": { +"antennaModel": { +"description": "If populated, the Antenna Model Pattern to use. Format is: `RecordCreatorId:PatternId`", +"type": "string" +}, +"commonChannelGroup": { +"description": "Common Channel Group (CCG). A group of CBSDs in the same ICG requesting a common primary channel assignment. For more details, see [CBRSA-TS-2001 V3.0.0](https://ongoalliance.org/wp-content/uploads/2020/02/CBRSA-TS-2001-V3.0.0_Approved-for-publication.pdf).", +"type": "string" +}, +"interferenceCoordinationGroup": { +"description": "Interference Coordination Group (ICG). A group of CBSDs that manage their own interference with the group. For more details, see [CBRSA-TS-2001 V3.0.0](https://ongoalliance.org/wp-content/uploads/2020/02/CBRSA-TS-2001-V3.0.0_Approved-for-publication.pdf).", +"type": "string" +}, +"nrqzValidated": { +"deprecated": true, +"description": "Output only. Set to `true` if a CPI has validated that they have coordinated with the National Quiet Zone office.", +"readOnly": true, +"type": "boolean" +}, +"nrqzValidation": { +"$ref": "SasPortalNrqzValidation", +"description": "Output only. National Radio Quiet Zone validation info.", +"readOnly": true +} +}, +"type": "object" +}, +"SasPortalDeviceModel": { +"description": "Information about the model of the device.", +"id": "SasPortalDeviceModel", +"properties": { +"firmwareVersion": { +"description": "The firmware version of the device.", +"type": "string" +}, +"hardwareVersion": { +"description": "The hardware version of the device.", +"type": "string" +}, +"name": { +"description": "The name of the device model.", +"type": "string" +}, +"softwareVersion": { +"description": "The software version of the device.", +"type": "string" +}, +"vendor": { +"description": "The name of the device vendor.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalDpaMoveList": { +"description": "An entry in a DPA's move list.", +"id": "SasPortalDpaMoveList", +"properties": { +"dpaId": { +"description": "The ID of the DPA.", +"type": "string" +}, +"frequencyRange": { +"$ref": "SasPortalFrequencyRange", +"description": "The frequency range that the move list affects." +} +}, +"type": "object" +}, +"SasPortalEmpty": { +"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); }", +"id": "SasPortalEmpty", +"properties": {}, +"type": "object" +}, +"SasPortalFrequencyRange": { +"description": "Frequency range from `low_frequency` to `high_frequency`.", +"id": "SasPortalFrequencyRange", +"properties": { +"highFrequencyMhz": { +"description": "The highest frequency of the frequency range in MHz.", +"format": "double", +"type": "number" +}, +"lowFrequencyMhz": { +"description": "The lowest frequency of the frequency range in MHz.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"SasPortalGcpProjectDeployment": { +"description": "Deployment associated with the GCP project. Includes whether SAS analytics has been enabled or not.", +"id": "SasPortalGcpProjectDeployment", +"properties": { +"deployment": { +"$ref": "SasPortalDeployment", +"description": "Deployment associated with the GCP project." +}, +"hasEnabledAnalytics": { +"description": "Whether SAS analytics has been enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"SasPortalGenerateSecretRequest": { +"description": "Request for GenerateSecret.", +"id": "SasPortalGenerateSecretRequest", +"properties": {}, +"type": "object" +}, +"SasPortalGenerateSecretResponse": { +"description": "Response for GenerateSecret.", +"id": "SasPortalGenerateSecretResponse", +"properties": { +"secret": { +"description": "The secret generated by the string and used by ValidateInstaller.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalGetPolicyRequest": { +"description": "Request message for `GetPolicy` method.", +"id": "SasPortalGetPolicyRequest", +"properties": { +"resource": { +"description": "Required. The resource for which the policy is being requested.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalInstallationParams": { +"description": "Information about the device installation parameters.", +"id": "SasPortalInstallationParams", +"properties": { +"antennaAzimuth": { +"description": "Boresight direction of the horizontal plane of the antenna in degrees with respect to true north. The value of this parameter is an integer with a value between 0 and 359 inclusive. A value of 0 degrees means true north; a value of 90 degrees means east. This parameter is optional for Category A devices and conditional for Category B devices.", +"format": "int32", +"type": "integer" +}, +"antennaBeamwidth": { +"description": "3-dB antenna beamwidth of the antenna in the horizontal-plane in degrees. This parameter is an unsigned integer having a value between 0 and 360 (degrees) inclusive; it is optional for Category A devices and conditional for Category B devices.", +"format": "int32", +"type": "integer" +}, +"antennaDowntilt": { +"description": "Antenna downtilt in degrees and is an integer with a value between -90 and +90 inclusive; a negative value means the antenna is tilted up (above horizontal). This parameter is optional for Category A devices and conditional for Category B devices.", +"format": "int32", +"type": "integer" +}, +"antennaGain": { +"description": "Peak antenna gain in dBi. This parameter is a double with a value between -127 and +128 (dBi) inclusive. Part of Release 2 to support floating-point value", +"format": "double", +"type": "number" +}, +"antennaModel": { +"description": "If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.", +"type": "string" +}, +"cpeCbsdIndication": { +"description": "If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.", +"type": "boolean" +}, +"eirpCapability": { +"description": "This parameter is the maximum device EIRP in units of dBm/10MHz and is an integer with a value between -127 and +47 (dBm/10 MHz) inclusive. If not included, SAS interprets it as maximum allowable EIRP in units of dBm/10MHz for device category.", +"format": "int32", +"type": "integer" +}, +"height": { +"description": "Device antenna height in meters. When the `heightType` parameter value is \"AGL\", the antenna height should be given relative to ground level. When the `heightType` parameter value is \"AMSL\", it is given with respect to WGS84 datum.", +"format": "double", +"type": "number" +}, +"heightType": { +"description": "Specifies how the height is measured.", +"enum": [ +"HEIGHT_TYPE_UNSPECIFIED", +"HEIGHT_TYPE_AGL", +"HEIGHT_TYPE_AMSL" +], +"enumDescriptions": [ +"Unspecified height type.", +"AGL height is measured relative to the ground level.", +"AMSL height is measured relative to the mean sea level." +], +"type": "string" +}, +"horizontalAccuracy": { +"description": "A positive number in meters to indicate accuracy of the device antenna horizontal location. This optional parameter should only be present if its value is less than the FCC requirement of 50 meters.", +"format": "double", +"type": "number" +}, +"indoorDeployment": { +"description": "Whether the device antenna is indoor or not. `true`: indoor. `false`: outdoor.", +"type": "boolean" +}, +"latitude": { +"description": "Latitude of the device antenna location in degrees relative to the WGS 84 datum. The allowed range is from -90.000000 to +90.000000. Positive values represent latitudes north of the equator; negative values south of the equator.", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "Longitude of the device antenna location in degrees relative to the WGS 84 datum. The allowed range is from -180.000000 to +180.000000. Positive values represent longitudes east of the prime meridian; negative values west of the prime meridian.", +"format": "double", +"type": "number" +}, +"verticalAccuracy": { +"description": "A positive number in meters to indicate accuracy of the device antenna vertical location. This optional parameter should only be present if its value is less than the FCC requirement of 3 meters.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"SasPortalListCustomersResponse": { +"description": "Response for `ListCustomers`.", +"id": "SasPortalListCustomersResponse", +"properties": { +"customers": { +"description": "The list of customers that match the request.", +"items": { +"$ref": "SasPortalCustomer" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A pagination token returned from a previous call to ListCustomers that indicates from where listing should continue. If the field is missing or empty, it means there are no more customers.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalListDeploymentsResponse": { +"description": "Response for ListDeployments.", +"id": "SasPortalListDeploymentsResponse", +"properties": { +"deployments": { +"description": "The deployments that match the request.", +"items": { +"$ref": "SasPortalDeployment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A pagination token returned from a previous call to ListDeployments that indicates from where listing should continue. If the field is missing or empty, it means there are no more deployments.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalListDevicesResponse": { +"description": "Response for ListDevices.", +"id": "SasPortalListDevicesResponse", +"properties": { +"devices": { +"description": "The devices that match the request.", +"items": { +"$ref": "SasPortalDevice" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A pagination token returned from a previous call to ListDevices that indicates from where listing should continue. If the field is missing or empty, it means there is no more devices.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalListGcpProjectDeploymentsResponse": { +"description": "Response for [ListGcpProjectDeployments].", +"id": "SasPortalListGcpProjectDeploymentsResponse", +"properties": { +"deployments": { +"description": "Optional. Deployments associated with the GCP project", +"items": { +"$ref": "SasPortalGcpProjectDeployment" +}, +"type": "array" +} +}, +"type": "object" +}, +"SasPortalListLegacyOrganizationsResponse": { +"description": "Response for [ListLegacyOrganizations]. [spectrum.sas.portal.v1alpha1.Provisioning.ListLegacyOrganizations].", +"id": "SasPortalListLegacyOrganizationsResponse", +"properties": { +"organizations": { +"description": "Optional. Legacy SAS organizations.", +"items": { +"$ref": "SasPortalOrganization" +}, +"type": "array" +} +}, +"type": "object" +}, +"SasPortalListNodesResponse": { +"description": "Response for ListNodes.", +"id": "SasPortalListNodesResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token returned from a previous call to ListNodes that indicates from where listing should continue. If the field is missing or empty, it means there is no more nodes.", +"type": "string" +}, +"nodes": { +"description": "The nodes that match the request.", +"items": { +"$ref": "SasPortalNode" +}, +"type": "array" +} +}, +"type": "object" +}, +"SasPortalMigrateOrganizationMetadata": { +"description": "Long-running operation metadata message returned by the MigrateOrganization.", +"id": "SasPortalMigrateOrganizationMetadata", +"properties": { +"operationState": { +"description": "Output only. Current operation state", +"enum": [ +"OPERATION_STATE_UNSPECIFIED", +"OPERATION_STATE_PENDING", +"OPERATION_STATE_RUNNING", +"OPERATION_STATE_SUCCEEDED", +"OPERATION_STATE_FAILED" +], +"enumDescriptions": [ +"Unspecified.", +"Pending (Not started).", +"In-progress.", +"Done successfully.", +"Done with errors." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SasPortalMigrateOrganizationRequest": { +"description": "Request for [MigrateOrganization]. [spectrum.sas.portal.v1alpha1.Provisioning.MigrateOrganization]. GCP Project, Organization Info, and caller's GAIA ID should be retrieved from the RPC handler, and used to check authorization on SAS Portal organization and to create GCP Projects.", +"id": "SasPortalMigrateOrganizationRequest", +"properties": { +"organizationId": { +"description": "Required. Id of the SAS organization to be migrated.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalMigrateOrganizationResponse": { +"description": "Response for [MigrateOrganization]. [spectrum.sas.portal.v1alpha1.Provisioning.MigrateOrganization].", +"id": "SasPortalMigrateOrganizationResponse", +"properties": { +"deploymentAssociation": { +"description": "Optional. A list of deployment association that were created for the migration, or current associations if they already exist.", +"items": { +"$ref": "SasPortalDeploymentAssociation" +}, +"type": "array" +} +}, +"type": "object" +}, +"SasPortalMoveDeploymentRequest": { +"description": "Request for MoveDeployment.", +"id": "SasPortalMoveDeploymentRequest", +"properties": { +"destination": { +"description": "Required. The name of the new parent resource node or customer to reparent the deployment under.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalMoveDeviceRequest": { +"description": "Request for MoveDevice.", +"id": "SasPortalMoveDeviceRequest", +"properties": { +"destination": { +"description": "Required. The name of the new parent resource node or customer to reparent the device under.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalMoveNodeRequest": { +"description": "Request for MoveNode.", +"id": "SasPortalMoveNodeRequest", +"properties": { +"destination": { +"description": "Required. The name of the new parent resource node or customer to reparent the node under.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalNode": { +"description": "The Node.", +"id": "SasPortalNode", +"properties": { +"displayName": { +"description": "The node's display name.", +"type": "string" +}, +"name": { +"description": "Output only. Resource name.", +"type": "string" +}, +"sasUserIds": { +"description": "User ids used by the devices belonging to this node.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SasPortalNrqzValidation": { +"description": "Information about National Radio Quiet Zone validation.", +"id": "SasPortalNrqzValidation", +"properties": { +"caseId": { +"description": "Validation case ID.", +"type": "string" +}, +"cpiId": { +"description": "CPI who signed the validation.", +"type": "string" +}, +"latitude": { +"description": "Device latitude that's associated with the validation.", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "Device longitude that's associated with the validation.", +"format": "double", +"type": "number" +}, +"state": { +"description": "State of the NRQZ validation info.", +"enum": [ +"STATE_UNSPECIFIED", +"DRAFT", +"FINAL" +], +"enumDescriptions": [ +"Unspecified state.", +"Draft state.", +"Final state." +], +"type": "string" +} +}, +"type": "object" +}, +"SasPortalOperation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "SasPortalOperation", +"properties": { +"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": { +"$ref": "SasPortalStatus", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"SasPortalOrganization": { +"description": "Organization details.", +"id": "SasPortalOrganization", +"properties": { +"displayName": { +"description": "Name of organization", +"type": "string" +}, +"id": { +"description": "Id of organization", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalPolicy": { +"description": "Defines an access control policy to the resources.", +"id": "SasPortalPolicy", +"properties": { +"assignments": { +"description": "List of assignments", +"items": { +"$ref": "SasPortalAssignment" +}, +"type": "array" +}, +"etag": { +"description": "The etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An etag is returned in the response to GetPolicy, and systems are expected to put that etag in the request to SetPolicy to ensure that their change will be applied to the same version of the policy. If no etag is provided in the call to GetPolicy, then the existing policy is overwritten blindly.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalProvisionDeploymentRequest": { +"description": "Request for [ProvisionDeployment]. [spectrum.sas.portal.v1alpha1.Provisioning.ProvisionDeployment]. GCP Project, Organization Info, and caller\u2019s GAIA ID should be retrieved from the RPC handler, and used as inputs to create a new SAS organization (if not exists) and a new SAS deployment.", +"id": "SasPortalProvisionDeploymentRequest", +"properties": { +"newDeploymentDisplayName": { +"description": "Optional. If this field is set, and a new SAS Portal Deployment needs to be created, its display name will be set to the value of this field.", +"type": "string" +}, +"newOrganizationDisplayName": { +"description": "Optional. If this field is set, and a new SAS Portal Organization needs to be created, its display name will be set to the value of this field.", +"type": "string" +}, +"organizationId": { +"description": "Optional. If this field is set then a new deployment will be created under the organization specified by this id.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalProvisionDeploymentResponse": { +"description": "Response for [ProvisionDeployment]. [spectrum.sas.portal.v1alpha1.Provisioning.ProvisionDeployment].", +"id": "SasPortalProvisionDeploymentResponse", +"properties": { +"errorMessage": { +"description": "Optional. Optional error message if the provisioning request is not successful.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalSetPolicyRequest": { +"description": "Request message for `SetPolicy` method.", +"id": "SasPortalSetPolicyRequest", +"properties": { +"disableNotification": { +"description": "Optional. Set the field as `true` to disable the onboarding notification.", +"type": "boolean" +}, +"policy": { +"$ref": "SasPortalPolicy", +"description": "Required. The policy to be applied to the `resource`." +}, +"resource": { +"description": "Required. The resource for which the policy is being specified. This policy replaces any existing policy.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalSetupSasAnalyticsMetadata": { +"description": "Metadata returned by the long running operation for the SetupSasAnalytics rpc.", +"id": "SasPortalSetupSasAnalyticsMetadata", +"properties": {}, +"type": "object" +}, +"SasPortalSetupSasAnalyticsRequest": { +"description": "Request for the SetupSasAnalytics rpc.", +"id": "SasPortalSetupSasAnalyticsRequest", +"properties": { +"userId": { +"description": "Optional. User id to setup analytics for, if not provided the user id associated with the project is used. optional", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalSetupSasAnalyticsResponse": { +"description": "Response returned by the long running operation for the SetupSasAnalytics rpc.", +"id": "SasPortalSetupSasAnalyticsResponse", +"properties": {}, +"type": "object" +}, +"SasPortalSignDeviceRequest": { +"description": "Request for SignDevice.", +"id": "SasPortalSignDeviceRequest", +"properties": { +"device": { +"$ref": "SasPortalDevice", +"description": "Required. The device to sign. The device fields name, fcc_id and serial_number must be set. The user_id field must be set." +} +}, +"type": "object" +}, +"SasPortalStatus": { +"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", +"id": "SasPortalStatus", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalTestPermissionsRequest": { +"description": "Request message for `TestPermissions` method.", +"id": "SasPortalTestPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resource": { +"description": "Required. The resource for which the permissions are being requested.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalTestPermissionsResponse": { +"description": "Response message for `TestPermissions` method.", +"id": "SasPortalTestPermissionsResponse", +"properties": { +"permissions": { +"description": "A set of permissions that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SasPortalUpdateSignedDeviceRequest": { +"description": "Request for UpdateSignedDevice.", +"id": "SasPortalUpdateSignedDeviceRequest", +"properties": { +"encodedDevice": { +"description": "Required. The JSON Web Token signed using a CPI private key. Payload must be the JSON encoding of the device. The user_id field must be set.", +"format": "byte", +"type": "string" +}, +"installerId": { +"description": "Required. Unique installer ID (CPI ID) from the Certified Professional Installers database.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalValidateInstallerRequest": { +"description": "Request for ValidateInstaller.", +"id": "SasPortalValidateInstallerRequest", +"properties": { +"encodedSecret": { +"description": "Required. JSON Web Token signed using a CPI private key. Payload must include a \"secret\" claim whose value is the secret.", +"type": "string" +}, +"installerId": { +"description": "Required. Unique installer id (CPI ID) from the Certified Professional Installers database.", +"type": "string" +}, +"secret": { +"description": "Required. Secret returned by the GenerateSecret.", +"type": "string" +} +}, +"type": "object" +}, +"SasPortalValidateInstallerResponse": { +"description": "Response for ValidateInstaller.", +"id": "SasPortalValidateInstallerResponse", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "SAS Portal API", +"version": "v1alpha1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/searchconsole.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/searchconsole.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..68f4f34e3fdd1d9f9acfb48900cdf108b9533bf5 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/searchconsole.v1.json @@ -0,0 +1,1511 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/webmasters": { +"description": "View and manage Search Console data for your verified sites" +}, +"https://www.googleapis.com/auth/webmasters.readonly": { +"description": "View Search Console data for your verified sites" +} +} +} +}, +"basePath": "", +"baseUrl": "https://searchconsole.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Search Console", +"description": "The Search Console API provides access to both Search Console data (verified users only) and to public information on an URL basis (anyone)", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/webmaster-tools/about", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "searchconsole:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://searchconsole.mtls.googleapis.com/", +"name": "searchconsole", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"searchanalytics": { +"methods": { +"query": { +"description": "Query your data with filters and parameters that you define. Returns zero or more rows grouped by the row keys that you define. You must define a date range of one or more days. When date is one of the group by values, any days without data are omitted from the result list. If you need to know which days have data, issue a broad date range query grouped by date for any metric, and see which day rows are returned.", +"flatPath": "webmasters/v3/sites/{siteUrl}/searchAnalytics/query", +"httpMethod": "POST", +"id": "webmasters.searchanalytics.query", +"parameterOrder": [ +"siteUrl" +], +"parameters": { +"siteUrl": { +"description": "The site's URL, including protocol. For example: `http://www.example.com/`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "webmasters/v3/sites/{siteUrl}/searchAnalytics/query", +"request": { +"$ref": "SearchAnalyticsQueryRequest" +}, +"response": { +"$ref": "SearchAnalyticsQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/webmasters", +"https://www.googleapis.com/auth/webmasters.readonly" +] +} +} +}, +"sitemaps": { +"methods": { +"delete": { +"description": "Deletes a sitemap from the Sitemaps report. Does not stop Google from crawling this sitemap or the URLs that were previously crawled in the deleted sitemap.", +"flatPath": "webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}", +"httpMethod": "DELETE", +"id": "webmasters.sitemaps.delete", +"parameterOrder": [ +"siteUrl", +"feedpath" +], +"parameters": { +"feedpath": { +"description": "The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`.", +"location": "path", +"required": true, +"type": "string" +}, +"siteUrl": { +"description": "The site's URL, including protocol. For example: `http://www.example.com/`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}", +"scopes": [ +"https://www.googleapis.com/auth/webmasters" +] +}, +"get": { +"description": "Retrieves information about a specific sitemap.", +"flatPath": "webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}", +"httpMethod": "GET", +"id": "webmasters.sitemaps.get", +"parameterOrder": [ +"siteUrl", +"feedpath" +], +"parameters": { +"feedpath": { +"description": "The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`.", +"location": "path", +"required": true, +"type": "string" +}, +"siteUrl": { +"description": "The site's URL, including protocol. For example: `http://www.example.com/`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}", +"response": { +"$ref": "WmxSitemap" +}, +"scopes": [ +"https://www.googleapis.com/auth/webmasters", +"https://www.googleapis.com/auth/webmasters.readonly" +] +}, +"list": { +"description": " Lists the [sitemaps-entries](/webmaster-tools/v3/sitemaps) submitted for this site, or included in the sitemap index file (if `sitemapIndex` is specified in the request).", +"flatPath": "webmasters/v3/sites/{siteUrl}/sitemaps", +"httpMethod": "GET", +"id": "webmasters.sitemaps.list", +"parameterOrder": [ +"siteUrl" +], +"parameters": { +"siteUrl": { +"description": "The site's URL, including protocol. For example: `http://www.example.com/`.", +"location": "path", +"required": true, +"type": "string" +}, +"sitemapIndex": { +"description": " A URL of a site's sitemap index. For example: `http://www.example.com/sitemapindex.xml`.", +"location": "query", +"type": "string" +} +}, +"path": "webmasters/v3/sites/{siteUrl}/sitemaps", +"response": { +"$ref": "SitemapsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/webmasters", +"https://www.googleapis.com/auth/webmasters.readonly" +] +}, +"submit": { +"description": "Submits a sitemap for a site.", +"flatPath": "webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}", +"httpMethod": "PUT", +"id": "webmasters.sitemaps.submit", +"parameterOrder": [ +"siteUrl", +"feedpath" +], +"parameters": { +"feedpath": { +"description": "The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`.", +"location": "path", +"required": true, +"type": "string" +}, +"siteUrl": { +"description": "The site's URL, including protocol. For example: `http://www.example.com/`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}", +"scopes": [ +"https://www.googleapis.com/auth/webmasters" +] +} +} +}, +"sites": { +"methods": { +"add": { +"description": " Adds a site to the set of the user's sites in Search Console.", +"flatPath": "webmasters/v3/sites/{siteUrl}", +"httpMethod": "PUT", +"id": "webmasters.sites.add", +"parameterOrder": [ +"siteUrl" +], +"parameters": { +"siteUrl": { +"description": "The URL of the site to add.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "webmasters/v3/sites/{siteUrl}", +"scopes": [ +"https://www.googleapis.com/auth/webmasters" +] +}, +"delete": { +"description": " Removes a site from the set of the user's Search Console sites.", +"flatPath": "webmasters/v3/sites/{siteUrl}", +"httpMethod": "DELETE", +"id": "webmasters.sites.delete", +"parameterOrder": [ +"siteUrl" +], +"parameters": { +"siteUrl": { +"description": "The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "webmasters/v3/sites/{siteUrl}", +"scopes": [ +"https://www.googleapis.com/auth/webmasters" +] +}, +"get": { +"description": " Retrieves information about specific site.", +"flatPath": "webmasters/v3/sites/{siteUrl}", +"httpMethod": "GET", +"id": "webmasters.sites.get", +"parameterOrder": [ +"siteUrl" +], +"parameters": { +"siteUrl": { +"description": "The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "webmasters/v3/sites/{siteUrl}", +"response": { +"$ref": "WmxSite" +}, +"scopes": [ +"https://www.googleapis.com/auth/webmasters", +"https://www.googleapis.com/auth/webmasters.readonly" +] +}, +"list": { +"description": " Lists the user's Search Console sites.", +"flatPath": "webmasters/v3/sites", +"httpMethod": "GET", +"id": "webmasters.sites.list", +"parameterOrder": [], +"parameters": {}, +"path": "webmasters/v3/sites", +"response": { +"$ref": "SitesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/webmasters", +"https://www.googleapis.com/auth/webmasters.readonly" +] +} +} +}, +"urlInspection": { +"resources": { +"index": { +"methods": { +"inspect": { +"description": "Index inspection.", +"flatPath": "v1/urlInspection/index:inspect", +"httpMethod": "POST", +"id": "searchconsole.urlInspection.index.inspect", +"parameterOrder": [], +"parameters": {}, +"path": "v1/urlInspection/index:inspect", +"request": { +"$ref": "InspectUrlIndexRequest" +}, +"response": { +"$ref": "InspectUrlIndexResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/webmasters", +"https://www.googleapis.com/auth/webmasters.readonly" +] +} +} +} +} +}, +"urlTestingTools": { +"resources": { +"mobileFriendlyTest": { +"methods": { +"run": { +"description": "Runs Mobile-Friendly Test for a given URL.", +"flatPath": "v1/urlTestingTools/mobileFriendlyTest:run", +"httpMethod": "POST", +"id": "searchconsole.urlTestingTools.mobileFriendlyTest.run", +"parameterOrder": [], +"parameters": {}, +"path": "v1/urlTestingTools/mobileFriendlyTest:run", +"request": { +"$ref": "RunMobileFriendlyTestRequest" +}, +"response": { +"$ref": "RunMobileFriendlyTestResponse" +} +} +} +} +} +} +}, +"revision": "20240708", +"rootUrl": "https://searchconsole.googleapis.com/", +"schemas": { +"AmpInspectionResult": { +"description": "AMP inspection result of the live page or the current information from Google's index, depending on whether you requested a live inspection or not.", +"id": "AmpInspectionResult", +"properties": { +"ampIndexStatusVerdict": { +"description": "Index status of the AMP URL.", +"enum": [ +"VERDICT_UNSPECIFIED", +"PASS", +"PARTIAL", +"FAIL", +"NEUTRAL" +], +"enumDescriptions": [ +"Unknown verdict.", +"Equivalent to \"Valid\" for the page or item in Search Console.", +"Reserved, no longer in use.", +"Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", +"Equivalent to \"Excluded\" for the page or item in Search Console." +], +"type": "string" +}, +"ampUrl": { +"description": "URL of the AMP that was inspected. If the submitted URL is a desktop page that refers to an AMP version, the AMP version will be inspected.", +"type": "string" +}, +"indexingState": { +"description": "Whether or not the page blocks indexing through a noindex rule.", +"enum": [ +"AMP_INDEXING_STATE_UNSPECIFIED", +"AMP_INDEXING_ALLOWED", +"BLOCKED_DUE_TO_NOINDEX", +"BLOCKED_DUE_TO_EXPIRED_UNAVAILABLE_AFTER" +], +"enumDescriptions": [ +"Unknown indexing status.", +"Indexing allowed.", +"Indexing not allowed, 'noindex' detected.", +"Indexing not allowed, 'unavailable_after' date expired." +], +"type": "string" +}, +"issues": { +"description": "A list of zero or more AMP issues found for the inspected URL.", +"items": { +"$ref": "AmpIssue" +}, +"type": "array" +}, +"lastCrawlTime": { +"description": "Last time this AMP version was crawled by Google. Absent if the URL was never crawled successfully.", +"format": "google-datetime", +"type": "string" +}, +"pageFetchState": { +"description": "Whether or not Google could fetch the AMP.", +"enum": [ +"PAGE_FETCH_STATE_UNSPECIFIED", +"SUCCESSFUL", +"SOFT_404", +"BLOCKED_ROBOTS_TXT", +"NOT_FOUND", +"ACCESS_DENIED", +"SERVER_ERROR", +"REDIRECT_ERROR", +"ACCESS_FORBIDDEN", +"BLOCKED_4XX", +"INTERNAL_CRAWL_ERROR", +"INVALID_URL" +], +"enumDescriptions": [ +"Unknown fetch state.", +"Successful fetch.", +"Soft 404.", +"Blocked by robots.txt.", +"Not found (404).", +"Blocked due to unauthorized request (401).", +"Server error (5xx).", +"Redirection error.", +"Blocked due to access forbidden (403).", +"Blocked due to other 4xx issue (not 403, 404).", +"Internal error.", +"Invalid URL." +], +"type": "string" +}, +"robotsTxtState": { +"description": "Whether or not the page is blocked to Google by a robots.txt rule.", +"enum": [ +"ROBOTS_TXT_STATE_UNSPECIFIED", +"ALLOWED", +"DISALLOWED" +], +"enumDescriptions": [ +"Unknown robots.txt state, typically because the page wasn't fetched or found, or because robots.txt itself couldn't be reached.", +"Crawl allowed by robots.txt.", +"Crawl blocked by robots.txt." +], +"type": "string" +}, +"verdict": { +"description": "The status of the most severe error on the page. If a page has both warnings and errors, the page status is error. Error status means the page cannot be shown in Search results.", +"enum": [ +"VERDICT_UNSPECIFIED", +"PASS", +"PARTIAL", +"FAIL", +"NEUTRAL" +], +"enumDescriptions": [ +"Unknown verdict.", +"Equivalent to \"Valid\" for the page or item in Search Console.", +"Reserved, no longer in use.", +"Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", +"Equivalent to \"Excluded\" for the page or item in Search Console." +], +"type": "string" +} +}, +"type": "object" +}, +"AmpIssue": { +"description": "AMP issue.", +"id": "AmpIssue", +"properties": { +"issueMessage": { +"description": "Brief description of this issue.", +"type": "string" +}, +"severity": { +"description": "Severity of this issue: WARNING or ERROR.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"Unknown severity.", +"Warning.", +"Error." +], +"type": "string" +} +}, +"type": "object" +}, +"ApiDataRow": { +"id": "ApiDataRow", +"properties": { +"clicks": { +"format": "double", +"type": "number" +}, +"ctr": { +"format": "double", +"type": "number" +}, +"impressions": { +"format": "double", +"type": "number" +}, +"keys": { +"items": { +"type": "string" +}, +"type": "array" +}, +"position": { +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ApiDimensionFilter": { +"description": "A filter test to be applied to each row in the data set, where a match can return the row. Filters are string comparisons, and values and dimension names are not case-sensitive. Individual filters are either AND'ed or OR'ed within their parent filter group, according to the group's group type. You do not need to group by a specified dimension to filter against it.", +"id": "ApiDimensionFilter", +"properties": { +"dimension": { +"enum": [ +"QUERY", +"PAGE", +"COUNTRY", +"DEVICE", +"SEARCH_APPEARANCE" +], +"enumDescriptions": [ +"", +"", +"", +"", +"" +], +"type": "string" +}, +"expression": { +"type": "string" +}, +"operator": { +"enum": [ +"EQUALS", +"NOT_EQUALS", +"CONTAINS", +"NOT_CONTAINS", +"INCLUDING_REGEX", +"EXCLUDING_REGEX" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"ApiDimensionFilterGroup": { +"description": "A set of dimension value filters to test against each row. Only rows that pass all filter groups will be returned. All results within a filter group are either AND'ed or OR'ed together, depending on the group type selected. All filter groups are AND'ed together.", +"id": "ApiDimensionFilterGroup", +"properties": { +"filters": { +"items": { +"$ref": "ApiDimensionFilter" +}, +"type": "array" +}, +"groupType": { +"enum": [ +"AND" +], +"enumDescriptions": [ +"" +], +"type": "string" +} +}, +"type": "object" +}, +"BlockedResource": { +"description": "Blocked resource.", +"id": "BlockedResource", +"properties": { +"url": { +"description": "URL of the blocked resource.", +"type": "string" +} +}, +"type": "object" +}, +"DetectedItems": { +"description": "Rich Results items grouped by type.", +"id": "DetectedItems", +"properties": { +"items": { +"description": "List of Rich Results items.", +"items": { +"$ref": "Item" +}, +"type": "array" +}, +"richResultType": { +"description": "Rich Results type", +"type": "string" +} +}, +"type": "object" +}, +"Image": { +"description": "Describe image data.", +"id": "Image", +"properties": { +"data": { +"description": "Image data in format determined by the mime type. Currently, the format will always be \"image/png\", but this might change in the future.", +"format": "byte", +"type": "string" +}, +"mimeType": { +"description": "The mime-type of the image data.", +"type": "string" +} +}, +"type": "object" +}, +"IndexStatusInspectionResult": { +"description": "Results of index status inspection for either the live page or the version in Google's index, depending on whether you requested a live inspection or not. For more information, see the [Index coverage report documentation](https://support.google.com/webmasters/answer/7440203).", +"id": "IndexStatusInspectionResult", +"properties": { +"coverageState": { +"description": "Could Google find and index the page. More details about page indexing appear in 'indexing_state'.", +"type": "string" +}, +"crawledAs": { +"description": "Primary crawler that was used by Google to crawl your site.", +"enum": [ +"CRAWLING_USER_AGENT_UNSPECIFIED", +"DESKTOP", +"MOBILE" +], +"enumDescriptions": [ +"Unknown user agent.", +"Desktop user agent.", +"Mobile user agent." +], +"type": "string" +}, +"googleCanonical": { +"description": "The URL of the page that Google selected as canonical. If the page was not indexed, this field is absent.", +"type": "string" +}, +"indexingState": { +"description": "Whether or not the page blocks indexing through a noindex rule.", +"enum": [ +"INDEXING_STATE_UNSPECIFIED", +"INDEXING_ALLOWED", +"BLOCKED_BY_META_TAG", +"BLOCKED_BY_HTTP_HEADER", +"BLOCKED_BY_ROBOTS_TXT" +], +"enumDescriptions": [ +"Unknown indexing status.", +"Indexing allowed.", +"Indexing not allowed, 'noindex' detected in 'robots' meta tag.", +"Indexing not allowed, 'noindex' detected in 'X-Robots-Tag' http header.", +"Reserved, no longer in use." +], +"type": "string" +}, +"lastCrawlTime": { +"description": "Last time this URL was crawled by Google using the [primary crawler](https://support.google.com/webmasters/answer/7440203#primary_crawler). Absent if the URL was never crawled successfully.", +"format": "google-datetime", +"type": "string" +}, +"pageFetchState": { +"description": "Whether or not Google could retrieve the page from your server. Equivalent to [\"page fetch\"](https://support.google.com/webmasters/answer/9012289#index_coverage) in the URL inspection report.", +"enum": [ +"PAGE_FETCH_STATE_UNSPECIFIED", +"SUCCESSFUL", +"SOFT_404", +"BLOCKED_ROBOTS_TXT", +"NOT_FOUND", +"ACCESS_DENIED", +"SERVER_ERROR", +"REDIRECT_ERROR", +"ACCESS_FORBIDDEN", +"BLOCKED_4XX", +"INTERNAL_CRAWL_ERROR", +"INVALID_URL" +], +"enumDescriptions": [ +"Unknown fetch state.", +"Successful fetch.", +"Soft 404.", +"Blocked by robots.txt.", +"Not found (404).", +"Blocked due to unauthorized request (401).", +"Server error (5xx).", +"Redirection error.", +"Blocked due to access forbidden (403).", +"Blocked due to other 4xx issue (not 403, 404).", +"Internal error.", +"Invalid URL." +], +"type": "string" +}, +"referringUrls": { +"description": "URLs that link to the inspected URL, directly and indirectly.", +"items": { +"type": "string" +}, +"type": "array" +}, +"robotsTxtState": { +"description": "Whether or not the page is blocked to Google by a robots.txt rule.", +"enum": [ +"ROBOTS_TXT_STATE_UNSPECIFIED", +"ALLOWED", +"DISALLOWED" +], +"enumDescriptions": [ +"Unknown robots.txt state, typically because the page wasn't fetched or found, or because robots.txt itself couldn't be reached.", +"Crawl allowed by robots.txt.", +"Crawl blocked by robots.txt." +], +"type": "string" +}, +"sitemap": { +"description": "Any sitemaps that this URL was listed in, as known by Google. Not guaranteed to be an exhaustive list, especially if Google did not discover this URL through a sitemap. Absent if no sitemaps were found.", +"items": { +"type": "string" +}, +"type": "array" +}, +"userCanonical": { +"description": "The URL that your page or site [declares as canonical](https://developers.google.com/search/docs/advanced/crawling/consolidate-duplicate-urls?#define-canonical). If you did not declare a canonical URL, this field is absent.", +"type": "string" +}, +"verdict": { +"description": "High level verdict about whether the URL *is* indexed (indexed status), or *can be* indexed (live inspection).", +"enum": [ +"VERDICT_UNSPECIFIED", +"PASS", +"PARTIAL", +"FAIL", +"NEUTRAL" +], +"enumDescriptions": [ +"Unknown verdict.", +"Equivalent to \"Valid\" for the page or item in Search Console.", +"Reserved, no longer in use.", +"Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", +"Equivalent to \"Excluded\" for the page or item in Search Console." +], +"type": "string" +} +}, +"type": "object" +}, +"InspectUrlIndexRequest": { +"description": "Index inspection request.", +"id": "InspectUrlIndexRequest", +"properties": { +"inspectionUrl": { +"description": "Required. URL to inspect. Must be under the property specified in \"site_url\".", +"type": "string" +}, +"languageCode": { +"description": "Optional. An [IETF BCP-47](https://en.wikipedia.org/wiki/IETF_language_tag) language code representing the requested language for translated issue messages, e.g. \"en-US\", \"or \"de-CH\". Default value is \"en-US\".", +"type": "string" +}, +"siteUrl": { +"description": "Required. The URL of the property as defined in Search Console. **Examples:** `http://www.example.com/` for a URL-prefix property, or `sc-domain:example.com` for a Domain property.", +"type": "string" +} +}, +"type": "object" +}, +"InspectUrlIndexResponse": { +"description": "Index-Status inspection response.", +"id": "InspectUrlIndexResponse", +"properties": { +"inspectionResult": { +"$ref": "UrlInspectionResult", +"description": "URL inspection results." +} +}, +"type": "object" +}, +"Item": { +"description": "A specific rich result found on the page.", +"id": "Item", +"properties": { +"issues": { +"description": "A list of zero or more rich result issues found for this instance.", +"items": { +"$ref": "RichResultsIssue" +}, +"type": "array" +}, +"name": { +"description": "The user-provided name of this item.", +"type": "string" +} +}, +"type": "object" +}, +"MobileFriendlyIssue": { +"description": "Mobile-friendly issue.", +"id": "MobileFriendlyIssue", +"properties": { +"rule": { +"description": "Rule violated.", +"enum": [ +"MOBILE_FRIENDLY_RULE_UNSPECIFIED", +"USES_INCOMPATIBLE_PLUGINS", +"CONFIGURE_VIEWPORT", +"FIXED_WIDTH_VIEWPORT", +"SIZE_CONTENT_TO_VIEWPORT", +"USE_LEGIBLE_FONT_SIZES", +"TAP_TARGETS_TOO_CLOSE" +], +"enumDescriptions": [ +"Unknown rule. Sorry, we don't have any description for the rule that was broken.", +"Plugins incompatible with mobile devices are being used. [Learn more] (https://support.google.com/webmasters/answer/6352293#flash_usage).", +"Viewport is not specified using the meta viewport tag. [Learn more] (https://support.google.com/webmasters/answer/6352293#viewport_not_configured).", +"Viewport defined to a fixed width. [Learn more] (https://support.google.com/webmasters/answer/6352293#fixed-width_viewport).", +"Content not sized to viewport. [Learn more] (https://support.google.com/webmasters/answer/6352293#content_not_sized_to_viewport).", +"Font size is too small for easy reading on a small screen. [Learn More] (https://support.google.com/webmasters/answer/6352293#small_font_size).", +"Touch elements are too close to each other. [Learn more] (https://support.google.com/webmasters/answer/6352293#touch_elements_too_close)." +], +"type": "string" +} +}, +"type": "object" +}, +"MobileUsabilityInspectionResult": { +"description": "Mobile-usability inspection results.", +"id": "MobileUsabilityInspectionResult", +"properties": { +"issues": { +"description": "A list of zero or more mobile-usability issues detected for this URL.", +"items": { +"$ref": "MobileUsabilityIssue" +}, +"type": "array" +}, +"verdict": { +"description": "High-level mobile-usability inspection result for this URL.", +"enum": [ +"VERDICT_UNSPECIFIED", +"PASS", +"PARTIAL", +"FAIL", +"NEUTRAL" +], +"enumDescriptions": [ +"Unknown verdict.", +"Equivalent to \"Valid\" for the page or item in Search Console.", +"Reserved, no longer in use.", +"Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", +"Equivalent to \"Excluded\" for the page or item in Search Console." +], +"type": "string" +} +}, +"type": "object" +}, +"MobileUsabilityIssue": { +"description": "Mobile-usability issue.", +"id": "MobileUsabilityIssue", +"properties": { +"issueType": { +"description": "Mobile-usability issue type.", +"enum": [ +"MOBILE_USABILITY_ISSUE_TYPE_UNSPECIFIED", +"USES_INCOMPATIBLE_PLUGINS", +"CONFIGURE_VIEWPORT", +"FIXED_WIDTH_VIEWPORT", +"SIZE_CONTENT_TO_VIEWPORT", +"USE_LEGIBLE_FONT_SIZES", +"TAP_TARGETS_TOO_CLOSE" +], +"enumDescriptions": [ +"Unknown issue. Sorry, we don't have any description for the rule that was broken.", +"Plugins incompatible with mobile devices are being used. [Learn more] (https://support.google.com/webmasters/answer/6352293#flash_usage#error-list).", +"Viewport is not specified using the meta viewport tag. [Learn more] (https://support.google.com/webmasters/answer/6352293#viewport_not_configured#error-list).", +"Viewport defined to a fixed width. [Learn more] (https://support.google.com/webmasters/answer/6352293#fixed-width_viewport#error-list).", +"Content not sized to viewport. [Learn more] (https://support.google.com/webmasters/answer/6352293#content_not_sized_to_viewport#error-list).", +"Font size is too small for easy reading on a small screen. [Learn More] (https://support.google.com/webmasters/answer/6352293#small_font_size#error-list).", +"Touch elements are too close to each other. [Learn more] (https://support.google.com/webmasters/answer/6352293#touch_elements_too_close#error-list)." +], +"type": "string" +}, +"message": { +"description": "Additional information regarding the issue.", +"type": "string" +}, +"severity": { +"description": "Not returned; reserved for future use.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"Unknown severity.", +"Warning.", +"Error." +], +"type": "string" +} +}, +"type": "object" +}, +"ResourceIssue": { +"description": "Information about a resource with issue.", +"id": "ResourceIssue", +"properties": { +"blockedResource": { +"$ref": "BlockedResource", +"description": "Describes a blocked resource issue." +} +}, +"type": "object" +}, +"RichResultsInspectionResult": { +"description": "Rich-Results inspection result, including any rich results found at this URL.", +"id": "RichResultsInspectionResult", +"properties": { +"detectedItems": { +"description": "A list of zero or more rich results detected on this page. Rich results that cannot even be parsed due to syntactic issues will not be listed here.", +"items": { +"$ref": "DetectedItems" +}, +"type": "array" +}, +"verdict": { +"description": "High-level rich results inspection result for this URL.", +"enum": [ +"VERDICT_UNSPECIFIED", +"PASS", +"PARTIAL", +"FAIL", +"NEUTRAL" +], +"enumDescriptions": [ +"Unknown verdict.", +"Equivalent to \"Valid\" for the page or item in Search Console.", +"Reserved, no longer in use.", +"Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", +"Equivalent to \"Excluded\" for the page or item in Search Console." +], +"type": "string" +} +}, +"type": "object" +}, +"RichResultsIssue": { +"description": "Severity and status of a single issue affecting a single rich result instance on a page.", +"id": "RichResultsIssue", +"properties": { +"issueMessage": { +"description": "Rich Results issue type.", +"type": "string" +}, +"severity": { +"description": "Severity of this issue: WARNING, or ERROR. Items with an issue of status ERROR cannot appear with rich result features in Google Search results.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"Unknown severity.", +"Warning.", +"Error." +], +"type": "string" +} +}, +"type": "object" +}, +"RunMobileFriendlyTestRequest": { +"description": "Mobile-friendly test request.", +"id": "RunMobileFriendlyTestRequest", +"properties": { +"requestScreenshot": { +"description": "Whether or not screenshot is requested. Default is false.", +"type": "boolean" +}, +"url": { +"description": "URL for inspection.", +"type": "string" +} +}, +"type": "object" +}, +"RunMobileFriendlyTestResponse": { +"description": "Mobile-friendly test response, including mobile-friendly issues and resource issues.", +"id": "RunMobileFriendlyTestResponse", +"properties": { +"mobileFriendliness": { +"description": "Test verdict, whether the page is mobile friendly or not.", +"enum": [ +"MOBILE_FRIENDLY_TEST_RESULT_UNSPECIFIED", +"MOBILE_FRIENDLY", +"NOT_MOBILE_FRIENDLY" +], +"enumDescriptions": [ +"Internal error when running this test. Please try running the test again.", +"The page is mobile friendly.", +"The page is not mobile friendly." +], +"type": "string" +}, +"mobileFriendlyIssues": { +"description": "List of mobile-usability issues.", +"items": { +"$ref": "MobileFriendlyIssue" +}, +"type": "array" +}, +"resourceIssues": { +"description": "Information about embedded resources issues.", +"items": { +"$ref": "ResourceIssue" +}, +"type": "array" +}, +"screenshot": { +"$ref": "Image", +"description": "Screenshot of the requested URL." +}, +"testStatus": { +"$ref": "TestStatus", +"description": "Final state of the test, can be either complete or an error." +} +}, +"type": "object" +}, +"SearchAnalyticsQueryRequest": { +"id": "SearchAnalyticsQueryRequest", +"properties": { +"aggregationType": { +"description": "[Optional; Default is \\\"auto\\\"] How data is aggregated. If aggregated by property, all data for the same property is aggregated; if aggregated by page, all data is aggregated by canonical URI. If you filter or group by page, choose AUTO; otherwise you can aggregate either by property or by page, depending on how you want your data calculated; see the help documentation to learn how data is calculated differently by site versus by page. **Note:** If you group or filter by page, you cannot aggregate by property. If you specify any value other than AUTO, the aggregation type in the result will match the requested type, or if you request an invalid type, you will get an error. The API will never change your aggregation type if the requested type is invalid.", +"enum": [ +"AUTO", +"BY_PROPERTY", +"BY_PAGE", +"BY_NEWS_SHOWCASE_PANEL" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"dataState": { +"description": "The data state to be fetched, can be full or all, the latter including full and partial data.", +"enum": [ +"DATA_STATE_UNSPECIFIED", +"FINAL", +"ALL" +], +"enumDescriptions": [ +"Default value, should not be used.", +"Include full final data only, without partial.", +"Include all data, full and partial." +], +"type": "string" +}, +"dimensionFilterGroups": { +"description": "[Optional] Zero or more filters to apply to the dimension grouping values; for example, 'query contains \\\"buy\\\"' to see only data where the query string contains the substring \\\"buy\\\" (not case-sensitive). You can filter by a dimension without grouping by it.", +"items": { +"$ref": "ApiDimensionFilterGroup" +}, +"type": "array" +}, +"dimensions": { +"description": "[Optional] Zero or more dimensions to group results by. Dimensions are the group-by values in the Search Analytics page. Dimensions are combined to create a unique row key for each row. Results are grouped in the order that you supply these dimensions.", +"items": { +"enum": [ +"DATE", +"QUERY", +"PAGE", +"COUNTRY", +"DEVICE", +"SEARCH_APPEARANCE" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"endDate": { +"description": "[Required] End date of the requested date range, in YYYY-MM-DD format, in PST (UTC - 8:00). Must be greater than or equal to the start date. This value is included in the range.", +"type": "string" +}, +"rowLimit": { +"description": "[Optional; Default is 1000] The maximum number of rows to return. Must be a number from 1 to 25,000 (inclusive).", +"format": "int32", +"type": "integer" +}, +"searchType": { +"description": "[Optional; Default is \\\"web\\\"] The search type to filter for.", +"enum": [ +"WEB", +"IMAGE", +"VIDEO", +"NEWS", +"DISCOVER", +"GOOGLE_NEWS" +], +"enumDescriptions": [ +"", +"", +"", +"News tab in search.", +"Discover.", +"Google News (news.google.com or mobile app)." +], +"type": "string" +}, +"startDate": { +"description": " [Required] Start date of the requested date range, in YYYY-MM-DD format, in PST time (UTC - 8:00). Must be less than or equal to the end date. This value is included in the range.", +"type": "string" +}, +"startRow": { +"description": "[Optional; Default is 0] Zero-based index of the first row in the response. Must be a non-negative number.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "Optional. [Optional; Default is \\\"web\\\"] Type of report: search type, or either Discover or Gnews.", +"enum": [ +"WEB", +"IMAGE", +"VIDEO", +"NEWS", +"DISCOVER", +"GOOGLE_NEWS" +], +"enumDescriptions": [ +"", +"", +"", +"News tab in search.", +"Discover.", +"Google News (news.google.com or mobile app)." +], +"type": "string" +} +}, +"type": "object" +}, +"SearchAnalyticsQueryResponse": { +"description": "A list of rows, one per result, grouped by key. Metrics in each row are aggregated for all data grouped by that key either by page or property, as specified by the aggregation type parameter.", +"id": "SearchAnalyticsQueryResponse", +"properties": { +"responseAggregationType": { +"description": "How the results were aggregated.", +"enum": [ +"AUTO", +"BY_PROPERTY", +"BY_PAGE", +"BY_NEWS_SHOWCASE_PANEL" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"rows": { +"description": "A list of rows grouped by the key values in the order given in the query.", +"items": { +"$ref": "ApiDataRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"SitemapsListResponse": { +"description": "List of sitemaps.", +"id": "SitemapsListResponse", +"properties": { +"sitemap": { +"description": "Contains detailed information about a specific URL submitted as a [sitemap](https://support.google.com/webmasters/answer/156184).", +"items": { +"$ref": "WmxSitemap" +}, +"type": "array" +} +}, +"type": "object" +}, +"SitesListResponse": { +"description": "List of sites with access level information.", +"id": "SitesListResponse", +"properties": { +"siteEntry": { +"description": "Contains permission level information about a Search Console site. For more information, see [Permissions in Search Console](https://support.google.com/webmasters/answer/2451999).", +"items": { +"$ref": "WmxSite" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestStatus": { +"description": "Final state of the test, including error details if necessary.", +"id": "TestStatus", +"properties": { +"details": { +"description": "Error details if applicable.", +"type": "string" +}, +"status": { +"description": "Status of the test.", +"enum": [ +"TEST_STATUS_UNSPECIFIED", +"COMPLETE", +"INTERNAL_ERROR", +"PAGE_UNREACHABLE" +], +"enumDescriptions": [ +"Internal error when running this test. Please try running the test again.", +"Inspection has completed without errors.", +"Inspection terminated in an error state. This indicates a problem in Google's infrastructure, not a user error. Please try again later.", +"Google can not access the URL because of a user error such as a robots.txt blockage, a 403 or 500 code etc. Please make sure that the URL provided is accessible by Googlebot and is not password protected." +], +"type": "string" +} +}, +"type": "object" +}, +"UrlInspectionResult": { +"description": "URL inspection result, including all inspection results.", +"id": "UrlInspectionResult", +"properties": { +"ampResult": { +"$ref": "AmpInspectionResult", +"description": "Result of the AMP analysis. Absent if the page is not an AMP page." +}, +"indexStatusResult": { +"$ref": "IndexStatusInspectionResult", +"description": "Result of the index status analysis." +}, +"inspectionResultLink": { +"description": "Link to Search Console URL inspection.", +"type": "string" +}, +"mobileUsabilityResult": { +"$ref": "MobileUsabilityInspectionResult", +"description": "Result of the Mobile usability analysis." +}, +"richResultsResult": { +"$ref": "RichResultsInspectionResult", +"description": "Result of the Rich Results analysis. Absent if there are no rich results found." +} +}, +"type": "object" +}, +"WmxSite": { +"description": "Contains permission level information about a Search Console site. For more information, see [Permissions in Search Console](https://support.google.com/webmasters/answer/2451999).", +"id": "WmxSite", +"properties": { +"permissionLevel": { +"description": "The user's permission level for the site.", +"enum": [ +"SITE_PERMISSION_LEVEL_UNSPECIFIED", +"SITE_OWNER", +"SITE_FULL_USER", +"SITE_RESTRICTED_USER", +"SITE_UNVERIFIED_USER" +], +"enumDescriptions": [ +"", +"Owner has complete access to the site.", +"Full users can access all data, and perform most of the operations.", +"Restricted users can access most of the data, and perform some operations.", +"Unverified user has no access to site's data." +], +"type": "string" +}, +"siteUrl": { +"description": "The URL of the site.", +"type": "string" +} +}, +"type": "object" +}, +"WmxSitemap": { +"description": "Contains detailed information about a specific URL submitted as a [sitemap](https://support.google.com/webmasters/answer/156184).", +"id": "WmxSitemap", +"properties": { +"contents": { +"description": "The various content types in the sitemap.", +"items": { +"$ref": "WmxSitemapContent" +}, +"type": "array" +}, +"errors": { +"description": "Number of errors in the sitemap. These are issues with the sitemap itself that need to be fixed before it can be processed correctly.", +"format": "int64", +"type": "string" +}, +"isPending": { +"description": "If true, the sitemap has not been processed.", +"type": "boolean" +}, +"isSitemapsIndex": { +"description": "If true, the sitemap is a collection of sitemaps.", +"type": "boolean" +}, +"lastDownloaded": { +"description": "Date & time in which this sitemap was last downloaded. Date format is in RFC 3339 format (yyyy-mm-dd).", +"format": "google-datetime", +"type": "string" +}, +"lastSubmitted": { +"description": "Date & time in which this sitemap was submitted. Date format is in RFC 3339 format (yyyy-mm-dd).", +"format": "google-datetime", +"type": "string" +}, +"path": { +"description": "The url of the sitemap.", +"type": "string" +}, +"type": { +"description": "The type of the sitemap. For example: `rssFeed`.", +"enum": [ +"NOT_SITEMAP", +"URL_LIST", +"SITEMAP", +"RSS_FEED", +"ATOM_FEED", +"PATTERN_SITEMAP", +"OCEANFRONT" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +true, +true +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"Unsupported sitemap types.", +"" +], +"type": "string" +}, +"warnings": { +"description": "Number of warnings for the sitemap. These are generally non-critical issues with URLs in the sitemaps.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"WmxSitemapContent": { +"description": "Information about the various content types in the sitemap.", +"id": "WmxSitemapContent", +"properties": { +"indexed": { +"deprecated": true, +"description": "*Deprecated; do not use.*", +"format": "int64", +"type": "string" +}, +"submitted": { +"description": "The number of URLs in the sitemap (of the content type).", +"format": "int64", +"type": "string" +}, +"type": { +"description": "The specific type of content in this sitemap. For example: `web`.", +"enum": [ +"WEB", +"IMAGE", +"VIDEO", +"NEWS", +"MOBILE", +"ANDROID_APP", +"PATTERN", +"IOS_APP", +"DATA_FEED_ELEMENT" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"Unsupported content type.", +"", +"Unsupported content type." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Search Console API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/secretmanager.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/secretmanager.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..108f9cfe6fefc371cd3e24473480f7560c122ed8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/secretmanager.v1beta1.json @@ -0,0 +1,1165 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://secretmanager.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Secret Manager", +"description": "Stores sensitive data such as API keys, passwords, and certificates. Provides convenience while improving security. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/secret-manager/", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.me-west1.rep.googleapis.com/", +"location": "me-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-west4.rep.googleapis.com/", +"location": "us-west4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://secretmanager.europe-west6.rep.googleapis.com/", +"location": "europe-west6" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "secretmanager:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://secretmanager.mtls.googleapis.com/", +"name": "secretmanager", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "secretmanager.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "secretmanager.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"secrets": { +"methods": { +"addVersion": { +"description": "Creates a new SecretVersion containing secret data and attaches it to an existing Secret.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}:addVersion", +"httpMethod": "POST", +"id": "secretmanager.projects.secrets.addVersion", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the Secret to associate with the SecretVersion in the format `projects/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}:addVersion", +"request": { +"$ref": "AddSecretVersionRequest" +}, +"response": { +"$ref": "SecretVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new Secret containing no SecretVersions.", +"flatPath": "v1beta1/projects/{projectsId}/secrets", +"httpMethod": "POST", +"id": "secretmanager.projects.secrets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project to associate with the Secret, in the format `projects/*`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"secretId": { +"description": "Required. This must be unique within the project. A secret ID is a string with a maximum length of 255 characters and can contain uppercase and lowercase letters, numerals, and the hyphen (`-`) and underscore (`_`) characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/secrets", +"request": { +"$ref": "Secret" +}, +"response": { +"$ref": "Secret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Secret.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}", +"httpMethod": "DELETE", +"id": "secretmanager.projects.secrets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Secret to delete in the format `projects/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets metadata for a given Secret.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}", +"httpMethod": "GET", +"id": "secretmanager.projects.secrets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Secret, in the format `projects/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Secret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a secret. Returns empty policy if the secret exists and does not have a policy set.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}:getIamPolicy", +"httpMethod": "GET", +"id": "secretmanager.projects.secrets.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Secrets.", +"flatPath": "v1beta1/projects/{projectsId}/secrets", +"httpMethod": "GET", +"id": "secretmanager.projects.secrets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of results to be returned in a single page. If set to 0, the server decides the number of results to return. If the number is greater than 25000, it is capped at 25000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Pagination token, returned earlier via ListSecretsResponse.next_page_token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project associated with the Secrets, in the format `projects/*`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/secrets", +"response": { +"$ref": "ListSecretsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates metadata of an existing Secret.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}", +"httpMethod": "PATCH", +"id": "secretmanager.projects.secrets.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the Secret in the format `projects/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Specifies the fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Secret" +}, +"response": { +"$ref": "Secret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified secret. Replaces any existing policy. Permissions on SecretVersions are enforced according to the policy set on the associated Secret.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}:setIamPolicy", +"httpMethod": "POST", +"id": "secretmanager.projects.secrets.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has for the specified secret. If the secret does not exist, this call returns an empty set of permissions, not a NOT_FOUND error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}:testIamPermissions", +"httpMethod": "POST", +"id": "secretmanager.projects.secrets.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"versions": { +"methods": { +"access": { +"description": "Accesses a SecretVersion. This call returns the secret data. `projects/*/secrets/*/versions/latest` is an alias to the `latest` SecretVersion.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}/versions/{versionsId}:access", +"httpMethod": "GET", +"id": "secretmanager.projects.secrets.versions.access", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:access", +"response": { +"$ref": "AccessSecretVersionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"destroy": { +"description": "Destroys a SecretVersion. Sets the state of the SecretVersion to DESTROYED and irrevocably destroys the secret data.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}/versions/{versionsId}:destroy", +"httpMethod": "POST", +"id": "secretmanager.projects.secrets.versions.destroy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion to destroy in the format `projects/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:destroy", +"request": { +"$ref": "DestroySecretVersionRequest" +}, +"response": { +"$ref": "SecretVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"disable": { +"description": "Disables a SecretVersion. Sets the state of the SecretVersion to DISABLED.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}/versions/{versionsId}:disable", +"httpMethod": "POST", +"id": "secretmanager.projects.secrets.versions.disable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion to disable in the format `projects/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:disable", +"request": { +"$ref": "DisableSecretVersionRequest" +}, +"response": { +"$ref": "SecretVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enable": { +"description": "Enables a SecretVersion. Sets the state of the SecretVersion to ENABLED.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}/versions/{versionsId}:enable", +"httpMethod": "POST", +"id": "secretmanager.projects.secrets.versions.enable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion to enable in the format `projects/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:enable", +"request": { +"$ref": "EnableSecretVersionRequest" +}, +"response": { +"$ref": "SecretVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets metadata for a SecretVersion. `projects/*/secrets/*/versions/latest` is an alias to the `latest` SecretVersion.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}/versions/{versionsId}", +"httpMethod": "GET", +"id": "secretmanager.projects.secrets.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` is an alias to the `latest` SecretVersion.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "SecretVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists SecretVersions. This call does not return secret data.", +"flatPath": "v1beta1/projects/{projectsId}/secrets/{secretsId}/versions", +"httpMethod": "GET", +"id": "secretmanager.projects.secrets.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of results to be returned in a single page. If set to 0, the server decides the number of results to return. If the number is greater than 25000, it is capped at 25000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Pagination token, returned earlier via ListSecretVersionsResponse.next_page_token][].", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the Secret associated with the SecretVersions to list, in the format `projects/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/versions", +"response": { +"$ref": "ListSecretVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241209", +"rootUrl": "https://secretmanager.googleapis.com/", +"schemas": { +"AccessSecretVersionResponse": { +"description": "Response message for SecretManagerService.AccessSecretVersion.", +"id": "AccessSecretVersionResponse", +"properties": { +"name": { +"description": "The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*`.", +"type": "string" +}, +"payload": { +"$ref": "SecretPayload", +"description": "Secret payload" +} +}, +"type": "object" +}, +"AddSecretVersionRequest": { +"description": "Request message for SecretManagerService.AddSecretVersion.", +"id": "AddSecretVersionRequest", +"properties": { +"payload": { +"$ref": "SecretPayload", +"description": "Required. The secret payload of the SecretVersion." +} +}, +"type": "object" +}, +"AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"Automatic": { +"description": "A replication policy that replicates the Secret payload without any restrictions.", +"id": "Automatic", +"properties": {}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"DestroySecretVersionRequest": { +"description": "Request message for SecretManagerService.DestroySecretVersion.", +"id": "DestroySecretVersionRequest", +"properties": {}, +"type": "object" +}, +"DisableSecretVersionRequest": { +"description": "Request message for SecretManagerService.DisableSecretVersion.", +"id": "DisableSecretVersionRequest", +"properties": {}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EnableSecretVersionRequest": { +"description": "Request message for SecretManagerService.EnableSecretVersion.", +"id": "EnableSecretVersionRequest", +"properties": {}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListSecretVersionsResponse": { +"description": "Response message for SecretManagerService.ListSecretVersions.", +"id": "ListSecretVersionsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in ListSecretVersionsRequest.page_token to retrieve the next page.", +"type": "string" +}, +"totalSize": { +"description": "The total number of SecretVersions.", +"format": "int32", +"type": "integer" +}, +"versions": { +"description": "The list of SecretVersions sorted in reverse by create_time (newest first).", +"items": { +"$ref": "SecretVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSecretsResponse": { +"description": "Response message for SecretManagerService.ListSecrets.", +"id": "ListSecretsResponse", +"properties": { +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in ListSecretsRequest.page_token to retrieve the next page.", +"type": "string" +}, +"secrets": { +"description": "The list of Secrets sorted in reverse by create_time (newest first).", +"items": { +"$ref": "Secret" +}, +"type": "array" +}, +"totalSize": { +"description": "The total number of Secrets.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Replica": { +"description": "Represents a Replica for this Secret.", +"id": "Replica", +"properties": { +"location": { +"description": "The canonical IDs of the location to replicate data. For example: `\"us-east1\"`.", +"type": "string" +} +}, +"type": "object" +}, +"Replication": { +"description": "A policy that defines the replication configuration of data.", +"id": "Replication", +"properties": { +"automatic": { +"$ref": "Automatic", +"description": "The Secret will automatically be replicated without any restrictions." +}, +"userManaged": { +"$ref": "UserManaged", +"description": "The Secret will only be replicated into the locations specified." +} +}, +"type": "object" +}, +"Secret": { +"description": "A Secret is a logical secret whose value and versions can be accessed. A Secret is made up of zero or more SecretVersions that represent the secret data.", +"id": "Secret", +"properties": { +"createTime": { +"description": "Output only. The time at which the Secret was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels assigned to this Secret. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: `\\p{Ll}\\p{Lo}{0,62}` Label values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: `[\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}` No more than 64 labels can be assigned to a given resource.", +"type": "object" +}, +"name": { +"description": "Output only. The resource name of the Secret in the format `projects/*/secrets/*`.", +"readOnly": true, +"type": "string" +}, +"replication": { +"$ref": "Replication", +"description": "Required. Immutable. The replication policy of the secret data attached to the Secret. The replication policy cannot be changed after the Secret has been created." +} +}, +"type": "object" +}, +"SecretPayload": { +"description": "A secret payload resource in the Secret Manager API. This contains the sensitive secret data that is associated with a SecretVersion.", +"id": "SecretPayload", +"properties": { +"data": { +"description": "The secret data. Must be no larger than 64KiB.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"SecretVersion": { +"description": "A secret version resource in the Secret Manager API.", +"id": "SecretVersion", +"properties": { +"createTime": { +"description": "Output only. The time at which the SecretVersion was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"destroyTime": { +"description": "Output only. The time this SecretVersion was destroyed. Only present if state is DESTROYED.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*`. SecretVersion IDs in a Secret start at 1 and are incremented for each subsequent version of the secret.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the SecretVersion.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"DESTROYED" +], +"enumDescriptions": [ +"Not specified. This value is unused and invalid.", +"The SecretVersion may be accessed.", +"The SecretVersion may not be accessed, but the secret data is still available and can be placed back into the ENABLED state.", +"The SecretVersion is destroyed and the secret data is no longer stored. A version may not leave this state once entered." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UserManaged": { +"description": "A replication policy that replicates the Secret payload into the locations specified in Replication.UserManaged.replicas", +"id": "UserManaged", +"properties": { +"replicas": { +"description": "Required. The list of Replicas for this Secret. Cannot be empty.", +"items": { +"$ref": "Replica" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Secret Manager API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/securitycenter.v1beta2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/securitycenter.v1beta2.json new file mode 100644 index 0000000000000000000000000000000000000000..4ff2bb26b235041f62d61841122350c29e557d92 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/securitycenter.v1beta2.json @@ -0,0 +1,9848 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://securitycenter.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Security Command Center", +"description": "Security Command Center API provides access to temporal views of assets and findings within an organization.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/security-command-center", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://securitycenter.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://securitycenter.us.rep.googleapis.com/", +"location": "us" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://securitycenter.eu.rep.googleapis.com/", +"location": "eu" +} +], +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "securitycenter:v1beta2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://securitycenter.mtls.googleapis.com/", +"name": "securitycenter", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"folders": { +"methods": { +"getContainerThreatDetectionSettings": { +"description": "Get the ContainerThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetContainerThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateContainerThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/folders/{foldersId}/containerThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.folders.getContainerThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ContainerThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getEventThreatDetectionSettings": { +"description": "Get the EventThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetEventThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateEventThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/folders/{foldersId}/eventThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.folders.getEventThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the EventThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "EventThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getRapidVulnerabilityDetectionSettings": { +"description": "Get the RapidVulnerabilityDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetRapidVulnerabilityDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateRapidVulnerabilityDetectionSettings for this purpose.", +"flatPath": "v1beta2/folders/{foldersId}/rapidVulnerabilityDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.folders.getRapidVulnerabilityDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the RapidVulnerabilityDetectionSettings to retrieve. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/rapidVulnerabilityDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSecurityCenterSettings": { +"description": "Get the SecurityCenterSettings resource.", +"flatPath": "v1beta2/folders/{foldersId}/securityCenterSettings", +"httpMethod": "GET", +"id": "securitycenter.folders.getSecurityCenterSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityCenterSettings to retrieve. Format: organizations/{organization}/securityCenterSettings Format: folders/{folder}/securityCenterSettings Format: projects/{project}/securityCenterSettings", +"location": "path", +"pattern": "^folders/[^/]+/securityCenterSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "SecurityCenterSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSecurityHealthAnalyticsSettings": { +"description": "Get the SecurityHealthAnalyticsSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetSecurityHealthAnalyticsSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateSecurityHealthAnalyticsSettings for this purpose.", +"flatPath": "v1beta2/folders/{foldersId}/securityHealthAnalyticsSettings", +"httpMethod": "GET", +"id": "securitycenter.folders.getSecurityHealthAnalyticsSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityHealthAnalyticsSettings to retrieve. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getVirtualMachineThreatDetectionSettings": { +"description": "Get the VirtualMachineThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetVirtualMachineThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateVirtualMachineThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/folders/{foldersId}/virtualMachineThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.folders.getVirtualMachineThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the VirtualMachineThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/virtualMachineThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getWebSecurityScannerSettings": { +"description": "Get the WebSecurityScannerSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetWebSecurityScannerSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateWebSecurityScannerSettings for this purpose.", +"flatPath": "v1beta2/folders/{foldersId}/webSecurityScannerSettings", +"httpMethod": "GET", +"id": "securitycenter.folders.getWebSecurityScannerSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the WebSecurityScannerSettings to retrieve. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"location": "path", +"pattern": "^folders/[^/]+/webSecurityScannerSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "WebSecurityScannerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateContainerThreatDetectionSettings": { +"description": "Update the ContainerThreatDetectionSettings resource.", +"flatPath": "v1beta2/folders/{foldersId}/containerThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.folders.updateContainerThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the ContainerThreatDetectionSettings. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "ContainerThreatDetectionSettings" +}, +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateEventThreatDetectionSettings": { +"description": "Update the EventThreatDetectionSettings resource.", +"flatPath": "v1beta2/folders/{foldersId}/eventThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.folders.updateEventThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the EventThreatDetectionSettings. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "EventThreatDetectionSettings" +}, +"response": { +"$ref": "EventThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateRapidVulnerabilityDetectionSettings": { +"description": "Update the RapidVulnerabilityDetectionSettings resource.", +"flatPath": "v1beta2/folders/{foldersId}/rapidVulnerabilityDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.folders.updateRapidVulnerabilityDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the RapidVulnerabilityDetectionSettings. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/rapidVulnerabilityDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"response": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityHealthAnalyticsSettings": { +"description": "Update the SecurityHealthAnalyticsSettings resource.", +"flatPath": "v1beta2/folders/{foldersId}/securityHealthAnalyticsSettings", +"httpMethod": "PATCH", +"id": "securitycenter.folders.updateSecurityHealthAnalyticsSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the SecurityHealthAnalyticsSettings. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"response": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateVirtualMachineThreatDetectionSettings": { +"description": "Update the VirtualMachineThreatDetectionSettings resource.", +"flatPath": "v1beta2/folders/{foldersId}/virtualMachineThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.folders.updateVirtualMachineThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the VirtualMachineThreatDetectionSettings. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/virtualMachineThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"response": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateWebSecurityScannerSettings": { +"description": "Update the WebSecurityScannerSettings resource.", +"flatPath": "v1beta2/folders/{foldersId}/webSecurityScannerSettings", +"httpMethod": "PATCH", +"id": "securitycenter.folders.updateWebSecurityScannerSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the WebSecurityScannerSettings. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"location": "path", +"pattern": "^folders/[^/]+/webSecurityScannerSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "WebSecurityScannerSettings" +}, +"response": { +"$ref": "WebSecurityScannerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"containerThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/folders/{foldersId}/containerThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.folders.containerThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ContainerThreatDetectionSettings to calculate. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"eventThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective EventThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/folders/{foldersId}/eventThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.folders.eventThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the EventThreatDetectionSettings to calculate. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "EventThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"rapidVulnerabilityDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective RapidVulnerabilityDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/folders/{foldersId}/rapidVulnerabilityDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.folders.rapidVulnerabilityDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the RapidVulnerabilityDetectionSettings to calculate. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/rapidVulnerabilityDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityHealthAnalyticsSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective SecurityHealthAnalyticsSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/folders/{foldersId}/securityHealthAnalyticsSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.folders.securityHealthAnalyticsSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityHealthAnalyticsSettings to calculate. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"location": "path", +"pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"virtualMachineThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective VirtualMachineThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/folders/{foldersId}/virtualMachineThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.folders.virtualMachineThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the VirtualMachineThreatDetectionSettings to calculate. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"location": "path", +"pattern": "^folders/[^/]+/virtualMachineThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"webSecurityScannerSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective WebSecurityScannerSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/folders/{foldersId}/webSecurityScannerSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.folders.webSecurityScannerSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the WebSecurityScannerSettings to calculate. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"location": "path", +"pattern": "^folders/[^/]+/webSecurityScannerSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "WebSecurityScannerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"organizations": { +"methods": { +"getContainerThreatDetectionSettings": { +"description": "Get the ContainerThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetContainerThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateContainerThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/organizations/{organizationsId}/containerThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.organizations.getContainerThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ContainerThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getEventThreatDetectionSettings": { +"description": "Get the EventThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetEventThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateEventThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/organizations/{organizationsId}/eventThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.organizations.getEventThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the EventThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "EventThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getRapidVulnerabilityDetectionSettings": { +"description": "Get the RapidVulnerabilityDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetRapidVulnerabilityDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateRapidVulnerabilityDetectionSettings for this purpose.", +"flatPath": "v1beta2/organizations/{organizationsId}/rapidVulnerabilityDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.organizations.getRapidVulnerabilityDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the RapidVulnerabilityDetectionSettings to retrieve. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/rapidVulnerabilityDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSecurityCenterSettings": { +"description": "Get the SecurityCenterSettings resource.", +"flatPath": "v1beta2/organizations/{organizationsId}/securityCenterSettings", +"httpMethod": "GET", +"id": "securitycenter.organizations.getSecurityCenterSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityCenterSettings to retrieve. Format: organizations/{organization}/securityCenterSettings Format: folders/{folder}/securityCenterSettings Format: projects/{project}/securityCenterSettings", +"location": "path", +"pattern": "^organizations/[^/]+/securityCenterSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "SecurityCenterSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSecurityHealthAnalyticsSettings": { +"description": "Get the SecurityHealthAnalyticsSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetSecurityHealthAnalyticsSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateSecurityHealthAnalyticsSettings for this purpose.", +"flatPath": "v1beta2/organizations/{organizationsId}/securityHealthAnalyticsSettings", +"httpMethod": "GET", +"id": "securitycenter.organizations.getSecurityHealthAnalyticsSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityHealthAnalyticsSettings to retrieve. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSubscription": { +"description": "Get the Subscription resource.", +"flatPath": "v1beta2/organizations/{organizationsId}/subscription", +"httpMethod": "GET", +"id": "securitycenter.organizations.getSubscription", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the subscription to retrieve. Format: organizations/{organization}/subscription", +"location": "path", +"pattern": "^organizations/[^/]+/subscription$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getVirtualMachineThreatDetectionSettings": { +"description": "Get the VirtualMachineThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetVirtualMachineThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateVirtualMachineThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/organizations/{organizationsId}/virtualMachineThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.organizations.getVirtualMachineThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the VirtualMachineThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/virtualMachineThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getWebSecurityScannerSettings": { +"description": "Get the WebSecurityScannerSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetWebSecurityScannerSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateWebSecurityScannerSettings for this purpose.", +"flatPath": "v1beta2/organizations/{organizationsId}/webSecurityScannerSettings", +"httpMethod": "GET", +"id": "securitycenter.organizations.getWebSecurityScannerSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the WebSecurityScannerSettings to retrieve. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"location": "path", +"pattern": "^organizations/[^/]+/webSecurityScannerSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "WebSecurityScannerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateContainerThreatDetectionSettings": { +"description": "Update the ContainerThreatDetectionSettings resource.", +"flatPath": "v1beta2/organizations/{organizationsId}/containerThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.updateContainerThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the ContainerThreatDetectionSettings. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "ContainerThreatDetectionSettings" +}, +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateEventThreatDetectionSettings": { +"description": "Update the EventThreatDetectionSettings resource.", +"flatPath": "v1beta2/organizations/{organizationsId}/eventThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.updateEventThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the EventThreatDetectionSettings. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "EventThreatDetectionSettings" +}, +"response": { +"$ref": "EventThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateRapidVulnerabilityDetectionSettings": { +"description": "Update the RapidVulnerabilityDetectionSettings resource.", +"flatPath": "v1beta2/organizations/{organizationsId}/rapidVulnerabilityDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.updateRapidVulnerabilityDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the RapidVulnerabilityDetectionSettings. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/rapidVulnerabilityDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"response": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityHealthAnalyticsSettings": { +"description": "Update the SecurityHealthAnalyticsSettings resource.", +"flatPath": "v1beta2/organizations/{organizationsId}/securityHealthAnalyticsSettings", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.updateSecurityHealthAnalyticsSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the SecurityHealthAnalyticsSettings. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"response": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateVirtualMachineThreatDetectionSettings": { +"description": "Update the VirtualMachineThreatDetectionSettings resource.", +"flatPath": "v1beta2/organizations/{organizationsId}/virtualMachineThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.updateVirtualMachineThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the VirtualMachineThreatDetectionSettings. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/virtualMachineThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"response": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateWebSecurityScannerSettings": { +"description": "Update the WebSecurityScannerSettings resource.", +"flatPath": "v1beta2/organizations/{organizationsId}/webSecurityScannerSettings", +"httpMethod": "PATCH", +"id": "securitycenter.organizations.updateWebSecurityScannerSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the WebSecurityScannerSettings. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"location": "path", +"pattern": "^organizations/[^/]+/webSecurityScannerSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "WebSecurityScannerSettings" +}, +"response": { +"$ref": "WebSecurityScannerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"containerThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/organizations/{organizationsId}/containerThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.organizations.containerThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ContainerThreatDetectionSettings to calculate. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"eventThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective EventThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/organizations/{organizationsId}/eventThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.organizations.eventThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the EventThreatDetectionSettings to calculate. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "EventThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"rapidVulnerabilityDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective RapidVulnerabilityDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/organizations/{organizationsId}/rapidVulnerabilityDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.organizations.rapidVulnerabilityDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the RapidVulnerabilityDetectionSettings to calculate. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/rapidVulnerabilityDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityHealthAnalyticsSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective SecurityHealthAnalyticsSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/organizations/{organizationsId}/securityHealthAnalyticsSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.organizations.securityHealthAnalyticsSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityHealthAnalyticsSettings to calculate. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"location": "path", +"pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"virtualMachineThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective VirtualMachineThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/organizations/{organizationsId}/virtualMachineThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.organizations.virtualMachineThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the VirtualMachineThreatDetectionSettings to calculate. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"location": "path", +"pattern": "^organizations/[^/]+/virtualMachineThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"webSecurityScannerSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective WebSecurityScannerSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/organizations/{organizationsId}/webSecurityScannerSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.organizations.webSecurityScannerSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the WebSecurityScannerSettings to calculate. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"location": "path", +"pattern": "^organizations/[^/]+/webSecurityScannerSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "WebSecurityScannerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"projects": { +"methods": { +"getContainerThreatDetectionSettings": { +"description": "Get the ContainerThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetContainerThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateContainerThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/projects/{projectsId}/containerThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.projects.getContainerThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ContainerThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getEventThreatDetectionSettings": { +"description": "Get the EventThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetEventThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateEventThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/projects/{projectsId}/eventThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.projects.getEventThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the EventThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "EventThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getRapidVulnerabilityDetectionSettings": { +"description": "Get the RapidVulnerabilityDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetRapidVulnerabilityDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateRapidVulnerabilityDetectionSettings for this purpose.", +"flatPath": "v1beta2/projects/{projectsId}/rapidVulnerabilityDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.projects.getRapidVulnerabilityDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the RapidVulnerabilityDetectionSettings to retrieve. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/rapidVulnerabilityDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSecurityCenterSettings": { +"description": "Get the SecurityCenterSettings resource.", +"flatPath": "v1beta2/projects/{projectsId}/securityCenterSettings", +"httpMethod": "GET", +"id": "securitycenter.projects.getSecurityCenterSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityCenterSettings to retrieve. Format: organizations/{organization}/securityCenterSettings Format: folders/{folder}/securityCenterSettings Format: projects/{project}/securityCenterSettings", +"location": "path", +"pattern": "^projects/[^/]+/securityCenterSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "SecurityCenterSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getSecurityHealthAnalyticsSettings": { +"description": "Get the SecurityHealthAnalyticsSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetSecurityHealthAnalyticsSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateSecurityHealthAnalyticsSettings for this purpose.", +"flatPath": "v1beta2/projects/{projectsId}/securityHealthAnalyticsSettings", +"httpMethod": "GET", +"id": "securitycenter.projects.getSecurityHealthAnalyticsSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityHealthAnalyticsSettings to retrieve. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getVirtualMachineThreatDetectionSettings": { +"description": "Get the VirtualMachineThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetVirtualMachineThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateVirtualMachineThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/projects/{projectsId}/virtualMachineThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.projects.getVirtualMachineThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the VirtualMachineThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/virtualMachineThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getWebSecurityScannerSettings": { +"description": "Get the WebSecurityScannerSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetWebSecurityScannerSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateWebSecurityScannerSettings for this purpose.", +"flatPath": "v1beta2/projects/{projectsId}/webSecurityScannerSettings", +"httpMethod": "GET", +"id": "securitycenter.projects.getWebSecurityScannerSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the WebSecurityScannerSettings to retrieve. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"location": "path", +"pattern": "^projects/[^/]+/webSecurityScannerSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "WebSecurityScannerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateContainerThreatDetectionSettings": { +"description": "Update the ContainerThreatDetectionSettings resource.", +"flatPath": "v1beta2/projects/{projectsId}/containerThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.projects.updateContainerThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the ContainerThreatDetectionSettings. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "ContainerThreatDetectionSettings" +}, +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateEventThreatDetectionSettings": { +"description": "Update the EventThreatDetectionSettings resource.", +"flatPath": "v1beta2/projects/{projectsId}/eventThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.projects.updateEventThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the EventThreatDetectionSettings. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "EventThreatDetectionSettings" +}, +"response": { +"$ref": "EventThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateRapidVulnerabilityDetectionSettings": { +"description": "Update the RapidVulnerabilityDetectionSettings resource.", +"flatPath": "v1beta2/projects/{projectsId}/rapidVulnerabilityDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.projects.updateRapidVulnerabilityDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the RapidVulnerabilityDetectionSettings. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/rapidVulnerabilityDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"response": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSecurityHealthAnalyticsSettings": { +"description": "Update the SecurityHealthAnalyticsSettings resource.", +"flatPath": "v1beta2/projects/{projectsId}/securityHealthAnalyticsSettings", +"httpMethod": "PATCH", +"id": "securitycenter.projects.updateSecurityHealthAnalyticsSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the SecurityHealthAnalyticsSettings. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"response": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateVirtualMachineThreatDetectionSettings": { +"description": "Update the VirtualMachineThreatDetectionSettings resource.", +"flatPath": "v1beta2/projects/{projectsId}/virtualMachineThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.projects.updateVirtualMachineThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the VirtualMachineThreatDetectionSettings. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/virtualMachineThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"response": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateWebSecurityScannerSettings": { +"description": "Update the WebSecurityScannerSettings resource.", +"flatPath": "v1beta2/projects/{projectsId}/webSecurityScannerSettings", +"httpMethod": "PATCH", +"id": "securitycenter.projects.updateWebSecurityScannerSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the WebSecurityScannerSettings. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"location": "path", +"pattern": "^projects/[^/]+/webSecurityScannerSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "WebSecurityScannerSettings" +}, +"response": { +"$ref": "WebSecurityScannerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"containerThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/projects/{projectsId}/containerThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.projects.containerThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ContainerThreatDetectionSettings to calculate. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"eventThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective EventThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/projects/{projectsId}/eventThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.projects.eventThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the EventThreatDetectionSettings to calculate. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/eventThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "EventThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"locations": { +"resources": { +"clusters": { +"methods": { +"getContainerThreatDetectionSettings": { +"description": "Get the ContainerThreatDetectionSettings resource. In the returned settings response, a missing field only indicates that it was not explicitly set, so no assumption should be made about these fields. In other words, GetContainerThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateContainerThreatDetectionSettings for this purpose.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/containerThreatDetectionSettings", +"httpMethod": "GET", +"id": "securitycenter.projects.locations.clusters.getContainerThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ContainerThreatDetectionSettings to retrieve. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateContainerThreatDetectionSettings": { +"description": "Update the ContainerThreatDetectionSettings resource.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/containerThreatDetectionSettings", +"httpMethod": "PATCH", +"id": "securitycenter.projects.locations.clusters.updateContainerThreatDetectionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the ContainerThreatDetectionSettings. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "ContainerThreatDetectionSettings" +}, +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"containerThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/containerThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.projects.locations.clusters.containerThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the ContainerThreatDetectionSettings to calculate. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/containerThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "ContainerThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"rapidVulnerabilityDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective RapidVulnerabilityDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/projects/{projectsId}/rapidVulnerabilityDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.projects.rapidVulnerabilityDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the RapidVulnerabilityDetectionSettings to calculate. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/rapidVulnerabilityDetectionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "RapidVulnerabilityDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"securityHealthAnalyticsSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective SecurityHealthAnalyticsSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/projects/{projectsId}/securityHealthAnalyticsSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.projects.securityHealthAnalyticsSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecurityHealthAnalyticsSettings to calculate. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"location": "path", +"pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "SecurityHealthAnalyticsSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"virtualMachineThreatDetectionSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective VirtualMachineThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/projects/{projectsId}/virtualMachineThreatDetectionSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.projects.virtualMachineThreatDetectionSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the VirtualMachineThreatDetectionSettings to calculate. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"location": "path", +"pattern": "^projects/[^/]+/virtualMachineThreatDetectionSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "VirtualMachineThreatDetectionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"webSecurityScannerSettings": { +"methods": { +"calculate": { +"description": "Calculates the effective WebSecurityScannerSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", +"flatPath": "v1beta2/projects/{projectsId}/webSecurityScannerSettings:calculate", +"httpMethod": "GET", +"id": "securitycenter.projects.webSecurityScannerSettings.calculate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the WebSecurityScannerSettings to calculate. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"location": "path", +"pattern": "^projects/[^/]+/webSecurityScannerSettings$", +"required": true, +"type": "string" +}, +"showEligibleModulesOnly": { +"description": "Optional. When set, will only retrieve the modules that are in scope. By default, all modules will be shown.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta2/{+name}:calculate", +"response": { +"$ref": "WebSecurityScannerSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20250103", +"rootUrl": "https://securitycenter.googleapis.com/", +"schemas": { +"Access": { +"description": "Represents an access event.", +"id": "Access", +"properties": { +"callerIp": { +"description": "Caller's IP address, such as \"1.1.1.1\".", +"type": "string" +}, +"callerIpGeo": { +"$ref": "Geolocation", +"description": "The caller IP's geolocation, which identifies where the call came from." +}, +"methodName": { +"description": "The method that the service account called, e.g. \"SetIamPolicy\".", +"type": "string" +}, +"principalEmail": { +"description": "Associated email, such as \"foo@google.com\". The email address of the authenticated user or a service account acting on behalf of a third party principal making the request. For third party identity callers, the `principal_subject` field is populated instead of this field. For privacy reasons, the principal email address is sometimes redacted. For more information, see [Caller identities in audit logs](https://cloud.google.com/logging/docs/audit#user-id).", +"type": "string" +}, +"principalSubject": { +"description": "A string that represents the principal_subject that is associated with the identity. Unlike `principal_email`, `principal_subject` supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format is `principal://iam.googleapis.com/{identity pool name}/subject/{subject}`. Some GKE identities, such as GKE_WORKLOAD, FREEFORM, and GKE_HUB_WORKLOAD, still use the legacy format `serviceAccount:{identity pool name}[{subject}]`.", +"type": "string" +}, +"serviceAccountDelegationInfo": { +"description": "The identity delegation history of an authenticated service account that made the request. The `serviceAccountDelegationInfo[]` object contains information about the real authorities that try to access Google Cloud resources by delegating on a service account. When multiple authorities are present, they are guaranteed to be sorted based on the original ordering of the identity delegation events.", +"items": { +"$ref": "ServiceAccountDelegationInfo" +}, +"type": "array" +}, +"serviceAccountKeyName": { +"description": "The name of the service account key that was used to create or exchange credentials when authenticating the service account that made the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\". ", +"type": "string" +}, +"serviceName": { +"description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", +"type": "string" +}, +"userAgent": { +"description": "The caller's user agent string associated with the finding.", +"type": "string" +}, +"userAgentFamily": { +"description": "Type of user agent associated with the finding. For example, an operating system shell or an embedded or standalone application.", +"type": "string" +}, +"userName": { +"description": "A string that represents a username. The username provided depends on the type of the finding and is likely not an IAM principal. For example, this can be a system username if the finding is related to a virtual machine, or it can be an application login username.", +"type": "string" +} +}, +"type": "object" +}, +"AccessReview": { +"description": "Conveys information about a Kubernetes access review (such as one returned by a [`kubectl auth can-i`](https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access) command) that was involved in a finding.", +"id": "AccessReview", +"properties": { +"group": { +"description": "The API group of the resource. \"*\" means all.", +"type": "string" +}, +"name": { +"description": "The name of the resource being requested. Empty means all.", +"type": "string" +}, +"ns": { +"description": "Namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces. Both are represented by \"\" (empty).", +"type": "string" +}, +"resource": { +"description": "The optional resource type requested. \"*\" means all.", +"type": "string" +}, +"subresource": { +"description": "The optional subresource type.", +"type": "string" +}, +"verb": { +"description": "A Kubernetes resource API verb, like get, list, watch, create, update, delete, proxy. \"*\" means all.", +"type": "string" +}, +"version": { +"description": "The API version of the resource. \"*\" means all.", +"type": "string" +} +}, +"type": "object" +}, +"AdaptiveProtection": { +"description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", +"id": "AdaptiveProtection", +"properties": { +"confidence": { +"description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Application": { +"description": "Represents an application associated with a finding.", +"id": "Application", +"properties": { +"baseUri": { +"description": "The base URI that identifies the network location of the application in which the vulnerability was detected. For example, `http://example.com`.", +"type": "string" +}, +"fullUri": { +"description": "The full URI with payload that can be used to reproduce the vulnerability. For example, `http://example.com?p=aMmYgI6H`.", +"type": "string" +} +}, +"type": "object" +}, +"Attack": { +"description": "Information about DDoS attack volume and classification.", +"id": "Attack", +"properties": { +"classification": { +"description": "Type of attack, for example, 'SYN-flood', 'NTP-udp', or 'CHARGEN-udp'.", +"type": "string" +}, +"volumeBps": { +"deprecated": true, +"description": "Total BPS (bytes per second) volume of attack. Deprecated - refer to volume_bps_long instead.", +"format": "int32", +"type": "integer" +}, +"volumeBpsLong": { +"description": "Total BPS (bytes per second) volume of attack.", +"format": "int64", +"type": "string" +}, +"volumePps": { +"deprecated": true, +"description": "Total PPS (packets per second) volume of attack. Deprecated - refer to volume_pps_long instead.", +"format": "int32", +"type": "integer" +}, +"volumePpsLong": { +"description": "Total PPS (packets per second) volume of attack.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AttackExposure": { +"description": "An attack exposure contains the results of an attack path simulation run.", +"id": "AttackExposure", +"properties": { +"attackExposureResult": { +"description": "The resource name of the attack path simulation result that contains the details regarding this attack exposure score. Example: `organizations/123/simulations/456/attackExposureResults/789`", +"type": "string" +}, +"exposedHighValueResourcesCount": { +"description": "The number of high value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"exposedLowValueResourcesCount": { +"description": "The number of high value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"exposedMediumValueResourcesCount": { +"description": "The number of medium value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"latestCalculationTime": { +"description": "The most recent time the attack exposure was updated on this finding.", +"format": "google-datetime", +"type": "string" +}, +"score": { +"description": "A number between 0 (inclusive) and infinity that represents how important this finding is to remediate. The higher the score, the more important it is to remediate.", +"format": "double", +"type": "number" +}, +"state": { +"description": "What state this AttackExposure is in. This captures whether or not an attack exposure has been calculated or not.", +"enum": [ +"STATE_UNSPECIFIED", +"CALCULATED", +"NOT_CALCULATED" +], +"enumDescriptions": [ +"The state is not specified.", +"The attack exposure has been calculated.", +"The attack exposure has not been calculated." +], +"type": "string" +} +}, +"type": "object" +}, +"AwsAccount": { +"description": "An AWS account that is a member of an organization.", +"id": "AwsAccount", +"properties": { +"id": { +"description": "The unique identifier (ID) of the account, containing exactly 12 digits.", +"type": "string" +}, +"name": { +"description": "The friendly name of this account.", +"type": "string" +} +}, +"type": "object" +}, +"AwsMetadata": { +"description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", +"id": "AwsMetadata", +"properties": { +"account": { +"$ref": "AwsAccount", +"description": "The AWS account associated with the resource." +}, +"organization": { +"$ref": "AwsOrganization", +"description": "The AWS organization associated with the resource." +}, +"organizationalUnits": { +"description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", +"items": { +"$ref": "AwsOrganizationalUnit" +}, +"type": "array" +} +}, +"type": "object" +}, +"AwsOrganization": { +"description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", +"id": "AwsOrganization", +"properties": { +"id": { +"description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", +"type": "string" +} +}, +"type": "object" +}, +"AwsOrganizationalUnit": { +"description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", +"id": "AwsOrganizationalUnit", +"properties": { +"id": { +"description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", +"type": "string" +}, +"name": { +"description": "The friendly name of the OU.", +"type": "string" +} +}, +"type": "object" +}, +"AzureManagementGroup": { +"description": "Represents an Azure management group.", +"id": "AzureManagementGroup", +"properties": { +"displayName": { +"description": "The display name of the Azure management group.", +"type": "string" +}, +"id": { +"description": "The UUID of the Azure management group, for example, `20000000-0001-0000-0000-000000000000`.", +"type": "string" +} +}, +"type": "object" +}, +"AzureMetadata": { +"description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", +"id": "AzureMetadata", +"properties": { +"managementGroups": { +"description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", +"items": { +"$ref": "AzureManagementGroup" +}, +"type": "array" +}, +"resourceGroup": { +"$ref": "AzureResourceGroup", +"description": "The Azure resource group associated with the resource." +}, +"subscription": { +"$ref": "AzureSubscription", +"description": "The Azure subscription associated with the resource." +}, +"tenant": { +"$ref": "AzureTenant", +"description": "The Azure Entra tenant associated with the resource." +} +}, +"type": "object" +}, +"AzureResourceGroup": { +"description": "Represents an Azure resource group.", +"id": "AzureResourceGroup", +"properties": { +"id": { +"description": "The ID of the Azure resource group.", +"type": "string" +}, +"name": { +"description": "The name of the Azure resource group. This is not a UUID.", +"type": "string" +} +}, +"type": "object" +}, +"AzureSubscription": { +"description": "Represents an Azure subscription.", +"id": "AzureSubscription", +"properties": { +"displayName": { +"description": "The display name of the Azure subscription.", +"type": "string" +}, +"id": { +"description": "The UUID of the Azure subscription, for example, `291bba3f-e0a5-47bc-a099-3bdcb2a50a05`.", +"type": "string" +} +}, +"type": "object" +}, +"AzureTenant": { +"description": "Represents a Microsoft Entra tenant.", +"id": "AzureTenant", +"properties": { +"displayName": { +"description": "The display name of the Azure tenant.", +"type": "string" +}, +"id": { +"description": "The ID of the Microsoft Entra tenant, for example, \"a11aaa11-aa11-1aa1-11aa-1aaa11a\".", +"type": "string" +} +}, +"type": "object" +}, +"BackupDisasterRecovery": { +"description": "Information related to Google Cloud Backup and DR Service findings.", +"id": "BackupDisasterRecovery", +"properties": { +"appliance": { +"description": "The name of the Backup and DR appliance that captures, moves, and manages the lifecycle of backup data. For example, `backup-server-57137`.", +"type": "string" +}, +"applications": { +"description": "The names of Backup and DR applications. An application is a VM, database, or file system on a managed host monitored by a backup and recovery appliance. For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"backupCreateTime": { +"description": "The timestamp at which the Backup and DR backup was created.", +"format": "google-datetime", +"type": "string" +}, +"backupTemplate": { +"description": "The name of a Backup and DR template which comprises one or more backup policies. See the [Backup and DR documentation](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information. For example, `snap-ov`.", +"type": "string" +}, +"backupType": { +"description": "The backup type of the Backup and DR image. For example, `Snapshot`, `Remote Snapshot`, `OnVault`.", +"type": "string" +}, +"host": { +"description": "The name of a Backup and DR host, which is managed by the backup and recovery appliance and known to the management console. The host can be of type Generic (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.), vCenter, or an ESX server. See the [Backup and DR documentation on hosts](https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-hosts-and-their-applications) for more information. For example, `centos7-01`.", +"type": "string" +}, +"policies": { +"description": "The names of Backup and DR policies that are associated with a template and that define when to run a backup, how frequently to run a backup, and how long to retain the backup image. For example, `onvaults`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"policyOptions": { +"description": "The names of Backup and DR advanced policy options of a policy applying to an application. See the [Backup and DR documentation on policy options](https://cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings). For example, `skipofflineappsincongrp, nounmap`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"profile": { +"description": "The name of the Backup and DR resource profile that specifies the storage media for backups of application and VM data. See the [Backup and DR documentation on profiles](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#profile). For example, `GCP`.", +"type": "string" +}, +"storagePool": { +"description": "The name of the Backup and DR storage pool that the backup and recovery appliance is storing data in. The storage pool could be of type Cloud, Primary, Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools). For example, `DiskPoolOne`.", +"type": "string" +} +}, +"type": "object" +}, +"CloudArmor": { +"description": "Fields related to Google Cloud Armor findings.", +"id": "CloudArmor", +"properties": { +"adaptiveProtection": { +"$ref": "AdaptiveProtection", +"description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." +}, +"attack": { +"$ref": "Attack", +"description": "Information about DDoS attack volume and classification." +}, +"duration": { +"description": "Duration of attack from the start until the current moment (updated every 5 minutes).", +"format": "google-duration", +"type": "string" +}, +"requests": { +"$ref": "Requests", +"description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." +}, +"securityPolicy": { +"$ref": "SecurityPolicy", +"description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." +}, +"threatVector": { +"description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \"L3_4\" for Layer 3 and Layer 4 DDoS attacks, or \"L_7\" for Layer 7 DDoS attacks.", +"type": "string" +} +}, +"type": "object" +}, +"CloudDlpDataProfile": { +"description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", +"id": "CloudDlpDataProfile", +"properties": { +"dataProfile": { +"description": "Name of the data profile, for example, `projects/123/locations/europe/tableProfiles/8383929`.", +"type": "string" +}, +"parentType": { +"description": "The resource hierarchy level at which the data profile was generated.", +"enum": [ +"PARENT_TYPE_UNSPECIFIED", +"ORGANIZATION", +"PROJECT" +], +"enumDescriptions": [ +"Unspecified parent type.", +"Organization-level configurations.", +"Project-level configurations." +], +"type": "string" +} +}, +"type": "object" +}, +"CloudDlpInspection": { +"description": "Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the finding.", +"id": "CloudDlpInspection", +"properties": { +"fullScan": { +"description": "Whether Cloud DLP scanned the complete resource or a sampled subset.", +"type": "boolean" +}, +"infoType": { +"description": "The type of information (or *[infoType](https://cloud.google.com/dlp/docs/infotypes-reference)*) found, for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.", +"type": "string" +}, +"infoTypeCount": { +"description": "The number of times Cloud DLP found this infoType within this job and resource.", +"format": "int64", +"type": "string" +}, +"inspectJob": { +"description": "Name of the inspection job, for example, `projects/123/locations/europe/dlpJobs/i-8383929`.", +"type": "string" +} +}, +"type": "object" +}, +"CloudLoggingEntry": { +"description": "Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)", +"id": "CloudLoggingEntry", +"properties": { +"insertId": { +"description": "A unique identifier for the log entry.", +"type": "string" +}, +"logId": { +"description": "The type of the log (part of `log_name`. `log_name` is the resource name of the log to which this log entry belongs). For example: `cloudresourcemanager.googleapis.com/activity`. Note that this field is not URL-encoded, unlike the `LOG_ID` field in `LogEntry`.", +"type": "string" +}, +"resourceContainer": { +"description": "The organization, folder, or project of the monitored resource that produced this log entry.", +"type": "string" +}, +"timestamp": { +"description": "The time the event described by the log entry occurred.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Compliance": { +"description": "Contains compliance information about a security standard indicating unmet recommendations.", +"id": "Compliance", +"properties": { +"ids": { +"description": "Policies within the standard or benchmark, for example, A.12.4.1", +"items": { +"type": "string" +}, +"type": "array" +}, +"standard": { +"description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", +"type": "string" +}, +"version": { +"description": "Version of the standard or benchmark, for example, 1.1", +"type": "string" +} +}, +"type": "object" +}, +"ComplianceSnapshot": { +"description": "Result containing the properties and count of a ComplianceSnapshot request.", +"id": "ComplianceSnapshot", +"properties": { +"category": { +"description": "The category of Findings matching.", +"type": "string" +}, +"cloudProvider": { +"description": "The cloud provider for the compliance snapshot.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"complianceStandard": { +"description": "The compliance standard (ie CIS).", +"type": "string" +}, +"complianceVersion": { +"description": "The compliance version (ie 1.3) in CIS 1.3.", +"type": "string" +}, +"count": { +"description": "Total count of findings for the given properties.", +"format": "int64", +"type": "string" +}, +"leafContainerResource": { +"description": "The leaf container resource name that is closest to the snapshot.", +"type": "string" +}, +"name": { +"description": "The compliance snapshot name. Format: //sources//complianceSnapshots/", +"type": "string" +}, +"snapshotTime": { +"description": "The snapshot time of the snapshot.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Config": { +"description": "Configuration of a module.", +"id": "Config", +"properties": { +"moduleEnablementState": { +"description": "The state of enablement for the module at its level of the resource hierarchy.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"INHERITED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"State is inherited from the parent resource.", +"State is enabled.", +"State is disabled." +], +"type": "string" +}, +"value": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The configuration value for the module. The absence of this field implies its inheritance from the parent.", +"type": "object" +} +}, +"type": "object" +}, +"Connection": { +"description": "Contains information about the IP connection associated with the finding.", +"id": "Connection", +"properties": { +"destinationIp": { +"description": "Destination IP address. Not present for sockets that are listening and not connected.", +"type": "string" +}, +"destinationPort": { +"description": "Destination port. Not present for sockets that are listening and not connected.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "IANA Internet Protocol Number such as TCP(6) and UDP(17).", +"enum": [ +"PROTOCOL_UNSPECIFIED", +"ICMP", +"TCP", +"UDP", +"GRE", +"ESP" +], +"enumDescriptions": [ +"Unspecified protocol (not HOPOPT).", +"Internet Control Message Protocol.", +"Transmission Control Protocol.", +"User Datagram Protocol.", +"Generic Routing Encapsulation.", +"Encap Security Payload." +], +"type": "string" +}, +"sourceIp": { +"description": "Source IP address.", +"type": "string" +}, +"sourcePort": { +"description": "Source port.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Contact": { +"description": "The email address of a contact.", +"id": "Contact", +"properties": { +"email": { +"description": "An email address. For example, \"`person123@company.com`\".", +"type": "string" +} +}, +"type": "object" +}, +"ContactDetails": { +"description": "Details about specific contacts", +"id": "ContactDetails", +"properties": { +"contacts": { +"description": "A list of contacts", +"items": { +"$ref": "Contact" +}, +"type": "array" +} +}, +"type": "object" +}, +"Container": { +"description": "Container associated with the finding.", +"id": "Container", +"properties": { +"createTime": { +"description": "The time that the container was created.", +"format": "google-datetime", +"type": "string" +}, +"imageId": { +"description": "Optional container image ID, if provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", +"type": "string" +}, +"labels": { +"description": "Container labels, as provided by the container runtime.", +"items": { +"$ref": "Label" +}, +"type": "array" +}, +"name": { +"description": "Name of the container.", +"type": "string" +}, +"uri": { +"description": "Container image URI provided when configuring a pod or container. This string can identify a container image version using mutable tags.", +"type": "string" +} +}, +"type": "object" +}, +"ContainerThreatDetectionSettings": { +"description": "Resource capturing the settings for the Container Threat Detection service.", +"id": "ContainerThreatDetectionSettings", +"properties": { +"modules": { +"additionalProperties": { +"$ref": "Config" +}, +"description": "The configurations including the state of enablement for the service's different modules. The absence of a module in the map implies its configuration is inherited from its parent's configuration.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the ContainerThreatDetectionSettings. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings", +"type": "string" +}, +"serviceAccount": { +"description": "Output only. The service account used by Container Threat Detection for scanning. Service accounts are scoped at the project level meaning this field will be empty at any level above a project.", +"readOnly": true, +"type": "string" +}, +"serviceEnablementState": { +"description": "The state of enablement for the service at its level of the resource hierarchy. A DISABLED state will override all module enablement_states to DISABLED.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"INHERITED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"State is inherited from the parent resource.", +"State is enabled.", +"State is disabled." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the settings were last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Cve": { +"description": "CVE stands for Common Vulnerabilities and Exposures. Information from the [CVE record](https://www.cve.org/ResourcesSupport/Glossary) that describes this vulnerability.", +"id": "Cve", +"properties": { +"cvssv3": { +"$ref": "Cvssv3", +"description": "Describe Common Vulnerability Scoring System specified at https://www.first.org/cvss/v3.1/specification-document" +}, +"exploitReleaseDate": { +"description": "Date the first publicly available exploit or PoC was released.", +"format": "google-datetime", +"type": "string" +}, +"exploitationActivity": { +"description": "The exploitation activity of the vulnerability in the wild.", +"enum": [ +"EXPLOITATION_ACTIVITY_UNSPECIFIED", +"WIDE", +"CONFIRMED", +"AVAILABLE", +"ANTICIPATED", +"NO_KNOWN" +], +"enumDescriptions": [ +"Invalid or empty value.", +"Exploitation has been reported or confirmed to widely occur.", +"Limited reported or confirmed exploitation activities.", +"Exploit is publicly available.", +"No known exploitation activity, but has a high potential for exploitation.", +"No known exploitation activity." +], +"type": "string" +}, +"firstExploitationDate": { +"description": "Date of the earliest known exploitation.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "The unique identifier for the vulnerability. e.g. CVE-2021-34527", +"type": "string" +}, +"impact": { +"description": "The potential impact of the vulnerability if it was to be exploited.", +"enum": [ +"RISK_RATING_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Invalid or empty value.", +"Exploitation would have little to no security impact.", +"Exploitation would enable attackers to perform activities, or could allow attackers to have a direct impact, but would require additional steps.", +"Exploitation would enable attackers to have a notable direct impact without needing to overcome any major mitigating factors.", +"Exploitation would fundamentally undermine the security of affected systems, enable actors to perform significant attacks with minimal effort, with little to no mitigating factors to overcome." +], +"type": "string" +}, +"observedInTheWild": { +"description": "Whether or not the vulnerability has been observed in the wild.", +"type": "boolean" +}, +"references": { +"description": "Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527", +"items": { +"$ref": "Reference" +}, +"type": "array" +}, +"upstreamFixAvailable": { +"description": "Whether upstream fix is available for the CVE.", +"type": "boolean" +}, +"zeroDay": { +"description": "Whether or not the vulnerability was zero day when the finding was published.", +"type": "boolean" +} +}, +"type": "object" +}, +"Cvssv3": { +"description": "Common Vulnerability Scoring System version 3.", +"id": "Cvssv3", +"properties": { +"attackComplexity": { +"description": "This metric describes the conditions beyond the attacker's control that must exist in order to exploit the vulnerability.", +"enum": [ +"ATTACK_COMPLEXITY_UNSPECIFIED", +"ATTACK_COMPLEXITY_LOW", +"ATTACK_COMPLEXITY_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"Specialized access conditions or extenuating circumstances do not exist. An attacker can expect repeatable success when attacking the vulnerable component.", +"A successful attack depends on conditions beyond the attacker's control. That is, a successful attack cannot be accomplished at will, but requires the attacker to invest in some measurable amount of effort in preparation or execution against the vulnerable component before a successful attack can be expected." +], +"type": "string" +}, +"attackVector": { +"description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. This metric reflects the context by which vulnerability exploitation is possible.", +"enum": [ +"ATTACK_VECTOR_UNSPECIFIED", +"ATTACK_VECTOR_NETWORK", +"ATTACK_VECTOR_ADJACENT", +"ATTACK_VECTOR_LOCAL", +"ATTACK_VECTOR_PHYSICAL" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable component is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet.", +"The vulnerable component is bound to the network stack, but the attack is limited at the protocol level to a logically adjacent topology.", +"The vulnerable component is not bound to the network stack and the attacker's path is via read/write/execute capabilities.", +"The attack requires the attacker to physically touch or manipulate the vulnerable component." +], +"type": "string" +}, +"availabilityImpact": { +"description": "This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"baseScore": { +"description": "The base score is a function of the base metric scores.", +"format": "double", +"type": "number" +}, +"confidentialityImpact": { +"description": "This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"integrityImpact": { +"description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"privilegesRequired": { +"description": "This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.", +"enum": [ +"PRIVILEGES_REQUIRED_UNSPECIFIED", +"PRIVILEGES_REQUIRED_NONE", +"PRIVILEGES_REQUIRED_LOW", +"PRIVILEGES_REQUIRED_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"The attacker is unauthorized prior to attack, and therefore does not require any access to settings or files of the vulnerable system to carry out an attack.", +"The attacker requires privileges that provide basic user capabilities that could normally affect only settings and files owned by a user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources.", +"The attacker requires privileges that provide significant (e.g., administrative) control over the vulnerable component allowing access to component-wide settings and files." +], +"type": "string" +}, +"scope": { +"description": "The Scope metric captures whether a vulnerability in one vulnerable component impacts resources in components beyond its security scope.", +"enum": [ +"SCOPE_UNSPECIFIED", +"SCOPE_UNCHANGED", +"SCOPE_CHANGED" +], +"enumDescriptions": [ +"Invalid value.", +"An exploited vulnerability can only affect resources managed by the same security authority.", +"An exploited vulnerability can affect resources beyond the security scope managed by the security authority of the vulnerable component." +], +"type": "string" +}, +"userInteraction": { +"description": "This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable component.", +"enum": [ +"USER_INTERACTION_UNSPECIFIED", +"USER_INTERACTION_NONE", +"USER_INTERACTION_REQUIRED" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable system can be exploited without interaction from any user.", +"Successful exploitation of this vulnerability requires a user to take some action before the vulnerability can be exploited." +], +"type": "string" +} +}, +"type": "object" +}, +"DataAccessEvent": { +"description": "Details about a data access attempt made by a principal not authorized under applicable data security policy.", +"id": "DataAccessEvent", +"properties": { +"eventId": { +"description": "Unique identifier for data access event.", +"type": "string" +}, +"eventTime": { +"description": "Timestamp of data access event.", +"format": "google-datetime", +"type": "string" +}, +"operation": { +"description": "The operation performed by the principal to access the data.", +"enum": [ +"OPERATION_UNSPECIFIED", +"READ", +"MOVE", +"COPY" +], +"enumDescriptions": [ +"The operation is unspecified.", +"Represents a read operation.", +"Represents a move operation.", +"Represents a copy operation." +], +"type": "string" +}, +"principalEmail": { +"description": "The email address of the principal that accessed the data. The principal could be a user account, service account, Google group, or other.", +"type": "string" +} +}, +"type": "object" +}, +"DataFlowEvent": { +"description": "Details about a data flow event, in which either the data is moved to or is accessed from a non-compliant geo-location, as defined in the applicable data security policy.", +"id": "DataFlowEvent", +"properties": { +"eventId": { +"description": "Unique identifier for data flow event.", +"type": "string" +}, +"eventTime": { +"description": "Timestamp of data flow event.", +"format": "google-datetime", +"type": "string" +}, +"operation": { +"description": "The operation performed by the principal for the data flow event.", +"enum": [ +"OPERATION_UNSPECIFIED", +"READ", +"MOVE", +"COPY" +], +"enumDescriptions": [ +"The operation is unspecified.", +"Represents a read operation.", +"Represents a move operation.", +"Represents a copy operation." +], +"type": "string" +}, +"principalEmail": { +"description": "The email address of the principal that initiated the data flow event. The principal could be a user account, service account, Google group, or other.", +"type": "string" +}, +"violatedLocation": { +"description": "Non-compliant location of the principal or the data destination.", +"type": "string" +} +}, +"type": "object" +}, +"DataRetentionDeletionEvent": { +"description": "Details about data retention deletion violations, in which the data is non-compliant based on their retention or deletion time, as defined in the applicable data security policy. The Data Retention Deletion (DRD) control is a control of the DSPM (Data Security Posture Management) suite that enables organizations to manage data retention and deletion policies in compliance with regulations, such as GDPR and CRPA. DRD supports two primary policy types: maximum storage length (max TTL) and minimum storage length (min TTL). Both are aimed at helping organizations meet regulatory and data management commitments.", +"id": "DataRetentionDeletionEvent", +"properties": { +"dataObjectCount": { +"description": "Number of objects that violated the policy for this resource. If the number is less than 1,000, then the value of this field is the exact number. If the number of objects that violated the policy is greater than or equal to 1,000, then the value of this field is 1000.", +"format": "int64", +"type": "string" +}, +"eventDetectionTime": { +"description": "Timestamp indicating when the event was detected.", +"format": "google-datetime", +"type": "string" +}, +"eventType": { +"description": "Type of the DRD event.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"EVENT_TYPE_MAX_TTL_EXCEEDED" +], +"enumDescriptions": [ +"Unspecified event type.", +"The maximum retention time has been exceeded." +], +"type": "string" +}, +"maxRetentionAllowed": { +"description": "Maximum duration of retention allowed from the DRD control. This comes from the DRD control where users set a max TTL for their data. For example, suppose that a user set the max TTL for a Cloud Storage bucket to 90 days. However, an object in that bucket is 100 days old. In this case, a DataRetentionDeletionEvent will be generated for that Cloud Storage bucket, and the max_retention_allowed is 90 days.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Database": { +"description": "Represents database access information, such as queries. A database may be a sub-resource of an instance (as in the case of Cloud SQL instances or Cloud Spanner instances), or the database instance itself. Some database resources might not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types, such as Cloud SQL databases, are not yet supported by Cloud Asset Inventory. In these cases only the display name is provided.", +"id": "Database", +"properties": { +"displayName": { +"description": "The human-readable name of the database that the user connected to.", +"type": "string" +}, +"grantees": { +"description": "The target usernames, roles, or groups of an SQL privilege grant, which is not an IAM policy change.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Some database resources may not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types are not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In these cases only the display name will be provided. The [full resource name](https://google.aip.dev/122#full-resource-names) of the database that the user connected to, if it is supported by Cloud Asset Inventory.", +"type": "string" +}, +"query": { +"description": "The SQL statement that is associated with the database access.", +"type": "string" +}, +"userName": { +"description": "The username used to connect to the database. The username might not be an IAM principal and does not have a set format.", +"type": "string" +}, +"version": { +"description": "The version of the database, for example, POSTGRES_14. See [the complete list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).", +"type": "string" +} +}, +"type": "object" +}, +"Details": { +"description": "Details of a subscription.", +"id": "Details", +"properties": { +"endTime": { +"description": "The time the subscription has or will end.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The time the subscription has or will start.", +"format": "google-datetime", +"type": "string" +}, +"type": { +"description": "The type of subscription", +"enum": [ +"TYPE_UNSPECIFIED", +"STANDARD", +"TRIAL", +"ALPHA", +"DEMO", +"PAY_AS_YOU_GO" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The standard subscription.", +"The trial subscription.", +"The alpha subscription.", +"The demo subscription for channel partners.", +"Pay-as-you-go subscription." +], +"type": "string" +} +}, +"type": "object" +}, +"Detection": { +"description": "Memory hash detection contributing to the binary family match.", +"id": "Detection", +"properties": { +"binary": { +"description": "The name of the binary associated with the memory hash signature detection.", +"type": "string" +}, +"percentPagesMatched": { +"description": "The percentage of memory page hashes in the signature that were matched.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Disk": { +"description": "Contains information about the disk associated with the finding.", +"id": "Disk", +"properties": { +"name": { +"description": "The name of the disk, for example, \"https://www.googleapis.com/compute/v1/projects/project-id/zones/zone-id/disks/disk-id\".", +"type": "string" +} +}, +"type": "object" +}, +"DiskPath": { +"description": "Path of the file in terms of underlying disk/partition identifiers.", +"id": "DiskPath", +"properties": { +"partitionUuid": { +"description": "UUID of the partition (format https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)", +"type": "string" +}, +"relativePath": { +"description": "Relative path of the file in the partition as a JSON encoded string. Example: /home/user1/executable_file.sh", +"type": "string" +} +}, +"type": "object" +}, +"DynamicMuteRecord": { +"description": "The record of a dynamic mute rule that matches the finding.", +"id": "DynamicMuteRecord", +"properties": { +"matchTime": { +"description": "When the dynamic mute rule first matched the finding.", +"format": "google-datetime", +"type": "string" +}, +"muteConfig": { +"description": "The relative resource name of the mute rule, represented by a mute config, that created this record, for example `organizations/123/muteConfigs/mymuteconfig` or `organizations/123/locations/global/muteConfigs/mymuteconfig`.", +"type": "string" +} +}, +"type": "object" +}, +"EnvironmentVariable": { +"description": "A name-value pair representing an environment variable used in an operating system process.", +"id": "EnvironmentVariable", +"properties": { +"name": { +"description": "Environment variable name as a JSON encoded string.", +"type": "string" +}, +"val": { +"description": "Environment variable value as a JSON encoded string.", +"type": "string" +} +}, +"type": "object" +}, +"EventThreatDetectionSettings": { +"description": "Resource capturing the settings for the Event Threat Detection service.", +"id": "EventThreatDetectionSettings", +"properties": { +"modules": { +"additionalProperties": { +"$ref": "Config" +}, +"description": "The configurations including the state of enablement for the service's different modules. The absence of a module in the map implies its configuration is inherited from its parent's configuration.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the EventThreatDetectionSettings. Formats: * organizations/{organization}/eventThreatDetectionSettings * folders/{folder}/eventThreatDetectionSettings * projects/{project}/eventThreatDetectionSettings", +"type": "string" +}, +"serviceEnablementState": { +"description": "The state of enablement for the service at its level of the resource hierarchy. A DISABLED state will override all module enablement_states to DISABLED.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"INHERITED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"State is inherited from the parent resource.", +"State is enabled.", +"State is disabled." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the settings were last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExfilResource": { +"description": "Resource where data was exfiltrated from or exfiltrated to.", +"id": "ExfilResource", +"properties": { +"components": { +"description": "Subcomponents of the asset that was exfiltrated, like URIs used during exfiltration, table names, databases, and filenames. For example, multiple tables might have been exfiltrated from the same Cloud SQL instance, or multiple files might have been exfiltrated from the same Cloud Storage bucket.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The resource's [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name).", +"type": "string" +} +}, +"type": "object" +}, +"Exfiltration": { +"description": "Exfiltration represents a data exfiltration attempt from one or more sources to one or more targets. The `sources` attribute lists the sources of the exfiltrated data. The `targets` attribute lists the destinations the data was copied to.", +"id": "Exfiltration", +"properties": { +"sources": { +"description": "If there are multiple sources, then the data is considered \"joined\" between them. For instance, BigQuery can join multiple tables, and each table would be considered a source.", +"items": { +"$ref": "ExfilResource" +}, +"type": "array" +}, +"targets": { +"description": "If there are multiple targets, each target would get a complete copy of the \"joined\" source data.", +"items": { +"$ref": "ExfilResource" +}, +"type": "array" +}, +"totalExfiltratedBytes": { +"description": "Total exfiltrated bytes processed for the entire job.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"File": { +"description": "File information about the related binary/library used by an executable, or the script used by a script interpreter", +"id": "File", +"properties": { +"contents": { +"description": "Prefix of the file contents as a JSON-encoded string.", +"type": "string" +}, +"diskPath": { +"$ref": "DiskPath", +"description": "Path of the file in terms of underlying disk/partition identifiers." +}, +"hashedSize": { +"description": "The length in bytes of the file prefix that was hashed. If hashed_size == size, any hashes reported represent the entire file.", +"format": "int64", +"type": "string" +}, +"partiallyHashed": { +"description": "True when the hash covers only a prefix of the file.", +"type": "boolean" +}, +"path": { +"description": "Absolute path of the file as a JSON encoded string.", +"type": "string" +}, +"sha256": { +"description": "SHA256 hash of the first hashed_size bytes of the file encoded as a hex string. If hashed_size == size, sha256 represents the SHA256 hash of the entire file.", +"type": "string" +}, +"size": { +"description": "Size of the file in bytes.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Finding": { +"description": "Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.", +"id": "Finding", +"properties": { +"access": { +"$ref": "Access", +"description": "Access details associated with the finding, such as more information on the caller, which method was accessed, and from where." +}, +"application": { +"$ref": "Application", +"description": "Represents an application associated with the finding." +}, +"attackExposure": { +"$ref": "AttackExposure", +"description": "The results of an attack path simulation relevant to this finding." +}, +"backupDisasterRecovery": { +"$ref": "BackupDisasterRecovery", +"description": "Fields related to Backup and DR findings." +}, +"canonicalName": { +"description": "The canonical name of the finding. It's either \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\" or \"projects/{project_number}/sources/{source_id}/findings/{finding_id}\", depending on the closest CRM ancestor of the resource associated with the finding.", +"type": "string" +}, +"category": { +"description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", +"type": "string" +}, +"cloudArmor": { +"$ref": "CloudArmor", +"description": "Fields related to Cloud Armor findings." +}, +"cloudDlpDataProfile": { +"$ref": "CloudDlpDataProfile", +"description": "Cloud DLP data profile that is associated with the finding." +}, +"cloudDlpInspection": { +"$ref": "CloudDlpInspection", +"description": "Cloud Data Loss Prevention (Cloud DLP) inspection results that are associated with the finding." +}, +"compliances": { +"description": "Contains compliance information for security standards associated to the finding.", +"items": { +"$ref": "Compliance" +}, +"type": "array" +}, +"connections": { +"description": "Contains information about the IP connection associated with the finding.", +"items": { +"$ref": "Connection" +}, +"type": "array" +}, +"contacts": { +"additionalProperties": { +"$ref": "ContactDetails" +}, +"description": "Output only. Map containing the points of contact for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\": { \"contacts\": [ { \"email\": \"person1@company.com\" }, { \"email\": \"person2@company.com\" } ] } }", +"readOnly": true, +"type": "object" +}, +"containers": { +"description": "Containers associated with the finding. This field provides information for both Kubernetes and non-Kubernetes containers.", +"items": { +"$ref": "Container" +}, +"type": "array" +}, +"createTime": { +"description": "The time at which the finding was created in Security Command Center.", +"format": "google-datetime", +"type": "string" +}, +"dataAccessEvents": { +"description": "Data access events associated with the finding.", +"items": { +"$ref": "DataAccessEvent" +}, +"type": "array" +}, +"dataFlowEvents": { +"description": "Data flow events associated with the finding.", +"items": { +"$ref": "DataFlowEvent" +}, +"type": "array" +}, +"dataRetentionDeletionEvents": { +"description": "Data retention deletion events associated with the finding.", +"items": { +"$ref": "DataRetentionDeletionEvent" +}, +"type": "array" +}, +"database": { +"$ref": "Database", +"description": "Database associated with the finding." +}, +"description": { +"description": "Contains more details about the finding.", +"type": "string" +}, +"disk": { +"$ref": "Disk", +"description": "Disk associated with the finding." +}, +"eventTime": { +"description": "The time the finding was first detected. If an existing finding is updated, then this is the time the update occurred. For example, if the finding represents an open firewall, this property captures the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding is later resolved, then this time reflects when the finding was resolved. This must not be set to a value greater than the current timestamp.", +"format": "google-datetime", +"type": "string" +}, +"exfiltration": { +"$ref": "Exfiltration", +"description": "Represents exfiltrations associated with the finding." +}, +"externalSystems": { +"additionalProperties": { +"$ref": "GoogleCloudSecuritycenterV1ExternalSystem" +}, +"description": "Output only. Third party SIEM/SOAR fields within SCC, contains external system information and external system finding fields.", +"readOnly": true, +"type": "object" +}, +"externalUri": { +"description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", +"type": "string" +}, +"files": { +"description": "File associated with the finding.", +"items": { +"$ref": "File" +}, +"type": "array" +}, +"findingClass": { +"description": "The class of the finding.", +"enum": [ +"FINDING_CLASS_UNSPECIFIED", +"THREAT", +"VULNERABILITY", +"MISCONFIGURATION", +"OBSERVATION", +"SCC_ERROR", +"POSTURE_VIOLATION", +"TOXIC_COMBINATION", +"SENSITIVE_DATA_RISK" +], +"enumDescriptions": [ +"Unspecified finding class.", +"Describes unwanted or malicious activity.", +"Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", +"Describes a potential weakness in cloud resource/asset configuration that increases risk.", +"Describes a security observation that is for informational purposes.", +"Describes an error that prevents some SCC functionality.", +"Describes a potential security risk due to a change in the security posture.", +"Describes a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", +"Describes a potential security risk to data assets that contain sensitive data." +], +"type": "string" +}, +"groupMemberships": { +"description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", +"items": { +"$ref": "GroupMembership" +}, +"type": "array" +}, +"iamBindings": { +"description": "Represents IAM bindings associated with the finding.", +"items": { +"$ref": "IamBinding" +}, +"type": "array" +}, +"indicator": { +"$ref": "Indicator", +"description": "Represents what's commonly known as an *indicator of compromise* (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise)." +}, +"kernelRootkit": { +"$ref": "KernelRootkit", +"description": "Signature of the kernel rootkit." +}, +"kubernetes": { +"$ref": "Kubernetes", +"description": "Kubernetes resources associated with the finding." +}, +"loadBalancers": { +"description": "The load balancers associated with the finding.", +"items": { +"$ref": "LoadBalancer" +}, +"type": "array" +}, +"logEntries": { +"description": "Log entries that are relevant to the finding.", +"items": { +"$ref": "LogEntry" +}, +"type": "array" +}, +"mitreAttack": { +"$ref": "MitreAttack", +"description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org" +}, +"moduleName": { +"description": "Unique identifier of the module which generated the finding. Example: folders/598186756061/securityHealthAnalyticsSettings/customModules/56799441161885", +"type": "string" +}, +"mute": { +"description": "Indicates the mute state of a finding (either muted, unmuted or undefined). Unlike other attributes of a finding, a finding provider shouldn't set the value of mute.", +"enum": [ +"MUTE_UNSPECIFIED", +"MUTED", +"UNMUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unspecified.", +"Finding has been muted.", +"Finding has been unmuted.", +"Finding has never been muted/unmuted." +], +"type": "string" +}, +"muteInfo": { +"$ref": "MuteInfo", +"description": "Output only. The mute information regarding this finding.", +"readOnly": true +}, +"muteInitiator": { +"description": "Records additional information about the mute operation, for example, the [mute configuration](/security-command-center/docs/how-to-mute-findings) that muted the finding and the user who muted the finding.", +"type": "string" +}, +"muteUpdateTime": { +"description": "Output only. The most recent time this finding was muted or unmuted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\", \"projects/{project_id}/sources/{source_id}/findings/{finding_id}\".", +"type": "string" +}, +"nextSteps": { +"description": "Steps to address the finding.", +"type": "string" +}, +"notebook": { +"$ref": "Notebook", +"description": "Notebook associated with the finding." +}, +"orgPolicies": { +"description": "Contains information about the org policies associated with the finding.", +"items": { +"$ref": "OrgPolicy" +}, +"type": "array" +}, +"parent": { +"description": "The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: \"organizations/{organization_id}/sources/{source_id}\"", +"type": "string" +}, +"parentDisplayName": { +"description": "Output only. The human readable display name of the finding source such as \"Event Threat Detection\" or \"Security Health Analytics\".", +"readOnly": true, +"type": "string" +}, +"processes": { +"description": "Represents operating system processes associated with the Finding.", +"items": { +"$ref": "Process" +}, +"type": "array" +}, +"resourceName": { +"description": "For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.", +"type": "string" +}, +"securityMarks": { +"$ref": "SecurityMarks", +"description": "Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.", +"readOnly": true +}, +"securityPosture": { +"$ref": "SecurityPosture", +"description": "The security posture associated with the finding." +}, +"severity": { +"description": "The severity of the finding. This field is managed by the source that writes the finding.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"This value is used for findings when a source doesn't write a severity value.", +"Vulnerability: A critical vulnerability is easily discoverable by an external actor, exploitable, and results in the direct ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. Examples include publicly accessible unprotected user data and public SSH access with weak or no passwords. Threat: Indicates a threat that is able to access, modify, or delete data or execute unauthorized code within existing resources.", +"Vulnerability: A high risk vulnerability can be easily discovered and exploited in combination with other vulnerabilities in order to gain direct access and the ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. An example is a database with weak or no passwords that is only accessible internally. This database could easily be compromised by an actor that had access to the internal network. Threat: Indicates a threat that is able to create new computational resources in an environment but not able to access data or execute code in existing resources.", +"Vulnerability: A medium risk vulnerability could be used by an actor to gain access to resources or privileges that enable them to eventually (through multiple steps or a complex exploit) gain access and the ability to execute arbitrary code or exfiltrate data. An example is a service account with access to more projects than it should have. If an actor gains access to the service account, they could potentially use that access to manipulate a project the service account was not intended to. Threat: Indicates a threat that is able to cause operational impact but may not access data or execute unauthorized code.", +"Vulnerability: A low risk vulnerability hampers a security organization's ability to detect vulnerabilities or active threats in their deployment, or prevents the root cause investigation of security issues. An example is monitoring and logs being disabled for resource configurations and access. Threat: Indicates a threat that has obtained minimal access to an environment but is not able to access data, execute code, or create resources." +], +"type": "string" +}, +"sourceProperties": { +"additionalProperties": { +"type": "any" +}, +"description": "Source specific properties. These properties are managed by the source that writes the finding. The key names in the source_properties map must be between 1 and 255 characters, and must start with a letter and contain alphanumeric characters or underscores only.", +"type": "object" +}, +"state": { +"description": "The state of the finding.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"The finding requires attention and has not been addressed yet.", +"The finding has been fixed, triaged as a non-issue or otherwise addressed and is no longer active." +], +"type": "string" +}, +"toxicCombination": { +"$ref": "ToxicCombination", +"description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." +}, +"vulnerability": { +"$ref": "Vulnerability", +"description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" +} +}, +"type": "object" +}, +"Folder": { +"description": "Message that contains the resource name and display name of a folder resource.", +"id": "Folder", +"properties": { +"resourceFolder": { +"description": "Full resource name of this folder. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourceFolderDisplayName": { +"description": "The user defined display name for this folder.", +"type": "string" +} +}, +"type": "object" +}, +"GcpMetadata": { +"description": "GCP metadata associated with the resource, only applicable if the finding's cloud provider is Google Cloud Platform.", +"id": "GcpMetadata", +"properties": { +"folders": { +"description": "Output only. Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Folder" +}, +"readOnly": true, +"type": "array" +}, +"organization": { +"description": "The name of the organization that the resource belongs to.", +"type": "string" +}, +"parent": { +"description": "The full resource name of resource's parent.", +"type": "string" +}, +"parentDisplayName": { +"description": "The human readable name of resource's parent.", +"type": "string" +}, +"project": { +"description": "The full resource name of project that the resource belongs to.", +"type": "string" +}, +"projectDisplayName": { +"description": "The project ID that the resource belongs to.", +"type": "string" +} +}, +"type": "object" +}, +"Geolocation": { +"description": "Represents a geographical location for a given access.", +"id": "Geolocation", +"properties": { +"regionCode": { +"description": "A CLDR.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1BigQueryExport": { +"description": "Configures how to deliver Findings to BigQuery Instance.", +"id": "GoogleCloudSecuritycenterV1BigQueryExport", +"properties": { +"createTime": { +"description": "Output only. The time at which the BigQuery export was created. This field is set by the server and will be ignored if provided on export on creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataset": { +"description": "The dataset to write findings' updates to. Its format is \"projects/[project_id]/datasets/[bigquery_dataset_id]\". BigQuery Dataset unique ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_).", +"type": "string" +}, +"description": { +"description": "The description of the export (max of 1024 characters).", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across create/update events of findings. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the corresponding resource. The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes.", +"type": "string" +}, +"mostRecentEditor": { +"description": "Output only. Email address of the user who last edited the BigQuery export. This field is set by the server and will be ignored if provided on export creation or update.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The relative resource name of this export. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name. Example format: \"organizations/{organization_id}/bigQueryExports/{export_id}\" Example format: \"folders/{folder_id}/bigQueryExports/{export_id}\" Example format: \"projects/{project_id}/bigQueryExports/{export_id}\" This field is provided in responses, and is ignored when provided in create requests.", +"type": "string" +}, +"principal": { +"description": "Output only. The service account that needs permission to create table and upload data to the BigQuery dataset.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The most recent time at which the BigQuery export was updated. This field is set by the server and will be ignored if provided on export creation or update.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1Binding": { +"description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", +"id": "GoogleCloudSecuritycenterV1Binding", +"properties": { +"name": { +"description": "Name for the binding.", +"type": "string" +}, +"ns": { +"description": "Namespace for the binding.", +"type": "string" +}, +"role": { +"$ref": "Role", +"description": "The Role or ClusterRole referenced by the binding." +}, +"subjects": { +"description": "Represents one or more subjects that are bound to the role. Not always available for PATCH requests.", +"items": { +"$ref": "Subject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1BulkMuteFindingsResponse": { +"description": "The response to a BulkMute request. Contains the LRO information.", +"id": "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1CustomConfig": { +"description": "Defines the properties in a custom module configuration for Security Health Analytics. Use the custom module configuration to create custom detectors that generate custom findings for resources that you specify.", +"id": "GoogleCloudSecuritycenterV1CustomConfig", +"properties": { +"customOutput": { +"$ref": "GoogleCloudSecuritycenterV1CustomOutputSpec", +"description": "Custom output properties." +}, +"description": { +"description": "Text that describes the vulnerability or misconfiguration that the custom module detects. This explanation is returned with each finding instance to help investigators understand the detected issue. The text must be enclosed in quotation marks.", +"type": "string" +}, +"predicate": { +"$ref": "Expr", +"description": "The CEL expression to evaluate to produce findings. When the expression evaluates to true against a resource, a finding is generated." +}, +"recommendation": { +"description": "An explanation of the recommended steps that security teams can take to resolve the detected issue. This explanation is returned with each finding generated by this module in the `nextSteps` property of the finding JSON.", +"type": "string" +}, +"resourceSelector": { +"$ref": "GoogleCloudSecuritycenterV1ResourceSelector", +"description": "The resource types that the custom module operates on. Each custom module can specify up to 5 resource types." +}, +"severity": { +"description": "The severity to assign to findings generated by the module.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"Unspecified severity.", +"Critical severity.", +"High severity.", +"Medium severity.", +"Low severity." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1CustomOutputSpec": { +"description": "A set of optional name-value pairs that define custom source properties to return with each finding that is generated by the custom module. The custom source properties that are defined here are included in the finding JSON under `sourceProperties`.", +"id": "GoogleCloudSecuritycenterV1CustomOutputSpec", +"properties": { +"properties": { +"description": "A list of custom output properties to add to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1Property" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule": { +"description": "An EffectiveSecurityHealthAnalyticsCustomModule is the representation of a Security Health Analytics custom module at a specified level of the resource hierarchy: organization, folder, or project. If a custom module is inherited from a parent organization or folder, the value of the `enablementState` property in EffectiveSecurityHealthAnalyticsCustomModule is set to the value that is effective in the parent, instead of `INHERITED`. For example, if the module is enabled in a parent organization or folder, the effective enablement_state for the module in all child folders or projects is also `enabled`. EffectiveSecurityHealthAnalyticsCustomModule is read-only.", +"id": "GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule", +"properties": { +"cloudProvider": { +"description": "The cloud provider of the custom module.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"Unspecified cloud provider.", +"Google Cloud Platform.", +"Amazon Web Services.", +"Microsoft Azure." +], +"type": "string" +}, +"customConfig": { +"$ref": "GoogleCloudSecuritycenterV1CustomConfig", +"description": "Output only. The user-specified configuration for the module.", +"readOnly": true +}, +"displayName": { +"description": "Output only. The display name for the custom module. The name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", +"readOnly": true, +"type": "string" +}, +"enablementState": { +"description": "Output only. The effective state of enablement for the module at the given level of the hierarchy.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Unspecified enablement state.", +"The module is enabled at the given level.", +"The module is disabled at the given level." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}\"", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1ExternalSystem": { +"description": "Representation of third party SIEM/SOAR fields within SCC.", +"id": "GoogleCloudSecuritycenterV1ExternalSystem", +"properties": { +"assignees": { +"description": "References primary/secondary etc assignees in the external system.", +"items": { +"type": "string" +}, +"type": "array" +}, +"caseCloseTime": { +"description": "The time when the case was closed, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"caseCreateTime": { +"description": "The time when the case was created, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"casePriority": { +"description": "The priority of the finding's corresponding case in the external system.", +"type": "string" +}, +"caseSla": { +"description": "The SLA of the finding's corresponding case in the external system.", +"format": "google-datetime", +"type": "string" +}, +"caseUri": { +"description": "The link to the finding's corresponding case in the external system.", +"type": "string" +}, +"externalSystemUpdateTime": { +"description": "The time when the case was last updated, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"externalUid": { +"description": "The identifier that's used to track the finding's corresponding case in the external system.", +"type": "string" +}, +"name": { +"description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", +"type": "string" +}, +"status": { +"description": "The most recent status of the finding's corresponding case, as reported by the external system.", +"type": "string" +}, +"ticketInfo": { +"$ref": "TicketInfo", +"description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1MuteConfig": { +"description": "A mute config is a Cloud SCC resource that contains the configuration to mute create/update events of findings.", +"id": "GoogleCloudSecuritycenterV1MuteConfig", +"properties": { +"createTime": { +"description": "Output only. The time at which the mute config was created. This field is set by the server and will be ignored if provided on config creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A description of the mute config.", +"type": "string" +}, +"displayName": { +"deprecated": true, +"description": "The human readable name to be displayed for the mute config.", +"type": "string" +}, +"expiryTime": { +"description": "Optional. The expiry of the mute config. Only applicable for dynamic configs. If the expiry is set, when the config expires, it is removed from all findings.", +"format": "google-datetime", +"type": "string" +}, +"filter": { +"description": "Required. An expression that defines the filter to apply across create/update events of findings. While creating a filter string, be mindful of the scope in which the mute configuration is being created. E.g., If a filter contains project = X but is created under the project = Y scope, it might not match any findings. The following field and operator combinations are supported: * severity: `=`, `:` * category: `=`, `:` * resource.name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.folders.resource_folder: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.type: `=`, `:` * finding_class: `=`, `:` * indicator.ip_addresses: `=`, `:` * indicator.domains: `=`, `:`", +"type": "string" +}, +"mostRecentEditor": { +"description": "Output only. Email address of the user who last edited the mute config. This field is set by the server and will be ignored if provided on config creation or update.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "This field will be ignored if provided on config creation. Format `organizations/{organization}/muteConfigs/{mute_config}` `folders/{folder}/muteConfigs/{mute_config}` `projects/{project}/muteConfigs/{mute_config}` `organizations/{organization}/locations/global/muteConfigs/{mute_config}` `folders/{folder}/locations/global/muteConfigs/{mute_config}` `projects/{project}/locations/global/muteConfigs/{mute_config}`", +"type": "string" +}, +"type": { +"description": "Optional. The type of the mute config, which determines what type of mute state the config affects. The static mute state takes precedence over the dynamic mute state. Immutable after creation. STATIC by default if not set during creation.", +"enum": [ +"MUTE_CONFIG_TYPE_UNSPECIFIED", +"STATIC", +"DYNAMIC" +], +"enumDescriptions": [ +"Unused.", +"A static mute config, which sets the static mute state of future matching findings to muted. Once the static mute state has been set, finding or config modifications will not affect the state.", +"A dynamic mute config, which is applied to existing and future matching findings, setting their dynamic mute state to \"muted\". If the config is updated or deleted, or a matching finding is updated, such that the finding doesn't match the config, the config will be removed from the finding, and the finding's dynamic mute state may become \"unmuted\" (unless other configs still match)." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The most recent time at which the mute config was updated. This field is set by the server and will be ignored if provided on config creation or update.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1NotificationMessage": { +"description": "Cloud SCC's Notification", +"id": "GoogleCloudSecuritycenterV1NotificationMessage", +"properties": { +"finding": { +"$ref": "Finding", +"description": "If it's a Finding based notification config, this field will be populated." +}, +"notificationConfigName": { +"description": "Name of the notification config that generated current notification.", +"type": "string" +}, +"resource": { +"$ref": "GoogleCloudSecuritycenterV1Resource", +"description": "The Cloud resource tied to this notification's Finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1Property": { +"description": "An individual name-value pair that defines a custom source property.", +"id": "GoogleCloudSecuritycenterV1Property", +"properties": { +"name": { +"description": "Name of the property for the custom output.", +"type": "string" +}, +"valueExpression": { +"$ref": "Expr", +"description": "The CEL expression for the custom output. A resource property can be specified to return the value of the property or a text string enclosed in quotation marks." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1Resource": { +"description": "Information related to the Google Cloud resource.", +"id": "GoogleCloudSecuritycenterV1Resource", +"properties": { +"awsMetadata": { +"$ref": "AwsMetadata", +"description": "The AWS metadata associated with the finding." +}, +"azureMetadata": { +"$ref": "AzureMetadata", +"description": "The Azure metadata associated with the finding." +}, +"cloudProvider": { +"description": "Indicates which cloud provider the resource resides in.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"displayName": { +"description": "The human readable name of the resource.", +"type": "string" +}, +"folders": { +"description": "Output only. Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", +"items": { +"$ref": "Folder" +}, +"readOnly": true, +"type": "array" +}, +"location": { +"description": "The region or location of the service (if applicable).", +"type": "string" +}, +"name": { +"description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"organization": { +"description": "Indicates which organization or tenant in the cloud provider the finding applies to.", +"type": "string" +}, +"parent": { +"description": "The full resource name of resource's parent.", +"type": "string" +}, +"parentDisplayName": { +"description": "The human readable name of resource's parent.", +"type": "string" +}, +"project": { +"description": "The full resource name of project that the resource belongs to.", +"type": "string" +}, +"projectDisplayName": { +"description": "The project ID that the resource belongs to.", +"type": "string" +}, +"resourcePath": { +"$ref": "ResourcePath", +"description": "Provides the path to the resource within the resource hierarchy." +}, +"resourcePathString": { +"description": "A string representation of the resource path. For Google Cloud, it has the format of `organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id}` where there can be any number of folders. For AWS, it has the format of `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id}` where there can be any number of organizational units. For Azure, it has the format of `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name}` where there can be any number of management groups.", +"type": "string" +}, +"service": { +"description": "The parent service or product from which the resource is provided, for example, GKE or SNS.", +"type": "string" +}, +"type": { +"description": "The full resource type of the resource.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1ResourceSelector": { +"description": "Resource for selecting resource type.", +"id": "GoogleCloudSecuritycenterV1ResourceSelector", +"properties": { +"resourceTypes": { +"description": "The resource types to run the detector on.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1ResourceValueConfig": { +"description": "A resource value configuration (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", +"id": "GoogleCloudSecuritycenterV1ResourceValueConfig", +"properties": { +"cloudProvider": { +"description": "Cloud provider this configuration applies to", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"createTime": { +"description": "Output only. Timestamp this resource value configuration was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of the resource value configuration.", +"type": "string" +}, +"name": { +"description": "Name for the resource value configuration", +"type": "string" +}, +"resourceLabelsSelector": { +"additionalProperties": { +"type": "string" +}, +"description": "List of resource labels to search for, evaluated with `AND`. For example, `\"resource_labels_selector\": {\"key\": \"value\", \"env\": \"prod\"}` will match resources with labels \"key\": \"value\" `AND` \"env\": \"prod\" https://cloud.google.com/resource-manager/docs/creating-managing-labels", +"type": "object" +}, +"resourceType": { +"description": "Apply resource_value only to resources that match resource_type. resource_type will be checked with `AND` of other resources. For example, \"storage.googleapis.com/Bucket\" with resource_value \"HIGH\" will apply \"HIGH\" value only to \"storage.googleapis.com/Bucket\" resources.", +"type": "string" +}, +"resourceValue": { +"description": "Required. Resource value level this expression represents", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +}, +"scope": { +"description": "Project or folder to scope this configuration to. For example, \"project/456\" would apply this configuration only to resources in \"project/456\" scope will be checked with `AND` of other resources.", +"type": "string" +}, +"sensitiveDataProtectionMapping": { +"$ref": "GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping", +"description": "A mapping of the sensitivity on Sensitive Data Protection finding to resource values. This mapping can only be used in combination with a resource_type that is related to BigQuery, e.g. \"bigquery.googleapis.com/Dataset\"." +}, +"tagValues": { +"description": "Required. Tag values combined with `AND` to check against. For Google Cloud resources, they are tag value IDs in the form of \"tagValues/123\". Example: `[ \"tagValues/123\", \"tagValues/456\", \"tagValues/789\" ]` https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. Timestamp this resource value configuration was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse": { +"description": "Response of asset discovery run", +"id": "GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse", +"properties": { +"duration": { +"description": "The duration between asset discovery run start and end", +"format": "google-duration", +"type": "string" +}, +"state": { +"description": "The state of an asset discovery run.", +"enum": [ +"STATE_UNSPECIFIED", +"COMPLETED", +"SUPERSEDED", +"TERMINATED" +], +"enumDescriptions": [ +"Asset discovery run state was unspecified.", +"Asset discovery run completed successfully.", +"Asset discovery run was cancelled with tasks still pending, as another run for the same organization was started with a higher priority.", +"Asset discovery run was killed and terminated." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule": { +"description": "Represents an instance of a Security Health Analytics custom module, including its full module name, display name, enablement state, and last updated time. You can create a custom module at the organization, folder, or project level. Custom modules that you create at the organization or folder level are inherited by the child folders and projects.", +"id": "GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule", +"properties": { +"ancestorModule": { +"description": "Output only. If empty, indicates that the custom module was created in the organization, folder, or project in which you are viewing the custom module. Otherwise, `ancestor_module` specifies the organization or folder from which the custom module is inherited.", +"readOnly": true, +"type": "string" +}, +"cloudProvider": { +"description": "The cloud provider of the custom module.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"Unspecified cloud provider.", +"Google Cloud.", +"Amazon Web Services (AWS).", +"Microsoft Azure." +], +"type": "string" +}, +"customConfig": { +"$ref": "GoogleCloudSecuritycenterV1CustomConfig", +"description": "The user specified custom configuration for the module." +}, +"displayName": { +"description": "The display name of the Security Health Analytics custom module. This display name becomes the finding category for all findings that are returned by this custom module. The display name must be between 1 and 128 characters, start with a lowercase letter, and contain alphanumeric characters or underscores only.", +"type": "string" +}, +"enablementState": { +"description": "The enablement state of the custom module.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"ENABLED", +"DISABLED", +"INHERITED" +], +"enumDescriptions": [ +"Unspecified enablement state.", +"The module is enabled at the given CRM resource.", +"The module is disabled at the given CRM resource.", +"State is inherited from an ancestor module. The module will either be effectively ENABLED or DISABLED based on its closest non-inherited ancestor module in the CRM hierarchy." +], +"type": "string" +}, +"lastEditor": { +"description": "Output only. The editor that last updated the custom module.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of the custom module. Its format is \"organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}\", or \"projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}\" The id {customModule} is server-generated and is not user settable. It will be a numeric id containing 1-20 digits.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which the custom module was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping": { +"description": "Resource value mapping for Sensitive Data Protection findings. If any of these mappings have a resource value that is not unspecified, the resource_value field will be ignored when reading this configuration.", +"id": "GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping", +"properties": { +"highSensitivityMapping": { +"description": "Resource value mapping for high-sensitivity Sensitive Data Protection findings", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +}, +"mediumSensitivityMapping": { +"description": "Resource value mapping for medium-sensitivity Sensitive Data Protection findings", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse": { +"description": "Response of asset discovery run", +"id": "GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse", +"properties": { +"duration": { +"description": "The duration between asset discovery run start and end", +"format": "google-duration", +"type": "string" +}, +"state": { +"description": "The state of an asset discovery run.", +"enum": [ +"STATE_UNSPECIFIED", +"COMPLETED", +"SUPERSEDED", +"TERMINATED" +], +"enumDescriptions": [ +"Asset discovery run state was unspecified.", +"Asset discovery run completed successfully.", +"Asset discovery run was cancelled with tasks still pending, as another run for the same organization was started with a higher priority.", +"Asset discovery run was killed and terminated." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1Finding": { +"description": "Security Command Center finding. A finding is a record of assessment data (security, risk, health or privacy) ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, an XSS vulnerability in an App Engine application is a finding.", +"id": "GoogleCloudSecuritycenterV1p1beta1Finding", +"properties": { +"canonicalName": { +"description": "The canonical name of the finding. It's either \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\" or \"projects/{project_number}/sources/{source_id}/findings/{finding_id}\", depending on the closest CRM ancestor of the resource associated with the finding.", +"type": "string" +}, +"category": { +"description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", +"type": "string" +}, +"createTime": { +"description": "The time at which the finding was created in Security Command Center.", +"format": "google-datetime", +"type": "string" +}, +"eventTime": { +"description": "The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.", +"format": "google-datetime", +"type": "string" +}, +"externalUri": { +"description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", +"type": "string" +}, +"name": { +"description": "The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\"", +"type": "string" +}, +"parent": { +"description": "The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: \"organizations/{organization_id}/sources/{source_id}\"", +"type": "string" +}, +"resourceName": { +"description": "For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.", +"type": "string" +}, +"securityMarks": { +"$ref": "GoogleCloudSecuritycenterV1p1beta1SecurityMarks", +"description": "Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.", +"readOnly": true +}, +"severity": { +"description": "The severity of the finding. This field is managed by the source that writes the finding.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"No severity specified. The default value.", +"Critical severity.", +"High severity.", +"Medium severity.", +"Low severity." +], +"type": "string" +}, +"sourceProperties": { +"additionalProperties": { +"type": "any" +}, +"description": "Source specific properties. These properties are managed by the source that writes the finding. The key names in the source_properties map must be between 1 and 255 characters, and must start with a letter and contain alphanumeric characters or underscores only.", +"type": "object" +}, +"state": { +"description": "The state of the finding.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"The finding requires attention and has not been addressed yet.", +"The finding has been fixed, triaged as a non-issue or otherwise addressed and is no longer active." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1Folder": { +"description": "Message that contains the resource name and display name of a folder resource.", +"id": "GoogleCloudSecuritycenterV1p1beta1Folder", +"properties": { +"resourceFolder": { +"description": "Full resource name of this folder. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourceFolderDisplayName": { +"description": "The user defined display name for this folder.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1NotificationMessage": { +"description": "Security Command Center's Notification", +"id": "GoogleCloudSecuritycenterV1p1beta1NotificationMessage", +"properties": { +"finding": { +"$ref": "GoogleCloudSecuritycenterV1p1beta1Finding", +"description": "If it's a Finding based notification config, this field will be populated." +}, +"notificationConfigName": { +"description": "Name of the notification config that generated current notification.", +"type": "string" +}, +"resource": { +"$ref": "GoogleCloudSecuritycenterV1p1beta1Resource", +"description": "The Cloud resource tied to the notification." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1Resource": { +"description": "Information related to the Google Cloud resource.", +"id": "GoogleCloudSecuritycenterV1p1beta1Resource", +"properties": { +"folders": { +"description": "Output only. Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", +"items": { +"$ref": "GoogleCloudSecuritycenterV1p1beta1Folder" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"parent": { +"description": "The full resource name of resource's parent.", +"type": "string" +}, +"parentDisplayName": { +"description": "The human readable name of resource's parent.", +"type": "string" +}, +"project": { +"description": "The full resource name of project that the resource belongs to.", +"type": "string" +}, +"projectDisplayName": { +"description": "The project id that the resource belongs to.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1RunAssetDiscoveryResponse": { +"description": "Response of asset discovery run", +"id": "GoogleCloudSecuritycenterV1p1beta1RunAssetDiscoveryResponse", +"properties": { +"duration": { +"description": "The duration between asset discovery run start and end", +"format": "google-duration", +"type": "string" +}, +"state": { +"description": "The state of an asset discovery run.", +"enum": [ +"STATE_UNSPECIFIED", +"COMPLETED", +"SUPERSEDED", +"TERMINATED" +], +"enumDescriptions": [ +"Asset discovery run state was unspecified.", +"Asset discovery run completed successfully.", +"Asset discovery run was cancelled with tasks still pending, as another run for the same organization was started with a higher priority.", +"Asset discovery run was killed and terminated." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV1p1beta1SecurityMarks": { +"description": "User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.", +"id": "GoogleCloudSecuritycenterV1p1beta1SecurityMarks", +"properties": { +"canonicalName": { +"description": "The canonical name of the marks. Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"folders/{folder_id}/assets/{asset_id}/securityMarks\" \"projects/{project_number}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" \"projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks\"", +"type": "string" +}, +"marks": { +"additionalProperties": { +"type": "string" +}, +"description": "Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)", +"type": "object" +}, +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Access": { +"description": "Represents an access event.", +"id": "GoogleCloudSecuritycenterV2Access", +"properties": { +"callerIp": { +"description": "Caller's IP address, such as \"1.1.1.1\".", +"type": "string" +}, +"callerIpGeo": { +"$ref": "GoogleCloudSecuritycenterV2Geolocation", +"description": "The caller IP's geolocation, which identifies where the call came from." +}, +"methodName": { +"description": "The method that the service account called, e.g. \"SetIamPolicy\".", +"type": "string" +}, +"principalEmail": { +"description": "Associated email, such as \"foo@google.com\". The email address of the authenticated user or a service account acting on behalf of a third party principal making the request. For third party identity callers, the `principal_subject` field is populated instead of this field. For privacy reasons, the principal email address is sometimes redacted. For more information, see [Caller identities in audit logs](https://cloud.google.com/logging/docs/audit#user-id).", +"type": "string" +}, +"principalSubject": { +"description": "A string that represents the principal_subject that is associated with the identity. Unlike `principal_email`, `principal_subject` supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format is `principal://iam.googleapis.com/{identity pool name}/subject/{subject}`. Some GKE identities, such as GKE_WORKLOAD, FREEFORM, and GKE_HUB_WORKLOAD, still use the legacy format `serviceAccount:{identity pool name}[{subject}]`.", +"type": "string" +}, +"serviceAccountDelegationInfo": { +"description": "The identity delegation history of an authenticated service account that made the request. The `serviceAccountDelegationInfo[]` object contains information about the real authorities that try to access Google Cloud resources by delegating on a service account. When multiple authorities are present, they are guaranteed to be sorted based on the original ordering of the identity delegation events.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo" +}, +"type": "array" +}, +"serviceAccountKeyName": { +"description": "The name of the service account key that was used to create or exchange credentials when authenticating the service account that made the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\". ", +"type": "string" +}, +"serviceName": { +"description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", +"type": "string" +}, +"userAgent": { +"description": "The caller's user agent string associated with the finding.", +"type": "string" +}, +"userAgentFamily": { +"description": "Type of user agent associated with the finding. For example, an operating system shell or an embedded or standalone application.", +"type": "string" +}, +"userName": { +"description": "A string that represents a username. The username provided depends on the type of the finding and is likely not an IAM principal. For example, this can be a system username if the finding is related to a virtual machine, or it can be an application login username.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AccessReview": { +"description": "Conveys information about a Kubernetes access review (such as one returned by a [`kubectl auth can-i`](https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access) command) that was involved in a finding.", +"id": "GoogleCloudSecuritycenterV2AccessReview", +"properties": { +"group": { +"description": "The API group of the resource. \"*\" means all.", +"type": "string" +}, +"name": { +"description": "The name of the resource being requested. Empty means all.", +"type": "string" +}, +"ns": { +"description": "Namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces. Both are represented by \"\" (empty).", +"type": "string" +}, +"resource": { +"description": "The optional resource type requested. \"*\" means all.", +"type": "string" +}, +"subresource": { +"description": "The optional subresource type.", +"type": "string" +}, +"verb": { +"description": "A Kubernetes resource API verb, like get, list, watch, create, update, delete, proxy. \"*\" means all.", +"type": "string" +}, +"version": { +"description": "The API version of the resource. \"*\" means all.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AdaptiveProtection": { +"description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", +"id": "GoogleCloudSecuritycenterV2AdaptiveProtection", +"properties": { +"confidence": { +"description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Application": { +"description": "Represents an application associated with a finding.", +"id": "GoogleCloudSecuritycenterV2Application", +"properties": { +"baseUri": { +"description": "The base URI that identifies the network location of the application in which the vulnerability was detected. For example, `http://example.com`.", +"type": "string" +}, +"fullUri": { +"description": "The full URI with payload that could be used to reproduce the vulnerability. For example, `http://example.com?p=aMmYgI6H`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Attack": { +"description": "Information about DDoS attack volume and classification.", +"id": "GoogleCloudSecuritycenterV2Attack", +"properties": { +"classification": { +"description": "Type of attack, for example, 'SYN-flood', 'NTP-udp', or 'CHARGEN-udp'.", +"type": "string" +}, +"volumeBps": { +"deprecated": true, +"description": "Total BPS (bytes per second) volume of attack. Deprecated - refer to volume_bps_long instead.", +"format": "int32", +"type": "integer" +}, +"volumeBpsLong": { +"description": "Total BPS (bytes per second) volume of attack.", +"format": "int64", +"type": "string" +}, +"volumePps": { +"deprecated": true, +"description": "Total PPS (packets per second) volume of attack. Deprecated - refer to volume_pps_long instead.", +"format": "int32", +"type": "integer" +}, +"volumePpsLong": { +"description": "Total PPS (packets per second) volume of attack.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AttackExposure": { +"description": "An attack exposure contains the results of an attack path simulation run.", +"id": "GoogleCloudSecuritycenterV2AttackExposure", +"properties": { +"attackExposureResult": { +"description": "The resource name of the attack path simulation result that contains the details regarding this attack exposure score. Example: `organizations/123/simulations/456/attackExposureResults/789`", +"type": "string" +}, +"exposedHighValueResourcesCount": { +"description": "The number of high value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"exposedLowValueResourcesCount": { +"description": "The number of high value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"exposedMediumValueResourcesCount": { +"description": "The number of medium value resources that are exposed as a result of this finding.", +"format": "int32", +"type": "integer" +}, +"latestCalculationTime": { +"description": "The most recent time the attack exposure was updated on this finding.", +"format": "google-datetime", +"type": "string" +}, +"score": { +"description": "A number between 0 (inclusive) and infinity that represents how important this finding is to remediate. The higher the score, the more important it is to remediate.", +"format": "double", +"type": "number" +}, +"state": { +"description": "Output only. What state this AttackExposure is in. This captures whether or not an attack exposure has been calculated or not.", +"enum": [ +"STATE_UNSPECIFIED", +"CALCULATED", +"NOT_CALCULATED" +], +"enumDescriptions": [ +"The state is not specified.", +"The attack exposure has been calculated.", +"The attack exposure has not been calculated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AwsAccount": { +"description": "An AWS account that is a member of an organization.", +"id": "GoogleCloudSecuritycenterV2AwsAccount", +"properties": { +"id": { +"description": "The unique identifier (ID) of the account, containing exactly 12 digits.", +"type": "string" +}, +"name": { +"description": "The friendly name of this account.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AwsMetadata": { +"description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", +"id": "GoogleCloudSecuritycenterV2AwsMetadata", +"properties": { +"account": { +"$ref": "GoogleCloudSecuritycenterV2AwsAccount", +"description": "The AWS account associated with the resource." +}, +"organization": { +"$ref": "GoogleCloudSecuritycenterV2AwsOrganization", +"description": "The AWS organization associated with the resource." +}, +"organizationalUnits": { +"description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AwsOrganization": { +"description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", +"id": "GoogleCloudSecuritycenterV2AwsOrganization", +"properties": { +"id": { +"description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AwsOrganizationalUnit": { +"description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", +"id": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit", +"properties": { +"id": { +"description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", +"type": "string" +}, +"name": { +"description": "The friendly name of the OU.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureManagementGroup": { +"description": "Represents an Azure management group.", +"id": "GoogleCloudSecuritycenterV2AzureManagementGroup", +"properties": { +"displayName": { +"description": "The display name of the Azure management group.", +"type": "string" +}, +"id": { +"description": "The UUID of the Azure management group, for example, `20000000-0001-0000-0000-000000000000`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureMetadata": { +"description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", +"id": "GoogleCloudSecuritycenterV2AzureMetadata", +"properties": { +"managementGroups": { +"description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2AzureManagementGroup" +}, +"type": "array" +}, +"resourceGroup": { +"$ref": "GoogleCloudSecuritycenterV2AzureResourceGroup", +"description": "The Azure resource group associated with the resource." +}, +"subscription": { +"$ref": "GoogleCloudSecuritycenterV2AzureSubscription", +"description": "The Azure subscription associated with the resource." +}, +"tenant": { +"$ref": "GoogleCloudSecuritycenterV2AzureTenant", +"description": "The Azure Entra tenant associated with the resource." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureResourceGroup": { +"description": "Represents an Azure resource group.", +"id": "GoogleCloudSecuritycenterV2AzureResourceGroup", +"properties": { +"id": { +"description": "The ID of the Azure resource group.", +"type": "string" +}, +"name": { +"description": "The name of the Azure resource group. This is not a UUID.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureSubscription": { +"description": "Represents an Azure subscription.", +"id": "GoogleCloudSecuritycenterV2AzureSubscription", +"properties": { +"displayName": { +"description": "The display name of the Azure subscription.", +"type": "string" +}, +"id": { +"description": "The UUID of the Azure subscription, for example, `291bba3f-e0a5-47bc-a099-3bdcb2a50a05`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2AzureTenant": { +"description": "Represents a Microsoft Entra tenant.", +"id": "GoogleCloudSecuritycenterV2AzureTenant", +"properties": { +"displayName": { +"description": "The display name of the Azure tenant.", +"type": "string" +}, +"id": { +"description": "The ID of the Microsoft Entra tenant, for example, \"a11aaa11-aa11-1aa1-11aa-1aaa11a\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2BackupDisasterRecovery": { +"description": "Information related to Google Cloud Backup and DR Service findings.", +"id": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", +"properties": { +"appliance": { +"description": "The name of the Backup and DR appliance that captures, moves, and manages the lifecycle of backup data. For example, `backup-server-57137`.", +"type": "string" +}, +"applications": { +"description": "The names of Backup and DR applications. An application is a VM, database, or file system on a managed host monitored by a backup and recovery appliance. For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"backupCreateTime": { +"description": "The timestamp at which the Backup and DR backup was created.", +"format": "google-datetime", +"type": "string" +}, +"backupTemplate": { +"description": "The name of a Backup and DR template which comprises one or more backup policies. See the [Backup and DR documentation](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information. For example, `snap-ov`.", +"type": "string" +}, +"backupType": { +"description": "The backup type of the Backup and DR image. For example, `Snapshot`, `Remote Snapshot`, `OnVault`.", +"type": "string" +}, +"host": { +"description": "The name of a Backup and DR host, which is managed by the backup and recovery appliance and known to the management console. The host can be of type Generic (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.), vCenter, or an ESX server. See the [Backup and DR documentation on hosts](https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-hosts-and-their-applications) for more information. For example, `centos7-01`.", +"type": "string" +}, +"policies": { +"description": "The names of Backup and DR policies that are associated with a template and that define when to run a backup, how frequently to run a backup, and how long to retain the backup image. For example, `onvaults`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"policyOptions": { +"description": "The names of Backup and DR advanced policy options of a policy applying to an application. See the [Backup and DR documentation on policy options](https://cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings). For example, `skipofflineappsincongrp, nounmap`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"profile": { +"description": "The name of the Backup and DR resource profile that specifies the storage media for backups of application and VM data. See the [Backup and DR documentation on profiles](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#profile). For example, `GCP`.", +"type": "string" +}, +"storagePool": { +"description": "The name of the Backup and DR storage pool that the backup and recovery appliance is storing data in. The storage pool could be of type Cloud, Primary, Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools). For example, `DiskPoolOne`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2BigQueryExport": { +"description": "Configures how to deliver Findings to BigQuery Instance.", +"id": "GoogleCloudSecuritycenterV2BigQueryExport", +"properties": { +"createTime": { +"description": "Output only. The time at which the BigQuery export was created. This field is set by the server and will be ignored if provided on export on creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataset": { +"description": "The dataset to write findings' updates to. Its format is \"projects/[project_id]/datasets/[bigquery_dataset_id]\". BigQuery dataset unique ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_).", +"type": "string" +}, +"description": { +"description": "The description of the export (max of 1024 characters).", +"type": "string" +}, +"filter": { +"description": "Expression that defines the filter to apply across create/update events of findings. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the corresponding resource. The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes.", +"type": "string" +}, +"mostRecentEditor": { +"description": "Output only. Email address of the user who last edited the BigQuery export. This field is set by the server and will be ignored if provided on export creation or update.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The relative resource name of this export. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name. The following list shows some examples: + `organizations/{organization_id}/locations/{location_id}/bigQueryExports/{export_id}` + `folders/{folder_id}/locations/{location_id}/bigQueryExports/{export_id}` + `projects/{project_id}/locations/{location_id}/bigQueryExports/{export_id}` This field is provided in responses, and is ignored when provided in create requests.", +"type": "string" +}, +"principal": { +"description": "Output only. The service account that needs permission to create table and upload data to the BigQuery dataset.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The most recent time at which the BigQuery export was updated. This field is set by the server and will be ignored if provided on export creation or update.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Binding": { +"description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", +"id": "GoogleCloudSecuritycenterV2Binding", +"properties": { +"name": { +"description": "Name for the binding.", +"type": "string" +}, +"ns": { +"description": "Namespace for the binding.", +"type": "string" +}, +"role": { +"$ref": "GoogleCloudSecuritycenterV2Role", +"description": "The Role or ClusterRole referenced by the binding." +}, +"subjects": { +"description": "Represents one or more subjects that are bound to the role. Not always available for PATCH requests.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Subject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2BulkMuteFindingsResponse": { +"description": "The response to a BulkMute request. Contains the LRO information.", +"id": "GoogleCloudSecuritycenterV2BulkMuteFindingsResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2CloudArmor": { +"description": "Fields related to Google Cloud Armor findings.", +"id": "GoogleCloudSecuritycenterV2CloudArmor", +"properties": { +"adaptiveProtection": { +"$ref": "GoogleCloudSecuritycenterV2AdaptiveProtection", +"description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." +}, +"attack": { +"$ref": "GoogleCloudSecuritycenterV2Attack", +"description": "Information about DDoS attack volume and classification." +}, +"duration": { +"description": "Duration of attack from the start until the current moment (updated every 5 minutes).", +"format": "google-duration", +"type": "string" +}, +"requests": { +"$ref": "GoogleCloudSecuritycenterV2Requests", +"description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." +}, +"securityPolicy": { +"$ref": "GoogleCloudSecuritycenterV2SecurityPolicy", +"description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." +}, +"threatVector": { +"description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \"L3_4\" for Layer 3 and Layer 4 DDoS attacks, or \"L_7\" for Layer 7 DDoS attacks.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2CloudDlpDataProfile": { +"description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", +"id": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", +"properties": { +"dataProfile": { +"description": "Name of the data profile, for example, `projects/123/locations/europe/tableProfiles/8383929`.", +"type": "string" +}, +"parentType": { +"description": "The resource hierarchy level at which the data profile was generated.", +"enum": [ +"PARENT_TYPE_UNSPECIFIED", +"ORGANIZATION", +"PROJECT" +], +"enumDescriptions": [ +"Unspecified parent type.", +"Organization-level configurations.", +"Project-level configurations." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2CloudDlpInspection": { +"description": "Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the finding.", +"id": "GoogleCloudSecuritycenterV2CloudDlpInspection", +"properties": { +"fullScan": { +"description": "Whether Cloud DLP scanned the complete resource or a sampled subset.", +"type": "boolean" +}, +"infoType": { +"description": "The type of information (or *[infoType](https://cloud.google.com/dlp/docs/infotypes-reference)*) found, for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.", +"type": "string" +}, +"infoTypeCount": { +"description": "The number of times Cloud DLP found this infoType within this job and resource.", +"format": "int64", +"type": "string" +}, +"inspectJob": { +"description": "Name of the inspection job, for example, `projects/123/locations/europe/dlpJobs/i-8383929`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2CloudLoggingEntry": { +"description": "Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)", +"id": "GoogleCloudSecuritycenterV2CloudLoggingEntry", +"properties": { +"insertId": { +"description": "A unique identifier for the log entry.", +"type": "string" +}, +"logId": { +"description": "The type of the log (part of `log_name`. `log_name` is the resource name of the log to which this log entry belongs). For example: `cloudresourcemanager.googleapis.com/activity` Note that this field is not URL-encoded, unlike in `LogEntry`.", +"type": "string" +}, +"resourceContainer": { +"description": "The organization, folder, or project of the monitored resource that produced this log entry.", +"type": "string" +}, +"timestamp": { +"description": "The time the event described by the log entry occurred.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Compliance": { +"description": "Contains compliance information about a security standard indicating unmet recommendations.", +"id": "GoogleCloudSecuritycenterV2Compliance", +"properties": { +"ids": { +"description": "Policies within the standard or benchmark, for example, A.12.4.1", +"items": { +"type": "string" +}, +"type": "array" +}, +"standard": { +"description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", +"type": "string" +}, +"version": { +"description": "Version of the standard or benchmark, for example, 1.1", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Connection": { +"description": "Contains information about the IP connection associated with the finding.", +"id": "GoogleCloudSecuritycenterV2Connection", +"properties": { +"destinationIp": { +"description": "Destination IP address. Not present for sockets that are listening and not connected.", +"type": "string" +}, +"destinationPort": { +"description": "Destination port. Not present for sockets that are listening and not connected.", +"format": "int32", +"type": "integer" +}, +"protocol": { +"description": "IANA Internet Protocol Number such as TCP(6) and UDP(17).", +"enum": [ +"PROTOCOL_UNSPECIFIED", +"ICMP", +"TCP", +"UDP", +"GRE", +"ESP" +], +"enumDescriptions": [ +"Unspecified protocol (not HOPOPT).", +"Internet Control Message Protocol.", +"Transmission Control Protocol.", +"User Datagram Protocol.", +"Generic Routing Encapsulation.", +"Encap Security Payload." +], +"type": "string" +}, +"sourceIp": { +"description": "Source IP address.", +"type": "string" +}, +"sourcePort": { +"description": "Source port.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Contact": { +"description": "The email address of a contact.", +"id": "GoogleCloudSecuritycenterV2Contact", +"properties": { +"email": { +"description": "An email address. For example, \"`person123@company.com`\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ContactDetails": { +"description": "Details about specific contacts", +"id": "GoogleCloudSecuritycenterV2ContactDetails", +"properties": { +"contacts": { +"description": "A list of contacts", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Contact" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Container": { +"description": "Container associated with the finding.", +"id": "GoogleCloudSecuritycenterV2Container", +"properties": { +"createTime": { +"description": "The time that the container was created.", +"format": "google-datetime", +"type": "string" +}, +"imageId": { +"description": "Optional container image ID, if provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", +"type": "string" +}, +"labels": { +"description": "Container labels, as provided by the container runtime.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Label" +}, +"type": "array" +}, +"name": { +"description": "Name of the container.", +"type": "string" +}, +"uri": { +"description": "Container image URI provided when configuring a pod or container. This string can identify a container image version using mutable tags.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Cve": { +"description": "CVE stands for Common Vulnerabilities and Exposures. Information from the [CVE record](https://www.cve.org/ResourcesSupport/Glossary) that describes this vulnerability.", +"id": "GoogleCloudSecuritycenterV2Cve", +"properties": { +"cvssv3": { +"$ref": "GoogleCloudSecuritycenterV2Cvssv3", +"description": "Describe Common Vulnerability Scoring System specified at https://www.first.org/cvss/v3.1/specification-document" +}, +"exploitReleaseDate": { +"description": "Date the first publicly available exploit or PoC was released.", +"format": "google-datetime", +"type": "string" +}, +"exploitationActivity": { +"description": "The exploitation activity of the vulnerability in the wild.", +"enum": [ +"EXPLOITATION_ACTIVITY_UNSPECIFIED", +"WIDE", +"CONFIRMED", +"AVAILABLE", +"ANTICIPATED", +"NO_KNOWN" +], +"enumDescriptions": [ +"Invalid or empty value.", +"Exploitation has been reported or confirmed to widely occur.", +"Limited reported or confirmed exploitation activities.", +"Exploit is publicly available.", +"No known exploitation activity, but has a high potential for exploitation.", +"No known exploitation activity." +], +"type": "string" +}, +"firstExploitationDate": { +"description": "Date of the earliest known exploitation.", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "The unique identifier for the vulnerability. e.g. CVE-2021-34527", +"type": "string" +}, +"impact": { +"description": "The potential impact of the vulnerability if it was to be exploited.", +"enum": [ +"RISK_RATING_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH", +"CRITICAL" +], +"enumDescriptions": [ +"Invalid or empty value.", +"Exploitation would have little to no security impact.", +"Exploitation would enable attackers to perform activities, or could allow attackers to have a direct impact, but would require additional steps.", +"Exploitation would enable attackers to have a notable direct impact without needing to overcome any major mitigating factors.", +"Exploitation would fundamentally undermine the security of affected systems, enable actors to perform significant attacks with minimal effort, with little to no mitigating factors to overcome." +], +"type": "string" +}, +"observedInTheWild": { +"description": "Whether or not the vulnerability has been observed in the wild.", +"type": "boolean" +}, +"references": { +"description": "Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Reference" +}, +"type": "array" +}, +"upstreamFixAvailable": { +"description": "Whether upstream fix is available for the CVE.", +"type": "boolean" +}, +"zeroDay": { +"description": "Whether or not the vulnerability was zero day when the finding was published.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Cvssv3": { +"description": "Common Vulnerability Scoring System version 3.", +"id": "GoogleCloudSecuritycenterV2Cvssv3", +"properties": { +"attackComplexity": { +"description": "This metric describes the conditions beyond the attacker's control that must exist in order to exploit the vulnerability.", +"enum": [ +"ATTACK_COMPLEXITY_UNSPECIFIED", +"ATTACK_COMPLEXITY_LOW", +"ATTACK_COMPLEXITY_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"Specialized access conditions or extenuating circumstances do not exist. An attacker can expect repeatable success when attacking the vulnerable component.", +"A successful attack depends on conditions beyond the attacker's control. That is, a successful attack cannot be accomplished at will, but requires the attacker to invest in some measurable amount of effort in preparation or execution against the vulnerable component before a successful attack can be expected." +], +"type": "string" +}, +"attackVector": { +"description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. This metric reflects the context by which vulnerability exploitation is possible.", +"enum": [ +"ATTACK_VECTOR_UNSPECIFIED", +"ATTACK_VECTOR_NETWORK", +"ATTACK_VECTOR_ADJACENT", +"ATTACK_VECTOR_LOCAL", +"ATTACK_VECTOR_PHYSICAL" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable component is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet.", +"The vulnerable component is bound to the network stack, but the attack is limited at the protocol level to a logically adjacent topology.", +"The vulnerable component is not bound to the network stack and the attacker's path is via read/write/execute capabilities.", +"The attack requires the attacker to physically touch or manipulate the vulnerable component." +], +"type": "string" +}, +"availabilityImpact": { +"description": "This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"baseScore": { +"description": "The base score is a function of the base metric scores.", +"format": "double", +"type": "number" +}, +"confidentialityImpact": { +"description": "This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"integrityImpact": { +"description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", +"enum": [ +"IMPACT_UNSPECIFIED", +"IMPACT_HIGH", +"IMPACT_LOW", +"IMPACT_NONE" +], +"enumDescriptions": [ +"Invalid value.", +"High impact.", +"Low impact.", +"No impact." +], +"type": "string" +}, +"privilegesRequired": { +"description": "This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.", +"enum": [ +"PRIVILEGES_REQUIRED_UNSPECIFIED", +"PRIVILEGES_REQUIRED_NONE", +"PRIVILEGES_REQUIRED_LOW", +"PRIVILEGES_REQUIRED_HIGH" +], +"enumDescriptions": [ +"Invalid value.", +"The attacker is unauthorized prior to attack, and therefore does not require any access to settings or files of the vulnerable system to carry out an attack.", +"The attacker requires privileges that provide basic user capabilities that could normally affect only settings and files owned by a user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources.", +"The attacker requires privileges that provide significant (e.g., administrative) control over the vulnerable component allowing access to component-wide settings and files." +], +"type": "string" +}, +"scope": { +"description": "The Scope metric captures whether a vulnerability in one vulnerable component impacts resources in components beyond its security scope.", +"enum": [ +"SCOPE_UNSPECIFIED", +"SCOPE_UNCHANGED", +"SCOPE_CHANGED" +], +"enumDescriptions": [ +"Invalid value.", +"An exploited vulnerability can only affect resources managed by the same security authority.", +"An exploited vulnerability can affect resources beyond the security scope managed by the security authority of the vulnerable component." +], +"type": "string" +}, +"userInteraction": { +"description": "This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable component.", +"enum": [ +"USER_INTERACTION_UNSPECIFIED", +"USER_INTERACTION_NONE", +"USER_INTERACTION_REQUIRED" +], +"enumDescriptions": [ +"Invalid value.", +"The vulnerable system can be exploited without interaction from any user.", +"Successful exploitation of this vulnerability requires a user to take some action before the vulnerability can be exploited." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DataAccessEvent": { +"description": "Details about a data access attempt made by a principal not authorized under applicable data security policy.", +"id": "GoogleCloudSecuritycenterV2DataAccessEvent", +"properties": { +"eventId": { +"description": "Unique identifier for data access event.", +"type": "string" +}, +"eventTime": { +"description": "Timestamp of data access event.", +"format": "google-datetime", +"type": "string" +}, +"operation": { +"description": "The operation performed by the principal to access the data.", +"enum": [ +"OPERATION_UNSPECIFIED", +"READ", +"MOVE", +"COPY" +], +"enumDescriptions": [ +"The operation is unspecified.", +"Represents a read operation.", +"Represents a move operation.", +"Represents a copy operation." +], +"type": "string" +}, +"principalEmail": { +"description": "The email address of the principal that accessed the data. The principal could be a user account, service account, Google group, or other.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DataFlowEvent": { +"description": "Details about a data flow event, in which either the data is moved to or is accessed from a non-compliant geo-location, as defined in the applicable data security policy.", +"id": "GoogleCloudSecuritycenterV2DataFlowEvent", +"properties": { +"eventId": { +"description": "Unique identifier for data flow event.", +"type": "string" +}, +"eventTime": { +"description": "Timestamp of data flow event.", +"format": "google-datetime", +"type": "string" +}, +"operation": { +"description": "The operation performed by the principal for the data flow event.", +"enum": [ +"OPERATION_UNSPECIFIED", +"READ", +"MOVE", +"COPY" +], +"enumDescriptions": [ +"The operation is unspecified.", +"Represents a read operation.", +"Represents a move operation.", +"Represents a copy operation." +], +"type": "string" +}, +"principalEmail": { +"description": "The email address of the principal that initiated the data flow event. The principal could be a user account, service account, Google group, or other.", +"type": "string" +}, +"violatedLocation": { +"description": "Non-compliant location of the principal or the data destination.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DataRetentionDeletionEvent": { +"description": "Details about data retention deletion violations, in which the data is non-compliant based on their retention or deletion time, as defined in the applicable data security policy. The Data Retention Deletion (DRD) control is a control of the DSPM (Data Security Posture Management) suite that enables organizations to manage data retention and deletion policies in compliance with regulations, such as GDPR and CRPA. DRD supports two primary policy types: maximum storage length (max TTL) and minimum storage length (min TTL). Both are aimed at helping organizations meet regulatory and data management commitments.", +"id": "GoogleCloudSecuritycenterV2DataRetentionDeletionEvent", +"properties": { +"dataObjectCount": { +"description": "Number of objects that violated the policy for this resource. If the number is less than 1,000, then the value of this field is the exact number. If the number of objects that violated the policy is greater than or equal to 1,000, then the value of this field is 1000.", +"format": "int64", +"type": "string" +}, +"eventDetectionTime": { +"description": "Timestamp indicating when the event was detected.", +"format": "google-datetime", +"type": "string" +}, +"eventType": { +"description": "Type of the DRD event.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"EVENT_TYPE_MAX_TTL_EXCEEDED" +], +"enumDescriptions": [ +"Unspecified event type.", +"The maximum retention time has been exceeded." +], +"type": "string" +}, +"maxRetentionAllowed": { +"description": "Maximum duration of retention allowed from the DRD control. This comes from the DRD control where users set a max TTL for their data. For example, suppose that a user set the max TTL for a Cloud Storage bucket to 90 days. However, an object in that bucket is 100 days old. In this case, a DataRetentionDeletionEvent will be generated for that Cloud Storage bucket, and the max_retention_allowed is 90 days.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Database": { +"description": "Represents database access information, such as queries. A database may be a sub-resource of an instance (as in the case of Cloud SQL instances or Cloud Spanner instances), or the database instance itself. Some database resources might not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types, such as Cloud SQL databases, are not yet supported by Cloud Asset Inventory. In these cases only the display name is provided.", +"id": "GoogleCloudSecuritycenterV2Database", +"properties": { +"displayName": { +"description": "The human-readable name of the database that the user connected to.", +"type": "string" +}, +"grantees": { +"description": "The target usernames, roles, or groups of an SQL privilege grant, which is not an IAM policy change.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Some database resources may not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types are not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In these cases only the display name will be provided. The [full resource name](https://google.aip.dev/122#full-resource-names) of the database that the user connected to, if it is supported by Cloud Asset Inventory.", +"type": "string" +}, +"query": { +"description": "The SQL statement that is associated with the database access.", +"type": "string" +}, +"userName": { +"description": "The username used to connect to the database. The username might not be an IAM principal and does not have a set format.", +"type": "string" +}, +"version": { +"description": "The version of the database, for example, POSTGRES_14. See [the complete list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Detection": { +"description": "Memory hash detection contributing to the binary family match.", +"id": "GoogleCloudSecuritycenterV2Detection", +"properties": { +"binary": { +"description": "The name of the binary associated with the memory hash signature detection.", +"type": "string" +}, +"percentPagesMatched": { +"description": "The percentage of memory page hashes in the signature that were matched.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Disk": { +"description": "Contains information about the disk associated with the finding.", +"id": "GoogleCloudSecuritycenterV2Disk", +"properties": { +"name": { +"description": "The name of the disk, for example, \"https://www.googleapis.com/compute/v1/projects/project-id/zones/zone-id/disks/disk-id\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DiskPath": { +"description": "Path of the file in terms of underlying disk/partition identifiers.", +"id": "GoogleCloudSecuritycenterV2DiskPath", +"properties": { +"partitionUuid": { +"description": "UUID of the partition (format https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)", +"type": "string" +}, +"relativePath": { +"description": "Relative path of the file in the partition as a JSON encoded string. Example: /home/user1/executable_file.sh", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2DynamicMuteRecord": { +"description": "The record of a dynamic mute rule that matches the finding.", +"id": "GoogleCloudSecuritycenterV2DynamicMuteRecord", +"properties": { +"matchTime": { +"description": "When the dynamic mute rule first matched the finding.", +"format": "google-datetime", +"type": "string" +}, +"muteConfig": { +"description": "The relative resource name of the mute rule, represented by a mute config, that created this record, for example `organizations/123/muteConfigs/mymuteconfig` or `organizations/123/locations/global/muteConfigs/mymuteconfig`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2EnvironmentVariable": { +"description": "A name-value pair representing an environment variable used in an operating system process.", +"id": "GoogleCloudSecuritycenterV2EnvironmentVariable", +"properties": { +"name": { +"description": "Environment variable name as a JSON encoded string.", +"type": "string" +}, +"val": { +"description": "Environment variable value as a JSON encoded string.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ExfilResource": { +"description": "Resource where data was exfiltrated from or exfiltrated to.", +"id": "GoogleCloudSecuritycenterV2ExfilResource", +"properties": { +"components": { +"description": "Subcomponents of the asset that was exfiltrated, like URIs used during exfiltration, table names, databases, and filenames. For example, multiple tables might have been exfiltrated from the same Cloud SQL instance, or multiple files might have been exfiltrated from the same Cloud Storage bucket.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The resource's [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Exfiltration": { +"description": "Exfiltration represents a data exfiltration attempt from one or more sources to one or more targets. The `sources` attribute lists the sources of the exfiltrated data. The `targets` attribute lists the destinations the data was copied to.", +"id": "GoogleCloudSecuritycenterV2Exfiltration", +"properties": { +"sources": { +"description": "If there are multiple sources, then the data is considered \"joined\" between them. For instance, BigQuery can join multiple tables, and each table would be considered a source.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ExfilResource" +}, +"type": "array" +}, +"targets": { +"description": "If there are multiple targets, each target would get a complete copy of the \"joined\" source data.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ExfilResource" +}, +"type": "array" +}, +"totalExfiltratedBytes": { +"description": "Total exfiltrated bytes processed for the entire job.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ExternalSystem": { +"description": "Representation of third party SIEM/SOAR fields within SCC.", +"id": "GoogleCloudSecuritycenterV2ExternalSystem", +"properties": { +"assignees": { +"description": "References primary/secondary etc assignees in the external system.", +"items": { +"type": "string" +}, +"type": "array" +}, +"caseCloseTime": { +"description": "The time when the case was closed, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"caseCreateTime": { +"description": "The time when the case was created, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"casePriority": { +"description": "The priority of the finding's corresponding case in the external system.", +"type": "string" +}, +"caseSla": { +"description": "The SLA of the finding's corresponding case in the external system.", +"format": "google-datetime", +"type": "string" +}, +"caseUri": { +"description": "The link to the finding's corresponding case in the external system.", +"type": "string" +}, +"externalSystemUpdateTime": { +"description": "The time when the case was last updated, as reported by the external system.", +"format": "google-datetime", +"type": "string" +}, +"externalUid": { +"description": "The identifier that's used to track the finding's corresponding case in the external system.", +"type": "string" +}, +"name": { +"description": "Full resource name of the external system. The following list shows some examples: + `organizations/1234/sources/5678/findings/123456/externalSystems/jira` + `organizations/1234/sources/5678/locations/us/findings/123456/externalSystems/jira` + `folders/1234/sources/5678/findings/123456/externalSystems/jira` + `folders/1234/sources/5678/locations/us/findings/123456/externalSystems/jira` + `projects/1234/sources/5678/findings/123456/externalSystems/jira` + `projects/1234/sources/5678/locations/us/findings/123456/externalSystems/jira`", +"type": "string" +}, +"status": { +"description": "The most recent status of the finding's corresponding case, as reported by the external system.", +"type": "string" +}, +"ticketInfo": { +"$ref": "GoogleCloudSecuritycenterV2TicketInfo", +"description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2File": { +"description": "File information about the related binary/library used by an executable, or the script used by a script interpreter", +"id": "GoogleCloudSecuritycenterV2File", +"properties": { +"contents": { +"description": "Prefix of the file contents as a JSON-encoded string.", +"type": "string" +}, +"diskPath": { +"$ref": "GoogleCloudSecuritycenterV2DiskPath", +"description": "Path of the file in terms of underlying disk/partition identifiers." +}, +"hashedSize": { +"description": "The length in bytes of the file prefix that was hashed. If hashed_size == size, any hashes reported represent the entire file.", +"format": "int64", +"type": "string" +}, +"partiallyHashed": { +"description": "True when the hash covers only a prefix of the file.", +"type": "boolean" +}, +"path": { +"description": "Absolute path of the file as a JSON encoded string.", +"type": "string" +}, +"sha256": { +"description": "SHA256 hash of the first hashed_size bytes of the file encoded as a hex string. If hashed_size == size, sha256 represents the SHA256 hash of the entire file.", +"type": "string" +}, +"size": { +"description": "Size of the file in bytes.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Finding": { +"description": "Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.", +"id": "GoogleCloudSecuritycenterV2Finding", +"properties": { +"access": { +"$ref": "GoogleCloudSecuritycenterV2Access", +"description": "Access details associated with the finding, such as more information on the caller, which method was accessed, and from where." +}, +"application": { +"$ref": "GoogleCloudSecuritycenterV2Application", +"description": "Represents an application associated with the finding." +}, +"attackExposure": { +"$ref": "GoogleCloudSecuritycenterV2AttackExposure", +"description": "The results of an attack path simulation relevant to this finding." +}, +"backupDisasterRecovery": { +"$ref": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", +"description": "Fields related to Backup and DR findings." +}, +"canonicalName": { +"description": "Output only. The canonical name of the finding. The following list shows some examples: + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` The prefix is the closest CRM ancestor of the resource associated with the finding.", +"readOnly": true, +"type": "string" +}, +"category": { +"description": "Immutable. The additional taxonomy group within findings from a given source. Example: \"XSS_FLASH_INJECTION\"", +"type": "string" +}, +"cloudArmor": { +"$ref": "GoogleCloudSecuritycenterV2CloudArmor", +"description": "Fields related to Cloud Armor findings." +}, +"cloudDlpDataProfile": { +"$ref": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", +"description": "Cloud DLP data profile that is associated with the finding." +}, +"cloudDlpInspection": { +"$ref": "GoogleCloudSecuritycenterV2CloudDlpInspection", +"description": "Cloud Data Loss Prevention (Cloud DLP) inspection results that are associated with the finding." +}, +"compliances": { +"description": "Contains compliance information for security standards associated to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Compliance" +}, +"type": "array" +}, +"connections": { +"description": "Contains information about the IP connection associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Connection" +}, +"type": "array" +}, +"contacts": { +"additionalProperties": { +"$ref": "GoogleCloudSecuritycenterV2ContactDetails" +}, +"description": "Output only. Map containing the points of contact for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\": { \"contacts\": [ { \"email\": \"person1@company.com\" }, { \"email\": \"person2@company.com\" } ] } }", +"readOnly": true, +"type": "object" +}, +"containers": { +"description": "Containers associated with the finding. This field provides information for both Kubernetes and non-Kubernetes containers.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Container" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The time at which the finding was created in Security Command Center.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataAccessEvents": { +"description": "Data access events associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2DataAccessEvent" +}, +"type": "array" +}, +"dataFlowEvents": { +"description": "Data flow events associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2DataFlowEvent" +}, +"type": "array" +}, +"dataRetentionDeletionEvents": { +"description": "Data retention deletion events associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2DataRetentionDeletionEvent" +}, +"type": "array" +}, +"database": { +"$ref": "GoogleCloudSecuritycenterV2Database", +"description": "Database associated with the finding." +}, +"description": { +"description": "Contains more details about the finding.", +"type": "string" +}, +"disk": { +"$ref": "GoogleCloudSecuritycenterV2Disk", +"description": "Disk associated with the finding." +}, +"eventTime": { +"description": "The time the finding was first detected. If an existing finding is updated, then this is the time the update occurred. For example, if the finding represents an open firewall, this property captures the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding is later resolved, then this time reflects when the finding was resolved. This must not be set to a value greater than the current timestamp.", +"format": "google-datetime", +"type": "string" +}, +"exfiltration": { +"$ref": "GoogleCloudSecuritycenterV2Exfiltration", +"description": "Represents exfiltrations associated with the finding." +}, +"externalSystems": { +"additionalProperties": { +"$ref": "GoogleCloudSecuritycenterV2ExternalSystem" +}, +"description": "Output only. Third party SIEM/SOAR fields within SCC, contains external system information and external system finding fields.", +"readOnly": true, +"type": "object" +}, +"externalUri": { +"description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", +"type": "string" +}, +"files": { +"description": "File associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2File" +}, +"type": "array" +}, +"findingClass": { +"description": "The class of the finding.", +"enum": [ +"FINDING_CLASS_UNSPECIFIED", +"THREAT", +"VULNERABILITY", +"MISCONFIGURATION", +"OBSERVATION", +"SCC_ERROR", +"POSTURE_VIOLATION", +"TOXIC_COMBINATION", +"SENSITIVE_DATA_RISK" +], +"enumDescriptions": [ +"Unspecified finding class.", +"Describes unwanted or malicious activity.", +"Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", +"Describes a potential weakness in cloud resource/asset configuration that increases risk.", +"Describes a security observation that is for informational purposes.", +"Describes an error that prevents some SCC functionality.", +"Describes a potential security risk due to a change in the security posture.", +"Describes a combination of security issues that represent a more severe security problem when taken together.", +"Describes a potential security risk to data assets that contain sensitive data." +], +"type": "string" +}, +"groupMemberships": { +"description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2GroupMembership" +}, +"type": "array" +}, +"iamBindings": { +"description": "Represents IAM bindings associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IamBinding" +}, +"type": "array" +}, +"indicator": { +"$ref": "GoogleCloudSecuritycenterV2Indicator", +"description": "Represents what's commonly known as an *indicator of compromise* (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise)." +}, +"kernelRootkit": { +"$ref": "GoogleCloudSecuritycenterV2KernelRootkit", +"description": "Signature of the kernel rootkit." +}, +"kubernetes": { +"$ref": "GoogleCloudSecuritycenterV2Kubernetes", +"description": "Kubernetes resources associated with the finding." +}, +"loadBalancers": { +"description": "The load balancers associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2LoadBalancer" +}, +"type": "array" +}, +"logEntries": { +"description": "Log entries that are relevant to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2LogEntry" +}, +"type": "array" +}, +"mitreAttack": { +"$ref": "GoogleCloudSecuritycenterV2MitreAttack", +"description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org" +}, +"moduleName": { +"description": "Unique identifier of the module which generated the finding. Example: folders/598186756061/securityHealthAnalyticsSettings/customModules/56799441161885", +"type": "string" +}, +"mute": { +"description": "Indicates the mute state of a finding (either muted, unmuted or undefined). Unlike other attributes of a finding, a finding provider shouldn't set the value of mute.", +"enum": [ +"MUTE_UNSPECIFIED", +"MUTED", +"UNMUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unspecified.", +"Finding has been muted.", +"Finding has been unmuted.", +"Finding has never been muted/unmuted." +], +"type": "string" +}, +"muteInfo": { +"$ref": "GoogleCloudSecuritycenterV2MuteInfo", +"description": "Output only. The mute information regarding this finding.", +"readOnly": true +}, +"muteInitiator": { +"description": "Records additional information about the mute operation, for example, the [mute configuration](https://cloud.google.com/security-command-center/docs/how-to-mute-findings) that muted the finding and the user who muted the finding.", +"type": "string" +}, +"muteUpdateTime": { +"description": "Output only. The most recent time this finding was muted or unmuted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. The following list shows some examples: + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}`", +"type": "string" +}, +"nextSteps": { +"description": "Steps to address the finding.", +"type": "string" +}, +"notebook": { +"$ref": "GoogleCloudSecuritycenterV2Notebook", +"description": "Notebook associated with the finding." +}, +"orgPolicies": { +"description": "Contains information about the org policies associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2OrgPolicy" +}, +"type": "array" +}, +"parent": { +"description": "The relative resource name of the source and location the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. The following list shows some examples: + `organizations/{organization_id}/sources/{source_id}` + `folders/{folders_id}/sources/{source_id}` + `projects/{projects_id}/sources/{source_id}` + `organizations/{organization_id}/sources/{source_id}/locations/{location_id}` + `folders/{folders_id}/sources/{source_id}/locations/{location_id}` + `projects/{projects_id}/sources/{source_id}/locations/{location_id}`", +"type": "string" +}, +"parentDisplayName": { +"description": "Output only. The human readable display name of the finding source such as \"Event Threat Detection\" or \"Security Health Analytics\".", +"readOnly": true, +"type": "string" +}, +"processes": { +"description": "Represents operating system processes associated with the Finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Process" +}, +"type": "array" +}, +"resourceName": { +"description": "Immutable. For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string.", +"type": "string" +}, +"securityMarks": { +"$ref": "GoogleCloudSecuritycenterV2SecurityMarks", +"description": "Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.", +"readOnly": true +}, +"securityPosture": { +"$ref": "GoogleCloudSecuritycenterV2SecurityPosture", +"description": "The security posture associated with the finding." +}, +"severity": { +"description": "The severity of the finding. This field is managed by the source that writes the finding.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"This value is used for findings when a source doesn't write a severity value.", +"Vulnerability: A critical vulnerability is easily discoverable by an external actor, exploitable, and results in the direct ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. Examples include publicly accessible unprotected user data and public SSH access with weak or no passwords. Threat: Indicates a threat that is able to access, modify, or delete data or execute unauthorized code within existing resources.", +"Vulnerability: A high risk vulnerability can be easily discovered and exploited in combination with other vulnerabilities in order to gain direct access and the ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. An example is a database with weak or no passwords that is only accessible internally. This database could easily be compromised by an actor that had access to the internal network. Threat: Indicates a threat that is able to create new computational resources in an environment but not able to access data or execute code in existing resources.", +"Vulnerability: A medium risk vulnerability could be used by an actor to gain access to resources or privileges that enable them to eventually (through multiple steps or a complex exploit) gain access and the ability to execute arbitrary code or exfiltrate data. An example is a service account with access to more projects than it should have. If an actor gains access to the service account, they could potentially use that access to manipulate a project the service account was not intended to. Threat: Indicates a threat that is able to cause operational impact but may not access data or execute unauthorized code.", +"Vulnerability: A low risk vulnerability hampers a security organization's ability to detect vulnerabilities or active threats in their deployment, or prevents the root cause investigation of security issues. An example is monitoring and logs being disabled for resource configurations and access. Threat: Indicates a threat that has obtained minimal access to an environment but is not able to access data, execute code, or create resources." +], +"type": "string" +}, +"sourceProperties": { +"additionalProperties": { +"type": "any" +}, +"description": "Source specific properties. These properties are managed by the source that writes the finding. The key names in the source_properties map must be between 1 and 255 characters, and must start with a letter and contain alphanumeric characters or underscores only.", +"type": "object" +}, +"state": { +"description": "Output only. The state of the finding.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"The finding requires attention and has not been addressed yet.", +"The finding has been fixed, triaged as a non-issue or otherwise addressed and is no longer active." +], +"readOnly": true, +"type": "string" +}, +"toxicCombination": { +"$ref": "GoogleCloudSecuritycenterV2ToxicCombination", +"description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." +}, +"vulnerability": { +"$ref": "GoogleCloudSecuritycenterV2Vulnerability", +"description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Folder": { +"description": "Message that contains the resource name and display name of a folder resource.", +"id": "GoogleCloudSecuritycenterV2Folder", +"properties": { +"resourceFolder": { +"description": "Full resource name of this folder. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourceFolderDisplayName": { +"description": "The user defined display name for this folder.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Geolocation": { +"description": "Represents a geographical location for a given access.", +"id": "GoogleCloudSecuritycenterV2Geolocation", +"properties": { +"regionCode": { +"description": "A CLDR.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2GroupMembership": { +"description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", +"id": "GoogleCloudSecuritycenterV2GroupMembership", +"properties": { +"groupId": { +"description": "ID of the group.", +"type": "string" +}, +"groupType": { +"description": "Type of group.", +"enum": [ +"GROUP_TYPE_UNSPECIFIED", +"GROUP_TYPE_TOXIC_COMBINATION" +], +"enumDescriptions": [ +"Default value.", +"Group represents a toxic combination." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IamBinding": { +"description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", +"id": "GoogleCloudSecuritycenterV2IamBinding", +"properties": { +"action": { +"description": "The action that was performed on a Binding.", +"enum": [ +"ACTION_UNSPECIFIED", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"Unspecified.", +"Addition of a Binding.", +"Removal of a Binding." +], +"type": "string" +}, +"member": { +"description": "A single identity requesting access for a Cloud Platform resource, for example, \"foo@google.com\".", +"type": "string" +}, +"role": { +"description": "Role that is assigned to \"members\". For example, \"roles/viewer\", \"roles/editor\", or \"roles/owner\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Indicator": { +"description": "Represents what's commonly known as an _indicator of compromise_ (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise).", +"id": "GoogleCloudSecuritycenterV2Indicator", +"properties": { +"domains": { +"description": "List of domains associated to the Finding.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ipAddresses": { +"description": "The list of IP addresses that are associated with the finding.", +"items": { +"type": "string" +}, +"type": "array" +}, +"signatures": { +"description": "The list of matched signatures indicating that the given process is present in the environment.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ProcessSignature" +}, +"type": "array" +}, +"uris": { +"description": "The list of URIs associated to the Findings.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Issue": { +"description": "Security Command Center Issue.", +"id": "GoogleCloudSecuritycenterV2Issue", +"properties": { +"createTime": { +"description": "Output only. The time the issue was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "The description of the issue in Markdown format.", +"type": "string" +}, +"detection": { +"description": "The finding category or rule name that generated the issue.", +"type": "string" +}, +"domains": { +"description": "The domains of the issue.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IssueDomain" +}, +"type": "array" +}, +"exposureScore": { +"description": "The exposure score of the issue.", +"format": "double", +"type": "number" +}, +"issueType": { +"description": "The type of the issue.", +"enum": [ +"ISSUE_TYPE_UNSPECIFIED", +"CHOKEPOINT", +"TOXIC_COMBINATION", +"INSIGHT" +], +"enumDescriptions": [ +"Unspecified issue type.", +"Chokepoint issue type.", +"Toxic combination issue type.", +"Insight issue type." +], +"type": "string" +}, +"lastObservationTime": { +"description": "The time the issue was last observed.", +"format": "google-datetime", +"type": "string" +}, +"mute": { +"$ref": "GoogleCloudSecuritycenterV2IssueMute", +"description": "The mute information of the issue." +}, +"name": { +"description": "Identifier. The name of the issue. Format: organizations/{organization}/locations/{location}/issues/{issue}", +"type": "string" +}, +"primaryResource": { +"$ref": "GoogleCloudSecuritycenterV2IssueResource", +"description": "The primary resource associated with the issue." +}, +"relatedFindings": { +"description": "The findings related to the issue.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IssueFinding" +}, +"type": "array" +}, +"remediations": { +"description": "Approaches to remediate the issue in Markdown format.", +"items": { +"type": "string" +}, +"type": "array" +}, +"secondaryResources": { +"description": "Additional resources associated with the issue.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IssueResource" +}, +"type": "array" +}, +"securityContexts": { +"description": "The security context of the issue.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2IssueSecurityContext" +}, +"type": "array" +}, +"severity": { +"description": "The severity of the issue.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"Unspecified severity.", +"Critical severity.", +"High severity.", +"Medium severity.", +"Low severity." +], +"type": "string" +}, +"state": { +"description": "Output only. The state of the issue.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"INACTIVE" +], +"enumDescriptions": [ +"Unspecified state.", +"Active state.", +"Inactive state." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the issue was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueDomain": { +"description": "The domains of an issue.", +"id": "GoogleCloudSecuritycenterV2IssueDomain", +"properties": { +"domainCategory": { +"description": "The domain category of the issue.", +"enum": [ +"DOMAIN_CATEGORY_UNSPECIFIED", +"AI", +"CODE", +"CONTAINER", +"DATA", +"IDENTITY_AND_ACCESS", +"VULNERABILITY" +], +"enumDescriptions": [ +"Unspecified domain category.", +"Issues in the AI domain.", +"Issues in the code domain.", +"Issues in the container domain.", +"Issues in the data domain.", +"Issues in the identity and access domain.", +"Issues in the vulnerability domain." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueFinding": { +"description": "Finding related to an issue.", +"id": "GoogleCloudSecuritycenterV2IssueFinding", +"properties": { +"cve": { +"$ref": "GoogleCloudSecuritycenterV2IssueFindingCve", +"description": "The CVE of the finding." +}, +"name": { +"description": "The name of the finding.", +"type": "string" +}, +"securityBulletin": { +"$ref": "GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin", +"description": "The security bulletin of the finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueFindingCve": { +"description": "The CVE of the finding.", +"id": "GoogleCloudSecuritycenterV2IssueFindingCve", +"properties": { +"name": { +"description": "The CVE name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin": { +"description": "The security bulletin of the finding.", +"id": "GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin", +"properties": { +"name": { +"description": "The security bulletin name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueMute": { +"description": "The mute information of the issue.", +"id": "GoogleCloudSecuritycenterV2IssueMute", +"properties": { +"muteInitiator": { +"description": "The email address of the user who last changed the mute state of the issue.", +"type": "string" +}, +"muteReason": { +"description": "The user-provided reason for muting the issue.", +"type": "string" +}, +"muteState": { +"description": "Output only. The mute state of the issue.", +"enum": [ +"MUTE_STATE_UNSPECIFIED", +"NOT_MUTED", +"MUTED" +], +"enumDescriptions": [ +"Unspecified mute state.", +"Not muted.", +"Muted." +], +"readOnly": true, +"type": "string" +}, +"muteUpdateTime": { +"description": "The time the issue was muted.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResource": { +"description": "A resource associated with the an issue.", +"id": "GoogleCloudSecuritycenterV2IssueResource", +"properties": { +"awsMetadata": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceAwsMetadata", +"description": "The AWS metadata of the resource associated with the issue. Only populated for AWS resources." +}, +"azureMetadata": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceAzureMetadata", +"description": "The Azure metadata of the resource associated with the issue. Only populated for Azure resources." +}, +"cloudProvider": { +"description": "The cloud provider of the resource associated with the issue.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"Unspecified cloud provider.", +"Google Cloud.", +"Amazon Web Services.", +"Microsoft Azure." +], +"type": "string" +}, +"displayName": { +"description": "The resource-type specific display name of the resource associated with the issue.", +"type": "string" +}, +"googleCloudMetadata": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata", +"description": "The Google Cloud metadata of the resource associated with the issue. Only populated for Google Cloud resources." +}, +"name": { +"description": "The full resource name of the resource associated with the issue.", +"type": "string" +}, +"type": { +"description": "The type of the resource associated with the issue.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceAwsMetadata": { +"description": "The AWS metadata of a resource associated with an issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceAwsMetadata", +"properties": { +"account": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount", +"description": "The AWS account of the resource associated with the issue." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount": { +"description": "The AWS account of the resource associated with the issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount", +"properties": { +"id": { +"description": "The AWS account ID of the resource associated with the issue.", +"type": "string" +}, +"name": { +"description": "The AWS account name of the resource associated with the issue.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceAzureMetadata": { +"description": "The Azure metadata of a resource associated with an issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceAzureMetadata", +"properties": { +"subscription": { +"$ref": "GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription", +"description": "The Azure subscription of the resource associated with the issue." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription": { +"description": "The Azure subscription of the resource associated with the issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription", +"properties": { +"displayName": { +"description": "The Azure subscription display name of the resource associated with the issue.", +"type": "string" +}, +"id": { +"description": "The Azure subscription ID of the resource associated with the issue.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata": { +"description": "Google Cloud metadata of a resource associated with an issue.", +"id": "GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata", +"properties": { +"projectId": { +"description": "The project ID that the resource associated with the issue belongs to.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueSecurityContext": { +"description": "Security context associated with an issue.", +"id": "GoogleCloudSecuritycenterV2IssueSecurityContext", +"properties": { +"aggregatedCount": { +"$ref": "GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount", +"description": "The aggregated count of the security context." +}, +"context": { +"$ref": "GoogleCloudSecuritycenterV2IssueSecurityContextContext", +"description": "The context of the security context." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount": { +"description": "Aggregated count of a security context.", +"id": "GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount", +"properties": { +"key": { +"description": "Aggregation key.", +"type": "string" +}, +"value": { +"description": "Aggregation value.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2IssueSecurityContextContext": { +"description": "Context of a security context.", +"id": "GoogleCloudSecuritycenterV2IssueSecurityContextContext", +"properties": { +"type": { +"description": "Context type.", +"type": "string" +}, +"values": { +"description": "Context values.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2KernelRootkit": { +"description": "Kernel mode rootkit signatures.", +"id": "GoogleCloudSecuritycenterV2KernelRootkit", +"properties": { +"name": { +"description": "Rootkit name, when available.", +"type": "string" +}, +"unexpectedCodeModification": { +"description": "True if unexpected modifications of kernel code memory are present.", +"type": "boolean" +}, +"unexpectedFtraceHandler": { +"description": "True if `ftrace` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", +"type": "boolean" +}, +"unexpectedInterruptHandler": { +"description": "True if interrupt handlers that are are not in the expected kernel or module code regions are present.", +"type": "boolean" +}, +"unexpectedKernelCodePages": { +"description": "True if kernel code pages that are not in the expected kernel or module code regions are present.", +"type": "boolean" +}, +"unexpectedKprobeHandler": { +"description": "True if `kprobe` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", +"type": "boolean" +}, +"unexpectedProcessesInRunqueue": { +"description": "True if unexpected processes in the scheduler run queue are present. Such processes are in the run queue, but not in the process task list.", +"type": "boolean" +}, +"unexpectedReadOnlyDataModification": { +"description": "True if unexpected modifications of kernel read-only data memory are present.", +"type": "boolean" +}, +"unexpectedSystemCallHandler": { +"description": "True if system call handlers that are are not in the expected kernel or module code regions are present.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Kubernetes": { +"description": "Kubernetes-related attributes.", +"id": "GoogleCloudSecuritycenterV2Kubernetes", +"properties": { +"accessReviews": { +"description": "Provides information on any Kubernetes access reviews (privilege checks) relevant to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2AccessReview" +}, +"type": "array" +}, +"bindings": { +"description": "Provides Kubernetes role binding information for findings that involve [RoleBindings or ClusterRoleBindings](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Binding" +}, +"type": "array" +}, +"nodePools": { +"description": "GKE [node pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools) associated with the finding. This field contains node pool information for each node, when it is available.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2NodePool" +}, +"type": "array" +}, +"nodes": { +"description": "Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes) information.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Node" +}, +"type": "array" +}, +"objects": { +"description": "Kubernetes objects related to the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Object" +}, +"type": "array" +}, +"pods": { +"description": "Kubernetes [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod) associated with the finding. This field contains Pod records for each container that is owned by a Pod.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Pod" +}, +"type": "array" +}, +"roles": { +"description": "Provides Kubernetes role information for findings that involve [Roles or ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Role" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Label": { +"description": "Represents a generic name-value label. A label has separate name and value fields to support filtering with the `contains()` function. For more information, see [Filtering on array-type fields](https://cloud.google.com/security-command-center/docs/how-to-api-list-findings#array-contains-filtering).", +"id": "GoogleCloudSecuritycenterV2Label", +"properties": { +"name": { +"description": "Name of the label.", +"type": "string" +}, +"value": { +"description": "Value that corresponds to the label's name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2LoadBalancer": { +"description": "Contains information related to the load balancer associated with the finding.", +"id": "GoogleCloudSecuritycenterV2LoadBalancer", +"properties": { +"name": { +"description": "The name of the load balancer associated with the finding.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2LogEntry": { +"description": "An individual entry in a log.", +"id": "GoogleCloudSecuritycenterV2LogEntry", +"properties": { +"cloudLoggingEntry": { +"$ref": "GoogleCloudSecuritycenterV2CloudLoggingEntry", +"description": "An individual entry in a log stored in Cloud Logging." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2MemoryHashSignature": { +"description": "A signature corresponding to memory page hashes.", +"id": "GoogleCloudSecuritycenterV2MemoryHashSignature", +"properties": { +"binaryFamily": { +"description": "The binary family.", +"type": "string" +}, +"detections": { +"description": "The list of memory hash detections contributing to the binary family match.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Detection" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2MitreAttack": { +"description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org", +"id": "GoogleCloudSecuritycenterV2MitreAttack", +"properties": { +"additionalTactics": { +"description": "Additional MITRE ATT&CK tactics related to this finding, if any.", +"items": { +"enum": [ +"TACTIC_UNSPECIFIED", +"RECONNAISSANCE", +"RESOURCE_DEVELOPMENT", +"INITIAL_ACCESS", +"EXECUTION", +"PERSISTENCE", +"PRIVILEGE_ESCALATION", +"DEFENSE_EVASION", +"CREDENTIAL_ACCESS", +"DISCOVERY", +"LATERAL_MOVEMENT", +"COLLECTION", +"COMMAND_AND_CONTROL", +"EXFILTRATION", +"IMPACT" +], +"enumDescriptions": [ +"Unspecified value.", +"TA0043", +"TA0042", +"TA0001", +"TA0002", +"TA0003", +"TA0004", +"TA0005", +"TA0006", +"TA0007", +"TA0008", +"TA0009", +"TA0011", +"TA0010", +"TA0040" +], +"type": "string" +}, +"type": "array" +}, +"additionalTechniques": { +"description": "Additional MITRE ATT&CK techniques related to this finding, if any, along with any of their respective parent techniques.", +"items": { +"enum": [ +"TECHNIQUE_UNSPECIFIED", +"MASQUERADING", +"MATCH_LEGITIMATE_NAME_OR_LOCATION", +"BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", +"STARTUP_ITEMS", +"NETWORK_SERVICE_DISCOVERY", +"PROCESS_DISCOVERY", +"COMMAND_AND_SCRIPTING_INTERPRETER", +"UNIX_SHELL", +"PYTHON", +"EXPLOITATION_FOR_PRIVILEGE_ESCALATION", +"PERMISSION_GROUPS_DISCOVERY", +"CLOUD_GROUPS", +"INDICATOR_REMOVAL_FILE_DELETION", +"APPLICATION_LAYER_PROTOCOL", +"DNS", +"SOFTWARE_DEPLOYMENT_TOOLS", +"VALID_ACCOUNTS", +"DEFAULT_ACCOUNTS", +"LOCAL_ACCOUNTS", +"CLOUD_ACCOUNTS", +"PROXY", +"EXTERNAL_PROXY", +"MULTI_HOP_PROXY", +"ACCOUNT_MANIPULATION", +"ADDITIONAL_CLOUD_CREDENTIALS", +"SSH_AUTHORIZED_KEYS", +"ADDITIONAL_CONTAINER_CLUSTER_ROLES", +"INGRESS_TOOL_TRANSFER", +"NATIVE_API", +"BRUTE_FORCE", +"SHARED_MODULES", +"ACCESS_TOKEN_MANIPULATION", +"TOKEN_IMPERSONATION_OR_THEFT", +"EXPLOIT_PUBLIC_FACING_APPLICATION", +"DOMAIN_POLICY_MODIFICATION", +"DATA_DESTRUCTION", +"SERVICE_STOP", +"INHIBIT_SYSTEM_RECOVERY", +"RESOURCE_HIJACKING", +"NETWORK_DENIAL_OF_SERVICE", +"CLOUD_SERVICE_DISCOVERY", +"STEAL_APPLICATION_ACCESS_TOKEN", +"ACCOUNT_ACCESS_REMOVAL", +"STEAL_WEB_SESSION_COOKIE", +"CREATE_OR_MODIFY_SYSTEM_PROCESS", +"EVENT_TRIGGERED_EXECUTION", +"ABUSE_ELEVATION_CONTROL_MECHANISM", +"UNSECURED_CREDENTIALS", +"MODIFY_AUTHENTICATION_PROCESS", +"IMPAIR_DEFENSES", +"DISABLE_OR_MODIFY_TOOLS", +"EXFILTRATION_OVER_WEB_SERVICE", +"EXFILTRATION_TO_CLOUD_STORAGE", +"DYNAMIC_RESOLUTION", +"LATERAL_TOOL_TRANSFER", +"MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", +"CREATE_SNAPSHOT", +"CLOUD_INFRASTRUCTURE_DISCOVERY", +"OBTAIN_CAPABILITIES", +"ACTIVE_SCANNING", +"SCANNING_IP_BLOCKS", +"CONTAINER_ADMINISTRATION_COMMAND", +"DEPLOY_CONTAINER", +"ESCAPE_TO_HOST", +"CONTAINER_AND_RESOURCE_DISCOVERY", +"STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" +], +"enumDescriptions": [ +"Unspecified value.", +"T1036", +"T1036.005", +"T1037", +"T1037.005", +"T1046", +"T1057", +"T1059", +"T1059.004", +"T1059.006", +"T1068", +"T1069", +"T1069.003", +"T1070.004", +"T1071", +"T1071.004", +"T1072", +"T1078", +"T1078.001", +"T1078.003", +"T1078.004", +"T1090", +"T1090.002", +"T1090.003", +"T1098", +"T1098.001", +"T1098.004", +"T1098.006", +"T1105", +"T1106", +"T1110", +"T1129", +"T1134", +"T1134.001", +"T1190", +"T1484", +"T1485", +"T1489", +"T1490", +"T1496", +"T1498", +"T1526", +"T1528", +"T1531", +"T1539", +"T1543", +"T1546", +"T1548", +"T1552", +"T1556", +"T1562", +"T1562.001", +"T1567", +"T1567.002", +"T1568", +"T1570", +"T1578", +"T1578.001", +"T1580", +"T1588", +"T1595", +"T1595.001", +"T1609", +"T1610", +"T1611", +"T1613", +"T1649" +], +"type": "string" +}, +"type": "array" +}, +"primaryTactic": { +"description": "The MITRE ATT&CK tactic most closely represented by this finding, if any.", +"enum": [ +"TACTIC_UNSPECIFIED", +"RECONNAISSANCE", +"RESOURCE_DEVELOPMENT", +"INITIAL_ACCESS", +"EXECUTION", +"PERSISTENCE", +"PRIVILEGE_ESCALATION", +"DEFENSE_EVASION", +"CREDENTIAL_ACCESS", +"DISCOVERY", +"LATERAL_MOVEMENT", +"COLLECTION", +"COMMAND_AND_CONTROL", +"EXFILTRATION", +"IMPACT" +], +"enumDescriptions": [ +"Unspecified value.", +"TA0043", +"TA0042", +"TA0001", +"TA0002", +"TA0003", +"TA0004", +"TA0005", +"TA0006", +"TA0007", +"TA0008", +"TA0009", +"TA0011", +"TA0010", +"TA0040" +], +"type": "string" +}, +"primaryTechniques": { +"description": "The MITRE ATT&CK technique most closely represented by this finding, if any. primary_techniques is a repeated field because there are multiple levels of MITRE ATT&CK techniques. If the technique most closely represented by this finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), both the sub-technique and its parent technique(s) will be listed (e.g. `SCANNING_IP_BLOCKS`, `ACTIVE_SCANNING`).", +"items": { +"enum": [ +"TECHNIQUE_UNSPECIFIED", +"MASQUERADING", +"MATCH_LEGITIMATE_NAME_OR_LOCATION", +"BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", +"STARTUP_ITEMS", +"NETWORK_SERVICE_DISCOVERY", +"PROCESS_DISCOVERY", +"COMMAND_AND_SCRIPTING_INTERPRETER", +"UNIX_SHELL", +"PYTHON", +"EXPLOITATION_FOR_PRIVILEGE_ESCALATION", +"PERMISSION_GROUPS_DISCOVERY", +"CLOUD_GROUPS", +"INDICATOR_REMOVAL_FILE_DELETION", +"APPLICATION_LAYER_PROTOCOL", +"DNS", +"SOFTWARE_DEPLOYMENT_TOOLS", +"VALID_ACCOUNTS", +"DEFAULT_ACCOUNTS", +"LOCAL_ACCOUNTS", +"CLOUD_ACCOUNTS", +"PROXY", +"EXTERNAL_PROXY", +"MULTI_HOP_PROXY", +"ACCOUNT_MANIPULATION", +"ADDITIONAL_CLOUD_CREDENTIALS", +"SSH_AUTHORIZED_KEYS", +"ADDITIONAL_CONTAINER_CLUSTER_ROLES", +"INGRESS_TOOL_TRANSFER", +"NATIVE_API", +"BRUTE_FORCE", +"SHARED_MODULES", +"ACCESS_TOKEN_MANIPULATION", +"TOKEN_IMPERSONATION_OR_THEFT", +"EXPLOIT_PUBLIC_FACING_APPLICATION", +"DOMAIN_POLICY_MODIFICATION", +"DATA_DESTRUCTION", +"SERVICE_STOP", +"INHIBIT_SYSTEM_RECOVERY", +"RESOURCE_HIJACKING", +"NETWORK_DENIAL_OF_SERVICE", +"CLOUD_SERVICE_DISCOVERY", +"STEAL_APPLICATION_ACCESS_TOKEN", +"ACCOUNT_ACCESS_REMOVAL", +"STEAL_WEB_SESSION_COOKIE", +"CREATE_OR_MODIFY_SYSTEM_PROCESS", +"EVENT_TRIGGERED_EXECUTION", +"ABUSE_ELEVATION_CONTROL_MECHANISM", +"UNSECURED_CREDENTIALS", +"MODIFY_AUTHENTICATION_PROCESS", +"IMPAIR_DEFENSES", +"DISABLE_OR_MODIFY_TOOLS", +"EXFILTRATION_OVER_WEB_SERVICE", +"EXFILTRATION_TO_CLOUD_STORAGE", +"DYNAMIC_RESOLUTION", +"LATERAL_TOOL_TRANSFER", +"MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", +"CREATE_SNAPSHOT", +"CLOUD_INFRASTRUCTURE_DISCOVERY", +"OBTAIN_CAPABILITIES", +"ACTIVE_SCANNING", +"SCANNING_IP_BLOCKS", +"CONTAINER_ADMINISTRATION_COMMAND", +"DEPLOY_CONTAINER", +"ESCAPE_TO_HOST", +"CONTAINER_AND_RESOURCE_DISCOVERY", +"STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" +], +"enumDescriptions": [ +"Unspecified value.", +"T1036", +"T1036.005", +"T1037", +"T1037.005", +"T1046", +"T1057", +"T1059", +"T1059.004", +"T1059.006", +"T1068", +"T1069", +"T1069.003", +"T1070.004", +"T1071", +"T1071.004", +"T1072", +"T1078", +"T1078.001", +"T1078.003", +"T1078.004", +"T1090", +"T1090.002", +"T1090.003", +"T1098", +"T1098.001", +"T1098.004", +"T1098.006", +"T1105", +"T1106", +"T1110", +"T1129", +"T1134", +"T1134.001", +"T1190", +"T1484", +"T1485", +"T1489", +"T1490", +"T1496", +"T1498", +"T1526", +"T1528", +"T1531", +"T1539", +"T1543", +"T1546", +"T1548", +"T1552", +"T1556", +"T1562", +"T1562.001", +"T1567", +"T1567.002", +"T1568", +"T1570", +"T1578", +"T1578.001", +"T1580", +"T1588", +"T1595", +"T1595.001", +"T1609", +"T1610", +"T1611", +"T1613", +"T1649" +], +"type": "string" +}, +"type": "array" +}, +"version": { +"description": "The MITRE ATT&CK version referenced by the above fields. E.g. \"8\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2MuteConfig": { +"description": "A mute config is a Cloud SCC resource that contains the configuration to mute create/update events of findings.", +"id": "GoogleCloudSecuritycenterV2MuteConfig", +"properties": { +"createTime": { +"description": "Output only. The time at which the mute config was created. This field is set by the server and will be ignored if provided on config creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A description of the mute config.", +"type": "string" +}, +"expiryTime": { +"description": "Optional. The expiry of the mute config. Only applicable for dynamic configs. If the expiry is set, when the config expires, it is removed from all findings.", +"format": "google-datetime", +"type": "string" +}, +"filter": { +"description": "Required. An expression that defines the filter to apply across create/update events of findings. While creating a filter string, be mindful of the scope in which the mute configuration is being created. E.g., If a filter contains project = X but is created under the project = Y scope, it might not match any findings. The following field and operator combinations are supported: * severity: `=`, `:` * category: `=`, `:` * resource.name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.folders.resource_folder: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.type: `=`, `:` * finding_class: `=`, `:` * indicator.ip_addresses: `=`, `:` * indicator.domains: `=`, `:`", +"type": "string" +}, +"mostRecentEditor": { +"description": "Output only. Email address of the user who last edited the mute config. This field is set by the server and will be ignored if provided on config creation or update.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. This field will be ignored if provided on config creation. The following list shows some examples of the format: + `organizations/{organization}/muteConfigs/{mute_config}` + `organizations/{organization}locations/{location}//muteConfigs/{mute_config}` + `folders/{folder}/muteConfigs/{mute_config}` + `folders/{folder}/locations/{location}/muteConfigs/{mute_config}` + `projects/{project}/muteConfigs/{mute_config}` + `projects/{project}/locations/{location}/muteConfigs/{mute_config}`", +"type": "string" +}, +"type": { +"description": "Required. The type of the mute config, which determines what type of mute state the config affects. Immutable after creation.", +"enum": [ +"MUTE_CONFIG_TYPE_UNSPECIFIED", +"STATIC", +"DYNAMIC" +], +"enumDescriptions": [ +"Unused.", +"A static mute config, which sets the static mute state of future matching findings to muted. Once the static mute state has been set, finding or config modifications will not affect the state.", +"A dynamic mute config, which is applied to existing and future matching findings, setting their dynamic mute state to \"muted\". If the config is updated or deleted, or a matching finding is updated, such that the finding doesn't match the config, the config will be removed from the finding, and the finding's dynamic mute state may become \"unmuted\" (unless other configs still match)." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The most recent time at which the mute config was updated. This field is set by the server and will be ignored if provided on config creation or update.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2MuteInfo": { +"description": "Mute information about the finding, including whether the finding has a static mute or any matching dynamic mute rules.", +"id": "GoogleCloudSecuritycenterV2MuteInfo", +"properties": { +"dynamicMuteRecords": { +"description": "The list of dynamic mute rules that currently match the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2DynamicMuteRecord" +}, +"type": "array" +}, +"staticMute": { +"$ref": "GoogleCloudSecuritycenterV2StaticMute", +"description": "If set, the static mute applied to this finding. Static mutes override dynamic mutes. If unset, there is no static mute." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Node": { +"description": "Kubernetes nodes associated with the finding.", +"id": "GoogleCloudSecuritycenterV2Node", +"properties": { +"name": { +"description": "[Full resource name](https://google.aip.dev/122#full-resource-names) of the Compute Engine VM running the cluster node.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2NodePool": { +"description": "Provides GKE node pool information.", +"id": "GoogleCloudSecuritycenterV2NodePool", +"properties": { +"name": { +"description": "Kubernetes node pool name.", +"type": "string" +}, +"nodes": { +"description": "Nodes associated with the finding.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Node" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Notebook": { +"description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", +"id": "GoogleCloudSecuritycenterV2Notebook", +"properties": { +"lastAuthor": { +"description": "The user ID of the latest author to modify the notebook.", +"type": "string" +}, +"name": { +"description": "The name of the notebook.", +"type": "string" +}, +"notebookUpdateTime": { +"description": "The most recent time the notebook was updated.", +"format": "google-datetime", +"type": "string" +}, +"service": { +"description": "The source notebook service, for example, \"Colab Enterprise\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2NotificationMessage": { +"description": "Cloud SCC's Notification", +"id": "GoogleCloudSecuritycenterV2NotificationMessage", +"properties": { +"finding": { +"$ref": "GoogleCloudSecuritycenterV2Finding", +"description": "If it's a Finding based notification config, this field will be populated." +}, +"notificationConfigName": { +"description": "Name of the notification config that generated current notification.", +"type": "string" +}, +"resource": { +"$ref": "GoogleCloudSecuritycenterV2Resource", +"description": "The Cloud resource tied to this notification's Finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Object": { +"description": "Kubernetes object related to the finding, uniquely identified by GKNN. Used if the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.", +"id": "GoogleCloudSecuritycenterV2Object", +"properties": { +"containers": { +"description": "Pod containers associated with this finding, if any.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Container" +}, +"type": "array" +}, +"group": { +"description": "Kubernetes object group, such as \"policy.k8s.io/v1\".", +"type": "string" +}, +"kind": { +"description": "Kubernetes object kind, such as \"Namespace\".", +"type": "string" +}, +"name": { +"description": "Kubernetes object name. For details see https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.", +"type": "string" +}, +"ns": { +"description": "Kubernetes object namespace. Must be a valid DNS label. Named \"ns\" to avoid collision with C++ namespace keyword. For details see https://kubernetes.io/docs/tasks/administer-cluster/namespaces/.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2OrgPolicy": { +"description": "Contains information about the org policies associated with the finding.", +"id": "GoogleCloudSecuritycenterV2OrgPolicy", +"properties": { +"name": { +"description": "The resource name of the org policy. Example: \"organizations/{organization_id}/policies/{constraint_name}\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Package": { +"description": "Package is a generic definition of a package.", +"id": "GoogleCloudSecuritycenterV2Package", +"properties": { +"cpeUri": { +"description": "The CPE URI where the vulnerability was detected.", +"type": "string" +}, +"packageName": { +"description": "The name of the package where the vulnerability was detected.", +"type": "string" +}, +"packageType": { +"description": "Type of package, for example, os, maven, or go.", +"type": "string" +}, +"packageVersion": { +"description": "The version of the package.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Pod": { +"description": "A Kubernetes Pod.", +"id": "GoogleCloudSecuritycenterV2Pod", +"properties": { +"containers": { +"description": "Pod containers associated with this finding, if any.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Container" +}, +"type": "array" +}, +"labels": { +"description": "Pod labels. For Kubernetes containers, these are applied to the container.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2Label" +}, +"type": "array" +}, +"name": { +"description": "Kubernetes Pod name.", +"type": "string" +}, +"ns": { +"description": "Kubernetes Pod namespace.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2PolicyDriftDetails": { +"description": "The policy field that violates the deployed posture and its expected and detected values.", +"id": "GoogleCloudSecuritycenterV2PolicyDriftDetails", +"properties": { +"detectedValue": { +"description": "The detected value that violates the deployed posture, for example, `false` or `allowed_values={\"projects/22831892\"}`.", +"type": "string" +}, +"expectedValue": { +"description": "The value of this field that was configured in a posture, for example, `true` or `allowed_values={\"projects/29831892\"}`.", +"type": "string" +}, +"field": { +"description": "The name of the updated field, for example constraint.implementation.policy_rules[0].enforce", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Process": { +"description": "Represents an operating system process.", +"id": "GoogleCloudSecuritycenterV2Process", +"properties": { +"args": { +"description": "Process arguments as JSON encoded strings.", +"items": { +"type": "string" +}, +"type": "array" +}, +"argumentsTruncated": { +"description": "True if `args` is incomplete.", +"type": "boolean" +}, +"binary": { +"$ref": "GoogleCloudSecuritycenterV2File", +"description": "File information for the process executable." +}, +"envVariables": { +"description": "Process environment variables.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2EnvironmentVariable" +}, +"type": "array" +}, +"envVariablesTruncated": { +"description": "True if `env_variables` is incomplete.", +"type": "boolean" +}, +"libraries": { +"description": "File information for libraries loaded by the process.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2File" +}, +"type": "array" +}, +"name": { +"description": "The process name, as displayed in utilities like `top` and `ps`. This name can be accessed through `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.", +"type": "string" +}, +"parentPid": { +"description": "The parent process ID.", +"format": "int64", +"type": "string" +}, +"pid": { +"description": "The process ID.", +"format": "int64", +"type": "string" +}, +"script": { +"$ref": "GoogleCloudSecuritycenterV2File", +"description": "When the process represents the invocation of a script, `binary` provides information about the interpreter, while `script` provides information about the script file provided to the interpreter." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ProcessSignature": { +"description": "Indicates what signature matched this process.", +"id": "GoogleCloudSecuritycenterV2ProcessSignature", +"properties": { +"memoryHashSignature": { +"$ref": "GoogleCloudSecuritycenterV2MemoryHashSignature", +"description": "Signature indicating that a binary family was matched." +}, +"signatureType": { +"description": "Describes the type of resource associated with the signature.", +"enum": [ +"SIGNATURE_TYPE_UNSPECIFIED", +"SIGNATURE_TYPE_PROCESS", +"SIGNATURE_TYPE_FILE" +], +"enumDescriptions": [ +"The default signature type.", +"Used for signatures concerning processes.", +"Used for signatures concerning disks." +], +"type": "string" +}, +"yaraRuleSignature": { +"$ref": "GoogleCloudSecuritycenterV2YaraRuleSignature", +"description": "Signature indicating that a YARA rule was matched." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Reference": { +"description": "Additional Links", +"id": "GoogleCloudSecuritycenterV2Reference", +"properties": { +"source": { +"description": "Source of the reference e.g. NVD", +"type": "string" +}, +"uri": { +"description": "Uri for the mentioned source e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Requests": { +"description": "Information about the requests relevant to the finding.", +"id": "GoogleCloudSecuritycenterV2Requests", +"properties": { +"longTermAllowed": { +"description": "Allowed RPS (requests per second) over the long term.", +"format": "int32", +"type": "integer" +}, +"longTermDenied": { +"description": "Denied RPS (requests per second) over the long term.", +"format": "int32", +"type": "integer" +}, +"ratio": { +"description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", +"format": "double", +"type": "number" +}, +"shortTermAllowed": { +"description": "Allowed RPS (requests per second) in the short term.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Resource": { +"description": "Information related to the Google Cloud resource.", +"id": "GoogleCloudSecuritycenterV2Resource", +"properties": { +"awsMetadata": { +"$ref": "GoogleCloudSecuritycenterV2AwsMetadata", +"description": "The AWS metadata associated with the finding." +}, +"azureMetadata": { +"$ref": "GoogleCloudSecuritycenterV2AzureMetadata", +"description": "The Azure metadata associated with the finding." +}, +"cloudProvider": { +"description": "Indicates which cloud provider the finding is from.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"displayName": { +"description": "The human readable name of the resource.", +"type": "string" +}, +"gcpMetadata": { +"$ref": "GcpMetadata", +"description": "The GCP metadata associated with the finding." +}, +"location": { +"description": "The region or location of the service (if applicable).", +"type": "string" +}, +"name": { +"description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", +"type": "string" +}, +"resourcePath": { +"$ref": "GoogleCloudSecuritycenterV2ResourcePath", +"description": "Provides the path to the resource within the resource hierarchy." +}, +"resourcePathString": { +"description": "A string representation of the resource path. For Google Cloud, it has the format of `organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id}` where there can be any number of folders. For AWS, it has the format of `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id}` where there can be any number of organizational units. For Azure, it has the format of `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name}` where there can be any number of management groups.", +"type": "string" +}, +"service": { +"description": "The service or resource provider associated with the resource.", +"type": "string" +}, +"type": { +"description": "The full resource type of the resource.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ResourcePath": { +"description": "Represents the path of resources leading up to the resource this finding is about.", +"id": "GoogleCloudSecuritycenterV2ResourcePath", +"properties": { +"nodes": { +"description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2ResourcePathNode" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ResourcePathNode": { +"description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", +"id": "GoogleCloudSecuritycenterV2ResourcePathNode", +"properties": { +"displayName": { +"description": "The display name of the resource this node represents.", +"type": "string" +}, +"id": { +"description": "The ID of the resource this node represents.", +"type": "string" +}, +"nodeType": { +"description": "The type of resource this node represents.", +"enum": [ +"RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", +"GCP_ORGANIZATION", +"GCP_FOLDER", +"GCP_PROJECT", +"AWS_ORGANIZATION", +"AWS_ORGANIZATIONAL_UNIT", +"AWS_ACCOUNT", +"AZURE_MANAGEMENT_GROUP", +"AZURE_SUBSCRIPTION", +"AZURE_RESOURCE_GROUP" +], +"enumDescriptions": [ +"Node type is unspecified.", +"The node represents a Google Cloud organization.", +"The node represents a Google Cloud folder.", +"The node represents a Google Cloud project.", +"The node represents an AWS organization.", +"The node represents an AWS organizational unit.", +"The node represents an AWS account.", +"The node represents an Azure management group.", +"The node represents an Azure subscription.", +"The node represents an Azure resource group." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ResourceValueConfig": { +"description": "A resource value configuration (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", +"id": "GoogleCloudSecuritycenterV2ResourceValueConfig", +"properties": { +"cloudProvider": { +"description": "Cloud provider this configuration applies to", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"createTime": { +"description": "Output only. Timestamp this resource value configuration was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of the resource value configuration.", +"type": "string" +}, +"name": { +"description": "Identifier. Name for the resource value configuration", +"type": "string" +}, +"resourceLabelsSelector": { +"additionalProperties": { +"type": "string" +}, +"description": "List of resource labels to search for, evaluated with `AND`. For example, \"resource_labels_selector\": {\"key\": \"value\", \"env\": \"prod\"} will match resources with labels \"key\": \"value\" `AND` \"env\": \"prod\" https://cloud.google.com/resource-manager/docs/creating-managing-labels", +"type": "object" +}, +"resourceType": { +"description": "Apply resource_value only to resources that match resource_type. resource_type will be checked with `AND` of other resources. For example, \"storage.googleapis.com/Bucket\" with resource_value \"HIGH\" will apply \"HIGH\" value only to \"storage.googleapis.com/Bucket\" resources.", +"type": "string" +}, +"resourceValue": { +"description": "Resource value level this expression represents Only required when there is no Sensitive Data Protection mapping in the request", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +}, +"scope": { +"description": "Project or folder to scope this configuration to. For example, \"project/456\" would apply this configuration only to resources in \"project/456\" scope and will be checked with `AND` of other resources.", +"type": "string" +}, +"sensitiveDataProtectionMapping": { +"$ref": "GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping", +"description": "A mapping of the sensitivity on Sensitive Data Protection finding to resource values. This mapping can only be used in combination with a resource_type that is related to BigQuery, e.g. \"bigquery.googleapis.com/Dataset\"." +}, +"tagValues": { +"description": "Tag values combined with `AND` to check against. For Google Cloud resources, they are tag value IDs in the form of \"tagValues/123\". Example: `[ \"tagValues/123\", \"tagValues/456\", \"tagValues/789\" ]` https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. Timestamp this resource value configuration was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Role": { +"description": "Kubernetes Role or ClusterRole.", +"id": "GoogleCloudSecuritycenterV2Role", +"properties": { +"kind": { +"description": "Role type.", +"enum": [ +"KIND_UNSPECIFIED", +"ROLE", +"CLUSTER_ROLE" +], +"enumDescriptions": [ +"Role type is not specified.", +"Kubernetes Role.", +"Kubernetes ClusterRole." +], +"type": "string" +}, +"name": { +"description": "Role name.", +"type": "string" +}, +"ns": { +"description": "Role namespace.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SecurityBulletin": { +"description": "SecurityBulletin are notifications of vulnerabilities of Google products.", +"id": "GoogleCloudSecuritycenterV2SecurityBulletin", +"properties": { +"bulletinId": { +"description": "ID of the bulletin corresponding to the vulnerability.", +"type": "string" +}, +"submissionTime": { +"description": "Submission time of this Security Bulletin.", +"format": "google-datetime", +"type": "string" +}, +"suggestedUpgradeVersion": { +"description": "This represents a version that the cluster receiving this notification should be upgraded to, based on its current version. For example, 1.15.0", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SecurityMarks": { +"description": "User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.", +"id": "GoogleCloudSecuritycenterV2SecurityMarks", +"properties": { +"canonicalName": { +"description": "The canonical name of the marks. The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/assets/{asset_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `projects/{project_number}/assets/{asset_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks`", +"type": "string" +}, +"marks": { +"additionalProperties": { +"type": "string" +}, +"description": "Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)", +"type": "object" +}, +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SecurityPolicy": { +"description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", +"id": "GoogleCloudSecuritycenterV2SecurityPolicy", +"properties": { +"name": { +"description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", +"type": "string" +}, +"preview": { +"description": "Whether or not the associated rule or policy is in preview mode.", +"type": "boolean" +}, +"type": { +"description": "The type of Google Cloud Armor security policy for example, 'backend security policy', 'edge security policy', 'network edge security policy', or 'always-on DDoS protection'.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SecurityPosture": { +"description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", +"id": "GoogleCloudSecuritycenterV2SecurityPosture", +"properties": { +"changedPolicy": { +"description": "The name of the updated policy, for example, `projects/{project_id}/policies/{constraint_name}`.", +"type": "string" +}, +"name": { +"description": "Name of the posture, for example, `CIS-Posture`.", +"type": "string" +}, +"policy": { +"description": "The ID of the updated policy, for example, `compute-policy-1`.", +"type": "string" +}, +"policyDriftDetails": { +"description": "The details about a change in an updated policy that violates the deployed posture.", +"items": { +"$ref": "GoogleCloudSecuritycenterV2PolicyDriftDetails" +}, +"type": "array" +}, +"policySet": { +"description": "The name of the updated policy set, for example, `cis-policyset`.", +"type": "string" +}, +"postureDeployment": { +"description": "The name of the posture deployment, for example, `organizations/{org_id}/posturedeployments/{posture_deployment_id}`.", +"type": "string" +}, +"postureDeploymentResource": { +"description": "The project, folder, or organization on which the posture is deployed, for example, `projects/{project_number}`.", +"type": "string" +}, +"revisionId": { +"description": "The version of the posture, for example, `c7cfa2a8`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping": { +"description": "Resource value mapping for Sensitive Data Protection findings If any of these mappings have a resource value that is not unspecified, the resource_value field will be ignored when reading this configuration.", +"id": "GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping", +"properties": { +"highSensitivityMapping": { +"description": "Resource value mapping for high-sensitivity Sensitive Data Protection findings", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +}, +"mediumSensitivityMapping": { +"description": "Resource value mapping for medium-sensitivity Sensitive Data Protection findings", +"enum": [ +"RESOURCE_VALUE_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"NONE" +], +"enumDescriptions": [ +"Unspecific value", +"High resource value", +"Medium resource value", +"Low resource value", +"No resource value, e.g. ignore these resources" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo": { +"description": "Identity delegation history of an authenticated service account.", +"id": "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo", +"properties": { +"principalEmail": { +"description": "The email address of a Google account.", +"type": "string" +}, +"principalSubject": { +"description": "A string representing the principal_subject associated with the identity. As compared to `principal_email`, supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format will be `principal://iam.googleapis.com/{identity pool name}/subjects/{subject}` except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:{identity pool name}[{subject}]`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2StaticMute": { +"description": "Information about the static mute state. A static mute state overrides any dynamic mute rules that apply to this finding. The static mute state can be set by a static mute rule or by muting the finding directly.", +"id": "GoogleCloudSecuritycenterV2StaticMute", +"properties": { +"applyTime": { +"description": "When the static mute was applied.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The static mute state. If the value is `MUTED` or `UNMUTED`, then the finding's overall mute state will have the same value.", +"enum": [ +"MUTE_UNSPECIFIED", +"MUTED", +"UNMUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unspecified.", +"Finding has been muted.", +"Finding has been unmuted.", +"Finding has never been muted/unmuted." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Subject": { +"description": "Represents a Kubernetes subject.", +"id": "GoogleCloudSecuritycenterV2Subject", +"properties": { +"kind": { +"description": "Authentication type for the subject.", +"enum": [ +"AUTH_TYPE_UNSPECIFIED", +"USER", +"SERVICEACCOUNT", +"GROUP" +], +"enumDescriptions": [ +"Authentication is not specified.", +"User with valid certificate.", +"Users managed by Kubernetes API with credentials stored as secrets.", +"Collection of users." +], +"type": "string" +}, +"name": { +"description": "Name for the subject.", +"type": "string" +}, +"ns": { +"description": "Namespace for the subject.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2TicketInfo": { +"description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding.", +"id": "GoogleCloudSecuritycenterV2TicketInfo", +"properties": { +"assignee": { +"description": "The assignee of the ticket in the ticket system.", +"type": "string" +}, +"description": { +"description": "The description of the ticket in the ticket system.", +"type": "string" +}, +"id": { +"description": "The identifier of the ticket in the ticket system.", +"type": "string" +}, +"status": { +"description": "The latest status of the ticket, as reported by the ticket system.", +"type": "string" +}, +"updateTime": { +"description": "The time when the ticket was last updated, as reported by the ticket system.", +"format": "google-datetime", +"type": "string" +}, +"uri": { +"description": "The link to the ticket in the ticket system.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2ToxicCombination": { +"description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", +"id": "GoogleCloudSecuritycenterV2ToxicCombination", +"properties": { +"attackExposureScore": { +"description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", +"format": "double", +"type": "number" +}, +"relatedFindings": { +"description": "List of resource names of findings associated with this toxic combination. For example, `organizations/123/sources/456/findings/789`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2Vulnerability": { +"description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", +"id": "GoogleCloudSecuritycenterV2Vulnerability", +"properties": { +"cve": { +"$ref": "GoogleCloudSecuritycenterV2Cve", +"description": "CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" +}, +"fixedPackage": { +"$ref": "GoogleCloudSecuritycenterV2Package", +"description": "The fixed package is relevant to the finding." +}, +"offendingPackage": { +"$ref": "GoogleCloudSecuritycenterV2Package", +"description": "The offending package is relevant to the finding." +}, +"securityBulletin": { +"$ref": "GoogleCloudSecuritycenterV2SecurityBulletin", +"description": "The security bulletin is relevant to this finding." +} +}, +"type": "object" +}, +"GoogleCloudSecuritycenterV2YaraRuleSignature": { +"description": "A signature corresponding to a YARA rule.", +"id": "GoogleCloudSecuritycenterV2YaraRuleSignature", +"properties": { +"yaraRule": { +"description": "The name of the YARA rule.", +"type": "string" +} +}, +"type": "object" +}, +"GroupMembership": { +"description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", +"id": "GroupMembership", +"properties": { +"groupId": { +"description": "ID of the group.", +"type": "string" +}, +"groupType": { +"description": "Type of group.", +"enum": [ +"GROUP_TYPE_UNSPECIFIED", +"GROUP_TYPE_TOXIC_COMBINATION" +], +"enumDescriptions": [ +"Default value.", +"Group represents a toxic combination." +], +"type": "string" +} +}, +"type": "object" +}, +"IamBinding": { +"description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", +"id": "IamBinding", +"properties": { +"action": { +"description": "The action that was performed on a Binding.", +"enum": [ +"ACTION_UNSPECIFIED", +"ADD", +"REMOVE" +], +"enumDescriptions": [ +"Unspecified.", +"Addition of a Binding.", +"Removal of a Binding." +], +"type": "string" +}, +"member": { +"description": "A single identity requesting access for a Cloud Platform resource, for example, \"foo@google.com\".", +"type": "string" +}, +"role": { +"description": "Role that is assigned to \"members\". For example, \"roles/viewer\", \"roles/editor\", or \"roles/owner\".", +"type": "string" +} +}, +"type": "object" +}, +"Indicator": { +"description": "Represents what's commonly known as an _indicator of compromise_ (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise).", +"id": "Indicator", +"properties": { +"domains": { +"description": "List of domains associated to the Finding.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ipAddresses": { +"description": "The list of IP addresses that are associated with the finding.", +"items": { +"type": "string" +}, +"type": "array" +}, +"signatures": { +"description": "The list of matched signatures indicating that the given process is present in the environment.", +"items": { +"$ref": "ProcessSignature" +}, +"type": "array" +}, +"uris": { +"description": "The list of URIs associated to the Findings.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"KernelRootkit": { +"description": "Kernel mode rootkit signatures.", +"id": "KernelRootkit", +"properties": { +"name": { +"description": "Rootkit name, when available.", +"type": "string" +}, +"unexpectedCodeModification": { +"description": "True if unexpected modifications of kernel code memory are present.", +"type": "boolean" +}, +"unexpectedFtraceHandler": { +"description": "True if `ftrace` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", +"type": "boolean" +}, +"unexpectedInterruptHandler": { +"description": "True if interrupt handlers that are are not in the expected kernel or module code regions are present.", +"type": "boolean" +}, +"unexpectedKernelCodePages": { +"description": "True if kernel code pages that are not in the expected kernel or module code regions are present.", +"type": "boolean" +}, +"unexpectedKprobeHandler": { +"description": "True if `kprobe` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", +"type": "boolean" +}, +"unexpectedProcessesInRunqueue": { +"description": "True if unexpected processes in the scheduler run queue are present. Such processes are in the run queue, but not in the process task list.", +"type": "boolean" +}, +"unexpectedReadOnlyDataModification": { +"description": "True if unexpected modifications of kernel read-only data memory are present.", +"type": "boolean" +}, +"unexpectedSystemCallHandler": { +"description": "True if system call handlers that are are not in the expected kernel or module code regions are present.", +"type": "boolean" +} +}, +"type": "object" +}, +"Kubernetes": { +"description": "Kubernetes-related attributes.", +"id": "Kubernetes", +"properties": { +"accessReviews": { +"description": "Provides information on any Kubernetes access reviews (privilege checks) relevant to the finding.", +"items": { +"$ref": "AccessReview" +}, +"type": "array" +}, +"bindings": { +"description": "Provides Kubernetes role binding information for findings that involve [RoleBindings or ClusterRoleBindings](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", +"items": { +"$ref": "GoogleCloudSecuritycenterV1Binding" +}, +"type": "array" +}, +"nodePools": { +"description": "GKE [node pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools) associated with the finding. This field contains node pool information for each node, when it is available.", +"items": { +"$ref": "NodePool" +}, +"type": "array" +}, +"nodes": { +"description": "Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes) information.", +"items": { +"$ref": "Node" +}, +"type": "array" +}, +"objects": { +"description": "Kubernetes objects related to the finding.", +"items": { +"$ref": "Object" +}, +"type": "array" +}, +"pods": { +"description": "Kubernetes [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod) associated with the finding. This field contains Pod records for each container that is owned by a Pod.", +"items": { +"$ref": "Pod" +}, +"type": "array" +}, +"roles": { +"description": "Provides Kubernetes role information for findings that involve [Roles or ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", +"items": { +"$ref": "Role" +}, +"type": "array" +} +}, +"type": "object" +}, +"Label": { +"description": "Represents a generic name-value label. A label has separate name and value fields to support filtering with the `contains()` function. For more information, see [Filtering on array-type fields](https://cloud.google.com/security-command-center/docs/how-to-api-list-findings#array-contains-filtering).", +"id": "Label", +"properties": { +"name": { +"description": "Name of the label.", +"type": "string" +}, +"value": { +"description": "Value that corresponds to the label's name.", +"type": "string" +} +}, +"type": "object" +}, +"LoadBalancer": { +"description": "Contains information related to the load balancer associated with the finding.", +"id": "LoadBalancer", +"properties": { +"name": { +"description": "The name of the load balancer associated with the finding.", +"type": "string" +} +}, +"type": "object" +}, +"LogEntry": { +"description": "An individual entry in a log.", +"id": "LogEntry", +"properties": { +"cloudLoggingEntry": { +"$ref": "CloudLoggingEntry", +"description": "An individual entry in a log stored in Cloud Logging." +} +}, +"type": "object" +}, +"MemoryHashSignature": { +"description": "A signature corresponding to memory page hashes.", +"id": "MemoryHashSignature", +"properties": { +"binaryFamily": { +"description": "The binary family.", +"type": "string" +}, +"detections": { +"description": "The list of memory hash detections contributing to the binary family match.", +"items": { +"$ref": "Detection" +}, +"type": "array" +} +}, +"type": "object" +}, +"MitreAttack": { +"description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org", +"id": "MitreAttack", +"properties": { +"additionalTactics": { +"description": "Additional MITRE ATT&CK tactics related to this finding, if any.", +"items": { +"enum": [ +"TACTIC_UNSPECIFIED", +"RECONNAISSANCE", +"RESOURCE_DEVELOPMENT", +"INITIAL_ACCESS", +"EXECUTION", +"PERSISTENCE", +"PRIVILEGE_ESCALATION", +"DEFENSE_EVASION", +"CREDENTIAL_ACCESS", +"DISCOVERY", +"LATERAL_MOVEMENT", +"COLLECTION", +"COMMAND_AND_CONTROL", +"EXFILTRATION", +"IMPACT" +], +"enumDescriptions": [ +"Unspecified value.", +"TA0043", +"TA0042", +"TA0001", +"TA0002", +"TA0003", +"TA0004", +"TA0005", +"TA0006", +"TA0007", +"TA0008", +"TA0009", +"TA0011", +"TA0010", +"TA0040" +], +"type": "string" +}, +"type": "array" +}, +"additionalTechniques": { +"description": "Additional MITRE ATT&CK techniques related to this finding, if any, along with any of their respective parent techniques.", +"items": { +"enum": [ +"TECHNIQUE_UNSPECIFIED", +"MASQUERADING", +"MATCH_LEGITIMATE_NAME_OR_LOCATION", +"BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", +"STARTUP_ITEMS", +"NETWORK_SERVICE_DISCOVERY", +"PROCESS_DISCOVERY", +"COMMAND_AND_SCRIPTING_INTERPRETER", +"UNIX_SHELL", +"PYTHON", +"EXPLOITATION_FOR_PRIVILEGE_ESCALATION", +"PERMISSION_GROUPS_DISCOVERY", +"CLOUD_GROUPS", +"INDICATOR_REMOVAL_FILE_DELETION", +"APPLICATION_LAYER_PROTOCOL", +"DNS", +"SOFTWARE_DEPLOYMENT_TOOLS", +"VALID_ACCOUNTS", +"DEFAULT_ACCOUNTS", +"LOCAL_ACCOUNTS", +"CLOUD_ACCOUNTS", +"PROXY", +"EXTERNAL_PROXY", +"MULTI_HOP_PROXY", +"ACCOUNT_MANIPULATION", +"ADDITIONAL_CLOUD_CREDENTIALS", +"SSH_AUTHORIZED_KEYS", +"ADDITIONAL_CONTAINER_CLUSTER_ROLES", +"INGRESS_TOOL_TRANSFER", +"NATIVE_API", +"BRUTE_FORCE", +"SHARED_MODULES", +"ACCESS_TOKEN_MANIPULATION", +"TOKEN_IMPERSONATION_OR_THEFT", +"EXPLOIT_PUBLIC_FACING_APPLICATION", +"DOMAIN_POLICY_MODIFICATION", +"DATA_DESTRUCTION", +"SERVICE_STOP", +"INHIBIT_SYSTEM_RECOVERY", +"RESOURCE_HIJACKING", +"NETWORK_DENIAL_OF_SERVICE", +"CLOUD_SERVICE_DISCOVERY", +"STEAL_APPLICATION_ACCESS_TOKEN", +"ACCOUNT_ACCESS_REMOVAL", +"STEAL_WEB_SESSION_COOKIE", +"CREATE_OR_MODIFY_SYSTEM_PROCESS", +"EVENT_TRIGGERED_EXECUTION", +"ABUSE_ELEVATION_CONTROL_MECHANISM", +"UNSECURED_CREDENTIALS", +"MODIFY_AUTHENTICATION_PROCESS", +"IMPAIR_DEFENSES", +"DISABLE_OR_MODIFY_TOOLS", +"EXFILTRATION_OVER_WEB_SERVICE", +"EXFILTRATION_TO_CLOUD_STORAGE", +"DYNAMIC_RESOLUTION", +"LATERAL_TOOL_TRANSFER", +"MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", +"CREATE_SNAPSHOT", +"CLOUD_INFRASTRUCTURE_DISCOVERY", +"OBTAIN_CAPABILITIES", +"ACTIVE_SCANNING", +"SCANNING_IP_BLOCKS", +"CONTAINER_ADMINISTRATION_COMMAND", +"DEPLOY_CONTAINER", +"ESCAPE_TO_HOST", +"CONTAINER_AND_RESOURCE_DISCOVERY", +"STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" +], +"enumDescriptions": [ +"Unspecified value.", +"T1036", +"T1036.005", +"T1037", +"T1037.005", +"T1046", +"T1057", +"T1059", +"T1059.004", +"T1059.006", +"T1068", +"T1069", +"T1069.003", +"T1070.004", +"T1071", +"T1071.004", +"T1072", +"T1078", +"T1078.001", +"T1078.003", +"T1078.004", +"T1090", +"T1090.002", +"T1090.003", +"T1098", +"T1098.001", +"T1098.004", +"T1098.006", +"T1105", +"T1106", +"T1110", +"T1129", +"T1134", +"T1134.001", +"T1190", +"T1484", +"T1485", +"T1489", +"T1490", +"T1496", +"T1498", +"T1526", +"T1528", +"T1531", +"T1539", +"T1543", +"T1546", +"T1548", +"T1552", +"T1556", +"T1562", +"T1562.001", +"T1567", +"T1567.002", +"T1568", +"T1570", +"T1578", +"T1578.001", +"T1580", +"T1588", +"T1595", +"T1595.001", +"T1609", +"T1610", +"T1611", +"T1613", +"T1649" +], +"type": "string" +}, +"type": "array" +}, +"primaryTactic": { +"description": "The MITRE ATT&CK tactic most closely represented by this finding, if any.", +"enum": [ +"TACTIC_UNSPECIFIED", +"RECONNAISSANCE", +"RESOURCE_DEVELOPMENT", +"INITIAL_ACCESS", +"EXECUTION", +"PERSISTENCE", +"PRIVILEGE_ESCALATION", +"DEFENSE_EVASION", +"CREDENTIAL_ACCESS", +"DISCOVERY", +"LATERAL_MOVEMENT", +"COLLECTION", +"COMMAND_AND_CONTROL", +"EXFILTRATION", +"IMPACT" +], +"enumDescriptions": [ +"Unspecified value.", +"TA0043", +"TA0042", +"TA0001", +"TA0002", +"TA0003", +"TA0004", +"TA0005", +"TA0006", +"TA0007", +"TA0008", +"TA0009", +"TA0011", +"TA0010", +"TA0040" +], +"type": "string" +}, +"primaryTechniques": { +"description": "The MITRE ATT&CK technique most closely represented by this finding, if any. primary_techniques is a repeated field because there are multiple levels of MITRE ATT&CK techniques. If the technique most closely represented by this finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), both the sub-technique and its parent technique(s) will be listed (e.g. `SCANNING_IP_BLOCKS`, `ACTIVE_SCANNING`).", +"items": { +"enum": [ +"TECHNIQUE_UNSPECIFIED", +"MASQUERADING", +"MATCH_LEGITIMATE_NAME_OR_LOCATION", +"BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", +"STARTUP_ITEMS", +"NETWORK_SERVICE_DISCOVERY", +"PROCESS_DISCOVERY", +"COMMAND_AND_SCRIPTING_INTERPRETER", +"UNIX_SHELL", +"PYTHON", +"EXPLOITATION_FOR_PRIVILEGE_ESCALATION", +"PERMISSION_GROUPS_DISCOVERY", +"CLOUD_GROUPS", +"INDICATOR_REMOVAL_FILE_DELETION", +"APPLICATION_LAYER_PROTOCOL", +"DNS", +"SOFTWARE_DEPLOYMENT_TOOLS", +"VALID_ACCOUNTS", +"DEFAULT_ACCOUNTS", +"LOCAL_ACCOUNTS", +"CLOUD_ACCOUNTS", +"PROXY", +"EXTERNAL_PROXY", +"MULTI_HOP_PROXY", +"ACCOUNT_MANIPULATION", +"ADDITIONAL_CLOUD_CREDENTIALS", +"SSH_AUTHORIZED_KEYS", +"ADDITIONAL_CONTAINER_CLUSTER_ROLES", +"INGRESS_TOOL_TRANSFER", +"NATIVE_API", +"BRUTE_FORCE", +"SHARED_MODULES", +"ACCESS_TOKEN_MANIPULATION", +"TOKEN_IMPERSONATION_OR_THEFT", +"EXPLOIT_PUBLIC_FACING_APPLICATION", +"DOMAIN_POLICY_MODIFICATION", +"DATA_DESTRUCTION", +"SERVICE_STOP", +"INHIBIT_SYSTEM_RECOVERY", +"RESOURCE_HIJACKING", +"NETWORK_DENIAL_OF_SERVICE", +"CLOUD_SERVICE_DISCOVERY", +"STEAL_APPLICATION_ACCESS_TOKEN", +"ACCOUNT_ACCESS_REMOVAL", +"STEAL_WEB_SESSION_COOKIE", +"CREATE_OR_MODIFY_SYSTEM_PROCESS", +"EVENT_TRIGGERED_EXECUTION", +"ABUSE_ELEVATION_CONTROL_MECHANISM", +"UNSECURED_CREDENTIALS", +"MODIFY_AUTHENTICATION_PROCESS", +"IMPAIR_DEFENSES", +"DISABLE_OR_MODIFY_TOOLS", +"EXFILTRATION_OVER_WEB_SERVICE", +"EXFILTRATION_TO_CLOUD_STORAGE", +"DYNAMIC_RESOLUTION", +"LATERAL_TOOL_TRANSFER", +"MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", +"CREATE_SNAPSHOT", +"CLOUD_INFRASTRUCTURE_DISCOVERY", +"OBTAIN_CAPABILITIES", +"ACTIVE_SCANNING", +"SCANNING_IP_BLOCKS", +"CONTAINER_ADMINISTRATION_COMMAND", +"DEPLOY_CONTAINER", +"ESCAPE_TO_HOST", +"CONTAINER_AND_RESOURCE_DISCOVERY", +"STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" +], +"enumDescriptions": [ +"Unspecified value.", +"T1036", +"T1036.005", +"T1037", +"T1037.005", +"T1046", +"T1057", +"T1059", +"T1059.004", +"T1059.006", +"T1068", +"T1069", +"T1069.003", +"T1070.004", +"T1071", +"T1071.004", +"T1072", +"T1078", +"T1078.001", +"T1078.003", +"T1078.004", +"T1090", +"T1090.002", +"T1090.003", +"T1098", +"T1098.001", +"T1098.004", +"T1098.006", +"T1105", +"T1106", +"T1110", +"T1129", +"T1134", +"T1134.001", +"T1190", +"T1484", +"T1485", +"T1489", +"T1490", +"T1496", +"T1498", +"T1526", +"T1528", +"T1531", +"T1539", +"T1543", +"T1546", +"T1548", +"T1552", +"T1556", +"T1562", +"T1562.001", +"T1567", +"T1567.002", +"T1568", +"T1570", +"T1578", +"T1578.001", +"T1580", +"T1588", +"T1595", +"T1595.001", +"T1609", +"T1610", +"T1611", +"T1613", +"T1649" +], +"type": "string" +}, +"type": "array" +}, +"version": { +"description": "The MITRE ATT&CK version referenced by the above fields. E.g. \"8\".", +"type": "string" +} +}, +"type": "object" +}, +"MuteInfo": { +"description": "Mute information about the finding, including whether the finding has a static mute or any matching dynamic mute rules.", +"id": "MuteInfo", +"properties": { +"dynamicMuteRecords": { +"description": "The list of dynamic mute rules that currently match the finding.", +"items": { +"$ref": "DynamicMuteRecord" +}, +"type": "array" +}, +"staticMute": { +"$ref": "StaticMute", +"description": "If set, the static mute applied to this finding. Static mutes override dynamic mutes. If unset, there is no static mute." +} +}, +"type": "object" +}, +"Node": { +"description": "Kubernetes nodes associated with the finding.", +"id": "Node", +"properties": { +"name": { +"description": "[Full resource name](https://google.aip.dev/122#full-resource-names) of the Compute Engine VM running the cluster node.", +"type": "string" +} +}, +"type": "object" +}, +"NodePool": { +"description": "Provides GKE node pool information.", +"id": "NodePool", +"properties": { +"name": { +"description": "Kubernetes node pool name.", +"type": "string" +}, +"nodes": { +"description": "Nodes associated with the finding.", +"items": { +"$ref": "Node" +}, +"type": "array" +} +}, +"type": "object" +}, +"Notebook": { +"description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", +"id": "Notebook", +"properties": { +"lastAuthor": { +"description": "The user ID of the latest author to modify the notebook.", +"type": "string" +}, +"name": { +"description": "The name of the notebook.", +"type": "string" +}, +"notebookUpdateTime": { +"description": "The most recent time the notebook was updated.", +"format": "google-datetime", +"type": "string" +}, +"service": { +"description": "The source notebook service, for example, \"Colab Enterprise\".", +"type": "string" +} +}, +"type": "object" +}, +"Object": { +"description": "Kubernetes object related to the finding, uniquely identified by GKNN. Used if the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.", +"id": "Object", +"properties": { +"containers": { +"description": "Pod containers associated with this finding, if any.", +"items": { +"$ref": "Container" +}, +"type": "array" +}, +"group": { +"description": "Kubernetes object group, such as \"policy.k8s.io/v1\".", +"type": "string" +}, +"kind": { +"description": "Kubernetes object kind, such as \"Namespace\".", +"type": "string" +}, +"name": { +"description": "Kubernetes object name. For details see https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.", +"type": "string" +}, +"ns": { +"description": "Kubernetes object namespace. Must be a valid DNS label. Named \"ns\" to avoid collision with C++ namespace keyword. For details see https://kubernetes.io/docs/tasks/administer-cluster/namespaces/.", +"type": "string" +} +}, +"type": "object" +}, +"OrgPolicy": { +"description": "Contains information about the org policies associated with the finding.", +"id": "OrgPolicy", +"properties": { +"name": { +"description": "The resource name of the org policy. Example: \"organizations/{organization_id}/policies/{constraint_name}\"", +"type": "string" +} +}, +"type": "object" +}, +"Package": { +"description": "Package is a generic definition of a package.", +"id": "Package", +"properties": { +"cpeUri": { +"description": "The CPE URI where the vulnerability was detected.", +"type": "string" +}, +"packageName": { +"description": "The name of the package where the vulnerability was detected.", +"type": "string" +}, +"packageType": { +"description": "Type of package, for example, os, maven, or go.", +"type": "string" +}, +"packageVersion": { +"description": "The version of the package.", +"type": "string" +} +}, +"type": "object" +}, +"Pod": { +"description": "A Kubernetes Pod.", +"id": "Pod", +"properties": { +"containers": { +"description": "Pod containers associated with this finding, if any.", +"items": { +"$ref": "Container" +}, +"type": "array" +}, +"labels": { +"description": "Pod labels. For Kubernetes containers, these are applied to the container.", +"items": { +"$ref": "Label" +}, +"type": "array" +}, +"name": { +"description": "Kubernetes Pod name.", +"type": "string" +}, +"ns": { +"description": "Kubernetes Pod namespace.", +"type": "string" +} +}, +"type": "object" +}, +"PolicyDriftDetails": { +"description": "The policy field that violates the deployed posture and its expected and detected values.", +"id": "PolicyDriftDetails", +"properties": { +"detectedValue": { +"description": "The detected value that violates the deployed posture, for example, `false` or `allowed_values={\"projects/22831892\"}`.", +"type": "string" +}, +"expectedValue": { +"description": "The value of this field that was configured in a posture, for example, `true` or `allowed_values={\"projects/29831892\"}`.", +"type": "string" +}, +"field": { +"description": "The name of the updated field, for example constraint.implementation.policy_rules[0].enforce", +"type": "string" +} +}, +"type": "object" +}, +"Process": { +"description": "Represents an operating system process.", +"id": "Process", +"properties": { +"args": { +"description": "Process arguments as JSON encoded strings.", +"items": { +"type": "string" +}, +"type": "array" +}, +"argumentsTruncated": { +"description": "True if `args` is incomplete.", +"type": "boolean" +}, +"binary": { +"$ref": "File", +"description": "File information for the process executable." +}, +"envVariables": { +"description": "Process environment variables.", +"items": { +"$ref": "EnvironmentVariable" +}, +"type": "array" +}, +"envVariablesTruncated": { +"description": "True if `env_variables` is incomplete.", +"type": "boolean" +}, +"libraries": { +"description": "File information for libraries loaded by the process.", +"items": { +"$ref": "File" +}, +"type": "array" +}, +"name": { +"description": "The process name, as displayed in utilities like `top` and `ps`. This name can be accessed through `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.", +"type": "string" +}, +"parentPid": { +"description": "The parent process ID.", +"format": "int64", +"type": "string" +}, +"pid": { +"description": "The process ID.", +"format": "int64", +"type": "string" +}, +"script": { +"$ref": "File", +"description": "When the process represents the invocation of a script, `binary` provides information about the interpreter, while `script` provides information about the script file provided to the interpreter." +} +}, +"type": "object" +}, +"ProcessSignature": { +"description": "Indicates what signature matched this process.", +"id": "ProcessSignature", +"properties": { +"memoryHashSignature": { +"$ref": "MemoryHashSignature", +"description": "Signature indicating that a binary family was matched." +}, +"signatureType": { +"description": "Describes the type of resource associated with the signature.", +"enum": [ +"SIGNATURE_TYPE_UNSPECIFIED", +"SIGNATURE_TYPE_PROCESS", +"SIGNATURE_TYPE_FILE" +], +"enumDescriptions": [ +"The default signature type.", +"Used for signatures concerning processes.", +"Used for signatures concerning disks." +], +"type": "string" +}, +"yaraRuleSignature": { +"$ref": "YaraRuleSignature", +"description": "Signature indicating that a YARA rule was matched." +} +}, +"type": "object" +}, +"RapidVulnerabilityDetectionSettings": { +"description": "Resource capturing the settings for the Rapid Vulnerability Detection service.", +"id": "RapidVulnerabilityDetectionSettings", +"properties": { +"modules": { +"additionalProperties": { +"$ref": "Config" +}, +"description": "The configurations including the state of enablement for the service's different modules. The absence of a module in the map implies its configuration is inherited from its parent's.", +"type": "object" +}, +"name": { +"description": "The resource name of the RapidVulnerabilityDetectionSettings. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", +"type": "string" +}, +"serviceEnablementState": { +"description": "The state of enablement for the service at its level of the resource hierarchy. A DISABLED state will override all module enablement_states to DISABLED.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"INHERITED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"State is inherited from the parent resource.", +"State is enabled.", +"State is disabled." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the settings were last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Reference": { +"description": "Additional Links", +"id": "Reference", +"properties": { +"source": { +"description": "Source of the reference e.g. NVD", +"type": "string" +}, +"uri": { +"description": "Uri for the mentioned source e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527.", +"type": "string" +} +}, +"type": "object" +}, +"Requests": { +"description": "Information about the requests relevant to the finding.", +"id": "Requests", +"properties": { +"longTermAllowed": { +"description": "Allowed RPS (requests per second) over the long term.", +"format": "int32", +"type": "integer" +}, +"longTermDenied": { +"description": "Denied RPS (requests per second) over the long term.", +"format": "int32", +"type": "integer" +}, +"ratio": { +"description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", +"format": "double", +"type": "number" +}, +"shortTermAllowed": { +"description": "Allowed RPS (requests per second) in the short term.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ResourcePath": { +"description": "Represents the path of resources leading up to the resource this finding is about.", +"id": "ResourcePath", +"properties": { +"nodes": { +"description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", +"items": { +"$ref": "ResourcePathNode" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourcePathNode": { +"description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", +"id": "ResourcePathNode", +"properties": { +"displayName": { +"description": "The display name of the resource this node represents.", +"type": "string" +}, +"id": { +"description": "The ID of the resource this node represents.", +"type": "string" +}, +"nodeType": { +"description": "The type of resource this node represents.", +"enum": [ +"RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", +"GCP_ORGANIZATION", +"GCP_FOLDER", +"GCP_PROJECT", +"AWS_ORGANIZATION", +"AWS_ORGANIZATIONAL_UNIT", +"AWS_ACCOUNT", +"AZURE_MANAGEMENT_GROUP", +"AZURE_SUBSCRIPTION", +"AZURE_RESOURCE_GROUP" +], +"enumDescriptions": [ +"Node type is unspecified.", +"The node represents a Google Cloud organization.", +"The node represents a Google Cloud folder.", +"The node represents a Google Cloud project.", +"The node represents an AWS organization.", +"The node represents an AWS organizational unit.", +"The node represents an AWS account.", +"The node represents an Azure management group.", +"The node represents an Azure subscription.", +"The node represents an Azure resource group." +], +"type": "string" +} +}, +"type": "object" +}, +"Role": { +"description": "Kubernetes Role or ClusterRole.", +"id": "Role", +"properties": { +"kind": { +"description": "Role type.", +"enum": [ +"KIND_UNSPECIFIED", +"ROLE", +"CLUSTER_ROLE" +], +"enumDescriptions": [ +"Role type is not specified.", +"Kubernetes Role.", +"Kubernetes ClusterRole." +], +"type": "string" +}, +"name": { +"description": "Role name.", +"type": "string" +}, +"ns": { +"description": "Role namespace.", +"type": "string" +} +}, +"type": "object" +}, +"SecurityBulletin": { +"description": "SecurityBulletin are notifications of vulnerabilities of Google products.", +"id": "SecurityBulletin", +"properties": { +"bulletinId": { +"description": "ID of the bulletin corresponding to the vulnerability.", +"type": "string" +}, +"submissionTime": { +"description": "Submission time of this Security Bulletin.", +"format": "google-datetime", +"type": "string" +}, +"suggestedUpgradeVersion": { +"description": "This represents a version that the cluster receiving this notification should be upgraded to, based on its current version. For example, 1.15.0", +"type": "string" +} +}, +"type": "object" +}, +"SecurityCenterSettings": { +"description": "Resource capturing the settings for Security Center. Next ID: 12", +"id": "SecurityCenterSettings", +"properties": { +"logSinkProject": { +"description": "The resource name of the project to send logs to. This project must be part of the organization this resource resides in. The format is `projects/{project_id}`. An empty value disables logging. This value is only referenced by services that support log sink. Please refer to the documentation for an updated list of compatible services. This may only be specified for organization level onboarding.", +"type": "string" +}, +"name": { +"description": "The resource name of the SecurityCenterSettings. Format: organizations/{organization}/securityCenterSettings Format: folders/{folder}/securityCenterSettings Format: projects/{project}/securityCenterSettings", +"type": "string" +}, +"onboardingTime": { +"description": "Output only. Timestamp of when the customer organization was onboarded to SCC.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"orgServiceAccount": { +"description": "Output only. The organization level service account to be used for security center components.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SecurityHealthAnalyticsSettings": { +"description": "Resource capturing the settings for the Security Health Analytics service.", +"id": "SecurityHealthAnalyticsSettings", +"properties": { +"modules": { +"additionalProperties": { +"$ref": "Config" +}, +"description": "The configurations including the state of enablement for the service's different modules. The absence of a module in the map implies its configuration is inherited from its parent's configuration.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the SecurityHealthAnalyticsSettings. Formats: * organizations/{organization}/securityHealthAnalyticsSettings * folders/{folder}/securityHealthAnalyticsSettings * projects/{project}/securityHealthAnalyticsSettings", +"type": "string" +}, +"serviceAccount": { +"description": "Output only. The service account used by Security Health Analytics detectors.", +"readOnly": true, +"type": "string" +}, +"serviceEnablementState": { +"description": "The state of enablement for the service at its level of the resource hierarchy. A DISABLED state will override all module enablement_states to DISABLED.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"INHERITED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"State is inherited from the parent resource.", +"State is enabled.", +"State is disabled." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the settings were last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SecurityMarks": { +"description": "User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.", +"id": "SecurityMarks", +"properties": { +"canonicalName": { +"description": "The canonical name of the marks. Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"folders/{folder_id}/assets/{asset_id}/securityMarks\" \"projects/{project_number}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" \"projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks\"", +"type": "string" +}, +"marks": { +"additionalProperties": { +"type": "string" +}, +"description": "Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)", +"type": "object" +}, +"name": { +"description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Examples: \"organizations/{organization_id}/assets/{asset_id}/securityMarks\" \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\".", +"type": "string" +} +}, +"type": "object" +}, +"SecurityPolicy": { +"description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", +"id": "SecurityPolicy", +"properties": { +"name": { +"description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", +"type": "string" +}, +"preview": { +"description": "Whether or not the associated rule or policy is in preview mode.", +"type": "boolean" +}, +"type": { +"description": "The type of Google Cloud Armor security policy for example, 'backend security policy', 'edge security policy', 'network edge security policy', or 'always-on DDoS protection'.", +"type": "string" +} +}, +"type": "object" +}, +"SecurityPosture": { +"description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", +"id": "SecurityPosture", +"properties": { +"changedPolicy": { +"description": "The name of the updated policy, for example, `projects/{project_id}/policies/{constraint_name}`.", +"type": "string" +}, +"name": { +"description": "Name of the posture, for example, `CIS-Posture`.", +"type": "string" +}, +"policy": { +"description": "The ID of the updated policy, for example, `compute-policy-1`.", +"type": "string" +}, +"policyDriftDetails": { +"description": "The details about a change in an updated policy that violates the deployed posture.", +"items": { +"$ref": "PolicyDriftDetails" +}, +"type": "array" +}, +"policySet": { +"description": "The name of the updated policyset, for example, `cis-policyset`.", +"type": "string" +}, +"postureDeployment": { +"description": "The name of the posture deployment, for example, `organizations/{org_id}/posturedeployments/{posture_deployment_id}`.", +"type": "string" +}, +"postureDeploymentResource": { +"description": "The project, folder, or organization on which the posture is deployed, for example, `projects/{project_number}`.", +"type": "string" +}, +"revisionId": { +"description": "The version of the posture, for example, `c7cfa2a8`.", +"type": "string" +} +}, +"type": "object" +}, +"ServiceAccountDelegationInfo": { +"description": "Identity delegation history of an authenticated service account.", +"id": "ServiceAccountDelegationInfo", +"properties": { +"principalEmail": { +"description": "The email address of a Google account.", +"type": "string" +}, +"principalSubject": { +"description": "A string representing the principal_subject associated with the identity. As compared to `principal_email`, supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format will be `principal://iam.googleapis.com/{identity pool name}/subjects/{subject}` except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:{identity pool name}[{subject}]`", +"type": "string" +} +}, +"type": "object" +}, +"StaticMute": { +"description": "Information about the static mute state. A static mute state overrides any dynamic mute rules that apply to this finding. The static mute state can be set by a static mute rule or by muting the finding directly.", +"id": "StaticMute", +"properties": { +"applyTime": { +"description": "When the static mute was applied.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The static mute state. If the value is `MUTED` or `UNMUTED`, then the finding's overall mute state will have the same value.", +"enum": [ +"MUTE_UNSPECIFIED", +"MUTED", +"UNMUTED", +"UNDEFINED" +], +"enumDescriptions": [ +"Unspecified.", +"Finding has been muted.", +"Finding has been unmuted.", +"Finding has never been muted/unmuted." +], +"type": "string" +} +}, +"type": "object" +}, +"Subject": { +"description": "Represents a Kubernetes subject.", +"id": "Subject", +"properties": { +"kind": { +"description": "Authentication type for the subject.", +"enum": [ +"AUTH_TYPE_UNSPECIFIED", +"USER", +"SERVICEACCOUNT", +"GROUP" +], +"enumDescriptions": [ +"Authentication is not specified.", +"User with valid certificate.", +"Users managed by Kubernetes API with credentials stored as secrets.", +"Collection of users." +], +"type": "string" +}, +"name": { +"description": "Name for the subject.", +"type": "string" +}, +"ns": { +"description": "Namespace for the subject.", +"type": "string" +} +}, +"type": "object" +}, +"Subscription": { +"description": "Resource capturing the state of an organization's subscription.", +"id": "Subscription", +"properties": { +"details": { +"$ref": "Details", +"description": "The details of the most recent active subscription. If there has never been a subscription this will be empty." +}, +"name": { +"description": "The resource name of the subscription. Format: organizations/{organization}/subscription", +"type": "string" +}, +"tier": { +"description": "The tier of SCC features this organization currently has access to.", +"enum": [ +"TIER_UNSPECIFIED", +"STANDARD", +"PREMIUM", +"ENTERPRISE", +"ENTERPRISE_MC" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The standard tier.", +"The premium tier.", +"The enterprise tier.", +"The enterprise MC tier." +], +"type": "string" +} +}, +"type": "object" +}, +"TicketInfo": { +"description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding.", +"id": "TicketInfo", +"properties": { +"assignee": { +"description": "The assignee of the ticket in the ticket system.", +"type": "string" +}, +"description": { +"description": "The description of the ticket in the ticket system.", +"type": "string" +}, +"id": { +"description": "The identifier of the ticket in the ticket system.", +"type": "string" +}, +"status": { +"description": "The latest status of the ticket, as reported by the ticket system.", +"type": "string" +}, +"updateTime": { +"description": "The time when the ticket was last updated, as reported by the ticket system.", +"format": "google-datetime", +"type": "string" +}, +"uri": { +"description": "The link to the ticket in the ticket system.", +"type": "string" +} +}, +"type": "object" +}, +"ToxicCombination": { +"description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", +"id": "ToxicCombination", +"properties": { +"attackExposureScore": { +"description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", +"format": "double", +"type": "number" +}, +"relatedFindings": { +"description": "List of resource names of findings associated with this toxic combination. For example, `organizations/123/sources/456/findings/789`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VirtualMachineThreatDetectionSettings": { +"description": "Resource capturing the settings for the Virtual Machine Threat Detection service.", +"id": "VirtualMachineThreatDetectionSettings", +"properties": { +"modules": { +"additionalProperties": { +"$ref": "Config" +}, +"description": "The configurations including the state of enablement for the service's different modules. The absence of a module in the map implies its configuration is inherited from its parent's configuration.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the VirtualMachineThreatDetectionSettings. Formats: * organizations/{organization}/virtualMachineThreatDetectionSettings * folders/{folder}/virtualMachineThreatDetectionSettings * projects/{project}/virtualMachineThreatDetectionSettings", +"type": "string" +}, +"serviceAccount": { +"description": "Output only. The service account used by Virtual Machine Threat Detection detectors.", +"readOnly": true, +"type": "string" +}, +"serviceEnablementState": { +"description": "The state of enablement for the service at its level of the resource hierarchy. A DISABLED state will override all module enablement_states to DISABLED.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"INHERITED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"State is inherited from the parent resource.", +"State is enabled.", +"State is disabled." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the settings were last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Vulnerability": { +"description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", +"id": "Vulnerability", +"properties": { +"cve": { +"$ref": "Cve", +"description": "CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" +}, +"fixedPackage": { +"$ref": "Package", +"description": "The fixed package is relevant to the finding." +}, +"offendingPackage": { +"$ref": "Package", +"description": "The offending package is relevant to the finding." +}, +"securityBulletin": { +"$ref": "SecurityBulletin", +"description": "The security bulletin is relevant to this finding." +} +}, +"type": "object" +}, +"VulnerabilityCountBySeverity": { +"description": "Vulnerability count by severity.", +"id": "VulnerabilityCountBySeverity", +"properties": { +"severityToFindingCount": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Key is the Severity enum.", +"type": "object" +} +}, +"type": "object" +}, +"VulnerabilitySnapshot": { +"description": "Result containing the properties and count of a VulnerabilitySnapshot request.", +"id": "VulnerabilitySnapshot", +"properties": { +"cloudProvider": { +"description": "The cloud provider for the vulnerability snapshot.", +"enum": [ +"CLOUD_PROVIDER_UNSPECIFIED", +"GOOGLE_CLOUD_PLATFORM", +"AMAZON_WEB_SERVICES", +"MICROSOFT_AZURE" +], +"enumDescriptions": [ +"The cloud provider is unspecified.", +"The cloud provider is Google Cloud Platform.", +"The cloud provider is Amazon Web Services.", +"The cloud provider is Microsoft Azure." +], +"type": "string" +}, +"findingCount": { +"$ref": "VulnerabilityCountBySeverity", +"description": "The vulnerability count by severity." +}, +"name": { +"description": "Identifier. The vulnerability snapshot name. Format: //locations//vulnerabilitySnapshots/", +"type": "string" +}, +"snapshotTime": { +"description": "The time that the snapshot was taken.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"WebSecurityScannerSettings": { +"description": "Resource capturing the settings for the Web Security Scanner service.", +"id": "WebSecurityScannerSettings", +"properties": { +"modules": { +"additionalProperties": { +"$ref": "Config" +}, +"description": "The configurations including the state of enablement for the service's different modules. The absence of a module in the map implies its configuration is inherited from its parent's configuration.", +"type": "object" +}, +"name": { +"description": "Identifier. The resource name of the WebSecurityScannerSettings. Formats: * organizations/{organization}/webSecurityScannerSettings * folders/{folder}/webSecurityScannerSettings * projects/{project}/webSecurityScannerSettings", +"type": "string" +}, +"serviceEnablementState": { +"description": "The state of enablement for the service at its level of the resource hierarchy. A DISABLED state will override all module enablement_states to DISABLED.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"INHERITED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"State is inherited from the parent resource.", +"State is enabled.", +"State is disabled." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time the settings were last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"YaraRuleSignature": { +"description": "A signature corresponding to a YARA rule.", +"id": "YaraRuleSignature", +"properties": { +"yaraRule": { +"description": "The name of the YARA rule.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Security Command Center API", +"version": "v1beta2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/securityposture.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/securityposture.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..727fb927e56a76e608662765b93bfcf14ba43558 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/securityposture.v1.json @@ -0,0 +1,2136 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://securityposture.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Security Posture", +"description": "Defines, assesses, and monitors the overall status of your security in Google Cloud. You can use security postures to evaluate your current cloud security against defined benchmarks and help maintain the level of security that your organization requires. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/security-command-center", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "securityposture:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://securityposture.mtls.googleapis.com/", +"name": "securityposture", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"organizations": { +"resources": { +"locations": { +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "securityposture.organizations.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "securityposture.organizations.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"postureDeployments": { +"methods": { +"create": { +"description": "Creates a new PostureDeployment in a given project and location.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postureDeployments", +"httpMethod": "POST", +"id": "securityposture.organizations.locations.postureDeployments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name, in the format `organizations/{organization}/locations/global`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"postureDeploymentId": { +"description": "Required. An identifier for the posture deployment.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/postureDeployments", +"request": { +"$ref": "PostureDeployment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a PostureDeployment.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postureDeployments/{postureDeploymentsId}", +"httpMethod": "DELETE", +"id": "securityposture.organizations.locations.postureDeployments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. An opaque identifier for the current version of the posture deployment. If you provide this value, then it must match the existing value. If the values don't match, then the request fails with an ABORTED error. If you omit this value, then the posture deployment is deleted regardless of its current `etag` value.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the posture deployment, in the format `organizations/{organization}/locations/global/postureDeployments/{posture_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/postureDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details for a PostureDeployment.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postureDeployments/{postureDeploymentsId}", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.postureDeployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the PostureDeployment, in the format `organizations/{organization}/locations/global/postureDeployments/{posture_deployment_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/postureDeployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PostureDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists every PostureDeployment in a project and location.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postureDeployments", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.postureDeployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter to apply to the list of postures, in the format defined in [AIP-160: Filtering](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of posture deployments to return. The default value is `500`. If you exceed the maximum value of `1000`, then the service uses the maximum value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous request to list posture deployments. Provide this token to retrieve the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, in the format `organizations/{organization}/locations/global`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/postureDeployments", +"response": { +"$ref": "ListPostureDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing PostureDeployment. To prevent concurrent updates from overwriting each other, always follow the read-modify-write pattern when you update a posture deployment: 1. Call GetPostureDeployment to get the current version of the deployment. 2. Update the fields in the deployment as needed. 3. Call UpdatePostureDeployment to update the deployment. Ensure that your request includes the `etag` value from the GetPostureDeployment response. **Important:** If you omit the `etag` when you call UpdatePostureDeployment, then the updated deployment unconditionally overwrites the existing deployment.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postureDeployments/{postureDeploymentsId}", +"httpMethod": "PATCH", +"id": "securityposture.organizations.locations.postureDeployments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Identifier. The name of the posture deployment, in the format `organizations/{organization}/locations/global/postureDeployments/{deployment_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/postureDeployments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The fields in the PostureDeployment to update. You can update only the following fields: * PostureDeployment.posture_id * PostureDeployment.posture_revision_id", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "PostureDeployment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"postureTemplates": { +"methods": { +"get": { +"description": "Gets a single revision of a PostureTemplate.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postureTemplates/{postureTemplatesId}", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.postureTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the PostureTemplate, in the format `organizations/{organization}/locations/global/postureTemplates/{posture_template}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/postureTemplates/[^/]+$", +"required": true, +"type": "string" +}, +"revisionId": { +"description": "Optional. The posture template revision to retrieve. If not specified, the most recently updated revision is retrieved.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PostureTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists every PostureTemplate in a given organization and location.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postureTemplates", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.postureTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter to apply to the list of postures, in the format defined in [AIP-160: Filtering](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of posture templates to return. The default value is `500`. If you exceed the maximum value of `1000`, then the service uses the maximum value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous request to list posture templates. Provide this token to retrieve the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, in the format `organizations/{organization}/locations/global`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/postureTemplates", +"response": { +"$ref": "ListPostureTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"postures": { +"methods": { +"create": { +"description": "Creates a new Posture.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postures", +"httpMethod": "POST", +"id": "securityposture.organizations.locations.postures.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name, in the format `organizations/{organization}/locations/global`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"postureId": { +"description": "Required. An identifier for the posture.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/postures", +"request": { +"$ref": "Posture" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes all revisions of a Posture. You can only delete a posture if none of its revisions are deployed.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postures/{posturesId}", +"httpMethod": "DELETE", +"id": "securityposture.organizations.locations.postures.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. An opaque identifier for the current version of the posture. If you provide this value, then it must match the existing value. If the values don't match, then the request fails with an ABORTED error. If you omit this value, then the posture is deleted regardless of its current `etag` value.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the Posture, in the format `organizations/{organization}/locations/global/postures/{posture_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/postures/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"extract": { +"description": "Extracts existing policies from an organization, folder, or project, and applies them to another organization, folder, or project as a Posture. If the other organization, folder, or project already has a posture, then the result of the long-running operation is an ALREADY_EXISTS error.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postures:extract", +"httpMethod": "POST", +"id": "securityposture.organizations.locations.postures.extract", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name, in the format `organizations/{organization}/locations/global`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/postures:extract", +"request": { +"$ref": "ExtractPostureRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a single revision of a Posture.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postures/{posturesId}", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.postures.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Posture, in the format `organizations/{organization}/locations/global/postures/{posture_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/postures/[^/]+$", +"required": true, +"type": "string" +}, +"revisionId": { +"description": "Optional. The posture revision to retrieve. If not specified, the most recently updated revision is retrieved.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Posture" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the most recent revisions of all Posture resources in a specified organization and location.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postures", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.postures.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter to apply to the list of postures, in the format defined in [AIP-160: Filtering](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of postures to return. The default value is `500`. If you exceed the maximum value of `1000`, then the service uses the maximum value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous request to list postures. Provide this token to retrieve the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, in the format `organizations/{organization}/locations/global`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/postures", +"response": { +"$ref": "ListPosturesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listRevisions": { +"description": "Lists all revisions of a single Posture.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postures/{posturesId}:listRevisions", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.postures.listRevisions", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Posture, in the format `organizations/{organization}/locations/global/postures/{posture_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/postures/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of posture revisions to return. The default value is `500`. If you exceed the maximum value of `1000`, then the service uses the maximum value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token from a previous request to list posture revisions. Provide this token to retrieve the next page of results.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:listRevisions", +"response": { +"$ref": "ListPostureRevisionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a revision of an existing Posture. If the posture revision that you update is currently deployed, then a new revision of the posture is created. To prevent concurrent updates from overwriting each other, always follow the read-modify-write pattern when you update a posture: 1. Call GetPosture to get the current version of the posture. 2. Update the fields in the posture as needed. 3. Call UpdatePosture to update the posture. Ensure that your request includes the `etag` value from the GetPosture response. **Important:** If you omit the `etag` when you call UpdatePosture, then the updated posture unconditionally overwrites the existing posture.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/postures/{posturesId}", +"httpMethod": "PATCH", +"id": "securityposture.organizations.locations.postures.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Identifier. The name of the posture, in the format `organizations/{organization}/locations/global/postures/{posture_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/postures/[^/]+$", +"required": true, +"type": "string" +}, +"revisionId": { +"description": "Required. The revision ID of the posture to update. If the posture revision that you update is currently deployed, then a new revision of the posture is created.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. The fields in the Posture to update. You can update only the following fields: * Posture.description * Posture.policy_sets * Posture.state", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Posture" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"reports": { +"methods": { +"createIaCValidationReport": { +"description": "Validates a specified infrastructure-as-code (IaC) configuration, and creates a Report with the validation results. Only Terraform configurations are supported. Only modified assets are validated.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/reports:createIaCValidationReport", +"httpMethod": "POST", +"id": "securityposture.organizations.locations.reports.createIaCValidationReport", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name, in the format `organizations/{organization}/locations/global`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/reports:createIaCValidationReport", +"request": { +"$ref": "CreateIaCValidationReportRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details for a Report.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/reports/{reportsId}", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.reports.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the report, in the format `organizations/{organization}/locations/global/reports/{report_id}`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/reports/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Report" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists every Report in a given organization and location.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/reports", +"httpMethod": "GET", +"id": "securityposture.organizations.locations.reports.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter to apply to the list of reports, in the format defined in [AIP-160: Filtering](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of reports to return. The default value is `500`. If you exceed the maximum value of `1000`, then the service uses the maximum value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A pagination token returned from a previous request to list reports. Provide this token to retrieve the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, in the format `organizations/{organization}/locations/global`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/reports", +"response": { +"$ref": "ListReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "securityposture.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "securityposture.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20241212", +"rootUrl": "https://securityposture.googleapis.com/", +"schemas": { +"AssetDetails": { +"description": "Details of a Cloud Asset Inventory asset that caused a violation.", +"id": "AssetDetails", +"properties": { +"asset": { +"description": "Information about the Cloud Asset Inventory asset that violated a policy. The format of this information can change at any time without prior notice. Your application must not depend on this information in any way.", +"type": "string" +}, +"assetType": { +"description": "The type of Cloud Asset Inventory asset. For a list of asset types, see [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types).", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ComplianceStandard": { +"description": "Information about a compliance standard that the policy helps enforce.", +"id": "ComplianceStandard", +"properties": { +"control": { +"description": "Optional. The control in the compliance standard that the policy helps enforce. For example, `AC-3`.", +"type": "string" +}, +"standard": { +"description": "Optional. The compliance standard that the policy helps enforce. For example, `NIST SP 800-53`.", +"type": "string" +} +}, +"type": "object" +}, +"Constraint": { +"description": "Metadata for a constraint in a Policy.", +"id": "Constraint", +"properties": { +"orgPolicyConstraint": { +"$ref": "OrgPolicyConstraint", +"description": "Optional. A predefined organization policy constraint." +}, +"orgPolicyConstraintCustom": { +"$ref": "OrgPolicyConstraintCustom", +"description": "Optional. A custom organization policy constraint." +}, +"securityHealthAnalyticsCustomModule": { +"$ref": "SecurityHealthAnalyticsCustomModule", +"description": "Optional. A custom module for Security Health Analytics." +}, +"securityHealthAnalyticsModule": { +"$ref": "SecurityHealthAnalyticsModule", +"description": "Optional. A built-in detector for Security Health Analytics." +} +}, +"type": "object" +}, +"CreateIaCValidationReportRequest": { +"description": "Request message for CreateIaCValidationReport.", +"id": "CreateIaCValidationReportRequest", +"properties": { +"iac": { +"$ref": "IaC", +"description": "Required. The infrastructure-as-code (IaC) configuration to validate." +} +}, +"type": "object" +}, +"CustomConfig": { +"description": "A custom module configuration for Security Health Analytics. Use `CustomConfig` to create custom detectors that generate custom findings for resources that you specify.", +"id": "CustomConfig", +"properties": { +"customOutput": { +"$ref": "CustomOutputSpec", +"description": "Optional. Definitions of custom source properties to include in findings." +}, +"description": { +"description": "Optional. A description of the vulnerability or misconfiguration that the custom module detects. The description appears in each finding. Provide enough information to help an investigator understand the finding. The value must be enclosed in quotation marks.", +"type": "string" +}, +"predicate": { +"$ref": "Expr", +"description": "Required. The Common Expression Language (CEL) expression to evaluate. When the expression evaluates to `true` for a resource, a finding is generated." +}, +"recommendation": { +"description": "Required. An explanation of the steps that security teams can take to resolve the detected issue. The explanation appears in each finding.", +"type": "string" +}, +"resourceSelector": { +"$ref": "ResourceSelector", +"description": "Required. The resource types that the custom module operates on." +}, +"severity": { +"description": "Required. The severity of findings generated by the custom module.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Critical severity.", +"High severity.", +"Medium severity.", +"Low severity." +], +"type": "string" +} +}, +"type": "object" +}, +"CustomOutputSpec": { +"description": "Definitions of custom source properties that can appear in findings.", +"id": "CustomOutputSpec", +"properties": { +"properties": { +"description": "Optional. The custom source properties that can appear in findings.", +"items": { +"$ref": "Property" +}, +"type": "array" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"ExtractPostureRequest": { +"description": "Request message for ExtractPosture.", +"id": "ExtractPostureRequest", +"properties": { +"postureId": { +"description": "Required. An identifier for the posture.", +"type": "string" +}, +"workload": { +"description": "Required. The organization, folder, or project from which policies are extracted. Must be within the organization defined in parent. Use one of the following formats: * `organization/{organization_number}` * `folder/{folder_number}` * `project/{project_number}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritypostureV1CustomConstraint": { +"description": "A custom, user-defined constraint. You can apply the constraint only to the resource types specified in the constraint, and only within the organization where the constraint is defined. _When you create a custom constraint, it is not enforced automatically._ You must use an organization policy to [enforce the constraint](https://cloud.google.com/resource-manager/help/organization-policy/constraints/enforce).", +"id": "GoogleCloudSecuritypostureV1CustomConstraint", +"properties": { +"actionType": { +"description": "Whether to allow or deny the action.", +"enum": [ +"ACTION_TYPE_UNSPECIFIED", +"ALLOW", +"DENY" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Allow the action.", +"Deny the action." +], +"type": "string" +}, +"condition": { +"description": "A Common Expression Language (CEL) condition expression that must evaluate to `true` for the constraint to be enforced. The maximum length is 1000 characters. For example: + `resource.instanceName.matches('(production|test)_(.+_)?[\\d]+')`: Evaluates to `true` if the resource's `instanceName` attribute contains the following: + The prefix `production` or `test` + An underscore (`_`) + Optional: One or more characters, followed by an underscore (`_`) + One or more digits + `resource.management.auto_upgrade == true`: Evaluates to `true` if the resource's `management.auto_upgrade` attribute is `true`.", +"type": "string" +}, +"description": { +"description": "A description of the constraint. The maximum length is 2000 characters.", +"type": "string" +}, +"displayName": { +"description": "A display name for the constraint. The maximum length is 200 characters.", +"type": "string" +}, +"methodTypes": { +"description": "The types of operations that the constraint applies to.", +"items": { +"enum": [ +"METHOD_TYPE_UNSPECIFIED", +"CREATE", +"UPDATE", +"DELETE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Constraint applied when creating the resource.", +"Constraint applied when updating the resource.", +"Not supported. Constraint applied when deleting the resource." +], +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Immutable. The name of the constraint, in the format `organizations/{organization_id}/customConstraints/custom.{custom_constraint_id}`. For example, `organizations/123456789012/customConstraints/custom.createOnlyE2TypeVms`. Must contain 1 to 62 characters, excluding the prefix `organizations/{organization_id}/customConstraints/custom.`.", +"type": "string" +}, +"resourceTypes": { +"description": "Immutable. The resource type that the constraint applies to, in the format `{canonical_service_name}/{resource_type_name}`. For example, `compute.googleapis.com/Instance`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last time at which the constraint was updated or created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSecuritypostureV1PolicyRule": { +"description": "A rule that defines the allowed and denied values for an organization policy constraint.", +"id": "GoogleCloudSecuritypostureV1PolicyRule", +"properties": { +"allowAll": { +"description": "Whether to allow any value for a list constraint. Valid only for list constraints.", +"type": "boolean" +}, +"condition": { +"$ref": "Expr", +"description": "A condition that determines whether this rule is used to evaluate the policy. When set, the google.type.Expr.expression field must contain 1 to 10 subexpressions, joined by the `||` or `&&` operators. Each subexpression must use the `resource.matchTag()` or `resource.matchTagId()` Common Expression Language (CEL) function. The `resource.matchTag()` function takes the following arguments: * `key_name`: the namespaced name of the tag key, with the organization ID and a slash (`/`) as a prefix; for example, `123456789012/environment` * `value_name`: the short name of the tag value For example: `resource.matchTag('123456789012/environment, 'prod')` The `resource.matchTagId()` function takes the following arguments: * `key_id`: the permanent ID of the tag key; for example, `tagKeys/123456789012` * `value_id`: the permanent ID of the tag value; for example, `tagValues/567890123456` For example: `resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456')`" +}, +"denyAll": { +"description": "Whether to deny all values for a list constraint. Valid only for list constraints.", +"type": "boolean" +}, +"enforce": { +"description": "Whether to enforce the constraint. Valid only for boolean constraints.", +"type": "boolean" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Required for GMCs if parameters defined in constraints. Pass parameter values when policy enforcement is enabled. Ensure that parameter value types match those defined in the constraint definition. For example: { \"allowedLocations\" : [\"us-east1\", \"us-west1\"], \"allowAll\" : true }", +"type": "object" +}, +"resourceTypes": { +"$ref": "ResourceTypes", +"description": "Optional. The resource types policy can support, only used for Google managed constraint and method type is GOVERN_TAGS." +}, +"values": { +"$ref": "GoogleCloudSecuritypostureV1PolicyRuleStringValues", +"description": "The allowed and denied values for a list constraint. Valid only for list constraints." +} +}, +"type": "object" +}, +"GoogleCloudSecuritypostureV1PolicyRuleStringValues": { +"description": "The allowed and denied values for a list constraint. For all constraints, these fields can contain literal values. Optionally, you can add the `is:` prefix to these values. If the value contains a colon (`:`), then the `is:` prefix is required. Some constraints allow you to specify a portion of the resource hierarchy, known as a [_hierarchy subtree_](https://cloud.google.com/resource-manager/help/organization-policy/hierarchy-subtree), that the constraint applies to. To specify a hierarchy subtree, use the `under:` prefix, followed by a value with one of these formats: - `projects/{project_id}` (for example, `projects/tokyo-rain-123`) - `folders/{folder_id}` (for example, `folders/1234567890123`) - `organizations/{organization_id}` (for example, `organizations/123456789012`) A constraint's `supports_under` field indicates whether you can specify a hierarchy subtree. To learn which predefined constraints let you specify a hierarchy subtree, see the [constraints reference](https://cloud.google.com/resource-manager/help/organization-policy/constraints/reference).", +"id": "GoogleCloudSecuritypostureV1PolicyRuleStringValues", +"properties": { +"allowedValues": { +"description": "The allowed values for the constraint.", +"items": { +"type": "string" +}, +"type": "array" +}, +"deniedValues": { +"description": "The denied values for the constraint.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"IaC": { +"description": "Details of an infrastructure-as-code (IaC) configuration.", +"id": "IaC", +"properties": { +"tfPlan": { +"description": "Optional. A Terraform plan file, formatted as a stringified JSON object. To learn how to generate a Terraform plan file in JSON format, see [JSON output format](https://developer.hashicorp.com/terraform/internals/json-format) in the Terraform documentation.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"IaCValidationReport": { +"description": "Details of an infrastructure-as-code (IaC) validation report.", +"id": "IaCValidationReport", +"properties": { +"note": { +"description": "Additional information about the report.", +"type": "string" +}, +"violations": { +"description": "A list of every Violation found in the IaC configuration.", +"items": { +"$ref": "Violation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPostureDeploymentsResponse": { +"description": "Response message for ListPostureDeployments.", +"id": "ListPostureDeploymentsResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token. To retrieve the next page of results, call the method again with this token.", +"type": "string" +}, +"postureDeployments": { +"description": "The list of PostureDeployment resources.", +"items": { +"$ref": "PostureDeployment" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that were temporarily unavailable and could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPostureRevisionsResponse": { +"description": "Response message for ListPostureRevisions.", +"id": "ListPostureRevisionsResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token. To retrieve the next page of results, call the method again with this token.", +"type": "string" +}, +"revisions": { +"description": "The list of revisions for the Posture.", +"items": { +"$ref": "Posture" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPostureTemplatesResponse": { +"description": "Response message for ListPostureTemplates.", +"id": "ListPostureTemplatesResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token. To retrieve the next page of results, call the method again with this token.", +"type": "string" +}, +"postureTemplates": { +"description": "The list of PostureTemplate resources.", +"items": { +"$ref": "PostureTemplate" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPosturesResponse": { +"description": "Response message for ListPostures.", +"id": "ListPosturesResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token. To retrieve the next page of results, call the method again with this token.", +"type": "string" +}, +"postures": { +"description": "The list of Posture resources.", +"items": { +"$ref": "Posture" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that were temporarily unavailable and could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListReportsResponse": { +"description": "Response message for ListReports.", +"id": "ListReportsResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token. To retrieve the next page of results, call the method again with this token.", +"type": "string" +}, +"reports": { +"description": "The list of Report resources.", +"items": { +"$ref": "Report" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that were temporarily unavailable and could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Metadata for an Operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. The API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time at which the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time at which the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"errorMessage": { +"description": "Output only. An error message. Returned when a PostureDeployment enters a failure state like UPDATE_FAILED.", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Whether a request to cancel the operation has been received. For operations that have been cancelled successfully, the Operation.error field contains the error code CANCELLED.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. The status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. The server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. The name of the action executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OrgPolicyConstraint": { +"description": "A predefined organization policy constraint.", +"id": "OrgPolicyConstraint", +"properties": { +"cannedConstraintId": { +"description": "Required. A unique identifier for the constraint.", +"type": "string" +}, +"policyRules": { +"description": "Required. The rules enforced by the constraint.", +"items": { +"$ref": "GoogleCloudSecuritypostureV1PolicyRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"OrgPolicyConstraintCustom": { +"description": "A custom organization policy constraint.", +"id": "OrgPolicyConstraintCustom", +"properties": { +"customConstraint": { +"$ref": "GoogleCloudSecuritypostureV1CustomConstraint", +"description": "Required. Metadata for the constraint." +}, +"policyRules": { +"description": "Required. The rules enforced by the constraint.", +"items": { +"$ref": "GoogleCloudSecuritypostureV1PolicyRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"Policy": { +"description": "The details of a policy, including the constraints that it includes.", +"id": "Policy", +"properties": { +"complianceStandards": { +"description": "Optional. The compliance standards that the policy helps enforce.", +"items": { +"$ref": "ComplianceStandard" +}, +"type": "array" +}, +"constraint": { +"$ref": "Constraint", +"description": "Required. The constraints that the policy includes." +}, +"description": { +"description": "Optional. A description of the policy.", +"type": "string" +}, +"policyId": { +"description": "Required. A user-specified identifier for the policy. In a PolicySet, each policy must have a unique identifier.", +"type": "string" +} +}, +"type": "object" +}, +"PolicyDetails": { +"description": "Details of a policy that was violated.", +"id": "PolicyDetails", +"properties": { +"complianceStandards": { +"description": "The compliance standards that the policy maps to. For example, `CIS-2.0 1.15`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"constraint": { +"description": "Information about the constraint that was violated. The format of this information can change at any time without prior notice. Your application must not depend on this information in any way.", +"type": "string" +}, +"constraintType": { +"description": "The type of constraint that was violated.", +"enum": [ +"CONSTRAINT_TYPE_UNSPECIFIED", +"SECURITY_HEALTH_ANALYTICS_CUSTOM_MODULE", +"ORG_POLICY_CUSTOM", +"SECURITY_HEALTH_ANALYTICS_MODULE", +"ORG_POLICY", +"REGO_POLICY" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"A custom module for Security Health Analytics.", +"A custom organization policy constraint.", +"A built-in detector for Security Health Analytics.", +"A predefined organization policy constraint.", +"A custom rego policy constraint." +], +"type": "string" +}, +"description": { +"description": "A description of the policy.", +"type": "string" +} +}, +"type": "object" +}, +"PolicySet": { +"description": "A group of one or more Policy resources.", +"id": "PolicySet", +"properties": { +"description": { +"description": "Optional. A description of the policy set.", +"type": "string" +}, +"policies": { +"description": "Required. The Policy resources in the policy set. Each policy must have a policy_id that's unique within the policy set.", +"items": { +"$ref": "Policy" +}, +"type": "array" +}, +"policySetId": { +"description": "Required. An identifier for the policy set.", +"type": "string" +} +}, +"type": "object" +}, +"Posture": { +"description": "The details of a posture.", +"id": "Posture", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The user-specified annotations for the posture. For details about the values you can use in an annotation, see [AIP-148: Standard fields](https://google.aip.dev/148#annotations).", +"type": "object" +}, +"categories": { +"description": "Output only. The categories that the posture belongs to, as determined by the Security Posture API.", +"items": { +"enum": [ +"CATEGORY_UNSPECIFIED", +"AI", +"AWS", +"GCP", +"AZURE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Artificial intelligence (AI).", +"Amazon Web Services (AWS) policies.", +"Google Cloud policies.", +"Microsoft Azure policies." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. The time at which the posture was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A description of the posture.", +"type": "string" +}, +"etag": { +"description": "Optional. An opaque identifier for the current version of the posture at the specified `revision_id`. To prevent concurrent updates from overwriting each other, always provide the `etag` when you update a posture. You can also provide the `etag` when you delete a posture, to help ensure that you're deleting the intended version of the posture.", +"type": "string" +}, +"name": { +"description": "Required. Identifier. The name of the posture, in the format `organizations/{organization}/locations/global/postures/{posture_id}`.", +"type": "string" +}, +"policySets": { +"description": "Required. The PolicySet resources that the posture includes.", +"items": { +"$ref": "PolicySet" +}, +"type": "array" +}, +"reconciling": { +"description": "Output only. Whether the posture is in the process of being updated.", +"readOnly": true, +"type": "boolean" +}, +"revisionId": { +"description": "Output only. Immutable. An opaque eight-character string that identifies the revision of the posture. A posture can have multiple revisions; when you deploy a posture, you deploy a specific revision of the posture.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Required. The state of the posture at the specified `revision_id`.", +"enum": [ +"STATE_UNSPECIFIED", +"DEPRECATED", +"DRAFT", +"ACTIVE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The posture is deprecated and can no longer be deployed.", +"The posture is a draft and is not ready to deploy.", +"The posture is complete and ready to deploy." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which the posture was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PostureDeployment": { +"description": "Details for a Posture deployment on an organization, folder, or project. You can deploy at most one posture to each organization, folder, or project. The parent resource for a posture deployment is always the organization, even if the deployment applies to a folder or project.", +"id": "PostureDeployment", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The user-specified annotations for the posture deployment. For details about the values you can use in an annotation, see [AIP-148: Standard fields](https://google.aip.dev/148#annotations).", +"type": "object" +}, +"categories": { +"description": "Output only. The categories that the posture deployment belongs to, as determined by the Security Posture API.", +"items": { +"enum": [ +"CATEGORY_UNSPECIFIED", +"AI", +"AWS", +"GCP", +"AZURE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Artificial intelligence (AI).", +"Amazon Web Services (AWS) policies.", +"Google Cloud policies.", +"Microsoft Azure policies." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. The time at which the posture deployment was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A description of the posture deployment.", +"type": "string" +}, +"desiredPostureId": { +"description": "Output only. The posture ID that was specified for the deployment. Present only if the posture deployment is in a failed state.", +"readOnly": true, +"type": "string" +}, +"desiredPostureRevisionId": { +"description": "Output only. The revision ID of the posture that was specified for the deployment. Present only if the deployment is in a failed state.", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Optional. An opaque identifier for the current version of the posture deployment. To prevent concurrent updates from overwriting each other, always provide the `etag` when you update a posture deployment. You can also provide the `etag` when you delete a posture deployment, to help ensure that you're deleting the intended posture deployment.", +"type": "string" +}, +"failureMessage": { +"description": "Output only. A description of why the posture deployment failed. Present only if the deployment is in a failed state.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. Identifier. The name of the posture deployment, in the format `organizations/{organization}/locations/global/postureDeployments/{deployment_id}`.", +"type": "string" +}, +"postureId": { +"description": "Required. The posture used in the deployment, in the format `organizations/{organization}/locations/global/postures/{posture_id}`.", +"type": "string" +}, +"postureRevisionId": { +"description": "Required. The revision ID of the posture used in the deployment.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Whether the posture deployment is in the process of being updated.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The state of the posture deployment.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"DELETING", +"UPDATING", +"ACTIVE", +"CREATE_FAILED", +"UPDATE_FAILED", +"DELETE_FAILED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The posture deployment is being created.", +"The posture deployment is being deleted.", +"The posture deployment is being updated.", +"The posture deployment is active and in use.", +"The posture deployment could not be created.", +"The posture deployment could not be updated.", +"The posture deployment could not be deleted." +], +"readOnly": true, +"type": "string" +}, +"targetResource": { +"description": "Required. The organization, folder, or project where the posture is deployed. Uses one of the following formats: * `organizations/{organization_number}` * `folders/{folder_number}` * `projects/{project_number}`", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which the posture deployment was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PostureDetails": { +"description": "Details of a posture deployment.", +"id": "PostureDetails", +"properties": { +"policySet": { +"description": "The identifier for the PolicySet that the relevant policy belongs to.", +"type": "string" +}, +"posture": { +"description": "The posture used in the deployment, in the format `organizations/{organization}/locations/global/postures/{posture_id}`.", +"type": "string" +}, +"postureDeployment": { +"description": "The name of the posture deployment, in the format `organizations/{organization}/locations/global/postureDeployments/{deployment_id}`.", +"type": "string" +}, +"postureDeploymentTargetResource": { +"description": "The organization, folder, or project where the posture is deployed. Uses one of the following formats: * `organizations/{organization_number}` * `folders/{folder_number}` * `projects/{project_number}`", +"type": "string" +}, +"postureRevisionId": { +"description": "The revision ID of the posture used in the deployment.", +"type": "string" +} +}, +"type": "object" +}, +"PostureTemplate": { +"description": "The details of a posture template.", +"id": "PostureTemplate", +"properties": { +"categories": { +"description": "Output only. The categories that the posture template belongs to, as determined by the Security Posture API.", +"items": { +"enum": [ +"CATEGORY_UNSPECIFIED", +"AI", +"AWS", +"GCP", +"AZURE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Artificial intelligence (AI).", +"Amazon Web Services (AWS) policies.", +"Google Cloud policies.", +"Microsoft Azure policies." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"description": { +"description": "Output only. A description of the posture template.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Identifier. The name of the posture template, in the format `organizations/{organization}/locations/global/postureTemplates/{posture_template}`.", +"readOnly": true, +"type": "string" +}, +"policySets": { +"description": "Output only. The PolicySet resources that the posture template includes.", +"items": { +"$ref": "PolicySet" +}, +"readOnly": true, +"type": "array" +}, +"revisionId": { +"description": "Output only. A string that identifies the revision of the posture template.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the posture template at the specified `revision_id`.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"DEPRECATED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The posture template follows the latest controls and standards.", +"The posture template uses outdated controls and standards. We recommend that you use a newer revision of the posture template." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Property": { +"description": "A name-value pair used as a custom source property.", +"id": "Property", +"properties": { +"name": { +"description": "Required. The name of the custom source property.", +"type": "string" +}, +"valueExpression": { +"$ref": "Expr", +"description": "Optional. The CEL expression for the value of the custom source property. For resource properties, you can return the value of the property or a string enclosed in quotation marks." +} +}, +"type": "object" +}, +"Report": { +"description": "Details of a report.", +"id": "Report", +"properties": { +"createTime": { +"description": "Output only. The time at which the report was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"iacValidationReport": { +"$ref": "IaCValidationReport", +"description": "Output only. An infrastructure-as-code (IaC) validation report.", +"readOnly": true +}, +"name": { +"description": "Required. The name of the report, in the format `organizations/{organization}/locations/global/reports/{report_id}`.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which the report was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ResourceSelector": { +"description": "A selector for the resource types to run the detector on.", +"id": "ResourceSelector", +"properties": { +"resourceTypes": { +"description": "Required. The resource types to run the detector on. Each custom module can specify up to 5 resource types.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourceTypes": { +"description": "Set multiple resource types for one policy, eg: resourceTypes: included: - compute.googleapis.com/Instance - compute.googleapis.com/Disk Constraint definition contains an empty resource type in order to support multiple resource types in the policy. Only support Google managed constriaint and method type is GOVERN_TAGS Refer go/multi-resource-support-force-tags-gmc to get more details.", +"id": "ResourceTypes", +"properties": { +"included": { +"description": "Optional. The resource type we currently support. cloud/orgpolicy/customconstraintconfig/prod/resource_types.prototext", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SecurityHealthAnalyticsCustomModule": { +"description": "A custom module for Security Health Analytics.", +"id": "SecurityHealthAnalyticsCustomModule", +"properties": { +"config": { +"$ref": "CustomConfig", +"description": "Required. Configuration settings for the custom module." +}, +"displayName": { +"description": "Optional. The display name of the custom module. This value is used as the finding category for all the asset violation findings that the custom module returns. The display name must contain between 1 and 128 alphanumeric characters or underscores, and it must start with a lowercase letter.", +"type": "string" +}, +"id": { +"description": "Output only. Immutable. The unique identifier for the custom module. Contains 1 to 20 digits.", +"readOnly": true, +"type": "string" +}, +"moduleEnablementState": { +"description": "Whether the custom module is enabled at a specified level of the resource hierarchy.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The detector or custom module is enabled.", +"The detector or custom module is disabled." +], +"type": "string" +} +}, +"type": "object" +}, +"SecurityHealthAnalyticsModule": { +"description": "A built-in detector for Security Health Analytics.", +"id": "SecurityHealthAnalyticsModule", +"properties": { +"moduleEnablementState": { +"description": "Whether the detector is enabled at a specified level of the resource hierarchy.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The detector or custom module is enabled.", +"The detector or custom module is disabled." +], +"type": "string" +}, +"moduleName": { +"description": "Required. The name of the detector. For example, `BIGQUERY_TABLE_CMEK_DISABLED`. This field is also used as the finding category for all the asset violation findings that the detector returns.", +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Violation": { +"description": "Details of a violation.", +"id": "Violation", +"properties": { +"assetId": { +"description": "The full resource name of the asset that caused the violation. For details about the format of the full resource name for each asset type, see [Resource name format](https://cloud.google.com/asset-inventory/docs/resource-name-format).", +"type": "string" +}, +"nextSteps": { +"description": "A description of the steps that you can take to fix the violation.", +"type": "string" +}, +"policyId": { +"description": "The policy that was violated.", +"type": "string" +}, +"severity": { +"description": "The severity of the violation.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Critical severity.", +"High severity.", +"Medium severity.", +"Low severity." +], +"type": "string" +}, +"violatedAsset": { +"$ref": "AssetDetails", +"description": "Details of the Cloud Asset Inventory asset that caused the violation." +}, +"violatedPolicy": { +"$ref": "PolicyDetails", +"description": "Details of the policy that was violated." +}, +"violatedPosture": { +"$ref": "PostureDetails", +"description": "Details for the posture that was violated. This field is present only if the violated policy belongs to a deployed posture." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Security Posture API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/servicenetworking.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/servicenetworking.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..0c0ab146bee4188b7e72109ae24a7d48a59a3ae7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/servicenetworking.v1.json @@ -0,0 +1,4180 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/service.management": { +"description": "Manage your Google API service configuration" +} +} +} +}, +"basePath": "", +"baseUrl": "https://servicenetworking.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Service Networking", +"description": "Provides automatic management of network configurations necessary for certain services.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "servicenetworking:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://servicenetworking.mtls.googleapis.com/", +"name": "servicenetworking", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "servicenetworking.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "servicenetworking.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "GET", +"id": "servicenetworking.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/operations", +"httpMethod": "GET", +"id": "servicenetworking.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^operations$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +}, +"services": { +"methods": { +"addSubnetwork": { +"description": "For service producers, provisions a new subnet in a peered service's shared VPC network in the requested region and with the requested size that's expressed as a CIDR range (number of leading bits of ipV4 network mask). The method checks against the assigned allocated ranges to find a non-conflicting IP address range. The method will reuse a subnet if subsequent calls contain the same subnet name, region, and prefix length. This method will make producer's tenant project to be a shared VPC service project as needed.", +"flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}:addSubnetwork", +"httpMethod": "POST", +"id": "servicenetworking.services.addSubnetwork", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. A tenant project in the service producer organization, in the following format: services/{service}/{collection-id}/{resource-id}. {collection-id} is the cloud resource collection type that represents the tenant project. Only `projects` are supported. {resource-id} is the tenant project numeric id, such as `123456`. {service} the name of the peering service, such as `service-peering.example.com`. This service must already be enabled in the service consumer's project.", +"location": "path", +"pattern": "^services/[^/]+/[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:addSubnetwork", +"request": { +"$ref": "AddSubnetworkRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"disableVpcServiceControls": { +"description": "Disables VPC service controls for a connection.", +"flatPath": "v1/services/{servicesId}:disableVpcServiceControls", +"httpMethod": "PATCH", +"id": "servicenetworking.services.disableVpcServiceControls", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:disableVpcServiceControls", +"request": { +"$ref": "DisableVpcServiceControlsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"enableVpcServiceControls": { +"description": "Enables VPC service controls for a connection.", +"flatPath": "v1/services/{servicesId}:enableVpcServiceControls", +"httpMethod": "PATCH", +"id": "servicenetworking.services.enableVpcServiceControls", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:enableVpcServiceControls", +"request": { +"$ref": "EnableVpcServiceControlsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"searchRange": { +"description": "Service producers can use this method to find a currently unused range within consumer allocated ranges. This returned range is not reserved, and not guaranteed to remain unused. It will validate previously provided allocated ranges, find non-conflicting sub-range of requested size (expressed in number of leading bits of ipv4 network mask, as in CIDR range notation).", +"flatPath": "v1/services/{servicesId}:searchRange", +"httpMethod": "POST", +"id": "servicenetworking.services.searchRange", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. This is in a form services/{service}. {service} the name of the private access management service, for example 'service-peering.example.com'.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:searchRange", +"request": { +"$ref": "SearchRangeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"validate": { +"description": "Service producers use this method to validate if the consumer provided network, project and requested range are valid. This allows them to use a fail-fast mechanism for consumer requests, and not have to wait for AddSubnetwork operation completion to determine if user request is invalid.", +"flatPath": "v1/services/{servicesId}:validate", +"httpMethod": "POST", +"id": "servicenetworking.services.validate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. This is in a form services/{service} where {service} is the name of the private access management service. For example 'service-peering.example.com'.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:validate", +"request": { +"$ref": "ValidateConsumerConfigRequest" +}, +"response": { +"$ref": "ValidateConsumerConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +}, +"resources": { +"connections": { +"methods": { +"create": { +"description": "Creates a private connection that establishes a VPC Network Peering connection to a VPC network in the service producer's organization. The administrator of the service consumer's VPC network invokes this method. The administrator must assign one or more allocated IP ranges for provisioning subnetworks in the service producer's VPC network. This connection is used for all supported services in the service producer's organization, so it only needs to be invoked once.", +"flatPath": "v1/services/{servicesId}/connections", +"httpMethod": "POST", +"id": "servicenetworking.services.connections.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/connections", +"request": { +"$ref": "Connection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"deleteConnection": { +"description": "Deletes a private service access connection.", +"flatPath": "v1/services/{servicesId}/connections/{connectionsId}", +"httpMethod": "POST", +"id": "servicenetworking.services.connections.deleteConnection", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The private service connection that connects to a service producer organization. The name includes both the private service name and the VPC network peering name in the format of `services/{peering_service_name}/connections/{vpc_peering_name}`. For Google services that support this functionality, this is `services/servicenetworking.googleapis.com/connections/servicenetworking-googleapis-com`.", +"location": "path", +"pattern": "^services/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "DeleteConnectionRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "List the private connections that are configured in a service consumer's VPC network.", +"flatPath": "v1/services/{servicesId}/connections", +"httpMethod": "GET", +"id": "servicenetworking.services.connections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"network": { +"description": "The name of service consumer's VPC network that's connected with service producer network through a private connection. The network name must be in the following format: `projects/{project}/global/networks/{network}`. {project} is a project number, such as in `12345` that includes the VPC service consumer's VPC network. {network} is the name of the service consumer's VPC network.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`. If you specify `services/-` as the parameter value, all configured peering services are listed.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/connections", +"response": { +"$ref": "ListConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"patch": { +"description": "Updates the allocated ranges that are assigned to a connection.", +"flatPath": "v1/services/{servicesId}/connections/{connectionsId}", +"httpMethod": "PATCH", +"id": "servicenetworking.services.connections.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "If a previously defined allocated range is removed, force flag must be set to true.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "The private service connection that connects to a service producer organization. The name includes both the private service name and the VPC network peering name in the format of `services/{peering_service_name}/connections/{vpc_peering_name}`. For Google services that support this functionality, this is `services/servicenetworking.googleapis.com/connections/servicenetworking-googleapis-com`.", +"location": "path", +"pattern": "^services/[^/]+/connections/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The update mask. If this is omitted, it defaults to \"*\". You can only update the listed peering ranges.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Connection" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +}, +"dnsRecordSets": { +"methods": { +"add": { +"description": "Service producers can use this method to add DNS record sets to private DNS zones in the shared producer host project.", +"flatPath": "v1/services/{servicesId}/dnsRecordSets:add", +"httpMethod": "POST", +"id": "servicenetworking.services.dnsRecordSets.add", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsRecordSets:add", +"request": { +"$ref": "AddDnsRecordSetRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"get": { +"description": "Producers can use this method to retrieve information about the DNS record set added to the private zone inside the shared tenant host project associated with a consumer network.", +"flatPath": "v1/services/{servicesId}/dnsRecordSets:get", +"httpMethod": "GET", +"id": "servicenetworking.services.dnsRecordSets.get", +"parameterOrder": [ +"parent" +], +"parameters": { +"consumerNetwork": { +"description": "Required. The consumer network containing the record set. Must be in the form of projects/{project}/global/networks/{network}", +"location": "query", +"type": "string" +}, +"domain": { +"description": "Required. The domain name of the zone containing the recordset.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource identifying the connection which owns this collection of DNS zones in the format services/{service}.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. RecordSet Type eg. type='A'. See the list of [Supported DNS Types](https://cloud.google.com/dns/records/json-record).", +"location": "query", +"type": "string" +}, +"zone": { +"description": "Required. The name of the zone containing the record set.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/dnsRecordSets:get", +"response": { +"$ref": "DnsRecordSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "Producers can use this method to retrieve a list of available DNS RecordSets available inside the private zone on the tenant host project accessible from their network.", +"flatPath": "v1/services/{servicesId}/dnsRecordSets:list", +"httpMethod": "GET", +"id": "servicenetworking.services.dnsRecordSets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is the project number, as in '12345' {network} is the network name.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +}, +"zone": { +"description": "Required. The name of the private DNS zone in the shared producer host project from which the record set will be removed.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/dnsRecordSets:list", +"response": { +"$ref": "ListDnsRecordSetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"remove": { +"description": "Service producers can use this method to remove DNS record sets from private DNS zones in the shared producer host project.", +"flatPath": "v1/services/{servicesId}/dnsRecordSets:remove", +"httpMethod": "POST", +"id": "servicenetworking.services.dnsRecordSets.remove", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsRecordSets:remove", +"request": { +"$ref": "RemoveDnsRecordSetRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"update": { +"description": "Service producers can use this method to update DNS record sets from private DNS zones in the shared producer host project.", +"flatPath": "v1/services/{servicesId}/dnsRecordSets:update", +"httpMethod": "POST", +"id": "servicenetworking.services.dnsRecordSets.update", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsRecordSets:update", +"request": { +"$ref": "UpdateDnsRecordSetRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +}, +"dnsZones": { +"methods": { +"add": { +"description": "Service producers can use this method to add private DNS zones in the shared producer host project and matching peering zones in the consumer project.", +"flatPath": "v1/services/{servicesId}/dnsZones:add", +"httpMethod": "POST", +"id": "servicenetworking.services.dnsZones.add", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsZones:add", +"request": { +"$ref": "AddDnsZoneRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"remove": { +"description": "Service producers can use this method to remove private DNS zones in the shared producer host project and matching peering zones in the consumer project.", +"flatPath": "v1/services/{servicesId}/dnsZones:remove", +"httpMethod": "POST", +"id": "servicenetworking.services.dnsZones.remove", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsZones:remove", +"request": { +"$ref": "RemoveDnsZoneRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +}, +"projects": { +"resources": { +"global": { +"resources": { +"networks": { +"methods": { +"get": { +"description": "Service producers use this method to get the configuration of their connection including the import/export of custom routes and subnetwork routes with public IP.", +"flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}", +"httpMethod": "GET", +"id": "servicenetworking.services.projects.global.networks.get", +"parameterOrder": [ +"name" +], +"parameters": { +"includeUsedIpRanges": { +"description": "Optional. When true, include the used IP ranges as part of the GetConsumerConfig output. This includes routes created inside the service networking network, consumer network, peers of the consumer network, and reserved ranges inside the service networking network. By default, this is false", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the consumer config to retrieve in the format: `services/{service}/projects/{project}/global/networks/{network}`. {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is a project number e.g. `12345` that contains the service consumer's VPC network. {network} is the name of the service consumer's VPC network.", +"location": "path", +"pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ConsumerConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"getVpcServiceControls": { +"description": "Consumers use this method to find out the state of VPC Service Controls. The controls could be enabled or disabled for a connection.", +"flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/vpcServiceControls", +"httpMethod": "GET", +"id": "servicenetworking.services.projects.global.networks.getVpcServiceControls", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the VPC Service Controls config to retrieve in the format: `services/{service}/projects/{project}/global/networks/{network}`. {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is a project number e.g. `12345` that contains the service consumer's VPC network. {network} is the name of the service consumer's VPC network.", +"location": "path", +"pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/vpcServiceControls", +"response": { +"$ref": "VpcServiceControls" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"updateConsumerConfig": { +"description": "Service producers use this method to update the configuration of their connection including the import/export of custom routes and subnetwork routes with public IP.", +"flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}:updateConsumerConfig", +"httpMethod": "PATCH", +"id": "servicenetworking.services.projects.global.networks.updateConsumerConfig", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource identifying the connection for which the consumer config is being updated in the format: `services/{service}/projects/{project}/global/networks/{network}` {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is the number of the project that contains the service consumer's VPC network e.g. `12345`. {network} is the name of the service consumer's VPC network.", +"location": "path", +"pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}:updateConsumerConfig", +"request": { +"$ref": "UpdateConsumerConfigRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +}, +"resources": { +"dnsZones": { +"methods": { +"get": { +"description": "Service producers can use this method to retrieve a DNS zone in the shared producer host project and the matching peering zones in consumer project", +"flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/dnsZones/{dnsZonesId}", +"httpMethod": "GET", +"id": "servicenetworking.services.projects.global.networks.dnsZones.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of services/{service}/projects/{project}/global/networks/{network}/dnsZones/{zoneName} Where {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this {project} is the project number, as in '12345' {network} is the network name. {zoneName} is the DNS zone name", +"location": "path", +"pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+/dnsZones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GetDnsZoneResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "* Service producers can use this method to retrieve a list of available DNS zones in the shared producer host project and the matching peering zones in the consumer project. *", +"flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/dnsZones:list", +"httpMethod": "GET", +"id": "servicenetworking.services.projects.global.networks.dnsZones.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource identifying the connection which owns this collection of DNS zones in the format services/{service}/projects/{project}/global/networks/{network} Service: The service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. Projects: the consumer project containing the consumer network. Network: The consumer network accessible from the tenant project.", +"location": "path", +"pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsZones:list", +"response": { +"$ref": "ListDnsZonesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +}, +"peeredDnsDomains": { +"methods": { +"create": { +"description": "Creates a peered DNS domain which sends requests for records in given namespace originating in the service producer VPC network to the consumer VPC network to be resolved.", +"flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/peeredDnsDomains", +"httpMethod": "POST", +"id": "servicenetworking.services.projects.global.networks.peeredDnsDomains.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource identifying the connection for which the peered DNS domain will be created in the format: `services/{service}/projects/{project}/global/networks/{network}` {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is the number of the project that contains the service consumer's VPC network e.g. `12345`. {network} is the name of the service consumer's VPC network.", +"location": "path", +"pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/peeredDnsDomains", +"request": { +"$ref": "PeeredDnsDomain" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"delete": { +"description": "Deletes a peered DNS domain.", +"flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/peeredDnsDomains/{peeredDnsDomainsId}", +"httpMethod": "DELETE", +"id": "servicenetworking.services.projects.global.networks.peeredDnsDomains.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the peered DNS domain to delete in the format: `services/{service}/projects/{project}/global/networks/{network}/peeredDnsDomains/{name}`. {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is the number of the project that contains the service consumer's VPC network e.g. `12345`. {network} is the name of the service consumer's VPC network. {name} is the name of the peered DNS domain.", +"location": "path", +"pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+/peeredDnsDomains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +}, +"list": { +"description": "Lists peered DNS domains for a connection.", +"flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/peeredDnsDomains", +"httpMethod": "GET", +"id": "servicenetworking.services.projects.global.networks.peeredDnsDomains.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource identifying the connection which owns this collection of peered DNS domains in the format: `services/{service}/projects/{project}/global/networks/{network}`. {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is a project number e.g. `12345` that contains the service consumer's VPC network. {network} is the name of the service consumer's VPC network.", +"location": "path", +"pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/peeredDnsDomains", +"response": { +"$ref": "ListPeeredDnsDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +} +} +} +} +} +} +}, +"roles": { +"methods": { +"add": { +"description": "Service producers can use this method to add roles in the shared VPC host project. Each role is bound to the provided member. Each role must be selected from within an allowlisted set of roles. Each role is applied at only the granularity specified in the allowlist.", +"flatPath": "v1/services/{servicesId}/roles:add", +"httpMethod": "POST", +"id": "servicenetworking.services.roles.add", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. This is in a form services/{service} where {service} is the name of the private access management service. For example 'service-peering.example.com'.", +"location": "path", +"pattern": "^services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/roles:add", +"request": { +"$ref": "AddRolesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/service.management" +] +} +} +} +} +} +}, +"revision": "20250107", +"rootUrl": "https://servicenetworking.googleapis.com/", +"schemas": { +"AddDnsRecordSetMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by AddDnsRecordSet API", +"id": "AddDnsRecordSetMetadata", +"properties": {}, +"type": "object" +}, +"AddDnsRecordSetRequest": { +"description": "Request to add a record set to a private managed DNS zone in the shared producer host project.", +"id": "AddDnsRecordSetRequest", +"properties": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is the project number, as in '12345' {network} is the network name.", +"type": "string" +}, +"dnsRecordSet": { +"$ref": "DnsRecordSet", +"description": "Required. The DNS record set to add." +}, +"zone": { +"description": "Required. The name of the private DNS zone in the shared producer host project to which the record set will be added.", +"type": "string" +} +}, +"type": "object" +}, +"AddDnsZoneMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by AddDnsZone API", +"id": "AddDnsZoneMetadata", +"properties": {}, +"type": "object" +}, +"AddDnsZoneRequest": { +"description": "Request to add a private managed DNS zone in the shared producer host project and a matching DNS peering zone in the consumer project.", +"id": "AddDnsZoneRequest", +"properties": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is the project number, as in '12345' {network} is the network name.", +"type": "string" +}, +"dnsSuffix": { +"description": "Required. The DNS name suffix for the zones e.g. `example.com.`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", +"type": "string" +}, +"name": { +"description": "Required. The name for both the private zone in the shared producer host project and the peering zone in the consumer project. Must be unique within both projects. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.", +"type": "string" +} +}, +"type": "object" +}, +"AddDnsZoneResponse": { +"description": "Represents managed DNS zones created in the shared producer host and consumer projects.", +"id": "AddDnsZoneResponse", +"properties": { +"consumerPeeringZone": { +"$ref": "DnsZone", +"description": "The DNS peering zone created in the consumer project." +}, +"producerPrivateZone": { +"$ref": "DnsZone", +"description": "The private DNS zone created in the shared producer host project." +} +}, +"type": "object" +}, +"AddRolesMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by AddRoles API", +"id": "AddRolesMetadata", +"properties": {}, +"type": "object" +}, +"AddRolesRequest": { +"description": "Request for AddRoles to allow Service Producers to add roles in the shared VPC host project for them to use.", +"id": "AddRolesRequest", +"properties": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is a project number, as in '12345' {network} is a network name.", +"type": "string" +}, +"policyBinding": { +"description": "Required. List of policy bindings to add to shared VPC host project.", +"items": { +"$ref": "PolicyBinding" +}, +"type": "array" +} +}, +"type": "object" +}, +"AddRolesResponse": { +"description": "Represents IAM roles added to the shared VPC host project.", +"id": "AddRolesResponse", +"properties": { +"policyBinding": { +"description": "Required. List of policy bindings that were added to the shared VPC host project.", +"items": { +"$ref": "PolicyBinding" +}, +"type": "array" +} +}, +"type": "object" +}, +"AddSubnetworkRequest": { +"description": "Request to create a subnetwork in a previously peered service network.", +"id": "AddSubnetworkRequest", +"properties": { +"allowSubnetCidrRoutesOverlap": { +"description": "Optional. Defines the allowSubnetCidrRoutesOverlap field of the subnet, e.g. Available in alpha and beta according to [Compute API documentation](https://cloud.google.com/compute/docs/reference/rest/beta/subnetworks/insert)", +"type": "boolean" +}, +"checkServiceNetworkingUsePermission": { +"description": "Optional. The IAM permission check determines whether the consumer project has 'servicenetworking.services.use' permission or not.", +"type": "boolean" +}, +"computeIdempotencyWindow": { +"description": "Optional. Specifies a custom time bucket for Arcus subnetwork request idempotency. If two equivalent concurrent requests are made, Arcus will know to ignore the request if it has already been completed or is in progress. Only requests with matching compute_idempotency_window have guaranteed idempotency. Changing this time window between requests results in undefined behavior. Zero (or empty) value with custom_compute_idempotency_window=true specifies no idempotency (i.e. no request ID is provided to Arcus). Maximum value of 14 days (enforced by Arcus limit). For more information on how to use, see: go/revisit-sn-idempotency-window", +"format": "google-duration", +"type": "string" +}, +"consumer": { +"description": "Required. A resource that represents the service consumer, such as `projects/123456`. The project number can be different from the value in the consumer network parameter. For example, the network might be part of a Shared VPC network. In those cases, Service Networking validates that this resource belongs to that Shared VPC.", +"type": "string" +}, +"consumerNetwork": { +"description": "Required. The name of the service consumer's VPC network. The network must have an existing private connection that was provisioned through the connections.create method. The name must be in the following format: `projects/{project}/global/networks/{network}`, where {project} is a project number, such as `12345`. {network} is the name of a VPC network in the project.", +"type": "string" +}, +"description": { +"description": "Optional. Description of the subnet.", +"type": "string" +}, +"internalRange": { +"description": "Optional. The url of an Internal Range. Eg: `projects//locations/global/internalRanges/`. If specified, it means that the subnetwork cidr will be created using the combination of requested_address/ip_prefix_length. Note that the subnet cidr has to be within the cidr range of this Internal Range.", +"type": "string" +}, +"ipPrefixLength": { +"description": "Required. The prefix length of the subnet's IP address range. Use CIDR range notation, such as `29` to provision a subnet with an `x.x.x.x/29` CIDR range. The IP address range is drawn from a pool of available ranges in the service consumer's allocated range. GCE disallows subnets with prefix_length > 29", +"format": "int32", +"type": "integer" +}, +"outsideAllocationPublicIpRange": { +"description": "Optional. Enable outside allocation using public IP addresses. Any public IP range may be specified. If this field is provided, we will not use customer reserved ranges for this primary IP range.", +"type": "string" +}, +"privateIpv6GoogleAccess": { +"description": "Optional. The private IPv6 google access type for the VMs in this subnet. For information about the access types that can be set using this field, see [subnetwork](https://cloud.google.com/compute/docs/reference/rest/v1/subnetworks) in the Compute API documentation.", +"type": "string" +}, +"purpose": { +"description": "Optional. Defines the purpose field of the subnet, e.g. 'PRIVATE_SERVICE_CONNECT'. For information about the purposes that can be set using this field, see [subnetwork](https://cloud.google.com/compute/docs/reference/rest/v1/subnetworks) in the Compute API documentation.", +"type": "string" +}, +"region": { +"description": "Required. The name of a [region](/compute/docs/regions-zones) for the subnet, such `europe-west1`.", +"type": "string" +}, +"requestedAddress": { +"description": "Optional. The starting address of a range. The address must be a valid IPv4 address in the x.x.x.x format. This value combined with the IP prefix range is the CIDR range for the subnet. The range must be within the allocated range that is assigned to the private connection. If the CIDR range isn't available, the call fails.", +"type": "string" +}, +"requestedRanges": { +"description": "Optional. The name of one or more allocated IP address ranges associated with this private service access connection. If no range names are provided all ranges associated with this connection will be considered. If a CIDR range with the specified IP prefix length is not available within these ranges, the call fails.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Optional. Defines the role field of the subnet, e.g. 'ACTIVE'. For information about the roles that can be set using this field, see [subnetwork](https://cloud.google.com/compute/docs/reference/rest/v1/subnetworks) in the Compute API documentation.", +"type": "string" +}, +"secondaryIpRangeSpecs": { +"description": "Optional. A list of secondary IP ranges to be created within the new subnetwork.", +"items": { +"$ref": "SecondaryIpRangeSpec" +}, +"type": "array" +}, +"skipRequestedAddressValidation": { +"description": "Optional. Skips validating if the requested_address is in use by SN VPC\u2019s peering group. Compute Engine will still perform this check and fail the request if the requested_address is in use. Note that Compute Engine does not check for the existence of dynamic routes when performing this check. Caller of this API should make sure that there are no dynamic routes overlapping with the requested_address/prefix_length IP address range otherwise the created subnet could cause misrouting.", +"type": "boolean" +}, +"subnetwork": { +"description": "Required. A name for the new subnet. For information about the naming requirements, see [subnetwork](/compute/docs/reference/rest/v1/subnetworks) in the Compute API documentation.", +"type": "string" +}, +"subnetworkUsers": { +"description": "A list of members that are granted the `roles/servicenetworking.subnetworkAdmin` role on the subnet.", +"items": { +"type": "string" +}, +"type": "array" +}, +"useCustomComputeIdempotencyWindow": { +"description": "Optional. Specifies if Service Networking should use a custom time bucket for Arcus idempotency. If false, Service Networking uses a 300 second (5 minute) Arcus idempotency window. If true, Service Networking uses a custom idempotency window provided by the user in field compute_idempotency_window. For more information on how to use, see: go/revisit-sn-idempotency-window", +"type": "boolean" +} +}, +"type": "object" +}, +"Api": { +"description": "Api is a light-weight descriptor for an API Interface. Interfaces are also described as \"protocol buffer services\" in some contexts, such as by the \"service\" keyword in a .proto file, but they are different from API Services, which represent a concrete implementation of an interface as opposed to simply a description of methods and bindings. They are also sometimes simply referred to as \"APIs\" in other contexts, such as the name of this message itself. See https://cloud.google.com/apis/design/glossary for detailed terminology.", +"id": "Api", +"properties": { +"methods": { +"description": "The methods of this interface, in unspecified order.", +"items": { +"$ref": "Method" +}, +"type": "array" +}, +"mixins": { +"description": "Included interfaces. See Mixin.", +"items": { +"$ref": "Mixin" +}, +"type": "array" +}, +"name": { +"description": "The fully qualified name of this interface, including package name followed by the interface's simple name.", +"type": "string" +}, +"options": { +"description": "Any metadata attached to the interface.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"sourceContext": { +"$ref": "SourceContext", +"description": "Source context for the protocol buffer service represented by this message." +}, +"syntax": { +"description": "The source syntax of the service.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +}, +"version": { +"description": "A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces. ", +"type": "string" +} +}, +"type": "object" +}, +"AuthProvider": { +"description": "Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", +"id": "AuthProvider", +"properties": { +"audiences": { +"description": "The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences: - \"https://[service.name]/[google.protobuf.Api.name]\" - \"https://[service.name]/\" will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService - https://library-example.googleapis.com/ Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com", +"type": "string" +}, +"authorizationUrl": { +"description": "Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.", +"type": "string" +}, +"id": { +"description": "The unique identifier of the auth provider. It will be referred to by `AuthRequirement.provider_id`. Example: \"bookstore_auth\".", +"type": "string" +}, +"issuer": { +"description": "Identifies the principal that issued the JWT. See https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 Usually a URL or an email address. Example: https://securetoken.google.com Example: 1234567-compute@developer.gserviceaccount.com", +"type": "string" +}, +"jwksUri": { +"description": "URL of the provider's public key set to validate signature of the JWT. See [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). Optional if the key set document: - can be retrieved from [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html) of the issuer. - can be inferred from the email domain of the issuer (e.g. a Google service account). Example: https://www.googleapis.com/oauth2/v1/certs", +"type": "string" +}, +"jwtLocations": { +"description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", +"items": { +"$ref": "JwtLocation" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthRequirement": { +"description": "User-defined authentication requirements, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", +"id": "AuthRequirement", +"properties": { +"audiences": { +"description": "NOTE: This will be deprecated soon, once AuthProvider.audiences is implemented and accepted in all the runtime components. The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, only JWTs with audience \"https://Service_name/API_name\" will be accepted. For example, if no audiences are in the setting, LibraryService API will only accept JWTs with the following audience \"https://library-example.googleapis.com/google.example.library.v1.LibraryService\". Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com", +"type": "string" +}, +"providerId": { +"description": "id from authentication provider. Example: provider_id: bookstore_auth", +"type": "string" +} +}, +"type": "object" +}, +"Authentication": { +"description": "`Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read", +"id": "Authentication", +"properties": { +"providers": { +"description": "Defines a set of authentication providers that a service supports.", +"items": { +"$ref": "AuthProvider" +}, +"type": "array" +}, +"rules": { +"description": "A list of authentication rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "AuthenticationRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"AuthenticationRule": { +"description": "Authentication rules for the service. By default, if a method has any authentication requirements, every request must include a valid credential matching one of the requirements. It's an error to include more than one kind of credential in a single request. If a method doesn't have any auth requirements, request credentials will be ignored.", +"id": "AuthenticationRule", +"properties": { +"allowWithoutCredential": { +"description": "If true, the service accepts API keys without any other credential. This flag only applies to HTTP and gRPC requests.", +"type": "boolean" +}, +"oauth": { +"$ref": "OAuthRequirements", +"description": "The requirements for OAuth credentials." +}, +"requirements": { +"description": "Requirements for additional authentication providers.", +"items": { +"$ref": "AuthRequirement" +}, +"type": "array" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Backend": { +"description": "`Backend` defines the backend configuration for a service.", +"id": "Backend", +"properties": { +"rules": { +"description": "A list of API backend rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "BackendRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"BackendRule": { +"description": "A backend rule provides configuration for an individual API element.", +"id": "BackendRule", +"properties": { +"address": { +"description": "The address of the API backend. The scheme is used to determine the backend protocol and security. The following schemes are accepted: SCHEME PROTOCOL SECURITY http:// HTTP None https:// HTTP TLS grpc:// gRPC None grpcs:// gRPC TLS It is recommended to explicitly include a scheme. Leaving out the scheme may cause constrasting behaviors across platforms. If the port is unspecified, the default is: - 80 for schemes without TLS - 443 for schemes with TLS For HTTP backends, use protocol to specify the protocol version.", +"type": "string" +}, +"deadline": { +"description": "The number of seconds to wait for a response from a request. The default varies based on the request protocol and deployment environment.", +"format": "double", +"type": "number" +}, +"disableAuth": { +"description": "When disable_auth is true, a JWT ID token won't be generated and the original \"Authorization\" HTTP header will be preserved. If the header is used to carry the original token and is expected by the backend, this field must be set to true to preserve the header.", +"type": "boolean" +}, +"jwtAudience": { +"description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", +"type": "string" +}, +"minDeadline": { +"deprecated": true, +"description": "Deprecated, do not use.", +"format": "double", +"type": "number" +}, +"operationDeadline": { +"description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", +"format": "double", +"type": "number" +}, +"overridesByRequestProtocol": { +"additionalProperties": { +"$ref": "BackendRule" +}, +"description": "The map between request protocol and the backend address.", +"type": "object" +}, +"pathTranslation": { +"enum": [ +"PATH_TRANSLATION_UNSPECIFIED", +"CONSTANT_ADDRESS", +"APPEND_PATH_TO_ADDRESS" +], +"enumDescriptions": [ +"", +"Use the backend address as-is, with no modification to the path. If the URL pattern contains variables, the variable names and values will be appended to the query string. If a query string parameter and a URL pattern variable have the same name, this may result in duplicate keys in the query string. # Examples Given the following operation config: Method path: /api/company/{cid}/user/{uid} Backend address: https://example.cloudfunctions.net/getUser Requests to the following request paths will call the backend at the translated path: Request path: /api/company/widgetworks/user/johndoe Translated: https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe Request path: /api/company/widgetworks/user/johndoe?timezone=EST Translated: https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe", +"The request path will be appended to the backend address. # Examples Given the following operation config: Method path: /api/company/{cid}/user/{uid} Backend address: https://example.appspot.com Requests to the following request paths will call the backend at the translated path: Request path: /api/company/widgetworks/user/johndoe Translated: https://example.appspot.com/api/company/widgetworks/user/johndoe Request path: /api/company/widgetworks/user/johndoe?timezone=EST Translated: https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST" +], +"type": "string" +}, +"protocol": { +"description": "The protocol used for sending a request to the backend. The supported values are \"http/1.1\" and \"h2\". The default value is inferred from the scheme in the address field: SCHEME PROTOCOL http:// http/1.1 https:// http/1.1 grpc:// h2 grpcs:// h2 For secure HTTP backends (https://) that support HTTP/2, set this field to \"h2\" for improved performance. Configuring this field to non-default values is only supported for secure HTTP backends. This field will be ignored for all other backends. See https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids for more details on the supported values.", +"type": "string" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Billing": { +"description": "Billing related configuration of the service. The following example shows how to configure monitored resources and metrics for billing, `consumer_destinations` is the only supported destination and the monitored resources need at least one label key `cloud.googleapis.com/location` to indicate the location of the billing usage, using different monitored resources between monitoring and billing is recommended so they can be evolved independently: monitored_resources: - type: library.googleapis.com/billing_branch labels: - key: cloud.googleapis.com/location description: | Predefined label to support billing location restriction. - key: city description: | Custom label to define the city where the library branch is located in. - key: name description: Custom label to define the name of the library branch. metrics: - name: library.googleapis.com/book/borrowed_count metric_kind: DELTA value_type: INT64 unit: \"1\" billing: consumer_destinations: - monitored_resource: library.googleapis.com/billing_branch metrics: - library.googleapis.com/book/borrowed_count", +"id": "Billing", +"properties": { +"consumerDestinations": { +"description": "Billing configurations for sending metrics to the consumer project. There can be multiple consumer destinations per service, each one must have a different monitored resource type. A metric can be used in at most one consumer destination.", +"items": { +"$ref": "BillingDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"BillingDestination": { +"description": "Configuration of a specific billing destination (Currently only support bill against consumer project).", +"id": "BillingDestination", +"properties": { +"metrics": { +"description": "Names of the metrics to report to this billing destination. Each name must be defined in Service.metrics section.", +"items": { +"type": "string" +}, +"type": "array" +}, +"monitoredResource": { +"description": "The monitored resource type. The type must be defined in Service.monitored_resources section.", +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ClientLibrarySettings": { +"description": "Details about how and where to publish client libraries.", +"id": "ClientLibrarySettings", +"properties": { +"cppSettings": { +"$ref": "CppSettings", +"description": "Settings for C++ client libraries." +}, +"dotnetSettings": { +"$ref": "DotnetSettings", +"description": "Settings for .NET client libraries." +}, +"goSettings": { +"$ref": "GoSettings", +"description": "Settings for Go client libraries." +}, +"javaSettings": { +"$ref": "JavaSettings", +"description": "Settings for legacy Java features, supported in the Service YAML." +}, +"launchStage": { +"description": "Launch stage of this version of the API.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"nodeSettings": { +"$ref": "NodeSettings", +"description": "Settings for Node client libraries." +}, +"phpSettings": { +"$ref": "PhpSettings", +"description": "Settings for PHP client libraries." +}, +"pythonSettings": { +"$ref": "PythonSettings", +"description": "Settings for Python client libraries." +}, +"restNumericEnums": { +"description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", +"type": "boolean" +}, +"rubySettings": { +"$ref": "RubySettings", +"description": "Settings for Ruby client libraries." +}, +"version": { +"description": "Version of the API to apply these settings to. This is the full protobuf package for the API, ending in the version element. Examples: \"google.cloud.speech.v1\" and \"google.spanner.admin.database.v1\".", +"type": "string" +} +}, +"type": "object" +}, +"CloudSQLConfig": { +"description": "Cloud SQL configuration.", +"id": "CloudSQLConfig", +"properties": { +"service": { +"description": "Peering service used for peering with the Cloud SQL project.", +"type": "string" +}, +"umbrellaNetwork": { +"description": "The name of the umbrella network in the Cloud SQL umbrella project.", +"type": "string" +}, +"umbrellaProject": { +"description": "The project number of the Cloud SQL umbrella project.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"CommonLanguageSettings": { +"description": "Required information for every language.", +"id": "CommonLanguageSettings", +"properties": { +"destinations": { +"description": "The destination where API teams want this client library to be published.", +"items": { +"enum": [ +"CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", +"GITHUB", +"PACKAGE_MANAGER" +], +"enumDescriptions": [ +"Client libraries will neither be generated nor published to package managers.", +"Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", +"Publish the library to package managers like nuget.org and npmjs.com." +], +"type": "string" +}, +"type": "array" +}, +"referenceDocsUri": { +"deprecated": true, +"description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", +"type": "string" +}, +"selectiveGapicGeneration": { +"$ref": "SelectiveGapicGeneration", +"description": "Configuration for which RPCs should be generated in the GAPIC client." +} +}, +"type": "object" +}, +"Connection": { +"description": "Represents a private connection resource. A private connection is implemented as a VPC Network Peering connection between a service producer's VPC network and a service consumer's VPC network.", +"id": "Connection", +"properties": { +"network": { +"description": "The name of service consumer's VPC network that's connected with service producer network, in the following format: `projects/{project}/global/networks/{network}`. `{project}` is a project number, such as in `12345` that includes the VPC service consumer's VPC network. `{network}` is the name of the service consumer's VPC network.", +"type": "string" +}, +"peering": { +"description": "Output only. The name of the VPC Network Peering connection that was created by the service producer.", +"readOnly": true, +"type": "string" +}, +"reservedPeeringRanges": { +"description": "The name of one or more allocated IP address ranges for this service producer of type `PEERING`. Note that invoking CreateConnection method with a different range when connection is already established will not modify already provisioned service producer subnetworks. If CreateConnection method is invoked repeatedly to reconnect when peering connection had been disconnected on the consumer side, leaving this field empty will restore previously allocated IP ranges.", +"items": { +"type": "string" +}, +"type": "array" +}, +"service": { +"description": "Output only. The name of the peering service that's associated with this connection, in the following format: `services/{service name}`.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConsumerConfig": { +"description": "Configuration information for a private service access connection.", +"id": "ConsumerConfig", +"properties": { +"cloudsqlConfigs": { +"description": "Represents one or multiple Cloud SQL configurations.", +"items": { +"$ref": "CloudSQLConfig" +}, +"type": "array" +}, +"consumerExportCustomRoutes": { +"description": "Export custom routes flag value for peering from consumer to producer.", +"type": "boolean" +}, +"consumerExportSubnetRoutesWithPublicIp": { +"description": "Export subnet routes with public ip flag value for peering from consumer to producer.", +"type": "boolean" +}, +"consumerImportCustomRoutes": { +"description": "Import custom routes flag value for peering from consumer to producer.", +"type": "boolean" +}, +"consumerImportSubnetRoutesWithPublicIp": { +"description": "Import subnet routes with public ip flag value for peering from consumer to producer.", +"type": "boolean" +}, +"producerExportCustomRoutes": { +"description": "Export custom routes flag value for peering from producer to consumer.", +"type": "boolean" +}, +"producerExportSubnetRoutesWithPublicIp": { +"description": "Export subnet routes with public ip flag value for peering from producer to consumer.", +"type": "boolean" +}, +"producerImportCustomRoutes": { +"description": "Import custom routes flag value for peering from producer to consumer.", +"type": "boolean" +}, +"producerImportSubnetRoutesWithPublicIp": { +"description": "Import subnet routes with public ip flag value for peering from producer to consumer.", +"type": "boolean" +}, +"producerNetwork": { +"description": "Output only. The VPC host network that is used to host managed service instances. In the format, projects/{project}/global/networks/{network} where {project} is the project number e.g. '12345' and {network} is the network name.", +"readOnly": true, +"type": "string" +}, +"reservedRanges": { +"description": "Output only. The reserved ranges associated with this private service access connection.", +"items": { +"$ref": "GoogleCloudServicenetworkingV1ConsumerConfigReservedRange" +}, +"readOnly": true, +"type": "array" +}, +"usedIpRanges": { +"description": "Output only. The IP ranges already in use by consumer or producer", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"vpcScReferenceArchitectureEnabled": { +"description": "Output only. Indicates whether the VPC Service Controls reference architecture is configured for the producer VPC host network.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"ConsumerConfigMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by UpdateConsumerConfig API.", +"id": "ConsumerConfigMetadata", +"properties": {}, +"type": "object" +}, +"ConsumerProject": { +"description": "Represents a consumer project.", +"id": "ConsumerProject", +"properties": { +"projectNum": { +"description": "Required. Project number of the consumer that is launching the service instance. It can own the network that is peered with Google or, be a service project in an XPN where the host project has the network.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Context": { +"description": "`Context` defines which contexts an API requests. Example: context: rules: - selector: \"*\" requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using \u201cx-goog-ext--bin\u201d and \u201cx-goog-ext--jspb\u201d format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: \"google.example.library.v1.LibraryService.CreateBook\" allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here.", +"id": "Context", +"properties": { +"rules": { +"description": "A list of RPC context rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "ContextRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContextRule": { +"description": "A context rule provides information about the context for an individual API element.", +"id": "ContextRule", +"properties": { +"allowedRequestExtensions": { +"description": "A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowedResponseExtensions": { +"description": "A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.", +"items": { +"type": "string" +}, +"type": "array" +}, +"provided": { +"description": "A list of full type names of provided contexts. It is used to support propagating HTTP headers and ETags from the response extension.", +"items": { +"type": "string" +}, +"type": "array" +}, +"requested": { +"description": "A list of full type names of requested contexts, only the requested context will be made available to the backend.", +"items": { +"type": "string" +}, +"type": "array" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Control": { +"description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", +"id": "Control", +"properties": { +"environment": { +"description": "The service controller environment to use. If empty, no control plane feature (like quota and billing) will be enabled. The recommended value for most services is servicecontrol.googleapis.com", +"type": "string" +}, +"methodPolicies": { +"description": "Defines policies applying to the API methods of the service.", +"items": { +"$ref": "MethodPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"CppSettings": { +"description": "Settings for C++ client libraries.", +"id": "CppSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"CustomError": { +"description": "Customize service error responses. For example, list any service specific protobuf types that can appear in error detail lists of error responses. Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.AnotherError", +"id": "CustomError", +"properties": { +"rules": { +"description": "The list of custom error rules that apply to individual API messages. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "CustomErrorRule" +}, +"type": "array" +}, +"types": { +"description": "The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomErrorRule": { +"description": "A custom error rule.", +"id": "CustomErrorRule", +"properties": { +"isErrorType": { +"description": "Mark this message as possible payload in error response. Otherwise, objects of this type will be filtered when they appear in error payload.", +"type": "boolean" +}, +"selector": { +"description": "Selects messages to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"CustomHttpPattern": { +"description": "A custom pattern is used for defining custom HTTP verb.", +"id": "CustomHttpPattern", +"properties": { +"kind": { +"description": "The name of this custom HTTP verb.", +"type": "string" +}, +"path": { +"description": "The path matched by this custom verb.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteConnectionMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by Delete Connection API", +"id": "DeleteConnectionMetadata", +"properties": {}, +"type": "object" +}, +"DeleteConnectionRequest": { +"description": "Request to delete a private service access connection. The call will fail if there are any managed service instances using this connection.", +"id": "DeleteConnectionRequest", +"properties": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is a project number, as in '12345' {network} is a network name.", +"type": "string" +} +}, +"type": "object" +}, +"DeletePeeredDnsDomainMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by DeletePeeredDnsDomain API.", +"id": "DeletePeeredDnsDomainMetadata", +"properties": {}, +"type": "object" +}, +"DisableVpcServiceControlsRequest": { +"description": "Request to disable VPC service controls.", +"id": "DisableVpcServiceControlsRequest", +"properties": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is a project number, as in '12345' {network} is network name.", +"type": "string" +} +}, +"type": "object" +}, +"DnsRecordSet": { +"description": "Represents a DNS record set resource.", +"id": "DnsRecordSet", +"properties": { +"data": { +"description": "Required. As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) for examples see https://cloud.google.com/dns/records/json-record.", +"items": { +"type": "string" +}, +"type": "array" +}, +"domain": { +"description": "Required. The DNS or domain name of the record set, e.g. `test.example.com`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", +"type": "string" +}, +"ttl": { +"description": "Required. The period of time for which this RecordSet can be cached by resolvers.", +"format": "google-duration", +"type": "string" +}, +"type": { +"description": "Required. The identifier of a supported record type.", +"type": "string" +} +}, +"type": "object" +}, +"DnsZone": { +"description": "Represents a DNS zone resource.", +"id": "DnsZone", +"properties": { +"dnsSuffix": { +"description": "The DNS name suffix of this zone e.g. `example.com.`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", +"type": "string" +}, +"name": { +"description": "User assigned name for this resource. Must be unique within the project. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.", +"type": "string" +} +}, +"type": "object" +}, +"DnsZonePair": { +"description": "* Represents a pair of private and peering DNS zone resources. *", +"id": "DnsZonePair", +"properties": { +"consumerPeeringZone": { +"$ref": "DnsZone", +"description": "The DNS peering zone in the consumer project." +}, +"producerPrivateZone": { +"$ref": "DnsZone", +"description": "The private DNS zone in the shared producer host project." +} +}, +"type": "object" +}, +"Documentation": { +"description": "`Documentation` provides the information for describing a service. Example: documentation: summary: > The Google Calendar API gives access to most calendar features. pages: - name: Overview content: (== include google/foo/overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==) subpages: - name: Java content: (== include google/foo/tutorial_java.md ==) rules: - selector: google.calendar.Calendar.Get description: > ... - selector: google.calendar.Calendar.Put description: > ... Documentation is provided in markdown syntax. In addition to standard markdown features, definition lists, tables and fenced code blocks are supported. Section headers can be provided and are interpreted relative to the section nesting of the context where a documentation fragment is embedded. Documentation from the IDL is merged with documentation defined via the config at normalization time, where documentation provided by config rules overrides IDL provided. A number of constructs specific to the API platform are supported in documentation text. In order to reference a proto element, the following notation can be used: [fully.qualified.proto.name][] To override the display text used for the link, this can be used: [display text][fully.qualified.proto.name] Text can be excluded from doc using the following notation: (-- internal comment --) A few directives are available in documentation. Note that directives must appear on a single line to be properly identified. The `include` directive includes a markdown file from an external source: (== include path/to/file ==) The `resource_for` directive marks a message to be the resource of a collection in REST view. If it is not specified, tools attempt to infer the resource from the operations in a collection: (== resource_for v1.shelves.books ==) The directive `suppress_warning` does not directly affect documentation and is documented together with service config validation.", +"id": "Documentation", +"properties": { +"additionalIamInfo": { +"description": "Optional information about the IAM configuration. This is typically used to link to documentation about a product's IAM roles and permissions.", +"type": "string" +}, +"documentationRootUrl": { +"description": "The URL to the root of documentation.", +"type": "string" +}, +"overview": { +"description": "Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.", +"type": "string" +}, +"pages": { +"description": "The top level pages for the documentation set.", +"items": { +"$ref": "Page" +}, +"type": "array" +}, +"rules": { +"description": "A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "DocumentationRule" +}, +"type": "array" +}, +"sectionOverrides": { +"description": "Specifies section and content to override boilerplate content provided by go/api-docgen. Currently overrides following sections: 1. rest.service.client_libraries", +"items": { +"$ref": "Page" +}, +"type": "array" +}, +"serviceRootUrl": { +"description": "Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.", +"type": "string" +}, +"summary": { +"description": "A short description of what the service does. The summary must be plain text. It becomes the overview of the service displayed in Google Cloud Console. NOTE: This field is equivalent to the standard field `description`.", +"type": "string" +} +}, +"type": "object" +}, +"DocumentationRule": { +"description": "A documentation rule provides information about individual API elements.", +"id": "DocumentationRule", +"properties": { +"deprecationDescription": { +"description": "Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.", +"type": "string" +}, +"description": { +"description": "Description of the selected proto element (e.g. a message, a method, a 'service' definition, or a field). Defaults to leading & trailing comments taken from the proto source definition of the proto element.", +"type": "string" +}, +"disableReplacementWords": { +"description": "String of comma or space separated case-sensitive words for which method/field name replacement will be disabled by go/api-docgen.", +"type": "string" +}, +"selector": { +"description": "The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in \"*\", indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern \"*\" is used.", +"type": "string" +} +}, +"type": "object" +}, +"DotnetSettings": { +"description": "Settings for Dotnet client libraries.", +"id": "DotnetSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"forcedNamespaceAliases": { +"description": "Namespaces which must be aliased in snippets due to a known (but non-generator-predictable) naming collision", +"items": { +"type": "string" +}, +"type": "array" +}, +"handwrittenSignatures": { +"description": "Method signatures (in the form \"service.method(signature)\") which are provided separately, so shouldn't be generated. Snippets *calling* these methods are still generated, however.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ignoredResources": { +"description": "List of full resource types to ignore during generation. This is typically used for API-specific Location resources, which should be handled by the generator as if they were actually the common Location resources. Example entry: \"documentai.googleapis.com/Location\"", +"items": { +"type": "string" +}, +"type": "array" +}, +"renamedResources": { +"additionalProperties": { +"type": "string" +}, +"description": "Map from full resource types to the effective short name for the resource. This is used when otherwise resource named from different services would cause naming collisions. Example entry: \"datalabeling.googleapis.com/Dataset\": \"DataLabelingDataset\"", +"type": "object" +}, +"renamedServices": { +"additionalProperties": { +"type": "string" +}, +"description": "Map from original service names to renamed versions. This is used when the default generated types would cause a naming conflict. (Neither name is fully-qualified.) Example: Subscriber to SubscriberServiceApi.", +"type": "object" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EnableVpcServiceControlsRequest": { +"description": "Request to enable VPC service controls.", +"id": "EnableVpcServiceControlsRequest", +"properties": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is a project number, as in '12345' {network} is network name.", +"type": "string" +} +}, +"type": "object" +}, +"Endpoint": { +"description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", +"id": "Endpoint", +"properties": { +"aliases": { +"description": "Aliases for this endpoint, these will be served by the same UrlMap as the parent endpoint, and will be provisioned in the GCP stack for the Regional Endpoints.", +"items": { +"type": "string" +}, +"type": "array" +}, +"allowCors": { +"description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", +"type": "boolean" +}, +"name": { +"description": "The canonical name of this endpoint.", +"type": "string" +}, +"target": { +"description": "The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, \"8.8.8.8\" or \"myservice.appspot.com\".", +"type": "string" +} +}, +"type": "object" +}, +"Enum": { +"description": "Enum type definition.", +"id": "Enum", +"properties": { +"edition": { +"description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", +"type": "string" +}, +"enumvalue": { +"description": "Enum value definitions.", +"items": { +"$ref": "EnumValue" +}, +"type": "array" +}, +"name": { +"description": "Enum type name.", +"type": "string" +}, +"options": { +"description": "Protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"sourceContext": { +"$ref": "SourceContext", +"description": "The source context." +}, +"syntax": { +"description": "The source syntax.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +} +}, +"type": "object" +}, +"EnumValue": { +"description": "Enum value definition.", +"id": "EnumValue", +"properties": { +"name": { +"description": "Enum value name.", +"type": "string" +}, +"number": { +"description": "Enum value number.", +"format": "int32", +"type": "integer" +}, +"options": { +"description": "Protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExperimentalFeatures": { +"description": "Experimental features to be included during client library generation. These fields will be deprecated once the feature graduates and is enabled by default.", +"id": "ExperimentalFeatures", +"properties": { +"protobufPythonicTypesEnabled": { +"description": "Enables generation of protobuf code using new types that are more Pythonic which are included in `protobuf>=5.29.x`. This feature will be enabled by default 1 month after launching the feature in preview packages.", +"type": "boolean" +}, +"restAsyncIoEnabled": { +"description": "Enables generation of asynchronous REST clients if `rest` transport is enabled. By default, asynchronous REST clients will not be generated. This feature will be enabled by default 1 month after launching the feature in preview packages.", +"type": "boolean" +} +}, +"type": "object" +}, +"Field": { +"description": "A single field of a message type.", +"id": "Field", +"properties": { +"cardinality": { +"description": "The field cardinality.", +"enum": [ +"CARDINALITY_UNKNOWN", +"CARDINALITY_OPTIONAL", +"CARDINALITY_REQUIRED", +"CARDINALITY_REPEATED" +], +"enumDescriptions": [ +"For fields with unknown cardinality.", +"For optional fields.", +"For required fields. Proto2 syntax only.", +"For repeated fields." +], +"type": "string" +}, +"defaultValue": { +"description": "The string value of the default value of this field. Proto2 syntax only.", +"type": "string" +}, +"jsonName": { +"description": "The field JSON name.", +"type": "string" +}, +"kind": { +"description": "The field type.", +"enum": [ +"TYPE_UNKNOWN", +"TYPE_DOUBLE", +"TYPE_FLOAT", +"TYPE_INT64", +"TYPE_UINT64", +"TYPE_INT32", +"TYPE_FIXED64", +"TYPE_FIXED32", +"TYPE_BOOL", +"TYPE_STRING", +"TYPE_GROUP", +"TYPE_MESSAGE", +"TYPE_BYTES", +"TYPE_UINT32", +"TYPE_ENUM", +"TYPE_SFIXED32", +"TYPE_SFIXED64", +"TYPE_SINT32", +"TYPE_SINT64" +], +"enumDescriptions": [ +"Field type unknown.", +"Field type double.", +"Field type float.", +"Field type int64.", +"Field type uint64.", +"Field type int32.", +"Field type fixed64.", +"Field type fixed32.", +"Field type bool.", +"Field type string.", +"Field type group. Proto2 syntax only, and deprecated.", +"Field type message.", +"Field type bytes.", +"Field type uint32.", +"Field type enum.", +"Field type sfixed32.", +"Field type sfixed64.", +"Field type sint32.", +"Field type sint64." +], +"type": "string" +}, +"name": { +"description": "The field name.", +"type": "string" +}, +"number": { +"description": "The field number.", +"format": "int32", +"type": "integer" +}, +"oneofIndex": { +"description": "The index of the field type in `Type.oneofs`, for message or enumeration types. The first type has index 1; zero means the type is not in the list.", +"format": "int32", +"type": "integer" +}, +"options": { +"description": "The protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"packed": { +"description": "Whether to use alternative packed wire representation.", +"type": "boolean" +}, +"typeUrl": { +"description": "The field type URL, without the scheme, for message or enumeration types. Example: `\"type.googleapis.com/google.protobuf.Timestamp\"`.", +"type": "string" +} +}, +"type": "object" +}, +"FieldPolicy": { +"description": "Google API Policy Annotation This message defines a simple API policy annotation that can be used to annotate API request and response message fields with applicable policies. One field may have multiple applicable policies that must all be satisfied before a request can be processed. This policy annotation is used to generate the overall policy that will be used for automatic runtime policy enforcement and documentation generation.", +"id": "FieldPolicy", +"properties": { +"resourcePermission": { +"description": "Specifies the required permission(s) for the resource referred to by the field. It requires the field contains a valid resource reference, and the request must pass the permission checks to proceed. For example, \"resourcemanager.projects.get\".", +"type": "string" +}, +"resourceType": { +"description": "Specifies the resource type for the resource referred to by the field.", +"type": "string" +}, +"selector": { +"description": "Selects one or more request or response message fields to apply this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the selector must be left as empty. The service config generator will automatically fill the correct value. When a `FieldPolicy` is used in service config, the selector must be a comma-separated string with valid request or response field paths, such as \"foo.bar\" or \"foo.bar,foo.baz\".", +"type": "string" +} +}, +"type": "object" +}, +"GetDnsZoneResponse": { +"description": "Represents managed DNS zones created in the shared Producer host and consumer projects.", +"id": "GetDnsZoneResponse", +"properties": { +"consumerPeeringZone": { +"$ref": "DnsZone", +"description": "The DNS peering zone created in the consumer project." +}, +"producerPrivateZone": { +"$ref": "DnsZone", +"description": "The private DNS zone created in the shared producer host project." +} +}, +"type": "object" +}, +"GoSettings": { +"description": "Settings for Go client libraries.", +"id": "GoSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"renamedServices": { +"additionalProperties": { +"type": "string" +}, +"description": "Map of service names to renamed services. Keys are the package relative service names and values are the name to be used for the service client and call options. publishing: go_settings: renamed_services: Publisher: TopicAdmin", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudServicenetworkingV1ConsumerConfigReservedRange": { +"description": "Allocated IP address ranges for this private service access connection.", +"id": "GoogleCloudServicenetworkingV1ConsumerConfigReservedRange", +"properties": { +"address": { +"description": "The starting address of the reserved range. The address must be a valid IPv4 address in the x.x.x.x format. This value combined with the IP prefix length is the CIDR range for the reserved range.", +"type": "string" +}, +"ipPrefixLength": { +"description": "The prefix length of the reserved range.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The name of the reserved range.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudServicenetworkingV1betaConnection": { +"description": "Represents a private connection resource. A private connection is implemented as a VPC Network Peering connection between a service producer's VPC network and a service consumer's VPC network.", +"id": "GoogleCloudServicenetworkingV1betaConnection", +"properties": { +"network": { +"description": "The name of service consumer's VPC network that's connected with service producer network, in the following format: `projects/{project}/global/networks/{network}`. `{project}` is a project number, such as in `12345` that includes the VPC service consumer's VPC network. `{network}` is the name of the service consumer's VPC network.", +"type": "string" +}, +"peering": { +"description": "Output only. The name of the VPC Network Peering connection that was created by the service producer.", +"type": "string" +}, +"reservedPeeringRanges": { +"description": "The name of one or more allocated IP address ranges for this service producer of type `PEERING`. Note that invoking this method with a different range when connection is already established will not modify already provisioned service producer subnetworks.", +"items": { +"type": "string" +}, +"type": "array" +}, +"service": { +"description": "Output only. The name of the peering service that's associated with this connection, in the following format: `services/{service name}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudServicenetworkingV1betaSubnetwork": { +"description": "Represents a subnet that was created or discovered by a private access management service.", +"id": "GoogleCloudServicenetworkingV1betaSubnetwork", +"properties": { +"ipCidrRange": { +"description": "Subnetwork CIDR range in `10.x.x.x/y` format.", +"type": "string" +}, +"name": { +"description": "Subnetwork name. See https://cloud.google.com/compute/docs/vpc/", +"type": "string" +}, +"network": { +"description": "In the Shared VPC host project, the VPC network that's peered with the consumer network. For example: `projects/1234321/global/networks/host-network`", +"type": "string" +}, +"outsideAllocation": { +"description": "This is a discovered subnet that is not within the current consumer allocated ranges.", +"type": "boolean" +} +}, +"type": "object" +}, +"Http": { +"description": "Defines the HTTP configuration for an API service. It contains a list of HttpRule, each specifying the mapping of an RPC method to one or more HTTP REST API methods.", +"id": "Http", +"properties": { +"fullyDecodeReservedExpansion": { +"description": "When set to true, URL path parameters will be fully URI-decoded except in cases of single segment matches in reserved expansion, where \"%2F\" will be left encoded. The default behavior is to not decode RFC 6570 reserved characters in multi segment matches.", +"type": "boolean" +}, +"rules": { +"description": "A list of HTTP configuration rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "HttpRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"HttpRule": { +"description": "gRPC Transcoding gRPC Transcoding is a feature for mapping between a gRPC method and one or more HTTP REST endpoints. It allows developers to build a single API service that supports both gRPC APIs and REST APIs. Many systems, including [Google APIs](https://github.com/googleapis/googleapis), [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC Gateway](https://github.com/grpc-ecosystem/grpc-gateway), and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature and use it for large scale production services. `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies how different portions of the gRPC request message are mapped to the URL path, URL query parameters, and HTTP request body. It also controls how the gRPC response message is mapped to the HTTP response body. `HttpRule` is typically specified as an `google.api.http` annotation on the gRPC method. Each mapping specifies a URL path template and an HTTP method. The path template may refer to one or more fields in the gRPC request message, as long as each field is a non-repeated field with a primitive (non-message) type. The path template controls how fields of the request message are mapped to the URL path. Example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get: \"/v1/{name=messages/*}\" }; } } message GetMessageRequest { string name = 1; // Mapped to URL path. } message Message { string text = 1; // The resource content. } This enables an HTTP REST to gRPC mapping as below: - HTTP: `GET /v1/messages/123456` - gRPC: `GetMessage(name: \"messages/123456\")` Any fields in the request message which are not bound by the path template automatically become HTTP query parameters if there is no HTTP request body. For example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get:\"/v1/messages/{message_id}\" }; } } message GetMessageRequest { message SubMessage { string subfield = 1; } string message_id = 1; // Mapped to URL path. int64 revision = 2; // Mapped to URL query parameter `revision`. SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. } This enables a HTTP JSON to RPC mapping as below: - HTTP: `GET /v1/messages/123456?revision=2&sub.subfield=foo` - gRPC: `GetMessage(message_id: \"123456\" revision: 2 sub: SubMessage(subfield: \"foo\"))` Note that fields which are mapped to URL query parameters must have a primitive type or a repeated primitive type or a non-repeated message type. In the case of a repeated type, the parameter can be repeated in the URL as `...?param=A¶m=B`. In the case of a message type, each field of the message is mapped to a separate parameter, such as `...?foo.a=A&foo.b=B&foo.c=C`. For HTTP methods that allow a request body, the `body` field specifies the mapping. Consider a REST update method on the message resource collection: service Messaging { rpc UpdateMessage(UpdateMessageRequest) returns (Message) { option (google.api.http) = { patch: \"/v1/messages/{message_id}\" body: \"message\" }; } } message UpdateMessageRequest { string message_id = 1; // mapped to the URL Message message = 2; // mapped to the body } The following HTTP JSON to RPC mapping is enabled, where the representation of the JSON in the request body is determined by protos JSON encoding: - HTTP: `PATCH /v1/messages/123456 { \"text\": \"Hi!\" }` - gRPC: `UpdateMessage(message_id: \"123456\" message { text: \"Hi!\" })` The special name `*` can be used in the body mapping to define that every field not bound by the path template should be mapped to the request body. This enables the following alternative definition of the update method: service Messaging { rpc UpdateMessage(Message) returns (Message) { option (google.api.http) = { patch: \"/v1/messages/{message_id}\" body: \"*\" }; } } message Message { string message_id = 1; string text = 2; } The following HTTP JSON to RPC mapping is enabled: - HTTP: `PATCH /v1/messages/123456 { \"text\": \"Hi!\" }` - gRPC: `UpdateMessage(message_id: \"123456\" text: \"Hi!\")` Note that when using `*` in the body mapping, it is not possible to have HTTP parameters, as all fields not bound by the path end in the body. This makes this option more rarely used in practice when defining REST APIs. The common usage of `*` is in custom methods which don't use the URL at all for transferring data. It is possible to define multiple HTTP methods for one RPC by using the `additional_bindings` option. Example: service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = { get: \"/v1/messages/{message_id}\" additional_bindings { get: \"/v1/users/{user_id}/messages/{message_id}\" } }; } } message GetMessageRequest { string message_id = 1; string user_id = 2; } This enables the following two alternative HTTP JSON to RPC mappings: - HTTP: `GET /v1/messages/123456` - gRPC: `GetMessage(message_id: \"123456\")` - HTTP: `GET /v1/users/me/messages/123456` - gRPC: `GetMessage(user_id: \"me\" message_id: \"123456\")` Rules for HTTP mapping 1. Leaf request fields (recursive expansion nested messages in the request message) are classified into three categories: - Fields referred by the path template. They are passed via the URL path. - Fields referred by the HttpRule.body. They are passed via the HTTP request body. - All other fields are passed via the URL query parameters, and the parameter name is the field path in the request message. A repeated field can be represented as multiple query parameters under the same name. 2. If HttpRule.body is \"*\", there is no URL query parameter, all fields are passed via URL path and HTTP request body. 3. If HttpRule.body is omitted, there is no HTTP request body, all fields are passed via URL path and URL query parameters. Path template syntax Template = \"/\" Segments [ Verb ] ; Segments = Segment { \"/\" Segment } ; Segment = \"*\" | \"**\" | LITERAL | Variable ; Variable = \"{\" FieldPath [ \"=\" Segments ] \"}\" ; FieldPath = IDENT { \".\" IDENT } ; Verb = \":\" LITERAL ; The syntax `*` matches a single URL path segment. The syntax `**` matches zero or more URL path segments, which must be the last part of the URL path except the `Verb`. The syntax `Variable` matches part of the URL path as specified by its template. A variable template must not contain other variables. If a variable matches a single path segment, its template may be omitted, e.g. `{var}` is equivalent to `{var=*}`. The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` contains any reserved character, such characters should be percent-encoded before the matching. If a variable contains exactly one path segment, such as `\"{var}\"` or `\"{var=*}\"`, when such a variable is expanded into a URL path on the client side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The server side does the reverse decoding. Such variables show up in the [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) as `{var}`. If a variable contains multiple path segments, such as `\"{var=foo/*}\"` or `\"{var=**}\"`, when such a variable is expanded into a URL path on the client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. The server side does the reverse decoding, except \"%2F\" and \"%2f\" are left unchanged. Such variables show up in the [Discovery Document](https://developers.google.com/discovery/v1/reference/apis) as `{+var}`. Using gRPC API Service Configuration gRPC API Service Configuration (service config) is a configuration language for configuring a gRPC service to become a user-facing product. The service config is simply the YAML representation of the `google.api.Service` proto message. As an alternative to annotating your proto file, you can configure gRPC transcoding in your service config YAML files. You do this by specifying a `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same effect as the proto annotation. This can be particularly useful if you have a proto that is reused in multiple services. Note that any transcoding specified in the service config will override any matching transcoding configuration in the proto. The following example selects a gRPC method and applies an `HttpRule` to it: http: rules: - selector: example.v1.Messaging.GetMessage get: /v1/messages/{message_id}/{sub.subfield} Special notes When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the proto to JSON conversion must follow the [proto3 specification](https://developers.google.com/protocol-buffers/docs/proto3#json). While the single segment variable follows the semantics of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String Expansion, the multi segment variable **does not** follow RFC 6570 Section 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion does not expand special characters like `?` and `#`, which would lead to invalid URLs. As the result, gRPC Transcoding uses a custom encoding for multi segment variables. The path variables **must not** refer to any repeated or mapped field, because client libraries are not capable of handling such variable expansion. The path variables **must not** capture the leading \"/\" character. The reason is that the most common use case \"{var}\" does not capture the leading \"/\" character. For consistency, all path variables must share the same behavior. Repeated message fields must not be mapped to URL query parameters, because no client library can support such complicated mapping. If an API needs to use a JSON array for request or response body, it can map the request or response body to a repeated field. However, some gRPC Transcoding implementations may not support this feature.", +"id": "HttpRule", +"properties": { +"additionalBindings": { +"description": "Additional HTTP bindings for the selector. Nested bindings must not contain an `additional_bindings` field themselves (that is, the nesting may only be one level deep).", +"items": { +"$ref": "HttpRule" +}, +"type": "array" +}, +"body": { +"description": "The name of the request field whose value is mapped to the HTTP request body, or `*` for mapping all request fields not captured by the path pattern to the HTTP body, or omitted for not having any HTTP request body. NOTE: the referred field must be present at the top-level of the request message type.", +"type": "string" +}, +"custom": { +"$ref": "CustomHttpPattern", +"description": "The custom pattern is used for specifying an HTTP method that is not included in the `pattern` field, such as HEAD, or \"*\" to leave the HTTP method unspecified for this rule. The wild-card rule is useful for services that provide content to Web (HTML) clients." +}, +"delete": { +"description": "Maps to HTTP DELETE. Used for deleting a resource.", +"type": "string" +}, +"get": { +"description": "Maps to HTTP GET. Used for listing and getting information about resources.", +"type": "string" +}, +"patch": { +"description": "Maps to HTTP PATCH. Used for updating a resource.", +"type": "string" +}, +"post": { +"description": "Maps to HTTP POST. Used for creating a resource or performing an action.", +"type": "string" +}, +"put": { +"description": "Maps to HTTP PUT. Used for replacing a resource.", +"type": "string" +}, +"responseBody": { +"description": "Optional. The name of the response field whose value is mapped to the HTTP response body. When omitted, the entire response message will be used as the HTTP response body. NOTE: The referred field must be present at the top-level of the response message type.", +"type": "string" +}, +"selector": { +"description": "Selects a method to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"JavaSettings": { +"description": "Settings for Java client libraries.", +"id": "JavaSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"libraryPackage": { +"description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", +"type": "string" +}, +"serviceClassNames": { +"additionalProperties": { +"type": "string" +}, +"description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", +"type": "object" +} +}, +"type": "object" +}, +"JwtLocation": { +"description": "Specifies a location to extract JWT from an API request.", +"id": "JwtLocation", +"properties": { +"cookie": { +"description": "Specifies cookie name to extract JWT token.", +"type": "string" +}, +"header": { +"description": "Specifies HTTP header name to extract JWT token.", +"type": "string" +}, +"query": { +"description": "Specifies URL query parameter name to extract JWT token.", +"type": "string" +}, +"valuePrefix": { +"description": "The value prefix. The value format is \"value_prefix{token}\" Only applies to \"in\" header type. Must be empty for \"in\" query type. If not empty, the header value has to match (case sensitive) this prefix. If not matched, JWT will not be extracted. If matched, JWT will be extracted after the prefix is removed. For example, for \"Authorization: Bearer {JWT}\", value_prefix=\"Bearer \" with a space at the end.", +"type": "string" +} +}, +"type": "object" +}, +"LabelDescriptor": { +"description": "A description of a label.", +"id": "LabelDescriptor", +"properties": { +"description": { +"description": "A human-readable description for the label.", +"type": "string" +}, +"key": { +"description": "The label key.", +"type": "string" +}, +"valueType": { +"description": "The type of data that can be assigned to the label.", +"enum": [ +"STRING", +"BOOL", +"INT64" +], +"enumDescriptions": [ +"A variable-length string. This is the default.", +"Boolean; true or false.", +"A 64-bit signed integer." +], +"type": "string" +} +}, +"type": "object" +}, +"ListConnectionsResponse": { +"description": "ListConnectionsResponse is the response to list peering states for the given service and consumer project.", +"id": "ListConnectionsResponse", +"properties": { +"connections": { +"description": "The list of Connections.", +"items": { +"$ref": "Connection" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListDnsRecordSetsResponse": { +"description": "Represents all DNS RecordSets associated with the producer network", +"id": "ListDnsRecordSetsResponse", +"properties": { +"dnsRecordSets": { +"description": "DNS record Set Resource", +"items": { +"$ref": "DnsRecordSet" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListDnsZonesResponse": { +"description": "Represents all DNS zones in the shared producer host project and the matching peering zones in the consumer project.", +"id": "ListDnsZonesResponse", +"properties": { +"dnsZonePairs": { +"description": "All pairs of private DNS zones in the shared producer host project and the matching peering zones in the consumer project..", +"items": { +"$ref": "DnsZonePair" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPeeredDnsDomainsResponse": { +"description": "Response to list peered DNS domains for a given connection.", +"id": "ListPeeredDnsDomainsResponse", +"properties": { +"peeredDnsDomains": { +"description": "The list of peered DNS domains.", +"items": { +"$ref": "PeeredDnsDomain" +}, +"type": "array" +} +}, +"type": "object" +}, +"LogDescriptor": { +"description": "A description of a log type. Example in YAML format: - name: library.googleapis.com/activity_history description: The history of borrowing and returning library items. display_name: Activity labels: - key: /customer_id description: Identifier of a library customer", +"id": "LogDescriptor", +"properties": { +"description": { +"description": "A human-readable description of this log. This information appears in the documentation and can contain details.", +"type": "string" +}, +"displayName": { +"description": "The human-readable name for this log. This information appears on the user interface and should be concise.", +"type": "string" +}, +"labels": { +"description": "The set of labels that are available to describe a specific log entry. Runtime requests that contain labels not specified here are considered invalid.", +"items": { +"$ref": "LabelDescriptor" +}, +"type": "array" +}, +"name": { +"description": "The name of the log. It must be less than 512 characters long and can include the following characters: upper- and lower-case alphanumeric characters [A-Za-z0-9], and punctuation characters including slash, underscore, hyphen, period [/_-.].", +"type": "string" +} +}, +"type": "object" +}, +"Logging": { +"description": "Logging configuration of the service. The following example shows how to configure logs to be sent to the producer and consumer projects. In the example, the `activity_history` log is sent to both the producer and consumer projects, whereas the `purchase_history` log is only sent to the producer project. monitored_resources: - type: library.googleapis.com/branch labels: - key: /city description: The city where the library branch is located in. - key: /name description: The name of the branch. logs: - name: activity_history labels: - key: /customer_id - name: purchase_history logging: producer_destinations: - monitored_resource: library.googleapis.com/branch logs: - activity_history - purchase_history consumer_destinations: - monitored_resource: library.googleapis.com/branch logs: - activity_history", +"id": "Logging", +"properties": { +"consumerDestinations": { +"description": "Logging configurations for sending logs to the consumer project. There can be multiple consumer destinations, each one must have a different monitored resource type. A log can be used in at most one consumer destination.", +"items": { +"$ref": "LoggingDestination" +}, +"type": "array" +}, +"producerDestinations": { +"description": "Logging configurations for sending logs to the producer project. There can be multiple producer destinations, each one must have a different monitored resource type. A log can be used in at most one producer destination.", +"items": { +"$ref": "LoggingDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoggingDestination": { +"description": "Configuration of a specific logging destination (the producer project or the consumer project).", +"id": "LoggingDestination", +"properties": { +"logs": { +"description": "Names of the logs to be sent to this destination. Each name must be defined in the Service.logs section. If the log name is not a domain scoped name, it will be automatically prefixed with the service name followed by \"/\".", +"items": { +"type": "string" +}, +"type": "array" +}, +"monitoredResource": { +"description": "The monitored resource type. The type must be defined in the Service.monitored_resources section.", +"type": "string" +} +}, +"type": "object" +}, +"LongRunning": { +"description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", +"id": "LongRunning", +"properties": { +"initialPollDelay": { +"description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", +"format": "google-duration", +"type": "string" +}, +"maxPollDelay": { +"description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", +"format": "google-duration", +"type": "string" +}, +"pollDelayMultiplier": { +"description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", +"format": "float", +"type": "number" +}, +"totalPollTimeout": { +"description": "Total polling timeout. Default value: 5 minutes.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Method": { +"description": "Method represents a method of an API interface.", +"id": "Method", +"properties": { +"name": { +"description": "The simple name of this method.", +"type": "string" +}, +"options": { +"description": "Any metadata attached to the method.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"requestStreaming": { +"description": "If true, the request is streamed.", +"type": "boolean" +}, +"requestTypeUrl": { +"description": "A URL of the input message type.", +"type": "string" +}, +"responseStreaming": { +"description": "If true, the response is streamed.", +"type": "boolean" +}, +"responseTypeUrl": { +"description": "The URL of the output message type.", +"type": "string" +}, +"syntax": { +"description": "The source syntax of this method.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +} +}, +"type": "object" +}, +"MethodPolicy": { +"description": "Defines policies applying to an RPC method.", +"id": "MethodPolicy", +"properties": { +"requestPolicies": { +"description": "Policies that are applicable to the request message.", +"items": { +"$ref": "FieldPolicy" +}, +"type": "array" +}, +"selector": { +"description": "Selects a method to which these policies should be enforced, for example, \"google.pubsub.v1.Subscriber.CreateSubscription\". Refer to selector for syntax details. NOTE: This field must not be set in the proto annotation. It will be automatically filled by the service config compiler .", +"type": "string" +} +}, +"type": "object" +}, +"MethodSettings": { +"description": "Describes the generator configuration for a method.", +"id": "MethodSettings", +"properties": { +"autoPopulatedFields": { +"description": "List of top-level fields of the request message, that should be automatically populated by the client libraries based on their (google.api.field_info).format. Currently supported format: UUID4. Example of a YAML configuration: publishing: method_settings: - selector: google.example.v1.ExampleService.CreateExample auto_populated_fields: - request_id", +"items": { +"type": "string" +}, +"type": "array" +}, +"longRunning": { +"$ref": "LongRunning", +"description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" +}, +"selector": { +"description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", +"type": "string" +} +}, +"type": "object" +}, +"MetricDescriptor": { +"description": "Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable. ", +"id": "MetricDescriptor", +"properties": { +"description": { +"description": "A detailed description of the metric, which can be used in documentation.", +"type": "string" +}, +"displayName": { +"description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.", +"type": "string" +}, +"labels": { +"description": "The set of labels that can be used to describe a specific instance of this metric type. For example, the `appengine.googleapis.com/http/server/response_latencies` metric type has a label for the HTTP response code, `response_code`, so you can look at latencies for successful responses or just for responses that failed.", +"items": { +"$ref": "LabelDescriptor" +}, +"type": "array" +}, +"launchStage": { +"description": "Optional. The launch stage of the metric definition.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"metadata": { +"$ref": "MetricDescriptorMetadata", +"description": "Optional. Metadata which can be used to guide usage of the metric." +}, +"metricKind": { +"description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of `metric_kind` and `value_type` might not be supported.", +"enum": [ +"METRIC_KIND_UNSPECIFIED", +"GAUGE", +"DELTA", +"CUMULATIVE" +], +"enumDescriptions": [ +"Do not use this default value.", +"An instantaneous measurement of a value.", +"The change in a value during a time interval.", +"A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points." +], +"type": "string" +}, +"monitoredResourceTypes": { +"description": "Read-only. If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the metric descriptor.", +"type": "string" +}, +"type": { +"description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined metric types have the DNS name `custom.googleapis.com` or `external.googleapis.com`. Metric types should use a natural hierarchical grouping. For example: \"custom.googleapis.com/invoice/paid/amount\" \"external.googleapis.com/prometheus/up\" \"appengine.googleapis.com/http/server/response_latencies\"", +"type": "string" +}, +"unit": { +"description": "The units in which the metric value is reported. It is only applicable if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` defines the representation of the stored metric values. Different systems might scale the values to be more easily displayed (so a value of `0.02kBy` _might_ be displayed as `20By`, and a value of `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is `kBy`, then the value of the metric is always in thousands of bytes, no matter how it might be displayed. If you want a custom metric to record the exact number of CPU-seconds used by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005 CPU-seconds, then the value is written as `12005`. Alternatively, if you want a custom metric to record data in a more granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`), or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). The supported units are a subset of [The Unified Code for Units of Measure](https://unitsofmeasure.org/ucum.html) standard: **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second * `min` minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)** * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * `Y` yotta (10^24) * `m` milli (10^-3) * `u` micro (10^-6) * `n` nano (10^-9) * `p` pico (10^-12) * `f` femto (10^-15) * `a` atto (10^-18) * `z` zepto (10^-21) * `y` yocto (10^-24) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also includes these connectors: * `/` division or ratio (as an infix operator). For examples, `kBy/{email}` or `MiBy/10ms` (although you should almost never have `/s` in a metric `unit`; rates should always be computed at query time from the underlying cumulative or delta value). * `.` multiplication or composition (as an infix operator). For examples, `GBy.d` or `k{watt}.h`. The grammar for a unit is as follows: Expression = Component { \".\" Component } { \"/\" Component } ; Component = ( [ PREFIX ] UNIT | \"%\" ) [ Annotation ] | Annotation | \"1\" ; Annotation = \"{\" NAME \"}\" ; Notes: * `Annotation` is just a comment if it follows a `UNIT`. If the annotation is used alone, then the unit is equivalent to `1`. For examples, `{request}/s == 1/s`, `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank printable ASCII characters not containing `{` or `}`. * `1` represents a unitary [dimensionless unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such as in `1/s`. It is typically used when none of the basic units are appropriate. For example, \"new users per day\" can be represented as `1/d` or `{new-users}/d` (and a metric value `5` would mean \"5 new users). Alternatively, \"thousands of page views per day\" would be represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric value of `5.3` would mean \"5300 page views per day\"). * `%` represents dimensionless value of 1/100, and annotates values giving a percentage (so the metric values are typically in the range of 0..100, and a metric value `3` means \"3 percent\"). * `10^2.%` indicates a metric contains a ratio, typically in the range 0..1, that will be multiplied by 100 and displayed as a percentage (so a metric value `0.03` means \"3 percent\").", +"type": "string" +}, +"valueType": { +"description": "Whether the measurement is an integer, a floating-point number, etc. Some combinations of `metric_kind` and `value_type` might not be supported.", +"enum": [ +"VALUE_TYPE_UNSPECIFIED", +"BOOL", +"INT64", +"DOUBLE", +"STRING", +"DISTRIBUTION", +"MONEY" +], +"enumDescriptions": [ +"Do not use this default value.", +"The value is a boolean. This value type can be used only if the metric kind is `GAUGE`.", +"The value is a signed 64-bit integer.", +"The value is a double precision floating point number.", +"The value is a text string. This value type can be used only if the metric kind is `GAUGE`.", +"The value is a `Distribution`.", +"The value is money." +], +"type": "string" +} +}, +"type": "object" +}, +"MetricDescriptorMetadata": { +"description": "Additional annotations that can be used to guide the usage of a metric.", +"id": "MetricDescriptorMetadata", +"properties": { +"ingestDelay": { +"description": "The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors.", +"format": "google-duration", +"type": "string" +}, +"launchStage": { +"deprecated": true, +"description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"samplePeriod": { +"description": "The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period.", +"format": "google-duration", +"type": "string" +}, +"timeSeriesResourceHierarchyLevel": { +"description": "The scope of the timeseries data of the metric.", +"items": { +"enum": [ +"TIME_SERIES_RESOURCE_HIERARCHY_LEVEL_UNSPECIFIED", +"PROJECT", +"ORGANIZATION", +"FOLDER" +], +"enumDescriptions": [ +"Do not use this default value.", +"Scopes a metric to a project.", +"Scopes a metric to an organization.", +"Scopes a metric to a folder." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"MetricRule": { +"description": "Bind API methods to metrics. Binding a method to a metric causes that metric's configured quota behaviors to apply to the method call.", +"id": "MetricRule", +"properties": { +"metricCosts": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Metrics to update when the selected methods are called, and the associated cost applied to each metric. The key of the map is the metric name, and the values are the amount increased for the metric against which the quota limits are defined. The value must not be negative.", +"type": "object" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"Mixin": { +"description": "Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows: - If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method. - Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited. - If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the root path if specified. Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v1/{resource=**}:getAcl\"; } } package google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = \"/v2/{resource=**}\"; } } Example of a mixin configuration: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/{resource=**}:getAcl\"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\"; } ... }", +"id": "Mixin", +"properties": { +"name": { +"description": "The fully qualified name of the interface which is included.", +"type": "string" +}, +"root": { +"description": "If non-empty specifies a path under which inherited HTTP paths are rooted.", +"type": "string" +} +}, +"type": "object" +}, +"MonitoredResourceDescriptor": { +"description": "An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of `\"gce_instance\"` and specifies the use of the labels `\"instance_id\"` and `\"zone\"` to identify particular VM instances. Different APIs can support different monitored resource types. APIs generally provide a `list` method that returns the monitored resource descriptors used by the API. ", +"id": "MonitoredResourceDescriptor", +"properties": { +"description": { +"description": "Optional. A detailed description of the monitored resource type that might be used in documentation.", +"type": "string" +}, +"displayName": { +"description": "Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, `\"Google Cloud SQL Database\"`.", +"type": "string" +}, +"labels": { +"description": "Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels `\"database_id\"` and `\"zone\"`.", +"items": { +"$ref": "LabelDescriptor" +}, +"type": "array" +}, +"launchStage": { +"description": "Optional. The launch stage of the monitored resource definition.", +"enum": [ +"LAUNCH_STAGE_UNSPECIFIED", +"UNIMPLEMENTED", +"PRELAUNCH", +"EARLY_ACCESS", +"ALPHA", +"BETA", +"GA", +"DEPRECATED" +], +"enumDescriptions": [ +"Do not use this default value.", +"The feature is not yet implemented. Users can not use it.", +"Prelaunch features are hidden from users and are only visible internally.", +"Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", +"Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", +"Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", +"GA features are open to all developers and are considered stable and fully qualified for production use.", +"Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." +], +"type": "string" +}, +"name": { +"description": "Optional. The resource name of the monitored resource descriptor: `\"projects/{project_id}/monitoredResourceDescriptors/{type}\"` where {type} is the value of the `type` field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format `\"monitoredResourceDescriptors/{type}\"`.", +"type": "string" +}, +"type": { +"description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitored resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", +"type": "string" +} +}, +"type": "object" +}, +"Monitoring": { +"description": "Monitoring configuration of the service. The example below shows how to configure monitored resources and metrics for monitoring. In the example, a monitored resource and two metrics are defined. The `library.googleapis.com/book/returned_count` metric is sent to both producer and consumer projects, whereas the `library.googleapis.com/book/num_overdue` metric is only sent to the consumer project. monitored_resources: - type: library.googleapis.com/Branch display_name: \"Library Branch\" description: \"A branch of a library.\" launch_stage: GA labels: - key: resource_container description: \"The Cloud container (ie. project id) for the Branch.\" - key: location description: \"The location of the library branch.\" - key: branch_id description: \"The id of the branch.\" metrics: - name: library.googleapis.com/book/returned_count display_name: \"Books Returned\" description: \"The count of books that have been returned.\" launch_stage: GA metric_kind: DELTA value_type: INT64 unit: \"1\" labels: - key: customer_id description: \"The id of the customer.\" - name: library.googleapis.com/book/num_overdue display_name: \"Books Overdue\" description: \"The current number of overdue books.\" launch_stage: GA metric_kind: GAUGE value_type: INT64 unit: \"1\" labels: - key: customer_id description: \"The id of the customer.\" monitoring: producer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count consumer_destinations: - monitored_resource: library.googleapis.com/Branch metrics: - library.googleapis.com/book/returned_count - library.googleapis.com/book/num_overdue", +"id": "Monitoring", +"properties": { +"consumerDestinations": { +"description": "Monitoring configurations for sending metrics to the consumer project. There can be multiple consumer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.", +"items": { +"$ref": "MonitoringDestination" +}, +"type": "array" +}, +"producerDestinations": { +"description": "Monitoring configurations for sending metrics to the producer project. There can be multiple producer destinations. A monitored resource type may appear in multiple monitoring destinations if different aggregations are needed for different sets of metrics associated with that monitored resource type. A monitored resource and metric pair may only be used once in the Monitoring configuration.", +"items": { +"$ref": "MonitoringDestination" +}, +"type": "array" +} +}, +"type": "object" +}, +"MonitoringDestination": { +"description": "Configuration of a specific monitoring destination (the producer project or the consumer project).", +"id": "MonitoringDestination", +"properties": { +"metrics": { +"description": "Types of the metrics to report to this monitoring destination. Each type must be defined in Service.metrics section.", +"items": { +"type": "string" +}, +"type": "array" +}, +"monitoredResource": { +"description": "The monitored resource type. The type must be defined in Service.monitored_resources section.", +"type": "string" +} +}, +"type": "object" +}, +"NodeSettings": { +"description": "Settings for Node client libraries.", +"id": "NodeSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"OAuthRequirements": { +"description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", +"id": "OAuthRequirements", +"properties": { +"canonicalScopes": { +"description": "The list of publicly documented OAuth scopes that are allowed access. An OAuth token containing any of these scopes will be accepted. Example: canonical_scopes: https://www.googleapis.com/auth/calendar, https://www.googleapis.com/auth/calendar.read", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"Option": { +"description": "A protocol buffer option, which can be attached to a message, field, enumeration, etc.", +"id": "Option", +"properties": { +"name": { +"description": "The option's name. For protobuf built-in options (options defined in descriptor.proto), this is the short name. For example, `\"map_entry\"`. For custom options, it should be the fully-qualified name. For example, `\"google.api.http\"`.", +"type": "string" +}, +"value": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The option's value packed in an Any message. If the value is a primitive, the corresponding wrapper type defined in google/protobuf/wrappers.proto should be used. If the value is an enum, it should be stored as an int32 value using the google.protobuf.Int32Value type.", +"type": "object" +} +}, +"type": "object" +}, +"Page": { +"description": "Represents a documentation page. A page can contain subpages to represent nested documentation set structure.", +"id": "Page", +"properties": { +"content": { +"description": "The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file. The content can be used to produce the documentation page such as HTML format page.", +"type": "string" +}, +"name": { +"description": "The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.", +"type": "string" +}, +"subpages": { +"description": "Subpages of this page. The order of subpages specified here will be honored in the generated docset.", +"items": { +"$ref": "Page" +}, +"type": "array" +} +}, +"type": "object" +}, +"PartialDeleteConnectionMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by Partial Delete Connection API", +"id": "PartialDeleteConnectionMetadata", +"properties": {}, +"type": "object" +}, +"PeeredDnsDomain": { +"description": "DNS domain suffix for which requests originating in the producer VPC network are resolved in the associated consumer VPC network.", +"id": "PeeredDnsDomain", +"properties": { +"dnsSuffix": { +"description": "The DNS domain name suffix e.g. `example.com.`. Cloud DNS requires that a DNS suffix ends with a trailing dot.", +"type": "string" +}, +"name": { +"description": "User assigned name for this resource. Must be unique within the consumer network. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.", +"type": "string" +} +}, +"type": "object" +}, +"PeeredDnsDomainMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by CreatePeeredDnsDomain API.", +"id": "PeeredDnsDomainMetadata", +"properties": {}, +"type": "object" +}, +"PhpSettings": { +"description": "Settings for Php client libraries.", +"id": "PhpSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"PolicyBinding": { +"description": "Grouping of IAM role and IAM member.", +"id": "PolicyBinding", +"properties": { +"member": { +"description": "Required. Member to bind the role with. See /iam/docs/reference/rest/v1/Policy#Binding for how to format each member. Eg. - user:myuser@mydomain.com - serviceAccount:my-service-account@app.gserviceaccount.com", +"type": "string" +}, +"role": { +"description": "Required. Role to apply. Only allowlisted roles can be used at the specified granularity. The role must be one of the following: - 'roles/container.hostServiceAgentUser' applied on the shared VPC host project - 'roles/compute.securityAdmin' applied on the shared VPC host project - 'roles/compute.networkAdmin' applied on the shared VPC host project - 'roles/tpu.xpnAgent' applied on the shared VPC host project - 'roles/dns.admin' applied on the shared VPC host project - 'roles/logging.admin' applied on the shared VPC host project - 'roles/monitoring.viewer' applied on the shared VPC host project - 'roles/servicemanagement.quotaViewer' applied on the shared VPC host project", +"type": "string" +} +}, +"type": "object" +}, +"Publishing": { +"description": "This message configures the settings for publishing [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from the service config.", +"id": "Publishing", +"properties": { +"apiShortName": { +"description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", +"type": "string" +}, +"codeownerGithubTeams": { +"description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", +"items": { +"type": "string" +}, +"type": "array" +}, +"docTagPrefix": { +"description": "A prefix used in sample code when demarking regions to be included in documentation.", +"type": "string" +}, +"documentationUri": { +"description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", +"type": "string" +}, +"githubLabel": { +"description": "GitHub label to apply to issues and pull requests opened for this API.", +"type": "string" +}, +"librarySettings": { +"description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", +"items": { +"$ref": "ClientLibrarySettings" +}, +"type": "array" +}, +"methodSettings": { +"description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", +"items": { +"$ref": "MethodSettings" +}, +"type": "array" +}, +"newIssueUri": { +"description": "Link to a *public* URI where users can report issues. Example: https://issuetracker.google.com/issues/new?component=190865&template=1161103", +"type": "string" +}, +"organization": { +"description": "For whom the client library is being published.", +"enum": [ +"CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", +"CLOUD", +"ADS", +"PHOTOS", +"STREET_VIEW", +"SHOPPING", +"GEO", +"GENERATIVE_AI" +], +"enumDescriptions": [ +"Not useful.", +"Google Cloud Platform Org.", +"Ads (Advertising) Org.", +"Photos Org.", +"Street View Org.", +"Shopping Org.", +"Geo Org.", +"Generative AI - https://developers.generativeai.google" +], +"type": "string" +}, +"protoReferenceDocumentationUri": { +"description": "Optional link to proto reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rpc", +"type": "string" +}, +"restReferenceDocumentationUri": { +"description": "Optional link to REST reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rest", +"type": "string" +} +}, +"type": "object" +}, +"PythonSettings": { +"description": "Settings for Python client libraries.", +"id": "PythonSettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +}, +"experimentalFeatures": { +"$ref": "ExperimentalFeatures", +"description": "Experimental features to be included during client library generation." +} +}, +"type": "object" +}, +"Quota": { +"description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", +"id": "Quota", +"properties": { +"limits": { +"description": "List of QuotaLimit definitions for the service.", +"items": { +"$ref": "QuotaLimit" +}, +"type": "array" +}, +"metricRules": { +"description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", +"items": { +"$ref": "MetricRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"QuotaLimit": { +"description": "`QuotaLimit` defines a specific limit that applies over a specified duration for a limit type. There can be at most one limit for a duration and limit type combination defined within a `QuotaGroup`.", +"id": "QuotaLimit", +"properties": { +"defaultLimit": { +"description": "Default number of tokens that can be consumed during the specified duration. This is the number of tokens assigned when a client application developer activates the service for his/her project. Specifying a value of 0 will block all requests. This can be used if you are provisioning quota to selected consumers and blocking others. Similarly, a value of -1 will indicate an unlimited quota. No other negative values are allowed. Used by group-based quotas only.", +"format": "int64", +"type": "string" +}, +"description": { +"description": "Optional. User-visible, extended description for this quota limit. Should be used only when more context is needed to understand this limit than provided by the limit's display name (see: `display_name`).", +"type": "string" +}, +"displayName": { +"description": "User-visible display name for this limit. Optional. If not set, the UI will provide a default display name based on the quota configuration. This field can be used to override the default display name generated from the configuration.", +"type": "string" +}, +"duration": { +"description": "Duration of this limit in textual notation. Must be \"100s\" or \"1d\". Used by group-based quotas only.", +"type": "string" +}, +"freeTier": { +"description": "Free tier value displayed in the Developers Console for this limit. The free tier is the number of tokens that will be subtracted from the billed amount when billing is enabled. This field can only be set on a limit with duration \"1d\", in a billable group; it is invalid on any other limit. If this field is not set, it defaults to 0, indicating that there is no free tier for this service. Used by group-based quotas only.", +"format": "int64", +"type": "string" +}, +"maxLimit": { +"description": "Maximum number of tokens that can be consumed during the specified duration. Client application developers can override the default limit up to this maximum. If specified, this value cannot be set to a value less than the default limit. If not specified, it is set to the default limit. To allow clients to apply overrides with no upper bound, set this to -1, indicating unlimited maximum quota. Used by group-based quotas only.", +"format": "int64", +"type": "string" +}, +"metric": { +"description": "The name of the metric this quota limit applies to. The quota limits with the same metric will be checked together during runtime. The metric must be defined within the service config.", +"type": "string" +}, +"name": { +"description": "Name of the quota limit. The name must be provided, and it must be unique within the service. The name can only include alphanumeric characters as well as '-'. The maximum length of the limit name is 64 characters.", +"type": "string" +}, +"unit": { +"description": "Specify the unit of the quota limit. It uses the same syntax as MetricDescriptor.unit. The supported unit kinds are determined by the quota backend system. Here are some examples: * \"1/min/{project}\" for quota per minute per project. Note: the order of unit components is insignificant. The \"1\" at the beginning is required to follow the metric unit syntax.", +"type": "string" +}, +"values": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Tiered limit values. You must specify this as a key:value pair, with an integer value that is the maximum number of requests allowed for the specified unit. Currently only STANDARD is supported.", +"type": "object" +} +}, +"type": "object" +}, +"Range": { +"description": "Represents a found unused range.", +"id": "Range", +"properties": { +"ipCidrRange": { +"description": "CIDR range in \"10.x.x.x/y\" format that is within the allocated ranges and currently unused.", +"type": "string" +}, +"network": { +"description": "In the Shared VPC host project, the VPC network that's peered with the consumer network. For example: `projects/1234321/global/networks/host-network`", +"type": "string" +} +}, +"type": "object" +}, +"RangeReservation": { +"description": "Represents a range reservation.", +"id": "RangeReservation", +"properties": { +"ipPrefixLength": { +"description": "Required. The size of the desired subnet. Use usual CIDR range notation. For example, '29' to find unused x.x.x.x/29 CIDR range. The goal is to determine if one of the allocated ranges has enough free space for a subnet of the requested size. GCE disallows subnets with prefix_length > 29", +"format": "int32", +"type": "integer" +}, +"requestedRanges": { +"description": "Optional. The name of one or more allocated IP address ranges associated with this private service access connection. If no range names are provided all ranges associated with this connection will be considered. If a CIDR range with the specified IP prefix length is not available within these ranges the validation fails.", +"items": { +"type": "string" +}, +"type": "array" +}, +"secondaryRangeIpPrefixLengths": { +"description": "Optional. The size of the desired secondary ranges for the subnet. Use usual CIDR range notation. For example, '29' to find unused x.x.x.x/29 CIDR range. The goal is to determine that the allocated ranges have enough free space for all the requested secondary ranges. GCE disallows subnets with prefix_length > 29", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"subnetworkCandidates": { +"description": "Optional. List of subnetwork candidates to validate. The required input fields are `name`, `network`, and `region`. Subnetworks from this list which exist will be returned in the response with the `ip_cidr_range`, `secondary_ip_cider_ranges`, and `outside_allocation` fields set.", +"items": { +"$ref": "Subnetwork" +}, +"type": "array" +} +}, +"type": "object" +}, +"RemoveDnsRecordSetMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by RemoveDnsRecordSet API", +"id": "RemoveDnsRecordSetMetadata", +"properties": {}, +"type": "object" +}, +"RemoveDnsRecordSetRequest": { +"description": "Request to remove a record set from a private managed DNS zone in the shared producer host project. The name, type, ttl, and data values must all exactly match an existing record set in the specified zone.", +"id": "RemoveDnsRecordSetRequest", +"properties": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is the project number, as in '12345' {network} is the network name.", +"type": "string" +}, +"dnsRecordSet": { +"$ref": "DnsRecordSet", +"description": "Required. The DNS record set to remove." +}, +"zone": { +"description": "Required. The name of the private DNS zone in the shared producer host project from which the record set will be removed.", +"type": "string" +} +}, +"type": "object" +}, +"RemoveDnsRecordSetResponse": { +"description": "Blank message response type for RemoveDnsRecordSet API", +"id": "RemoveDnsRecordSetResponse", +"properties": {}, +"type": "object" +}, +"RemoveDnsZoneMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by RemoveDnsZone API", +"id": "RemoveDnsZoneMetadata", +"properties": {}, +"type": "object" +}, +"RemoveDnsZoneRequest": { +"description": "Request to remove a private managed DNS zone in the shared producer host project and a matching DNS peering zone in the consumer project.", +"id": "RemoveDnsZoneRequest", +"properties": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is the project number, as in '12345' {network} is the network name.", +"type": "string" +}, +"name": { +"description": "Required. The name for both the private zone in the shared producer host project and the peering zone in the consumer project.", +"type": "string" +} +}, +"type": "object" +}, +"RemoveDnsZoneResponse": { +"description": "Blank message response type for RemoveDnsZone API", +"id": "RemoveDnsZoneResponse", +"properties": {}, +"type": "object" +}, +"Route": { +"description": "Represents a route that was created or discovered by a private access management service.", +"id": "Route", +"properties": { +"destRange": { +"description": "Destination CIDR range that this route applies to.", +"type": "string" +}, +"name": { +"description": "Route name. See https://cloud.google.com/vpc/docs/routes", +"type": "string" +}, +"network": { +"description": "Fully-qualified URL of the VPC network in the producer host tenant project that this route applies to. For example: `projects/123456/global/networks/host-network`", +"type": "string" +}, +"nextHopGateway": { +"description": "Fully-qualified URL of the gateway that should handle matching packets that this route applies to. For example: `projects/123456/global/gateways/default-internet-gateway`", +"type": "string" +} +}, +"type": "object" +}, +"RubySettings": { +"description": "Settings for Ruby client libraries.", +"id": "RubySettings", +"properties": { +"common": { +"$ref": "CommonLanguageSettings", +"description": "Some settings." +} +}, +"type": "object" +}, +"SearchRangeRequest": { +"description": "Request to search for an unused range within allocated ranges.", +"id": "SearchRangeRequest", +"properties": { +"ipPrefixLength": { +"description": "Required. The prefix length of the IP range. Use usual CIDR range notation. For example, '30' to find unused x.x.x.x/30 CIDR range. Actual range will be determined using allocated range for the consumer peered network and returned in the result.", +"format": "int32", +"type": "integer" +}, +"network": { +"description": "Network name in the consumer project. This network must have been already peered with a shared VPC network using CreateConnection method. Must be in a form 'projects/{project}/global/networks/{network}'. {project} is a project number, as in '12345' {network} is network name.", +"type": "string" +} +}, +"type": "object" +}, +"SecondaryIpRange": { +"id": "SecondaryIpRange", +"properties": { +"ipCidrRange": { +"description": "Secondary IP CIDR range in `x.x.x.x/y` format.", +"type": "string" +}, +"rangeName": { +"description": "Name of the secondary IP range.", +"type": "string" +} +}, +"type": "object" +}, +"SecondaryIpRangeSpec": { +"id": "SecondaryIpRangeSpec", +"properties": { +"ipPrefixLength": { +"description": "Required. The prefix length of the secondary IP range. Use CIDR range notation, such as `30` to provision a secondary IP range with an `x.x.x.x/30` CIDR range. The IP address range is drawn from a pool of available ranges in the service consumer's allocated range.", +"format": "int32", +"type": "integer" +}, +"outsideAllocationPublicIpRange": { +"description": "Optional. Enable outside allocation using public IP addresses. Any public IP range may be specified. If this field is provided, we will not use customer reserved ranges for this secondary IP range.", +"type": "string" +}, +"rangeName": { +"description": "Required. A name for the secondary IP range. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.", +"type": "string" +}, +"requestedAddress": { +"description": "Optional. The starting address of a range. The address must be a valid IPv4 address in the x.x.x.x format. This value combined with the IP prefix range is the CIDR range for the secondary IP range. The range must be within the allocated range that is assigned to the private connection. If the CIDR range isn't available, the call fails.", +"type": "string" +} +}, +"type": "object" +}, +"SelectiveGapicGeneration": { +"description": "This message is used to configure the generation of a subset of the RPCs in a service for client libraries.", +"id": "SelectiveGapicGeneration", +"properties": { +"methods": { +"description": "An allowlist of the fully qualified names of RPCs that should be included on public client surfaces.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Service": { +"description": "`Service` is the root object of Google API service configuration (service config). It describes the basic information about a logical service, such as the service name and the user-facing title, and delegates other aspects to sub-sections. Each sub-section is either a proto message or a repeated proto message that configures a specific aspect, such as auth. For more information, see each proto message definition. Example: type: google.api.Service name: calendar.googleapis.com title: Google Calendar API apis: - name: google.calendar.v3.Calendar visibility: rules: - selector: \"google.calendar.v3.*\" restriction: PREVIEW backend: rules: - selector: \"google.calendar.v3.*\" address: calendar.example.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth", +"id": "Service", +"properties": { +"apis": { +"description": "A list of API interfaces exported by this service. Only the `name` field of the google.protobuf.Api needs to be provided by the configuration author, as the remaining fields will be derived from the IDL during the normalization process. It is an error to specify an API interface here which cannot be resolved against the associated IDL files.", +"items": { +"$ref": "Api" +}, +"type": "array" +}, +"authentication": { +"$ref": "Authentication", +"description": "Auth configuration." +}, +"backend": { +"$ref": "Backend", +"description": "API backend configuration." +}, +"billing": { +"$ref": "Billing", +"description": "Billing configuration." +}, +"configVersion": { +"description": "Obsolete. Do not use. This field has no semantic meaning. The service config compiler always sets this field to `3`.", +"format": "uint32", +"type": "integer" +}, +"context": { +"$ref": "Context", +"description": "Context configuration." +}, +"control": { +"$ref": "Control", +"description": "Configuration for the service control plane." +}, +"customError": { +"$ref": "CustomError", +"description": "Custom error configuration." +}, +"documentation": { +"$ref": "Documentation", +"description": "Additional API documentation." +}, +"endpoints": { +"description": "Configuration for network endpoints. If this is empty, then an endpoint with the same name as the service is automatically generated to service all defined APIs.", +"items": { +"$ref": "Endpoint" +}, +"type": "array" +}, +"enums": { +"description": "A list of all enum types included in this API service. Enums referenced directly or indirectly by the `apis` are automatically included. Enums which are not referenced but shall be included should be listed here by name by the configuration author. Example: enums: - name: google.someapi.v1.SomeEnum", +"items": { +"$ref": "Enum" +}, +"type": "array" +}, +"http": { +"$ref": "Http", +"description": "HTTP configuration." +}, +"id": { +"description": "A unique ID for a specific instance of this message, typically assigned by the client for tracking purpose. Must be no longer than 63 characters and only lower case letters, digits, '.', '_' and '-' are allowed. If empty, the server may choose to generate one instead.", +"type": "string" +}, +"logging": { +"$ref": "Logging", +"description": "Logging configuration." +}, +"logs": { +"description": "Defines the logs used by this service.", +"items": { +"$ref": "LogDescriptor" +}, +"type": "array" +}, +"metrics": { +"description": "Defines the metrics used by this service.", +"items": { +"$ref": "MetricDescriptor" +}, +"type": "array" +}, +"monitoredResources": { +"description": "Defines the monitored resources used by this service. This is required by the Service.monitoring and Service.logging configurations.", +"items": { +"$ref": "MonitoredResourceDescriptor" +}, +"type": "array" +}, +"monitoring": { +"$ref": "Monitoring", +"description": "Monitoring configuration." +}, +"name": { +"description": "The service name, which is a DNS-like logical identifier for the service, such as `calendar.googleapis.com`. The service name typically goes through DNS verification to make sure the owner of the service also owns the DNS name.", +"type": "string" +}, +"producerProjectId": { +"description": "The Google project that owns this service.", +"type": "string" +}, +"publishing": { +"$ref": "Publishing", +"description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." +}, +"quota": { +"$ref": "Quota", +"description": "Quota configuration." +}, +"sourceInfo": { +"$ref": "SourceInfo", +"description": "Output only. The source information for this configuration if available." +}, +"systemParameters": { +"$ref": "SystemParameters", +"description": "System parameter configuration." +}, +"systemTypes": { +"description": "A list of all proto message types included in this API service. It serves similar purpose as [google.api.Service.types], except that these types are not needed by user-defined APIs. Therefore, they will not show up in the generated discovery doc. This field should only be used to define system APIs in ESF.", +"items": { +"$ref": "Type" +}, +"type": "array" +}, +"title": { +"description": "The product title for this service, it is the name displayed in Google Cloud Console.", +"type": "string" +}, +"types": { +"description": "A list of all proto message types included in this API service. Types referenced directly or indirectly by the `apis` are automatically included. Messages which are not referenced but shall be included, such as types used by the `google.protobuf.Any` type, should be listed here by name by the configuration author. Example: types: - name: google.protobuf.Int32", +"items": { +"$ref": "Type" +}, +"type": "array" +}, +"usage": { +"$ref": "Usage", +"description": "Configuration controlling usage of this service." +} +}, +"type": "object" +}, +"SourceContext": { +"description": "`SourceContext` represents information about the source of a protobuf element, like the file in which it is defined.", +"id": "SourceContext", +"properties": { +"fileName": { +"description": "The path-qualified name of the .proto file that contained the associated protobuf element. For example: `\"google/protobuf/source_context.proto\"`.", +"type": "string" +} +}, +"type": "object" +}, +"SourceInfo": { +"description": "Source information used to create a Service Config", +"id": "SourceInfo", +"properties": { +"sourceFiles": { +"description": "All files used during config generation.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Subnetwork": { +"description": "Represents a subnet that was created or discovered by a private access management service.", +"id": "Subnetwork", +"properties": { +"ipCidrRange": { +"description": "Subnetwork CIDR range in `10.x.x.x/y` format.", +"type": "string" +}, +"name": { +"description": "Subnetwork name. See https://cloud.google.com/compute/docs/vpc/", +"type": "string" +}, +"network": { +"description": "In the Shared VPC host project, the VPC network that's peered with the consumer network. For example: `projects/1234321/global/networks/host-network`", +"type": "string" +}, +"outsideAllocation": { +"description": "This is a discovered subnet that is not within the current consumer allocated ranges.", +"type": "boolean" +}, +"region": { +"description": "GCP region where the subnetwork is located.", +"type": "string" +}, +"secondaryIpRanges": { +"description": "List of secondary IP ranges in this subnetwork.", +"items": { +"$ref": "SecondaryIpRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"SystemParameter": { +"description": "Define a parameter's name and location. The parameter may be passed as either an HTTP header or a URL query parameter, and if both are passed the behavior is implementation-dependent.", +"id": "SystemParameter", +"properties": { +"httpHeader": { +"description": "Define the HTTP header name to use for the parameter. It is case insensitive.", +"type": "string" +}, +"name": { +"description": "Define the name of the parameter, such as \"api_key\" . It is case sensitive.", +"type": "string" +}, +"urlQueryParameter": { +"description": "Define the URL query parameter name to use for the parameter. It is case sensitive.", +"type": "string" +} +}, +"type": "object" +}, +"SystemParameterRule": { +"description": "Define a system parameter rule mapping system parameter definitions to methods.", +"id": "SystemParameterRule", +"properties": { +"parameters": { +"description": "Define parameters. Multiple names may be defined for a parameter. For a given method call, only one of them should be used. If multiple names are used the behavior is implementation-dependent. If none of the specified names are present the behavior is parameter-dependent.", +"items": { +"$ref": "SystemParameter" +}, +"type": "array" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Use '*' to indicate all methods in all APIs. Refer to selector for syntax details.", +"type": "string" +} +}, +"type": "object" +}, +"SystemParameters": { +"description": "### System parameter configuration A system parameter is a special kind of parameter defined by the API system, not by an individual API. It is typically mapped to an HTTP header and/or a URL query parameter. This configuration specifies which methods change the names of the system parameters.", +"id": "SystemParameters", +"properties": { +"rules": { +"description": "Define system parameters. The parameters defined here will override the default parameters implemented by the system. If this field is missing from the service config, default system parameters will be used. Default system parameters and names is implementation-dependent. Example: define api key for all methods system_parameters rules: - selector: \"*\" parameters: - name: api_key url_query_parameter: api_key Example: define 2 api key names for a specific method. system_parameters rules: - selector: \"/ListShelves\" parameters: - name: api_key http_header: Api-Key1 - name: api_key http_header: Api-Key2 **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "SystemParameterRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"Type": { +"description": "A protocol buffer message type.", +"id": "Type", +"properties": { +"edition": { +"description": "The source edition string, only valid when syntax is SYNTAX_EDITIONS.", +"type": "string" +}, +"fields": { +"description": "The list of fields.", +"items": { +"$ref": "Field" +}, +"type": "array" +}, +"name": { +"description": "The fully qualified message name.", +"type": "string" +}, +"oneofs": { +"description": "The list of types appearing in `oneof` definitions in this type.", +"items": { +"type": "string" +}, +"type": "array" +}, +"options": { +"description": "The protocol buffer options.", +"items": { +"$ref": "Option" +}, +"type": "array" +}, +"sourceContext": { +"$ref": "SourceContext", +"description": "The source context." +}, +"syntax": { +"description": "The source syntax.", +"enum": [ +"SYNTAX_PROTO2", +"SYNTAX_PROTO3", +"SYNTAX_EDITIONS" +], +"enumDescriptions": [ +"Syntax `proto2`.", +"Syntax `proto3`.", +"Syntax `editions`." +], +"type": "string" +} +}, +"type": "object" +}, +"UpdateConsumerConfigRequest": { +"description": "Request to update the configuration of a service networking connection including the import/export of custom routes and subnetwork routes with public IP.", +"id": "UpdateConsumerConfigRequest", +"properties": { +"consumerConfig": { +"$ref": "ConsumerConfig", +"description": "Required. The updated peering config." +} +}, +"type": "object" +}, +"UpdateDnsRecordSetMetadata": { +"description": "Metadata provided through GetOperation request for the LRO generated by UpdateDnsRecordSet API", +"id": "UpdateDnsRecordSetMetadata", +"properties": {}, +"type": "object" +}, +"UpdateDnsRecordSetRequest": { +"description": "Request to update a record set from a private managed DNS zone in the shared producer host project. The name, type, ttl, and data values of the existing record set must all exactly match an existing record set in the specified zone.", +"id": "UpdateDnsRecordSetRequest", +"properties": { +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is the project number, as in '12345' {network} is the network name.", +"type": "string" +}, +"existingDnsRecordSet": { +"$ref": "DnsRecordSet", +"description": "Required. The existing DNS record set to update." +}, +"newDnsRecordSet": { +"$ref": "DnsRecordSet", +"description": "Required. The new values that the DNS record set should be updated to hold." +}, +"zone": { +"description": "Required. The name of the private DNS zone in the shared producer host project from which the record set will be removed.", +"type": "string" +} +}, +"type": "object" +}, +"Usage": { +"description": "Configuration controlling usage of a service.", +"id": "Usage", +"properties": { +"producerNotificationChannel": { +"description": "The full resource name of a channel used for sending notifications to the service producer. Google Service Management currently only supports [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification channel. To use Google Cloud Pub/Sub as the channel, this must be the name of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format documented in https://cloud.google.com/pubsub/docs/overview.", +"type": "string" +}, +"requirements": { +"description": "Requirements that must be satisfied before a consumer project can use the service. Each requirement is of the form /; for example 'serviceusage.googleapis.com/billing-enabled'. For Google APIs, a Terms of Service requirement must be included here. Google Cloud APIs must include \"serviceusage.googleapis.com/tos/cloud\". Other Google APIs should include \"serviceusage.googleapis.com/tos/universal\". Additional ToS can be included based on the business needs.", +"items": { +"type": "string" +}, +"type": "array" +}, +"rules": { +"description": "A list of usage rules that apply to individual API methods. **NOTE:** All service configuration rules follow \"last one wins\" order.", +"items": { +"$ref": "UsageRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"UsageRule": { +"description": "Usage configuration rules for the service. NOTE: Under development. Use this rule to configure unregistered calls for the service. Unregistered calls are calls that do not contain consumer project identity. (Example: calls that do not contain an API key). By default, API methods do not allow unregistered calls, and each method call must be identified by a consumer project identity. Use this rule to allow/disallow unregistered calls. Example of an API that wants to allow unregistered calls for entire service. usage: rules: - selector: \"*\" allow_unregistered_calls: true Example of a method that wants to allow unregistered calls. usage: rules: - selector: \"google.example.library.v1.LibraryService.CreateBook\" allow_unregistered_calls: true", +"id": "UsageRule", +"properties": { +"allowUnregisteredCalls": { +"description": "If true, the selected method allows unregistered calls, e.g. calls that don't identify any user or application.", +"type": "boolean" +}, +"selector": { +"description": "Selects the methods to which this rule applies. Use '*' to indicate all methods in all APIs. Refer to selector for syntax details.", +"type": "string" +}, +"skipServiceControl": { +"description": "If true, the selected method should skip service control and the control plane features, such as quota and billing, will not be available. This flag is used by Google Cloud Endpoints to bypass checks for internal methods, such as service health check methods.", +"type": "boolean" +} +}, +"type": "object" +}, +"ValidateConsumerConfigRequest": { +"id": "ValidateConsumerConfigRequest", +"properties": { +"checkServiceNetworkingUsePermission": { +"description": "Optional. The IAM permission check determines whether the consumer project has 'servicenetworking.services.use' permission or not.", +"type": "boolean" +}, +"consumerNetwork": { +"description": "Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is a project number, as in '12345' {network} is network name.", +"type": "string" +}, +"consumerProject": { +"$ref": "ConsumerProject", +"description": "NETWORK_NOT_IN_CONSUMERS_PROJECT, NETWORK_NOT_IN_CONSUMERS_HOST_PROJECT, and HOST_PROJECT_NOT_FOUND are done when consumer_project is provided." +}, +"rangeReservation": { +"$ref": "RangeReservation", +"description": "RANGES_EXHAUSTED, RANGES_EXHAUSTED, and RANGES_DELETED_LATER are done when range_reservation is provided." +}, +"validateNetwork": { +"description": "The validations will be performed in the order listed in the ValidationError enum. The first failure will return. If a validation is not requested, then the next one will be performed. SERVICE_NETWORKING_NOT_ENABLED and NETWORK_NOT_PEERED checks are performed for all requests where validation is requested. NETWORK_NOT_FOUND and NETWORK_DISCONNECTED checks are done for requests that have validate_network set to true.", +"type": "boolean" +} +}, +"type": "object" +}, +"ValidateConsumerConfigResponse": { +"id": "ValidateConsumerConfigResponse", +"properties": { +"existingSubnetworkCandidates": { +"description": "List of subnetwork candidates from the request which exist with the `ip_cidr_range`, `secondary_ip_cider_ranges`, and `outside_allocation` fields set.", +"items": { +"$ref": "Subnetwork" +}, +"type": "array" +}, +"isValid": { +"description": "Indicates whether all the requested validations passed.", +"type": "boolean" +}, +"validationError": { +"description": "The first validation which failed.", +"enum": [ +"VALIDATION_ERROR_UNSPECIFIED", +"VALIDATION_NOT_REQUESTED", +"SERVICE_NETWORKING_NOT_ENABLED", +"NETWORK_NOT_FOUND", +"NETWORK_NOT_PEERED", +"NETWORK_PEERING_DELETED", +"NETWORK_NOT_IN_CONSUMERS_PROJECT", +"NETWORK_NOT_IN_CONSUMERS_HOST_PROJECT", +"HOST_PROJECT_NOT_FOUND", +"CONSUMER_PROJECT_NOT_SERVICE_PROJECT", +"RANGES_EXHAUSTED", +"RANGES_NOT_RESERVED", +"RANGES_DELETED_LATER", +"COMPUTE_API_NOT_ENABLED", +"USE_PERMISSION_NOT_FOUND" +], +"enumDescriptions": [ +"", +"In case none of the validations are requested.", +"", +"The network provided by the consumer does not exist.", +"The network has not been peered with the producer org.", +"The peering was created and later deleted.", +"The network is a regular VPC but the network is not in the consumer's project.", +"The consumer project is a service project, and network is a shared VPC, but the network is not in the host project of this consumer project.", +"The host project associated with the consumer project was not found.", +"The consumer project is not a service project for the specified host project.", +"The reserved IP ranges do not have enough space to create a subnet of desired size.", +"The IP ranges were not reserved.", +"The IP ranges were reserved but deleted later.", +"The consumer project does not have the compute api enabled.", +"The consumer project does not have the permission from the host project." +], +"type": "string" +} +}, +"type": "object" +}, +"VpcServiceControls": { +"description": "Response for the get VPC Service Controls request.", +"id": "VpcServiceControls", +"properties": { +"enabled": { +"description": "Output only. Indicates whether the VPC Service Controls are enabled or disabled for the connection. If the consumer called the EnableVpcServiceControls method, then this is true. If the consumer called DisableVpcServiceControls, then this is false. The default is false.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Service Networking API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/sheets.v4.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/sheets.v4.json new file mode 100644 index 0000000000000000000000000000000000000000..3a8d0097d4783a91a9d5c93c22c80d500038856e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/sheets.v4.json @@ -0,0 +1,8008 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/drive": { +"description": "See, edit, create, and delete all of your Google Drive files" +}, +"https://www.googleapis.com/auth/drive.file": { +"description": "See, edit, create, and delete only the specific Google Drive files you use with this app" +}, +"https://www.googleapis.com/auth/drive.readonly": { +"description": "See and download all your Google Drive files" +}, +"https://www.googleapis.com/auth/spreadsheets": { +"description": "See, edit, create, and delete all your Google Sheets spreadsheets" +}, +"https://www.googleapis.com/auth/spreadsheets.readonly": { +"description": "See all your Google Sheets spreadsheets" +} +} +} +}, +"basePath": "", +"baseUrl": "https://sheets.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Sheets", +"description": "Reads and writes Google Sheets.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/sheets/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "sheets:v4", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://sheets.mtls.googleapis.com/", +"name": "sheets", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"spreadsheets": { +"methods": { +"batchUpdate": { +"description": "Applies one or more updates to the spreadsheet. Each request is validated before being applied. If any request is not valid then the entire request will fail and nothing will be applied. Some requests have replies to give you some information about how they are applied. The replies will mirror the requests. For example, if you applied 4 updates and the 3rd one had a reply, then the response will have 2 empty replies, the actual reply, and another empty reply, in that order. Due to the collaborative nature of spreadsheets, it is not guaranteed that the spreadsheet will reflect exactly your changes after this completes, however it is guaranteed that the updates in the request will be applied together atomically. Your changes may be altered with respect to collaborator changes. If there are no collaborators, the spreadsheet should reflect your changes.", +"flatPath": "v4/spreadsheets/{spreadsheetId}:batchUpdate", +"httpMethod": "POST", +"id": "sheets.spreadsheets.batchUpdate", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"spreadsheetId": { +"description": "The spreadsheet to apply the updates to.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}:batchUpdate", +"request": { +"$ref": "BatchUpdateSpreadsheetRequest" +}, +"response": { +"$ref": "BatchUpdateSpreadsheetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"create": { +"description": "Creates a spreadsheet, returning the newly created spreadsheet.", +"flatPath": "v4/spreadsheets", +"httpMethod": "POST", +"id": "sheets.spreadsheets.create", +"parameterOrder": [], +"parameters": {}, +"path": "v4/spreadsheets", +"request": { +"$ref": "Spreadsheet" +}, +"response": { +"$ref": "Spreadsheet" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"get": { +"description": "Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. By default, data within grids is not returned. You can include grid data in one of 2 ways: * Specify a [field mask](https://developers.google.com/sheets/api/guides/field-masks) listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData URL parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, as a best practice, retrieve only the specific spreadsheet fields that you want. To retrieve only subsets of spreadsheet data, use the ranges URL parameter. Ranges are specified using [A1 notation](/sheets/api/guides/concepts#cell). You can define a single cell (for example, `A1`) or multiple cells (for example, `A1:D5`). You can also get cells from other sheets within the same spreadsheet (for example, `Sheet2!A1:C4`) or retrieve multiple ranges at once (for example, `?ranges=A1:D5&ranges=Sheet2!A1:C4`). Limiting the range returns only the portions of the spreadsheet that intersect the requested ranges.", +"flatPath": "v4/spreadsheets/{spreadsheetId}", +"httpMethod": "GET", +"id": "sheets.spreadsheets.get", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"includeGridData": { +"description": "True if grid data should be returned. This parameter is ignored if a field mask was set in the request.", +"location": "query", +"type": "boolean" +}, +"ranges": { +"description": "The ranges to retrieve from the spreadsheet.", +"location": "query", +"repeated": true, +"type": "string" +}, +"spreadsheetId": { +"description": "The spreadsheet to request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}", +"response": { +"$ref": "Spreadsheet" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/spreadsheets", +"https://www.googleapis.com/auth/spreadsheets.readonly" +] +}, +"getByDataFilter": { +"description": "Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. This method differs from GetSpreadsheet in that it allows selecting which subsets of spreadsheet data to return by specifying a dataFilters parameter. Multiple DataFilters can be specified. Specifying one or more data filters returns the portions of the spreadsheet that intersect ranges matched by any of the filters. By default, data within grids is not returned. You can include grid data one of 2 ways: * Specify a [field mask](https://developers.google.com/sheets/api/guides/field-masks) listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, as a best practice, retrieve only the specific spreadsheet fields that you want.", +"flatPath": "v4/spreadsheets/{spreadsheetId}:getByDataFilter", +"httpMethod": "POST", +"id": "sheets.spreadsheets.getByDataFilter", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"spreadsheetId": { +"description": "The spreadsheet to request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}:getByDataFilter", +"request": { +"$ref": "GetSpreadsheetByDataFilterRequest" +}, +"response": { +"$ref": "Spreadsheet" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +} +}, +"resources": { +"developerMetadata": { +"methods": { +"get": { +"description": "Returns the developer metadata with the specified ID. The caller must specify the spreadsheet ID and the developer metadata's unique metadataId.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}", +"httpMethod": "GET", +"id": "sheets.spreadsheets.developerMetadata.get", +"parameterOrder": [ +"spreadsheetId", +"metadataId" +], +"parameters": { +"metadataId": { +"description": "The ID of the developer metadata to retrieve.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +}, +"spreadsheetId": { +"description": "The ID of the spreadsheet to retrieve metadata from.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}", +"response": { +"$ref": "DeveloperMetadata" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"search": { +"description": "Returns all developer metadata matching the specified DataFilter. If the provided DataFilter represents a DeveloperMetadataLookup object, this will return all DeveloperMetadata entries selected by it. If the DataFilter represents a location in a spreadsheet, this will return all developer metadata associated with locations intersecting that region.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search", +"httpMethod": "POST", +"id": "sheets.spreadsheets.developerMetadata.search", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"spreadsheetId": { +"description": "The ID of the spreadsheet to retrieve metadata from.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search", +"request": { +"$ref": "SearchDeveloperMetadataRequest" +}, +"response": { +"$ref": "SearchDeveloperMetadataResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +} +} +}, +"sheets": { +"methods": { +"copyTo": { +"description": "Copies a single sheet from a spreadsheet to another spreadsheet. Returns the properties of the newly created sheet.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo", +"httpMethod": "POST", +"id": "sheets.spreadsheets.sheets.copyTo", +"parameterOrder": [ +"spreadsheetId", +"sheetId" +], +"parameters": { +"sheetId": { +"description": "The ID of the sheet to copy.", +"format": "int32", +"location": "path", +"required": true, +"type": "integer" +}, +"spreadsheetId": { +"description": "The ID of the spreadsheet containing the sheet to copy.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo", +"request": { +"$ref": "CopySheetToAnotherSpreadsheetRequest" +}, +"response": { +"$ref": "SheetProperties" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +} +} +}, +"values": { +"methods": { +"append": { +"description": "Appends values to a spreadsheet. The input range is used to search for existing data and find a \"table\" within that range. Values will be appended to the next row of the table, starting with the first column of the table. See the [guide](/sheets/api/guides/values#appending_values) and [sample code](/sheets/api/samples/writing#append_values) for specific details of how tables are detected and data is appended. The caller must specify the spreadsheet ID, range, and a valueInputOption. The `valueInputOption` only controls how the input data will be added to the sheet (column-wise or row-wise), it does not influence what cell the data starts being written to.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:append", +"httpMethod": "POST", +"id": "sheets.spreadsheets.values.append", +"parameterOrder": [ +"spreadsheetId", +"range" +], +"parameters": { +"includeValuesInResponse": { +"description": "Determines if the update response should include the values of the cells that were appended. By default, responses do not include the updated values.", +"location": "query", +"type": "boolean" +}, +"insertDataOption": { +"description": "How the input data should be inserted.", +"enum": [ +"OVERWRITE", +"INSERT_ROWS" +], +"enumDescriptions": [ +"The new data overwrites existing data in the areas it is written. (Note: adding data to the end of the sheet will still insert new rows or columns so the data can be written.)", +"Rows are inserted for the new data." +], +"location": "query", +"type": "string" +}, +"range": { +"description": "The [A1 notation](/sheets/api/guides/concepts#cell) of a range to search for a logical table of data. Values are appended after the last row of the table.", +"location": "path", +"required": true, +"type": "string" +}, +"responseDateTimeRenderOption": { +"description": "Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default dateTime render option is SERIAL_NUMBER.", +"enum": [ +"SERIAL_NUMBER", +"FORMATTED_STRING" +], +"enumDescriptions": [ +"Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.", +"Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale)." +], +"location": "query", +"type": "string" +}, +"responseValueRenderOption": { +"description": "Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE.", +"enum": [ +"FORMATTED_VALUE", +"UNFORMATTED_VALUE", +"FORMULA" +], +"enumDescriptions": [ +"Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", +"Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", +"Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." +], +"location": "query", +"type": "string" +}, +"spreadsheetId": { +"description": "The ID of the spreadsheet to update.", +"location": "path", +"required": true, +"type": "string" +}, +"valueInputOption": { +"description": "How the input data should be interpreted.", +"enum": [ +"INPUT_VALUE_OPTION_UNSPECIFIED", +"RAW", +"USER_ENTERED" +], +"enumDescriptions": [ +"Default input value. This value must not be used.", +"The values the user has entered will not be parsed and will be stored as-is.", +"The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI." +], +"location": "query", +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values/{range}:append", +"request": { +"$ref": "ValueRange" +}, +"response": { +"$ref": "AppendValuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"batchClear": { +"description": "Clears one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges. Only values are cleared -- all other properties of the cell (such as formatting and data validation) are kept.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClear", +"httpMethod": "POST", +"id": "sheets.spreadsheets.values.batchClear", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"spreadsheetId": { +"description": "The ID of the spreadsheet to update.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values:batchClear", +"request": { +"$ref": "BatchClearValuesRequest" +}, +"response": { +"$ref": "BatchClearValuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"batchClearByDataFilter": { +"description": "Clears one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges matching any of the specified data filters will be cleared. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter", +"httpMethod": "POST", +"id": "sheets.spreadsheets.values.batchClearByDataFilter", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"spreadsheetId": { +"description": "The ID of the spreadsheet to update.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter", +"request": { +"$ref": "BatchClearValuesByDataFilterRequest" +}, +"response": { +"$ref": "BatchClearValuesByDataFilterResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"batchGet": { +"description": "Returns one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGet", +"httpMethod": "GET", +"id": "sheets.spreadsheets.values.batchGet", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"dateTimeRenderOption": { +"description": "How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render option is SERIAL_NUMBER.", +"enum": [ +"SERIAL_NUMBER", +"FORMATTED_STRING" +], +"enumDescriptions": [ +"Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.", +"Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale)." +], +"location": "query", +"type": "string" +}, +"majorDimension": { +"description": "The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `ranges=[\"A1:B2\"],majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas requesting `ranges=[\"A1:B2\"],majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"location": "query", +"type": "string" +}, +"ranges": { +"description": "The [A1 notation or R1C1 notation](/sheets/api/guides/concepts#cell) of the range to retrieve values from.", +"location": "query", +"repeated": true, +"type": "string" +}, +"spreadsheetId": { +"description": "The ID of the spreadsheet to retrieve data from.", +"location": "path", +"required": true, +"type": "string" +}, +"valueRenderOption": { +"description": "How values should be represented in the output. The default render option is ValueRenderOption.FORMATTED_VALUE.", +"enum": [ +"FORMATTED_VALUE", +"UNFORMATTED_VALUE", +"FORMULA" +], +"enumDescriptions": [ +"Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", +"Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", +"Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." +], +"location": "query", +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values:batchGet", +"response": { +"$ref": "BatchGetValuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/spreadsheets", +"https://www.googleapis.com/auth/spreadsheets.readonly" +] +}, +"batchGetByDataFilter": { +"description": "Returns one or more ranges of values that match the specified data filters. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges that match any of the data filters in the request will be returned.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter", +"httpMethod": "POST", +"id": "sheets.spreadsheets.values.batchGetByDataFilter", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"spreadsheetId": { +"description": "The ID of the spreadsheet to retrieve data from.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter", +"request": { +"$ref": "BatchGetValuesByDataFilterRequest" +}, +"response": { +"$ref": "BatchGetValuesByDataFilterResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"batchUpdate": { +"description": "Sets values in one or more ranges of a spreadsheet. The caller must specify the spreadsheet ID, a valueInputOption, and one or more ValueRanges.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate", +"httpMethod": "POST", +"id": "sheets.spreadsheets.values.batchUpdate", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"spreadsheetId": { +"description": "The ID of the spreadsheet to update.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate", +"request": { +"$ref": "BatchUpdateValuesRequest" +}, +"response": { +"$ref": "BatchUpdateValuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"batchUpdateByDataFilter": { +"description": "Sets values in one or more ranges of a spreadsheet. The caller must specify the spreadsheet ID, a valueInputOption, and one or more DataFilterValueRanges.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter", +"httpMethod": "POST", +"id": "sheets.spreadsheets.values.batchUpdateByDataFilter", +"parameterOrder": [ +"spreadsheetId" +], +"parameters": { +"spreadsheetId": { +"description": "The ID of the spreadsheet to update.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter", +"request": { +"$ref": "BatchUpdateValuesByDataFilterRequest" +}, +"response": { +"$ref": "BatchUpdateValuesByDataFilterResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"clear": { +"description": "Clears values from a spreadsheet. The caller must specify the spreadsheet ID and range. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear", +"httpMethod": "POST", +"id": "sheets.spreadsheets.values.clear", +"parameterOrder": [ +"spreadsheetId", +"range" +], +"parameters": { +"range": { +"description": "The [A1 notation or R1C1 notation](/sheets/api/guides/concepts#cell) of the values to clear.", +"location": "path", +"required": true, +"type": "string" +}, +"spreadsheetId": { +"description": "The ID of the spreadsheet to update.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear", +"request": { +"$ref": "ClearValuesRequest" +}, +"response": { +"$ref": "ClearValuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +}, +"get": { +"description": "Returns a range of values from a spreadsheet. The caller must specify the spreadsheet ID and a range.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}", +"httpMethod": "GET", +"id": "sheets.spreadsheets.values.get", +"parameterOrder": [ +"spreadsheetId", +"range" +], +"parameters": { +"dateTimeRenderOption": { +"description": "How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render option is SERIAL_NUMBER.", +"enum": [ +"SERIAL_NUMBER", +"FORMATTED_STRING" +], +"enumDescriptions": [ +"Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.", +"Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale)." +], +"location": "query", +"type": "string" +}, +"majorDimension": { +"description": "The major dimension that results should use. For example, if the spreadsheet data in Sheet1 is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=Sheet1!A1:B2?majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas requesting `range=Sheet1!A1:B2?majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"location": "query", +"type": "string" +}, +"range": { +"description": "The [A1 notation or R1C1 notation](/sheets/api/guides/concepts#cell) of the range to retrieve values from.", +"location": "path", +"required": true, +"type": "string" +}, +"spreadsheetId": { +"description": "The ID of the spreadsheet to retrieve data from.", +"location": "path", +"required": true, +"type": "string" +}, +"valueRenderOption": { +"description": "How values should be represented in the output. The default render option is FORMATTED_VALUE.", +"enum": [ +"FORMATTED_VALUE", +"UNFORMATTED_VALUE", +"FORMULA" +], +"enumDescriptions": [ +"Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", +"Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", +"Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." +], +"location": "query", +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values/{range}", +"response": { +"$ref": "ValueRange" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.readonly", +"https://www.googleapis.com/auth/spreadsheets", +"https://www.googleapis.com/auth/spreadsheets.readonly" +] +}, +"update": { +"description": "Sets values in a range of a spreadsheet. The caller must specify the spreadsheet ID, range, and a valueInputOption.", +"flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}", +"httpMethod": "PUT", +"id": "sheets.spreadsheets.values.update", +"parameterOrder": [ +"spreadsheetId", +"range" +], +"parameters": { +"includeValuesInResponse": { +"description": "Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values. If the range to write was larger than the range actually written, the response includes all values in the requested range (excluding trailing empty rows and columns).", +"location": "query", +"type": "boolean" +}, +"range": { +"description": "The [A1 notation](/sheets/api/guides/concepts#cell) of the values to update.", +"location": "path", +"required": true, +"type": "string" +}, +"responseDateTimeRenderOption": { +"description": "Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default dateTime render option is SERIAL_NUMBER.", +"enum": [ +"SERIAL_NUMBER", +"FORMATTED_STRING" +], +"enumDescriptions": [ +"Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.", +"Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale)." +], +"location": "query", +"type": "string" +}, +"responseValueRenderOption": { +"description": "Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE.", +"enum": [ +"FORMATTED_VALUE", +"UNFORMATTED_VALUE", +"FORMULA" +], +"enumDescriptions": [ +"Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", +"Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", +"Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." +], +"location": "query", +"type": "string" +}, +"spreadsheetId": { +"description": "The ID of the spreadsheet to update.", +"location": "path", +"required": true, +"type": "string" +}, +"valueInputOption": { +"description": "How the input data should be interpreted.", +"enum": [ +"INPUT_VALUE_OPTION_UNSPECIFIED", +"RAW", +"USER_ENTERED" +], +"enumDescriptions": [ +"Default input value. This value must not be used.", +"The values the user has entered will not be parsed and will be stored as-is.", +"The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI." +], +"location": "query", +"type": "string" +} +}, +"path": "v4/spreadsheets/{spreadsheetId}/values/{range}", +"request": { +"$ref": "ValueRange" +}, +"response": { +"$ref": "UpdateValuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/spreadsheets" +] +} +} +} +} +} +}, +"revision": "20250106", +"rootUrl": "https://sheets.googleapis.com/", +"schemas": { +"AddBandingRequest": { +"description": "Adds a new banded range to the spreadsheet.", +"id": "AddBandingRequest", +"properties": { +"bandedRange": { +"$ref": "BandedRange", +"description": "The banded range to add. The bandedRangeId field is optional; if one is not set, an id will be randomly generated. (It is an error to specify the ID of a range that already exists.)" +} +}, +"type": "object" +}, +"AddBandingResponse": { +"description": "The result of adding a banded range.", +"id": "AddBandingResponse", +"properties": { +"bandedRange": { +"$ref": "BandedRange", +"description": "The banded range that was added." +} +}, +"type": "object" +}, +"AddChartRequest": { +"description": "Adds a chart to a sheet in the spreadsheet.", +"id": "AddChartRequest", +"properties": { +"chart": { +"$ref": "EmbeddedChart", +"description": "The chart that should be added to the spreadsheet, including the position where it should be placed. The chartId field is optional; if one is not set, an id will be randomly generated. (It is an error to specify the ID of an embedded object that already exists.)" +} +}, +"type": "object" +}, +"AddChartResponse": { +"description": "The result of adding a chart to a spreadsheet.", +"id": "AddChartResponse", +"properties": { +"chart": { +"$ref": "EmbeddedChart", +"description": "The newly added chart." +} +}, +"type": "object" +}, +"AddConditionalFormatRuleRequest": { +"description": "Adds a new conditional format rule at the given index. All subsequent rules' indexes are incremented.", +"id": "AddConditionalFormatRuleRequest", +"properties": { +"index": { +"description": "The zero-based index where the rule should be inserted.", +"format": "int32", +"type": "integer" +}, +"rule": { +"$ref": "ConditionalFormatRule", +"description": "The rule to add." +} +}, +"type": "object" +}, +"AddDataSourceRequest": { +"description": "Adds a data source. After the data source is added successfully, an associated DATA_SOURCE sheet is created and an execution is triggered to refresh the sheet to read data from the data source. The request requires an additional `bigquery.readonly` OAuth scope if you are adding a BigQuery data source.", +"id": "AddDataSourceRequest", +"properties": { +"dataSource": { +"$ref": "DataSource", +"description": "The data source to add." +} +}, +"type": "object" +}, +"AddDataSourceResponse": { +"description": "The result of adding a data source.", +"id": "AddDataSourceResponse", +"properties": { +"dataExecutionStatus": { +"$ref": "DataExecutionStatus", +"description": "The data execution status." +}, +"dataSource": { +"$ref": "DataSource", +"description": "The data source that was created." +} +}, +"type": "object" +}, +"AddDimensionGroupRequest": { +"description": "Creates a group over the specified range. If the requested range is a superset of the range of an existing group G, then the depth of G is incremented and this new group G' has the depth of that group. For example, a group [C:D, depth 1] + [B:E] results in groups [B:E, depth 1] and [C:D, depth 2]. If the requested range is a subset of the range of an existing group G, then the depth of the new group G' becomes one greater than the depth of G. For example, a group [B:E, depth 1] + [C:D] results in groups [B:E, depth 1] and [C:D, depth 2]. If the requested range starts before and ends within, or starts within and ends after, the range of an existing group G, then the range of the existing group G becomes the union of the ranges, and the new group G' has depth one greater than the depth of G and range as the intersection of the ranges. For example, a group [B:D, depth 1] + [C:E] results in groups [B:E, depth 1] and [C:D, depth 2].", +"id": "AddDimensionGroupRequest", +"properties": { +"range": { +"$ref": "DimensionRange", +"description": "The range over which to create a group." +} +}, +"type": "object" +}, +"AddDimensionGroupResponse": { +"description": "The result of adding a group.", +"id": "AddDimensionGroupResponse", +"properties": { +"dimensionGroups": { +"description": "All groups of a dimension after adding a group to that dimension.", +"items": { +"$ref": "DimensionGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"AddFilterViewRequest": { +"description": "Adds a filter view.", +"id": "AddFilterViewRequest", +"properties": { +"filter": { +"$ref": "FilterView", +"description": "The filter to add. The filterViewId field is optional; if one is not set, an id will be randomly generated. (It is an error to specify the ID of a filter that already exists.)" +} +}, +"type": "object" +}, +"AddFilterViewResponse": { +"description": "The result of adding a filter view.", +"id": "AddFilterViewResponse", +"properties": { +"filter": { +"$ref": "FilterView", +"description": "The newly added filter view." +} +}, +"type": "object" +}, +"AddNamedRangeRequest": { +"description": "Adds a named range to the spreadsheet.", +"id": "AddNamedRangeRequest", +"properties": { +"namedRange": { +"$ref": "NamedRange", +"description": "The named range to add. The namedRangeId field is optional; if one is not set, an id will be randomly generated. (It is an error to specify the ID of a range that already exists.)" +} +}, +"type": "object" +}, +"AddNamedRangeResponse": { +"description": "The result of adding a named range.", +"id": "AddNamedRangeResponse", +"properties": { +"namedRange": { +"$ref": "NamedRange", +"description": "The named range to add." +} +}, +"type": "object" +}, +"AddProtectedRangeRequest": { +"description": "Adds a new protected range.", +"id": "AddProtectedRangeRequest", +"properties": { +"protectedRange": { +"$ref": "ProtectedRange", +"description": "The protected range to be added. The protectedRangeId field is optional; if one is not set, an id will be randomly generated. (It is an error to specify the ID of a range that already exists.)" +} +}, +"type": "object" +}, +"AddProtectedRangeResponse": { +"description": "The result of adding a new protected range.", +"id": "AddProtectedRangeResponse", +"properties": { +"protectedRange": { +"$ref": "ProtectedRange", +"description": "The newly added protected range." +} +}, +"type": "object" +}, +"AddSheetRequest": { +"description": "Adds a new sheet. When a sheet is added at a given index, all subsequent sheets' indexes are incremented. To add an object sheet, use AddChartRequest instead and specify EmbeddedObjectPosition.sheetId or EmbeddedObjectPosition.newSheet.", +"id": "AddSheetRequest", +"properties": { +"properties": { +"$ref": "SheetProperties", +"description": "The properties the new sheet should have. All properties are optional. The sheetId field is optional; if one is not set, an id will be randomly generated. (It is an error to specify the ID of a sheet that already exists.)" +} +}, +"type": "object" +}, +"AddSheetResponse": { +"description": "The result of adding a sheet.", +"id": "AddSheetResponse", +"properties": { +"properties": { +"$ref": "SheetProperties", +"description": "The properties of the newly added sheet." +} +}, +"type": "object" +}, +"AddSlicerRequest": { +"description": "Adds a slicer to a sheet in the spreadsheet.", +"id": "AddSlicerRequest", +"properties": { +"slicer": { +"$ref": "Slicer", +"description": "The slicer that should be added to the spreadsheet, including the position where it should be placed. The slicerId field is optional; if one is not set, an id will be randomly generated. (It is an error to specify the ID of a slicer that already exists.)" +} +}, +"type": "object" +}, +"AddSlicerResponse": { +"description": "The result of adding a slicer to a spreadsheet.", +"id": "AddSlicerResponse", +"properties": { +"slicer": { +"$ref": "Slicer", +"description": "The newly added slicer." +} +}, +"type": "object" +}, +"AppendCellsRequest": { +"description": "Adds new cells after the last row with data in a sheet, inserting new rows into the sheet if necessary.", +"id": "AppendCellsRequest", +"properties": { +"fields": { +"description": "The fields of CellData that should be updated. At least one field must be specified. The root is the CellData; 'row.values.' should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"rows": { +"description": "The data to append.", +"items": { +"$ref": "RowData" +}, +"type": "array" +}, +"sheetId": { +"description": "The sheet ID to append the data to.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"AppendDimensionRequest": { +"description": "Appends rows or columns to the end of a sheet.", +"id": "AppendDimensionRequest", +"properties": { +"dimension": { +"description": "Whether rows or columns should be appended.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"type": "string" +}, +"length": { +"description": "The number of rows or columns to append.", +"format": "int32", +"type": "integer" +}, +"sheetId": { +"description": "The sheet to append rows or columns to.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"AppendValuesResponse": { +"description": "The response when updating a range of values in a spreadsheet.", +"id": "AppendValuesResponse", +"properties": { +"spreadsheetId": { +"description": "The spreadsheet the updates were applied to.", +"type": "string" +}, +"tableRange": { +"description": "The range (in A1 notation) of the table that values are being appended to (before the values were appended). Empty if no table was found.", +"type": "string" +}, +"updates": { +"$ref": "UpdateValuesResponse", +"description": "Information about the updates that were applied." +} +}, +"type": "object" +}, +"AutoFillRequest": { +"description": "Fills in more data based on existing data.", +"id": "AutoFillRequest", +"properties": { +"range": { +"$ref": "GridRange", +"description": "The range to autofill. This will examine the range and detect the location that has data and automatically fill that data in to the rest of the range." +}, +"sourceAndDestination": { +"$ref": "SourceAndDestination", +"description": "The source and destination areas to autofill. This explicitly lists the source of the autofill and where to extend that data." +}, +"useAlternateSeries": { +"description": "True if we should generate data with the \"alternate\" series. This differs based on the type and amount of source data.", +"type": "boolean" +} +}, +"type": "object" +}, +"AutoResizeDimensionsRequest": { +"description": "Automatically resizes one or more dimensions based on the contents of the cells in that dimension.", +"id": "AutoResizeDimensionsRequest", +"properties": { +"dataSourceSheetDimensions": { +"$ref": "DataSourceSheetDimensionRange", +"description": "The dimensions on a data source sheet to automatically resize." +}, +"dimensions": { +"$ref": "DimensionRange", +"description": "The dimensions to automatically resize." +} +}, +"type": "object" +}, +"BandedRange": { +"description": "A banded (alternating colors) range in a sheet.", +"id": "BandedRange", +"properties": { +"bandedRangeId": { +"description": "The ID of the banded range.", +"format": "int32", +"type": "integer" +}, +"columnProperties": { +"$ref": "BandingProperties", +"description": "Properties for column bands. These properties are applied on a column- by-column basis throughout all the columns in the range. At least one of row_properties or column_properties must be specified." +}, +"range": { +"$ref": "GridRange", +"description": "The range over which these properties are applied." +}, +"rowProperties": { +"$ref": "BandingProperties", +"description": "Properties for row bands. These properties are applied on a row-by-row basis throughout all the rows in the range. At least one of row_properties or column_properties must be specified." +} +}, +"type": "object" +}, +"BandingProperties": { +"description": "Properties referring a single dimension (either row or column). If both BandedRange.row_properties and BandedRange.column_properties are set, the fill colors are applied to cells according to the following rules: * header_color and footer_color take priority over band colors. * first_band_color takes priority over second_band_color. * row_properties takes priority over column_properties. For example, the first row color takes priority over the first column color, but the first column color takes priority over the second row color. Similarly, the row header takes priority over the column header in the top left cell, but the column header takes priority over the first row color if the row header is not set.", +"id": "BandingProperties", +"properties": { +"firstBandColor": { +"$ref": "Color", +"deprecated": true, +"description": "The first color that is alternating. (Required) Deprecated: Use first_band_color_style." +}, +"firstBandColorStyle": { +"$ref": "ColorStyle", +"description": "The first color that is alternating. (Required) If first_band_color is also set, this field takes precedence." +}, +"footerColor": { +"$ref": "Color", +"deprecated": true, +"description": "The color of the last row or column. If this field is not set, the last row or column is filled with either first_band_color or second_band_color, depending on the color of the previous row or column. Deprecated: Use footer_color_style." +}, +"footerColorStyle": { +"$ref": "ColorStyle", +"description": "The color of the last row or column. If this field is not set, the last row or column is filled with either first_band_color or second_band_color, depending on the color of the previous row or column. If footer_color is also set, this field takes precedence." +}, +"headerColor": { +"$ref": "Color", +"deprecated": true, +"description": "The color of the first row or column. If this field is set, the first row or column is filled with this color and the colors alternate between first_band_color and second_band_color starting from the second row or column. Otherwise, the first row or column is filled with first_band_color and the colors proceed to alternate as they normally would. Deprecated: Use header_color_style." +}, +"headerColorStyle": { +"$ref": "ColorStyle", +"description": "The color of the first row or column. If this field is set, the first row or column is filled with this color and the colors alternate between first_band_color and second_band_color starting from the second row or column. Otherwise, the first row or column is filled with first_band_color and the colors proceed to alternate as they normally would. If header_color is also set, this field takes precedence." +}, +"secondBandColor": { +"$ref": "Color", +"deprecated": true, +"description": "The second color that is alternating. (Required) Deprecated: Use second_band_color_style." +}, +"secondBandColorStyle": { +"$ref": "ColorStyle", +"description": "The second color that is alternating. (Required) If second_band_color is also set, this field takes precedence." +} +}, +"type": "object" +}, +"BaselineValueFormat": { +"description": "Formatting options for baseline value.", +"id": "BaselineValueFormat", +"properties": { +"comparisonType": { +"description": "The comparison type of key value with baseline value.", +"enum": [ +"COMPARISON_TYPE_UNDEFINED", +"ABSOLUTE_DIFFERENCE", +"PERCENTAGE_DIFFERENCE" +], +"enumDescriptions": [ +"Default value, do not use.", +"Use absolute difference between key and baseline value.", +"Use percentage difference between key and baseline value." +], +"type": "string" +}, +"description": { +"description": "Description which is appended after the baseline value. This field is optional.", +"type": "string" +}, +"negativeColor": { +"$ref": "Color", +"deprecated": true, +"description": "Color to be used, in case baseline value represents a negative change for key value. This field is optional. Deprecated: Use negative_color_style." +}, +"negativeColorStyle": { +"$ref": "ColorStyle", +"description": "Color to be used, in case baseline value represents a negative change for key value. This field is optional. If negative_color is also set, this field takes precedence." +}, +"position": { +"$ref": "TextPosition", +"description": "Specifies the horizontal text positioning of baseline value. This field is optional. If not specified, default positioning is used." +}, +"positiveColor": { +"$ref": "Color", +"deprecated": true, +"description": "Color to be used, in case baseline value represents a positive change for key value. This field is optional. Deprecated: Use positive_color_style." +}, +"positiveColorStyle": { +"$ref": "ColorStyle", +"description": "Color to be used, in case baseline value represents a positive change for key value. This field is optional. If positive_color is also set, this field takes precedence." +}, +"textFormat": { +"$ref": "TextFormat", +"description": "Text formatting options for baseline value. The link field is not supported." +} +}, +"type": "object" +}, +"BasicChartAxis": { +"description": "An axis of the chart. A chart may not have more than one axis per axis position.", +"id": "BasicChartAxis", +"properties": { +"format": { +"$ref": "TextFormat", +"description": "The format of the title. Only valid if the axis is not associated with the domain. The link field is not supported." +}, +"position": { +"description": "The position of this axis.", +"enum": [ +"BASIC_CHART_AXIS_POSITION_UNSPECIFIED", +"BOTTOM_AXIS", +"LEFT_AXIS", +"RIGHT_AXIS" +], +"enumDescriptions": [ +"Default value, do not use.", +"The axis rendered at the bottom of a chart. For most charts, this is the standard major axis. For bar charts, this is a minor axis.", +"The axis rendered at the left of a chart. For most charts, this is a minor axis. For bar charts, this is the standard major axis.", +"The axis rendered at the right of a chart. For most charts, this is a minor axis. For bar charts, this is an unusual major axis." +], +"type": "string" +}, +"title": { +"description": "The title of this axis. If set, this overrides any title inferred from headers of the data.", +"type": "string" +}, +"titleTextPosition": { +"$ref": "TextPosition", +"description": "The axis title text position." +}, +"viewWindowOptions": { +"$ref": "ChartAxisViewWindowOptions", +"description": "The view window options for this axis." +} +}, +"type": "object" +}, +"BasicChartDomain": { +"description": "The domain of a chart. For example, if charting stock prices over time, this would be the date.", +"id": "BasicChartDomain", +"properties": { +"domain": { +"$ref": "ChartData", +"description": "The data of the domain. For example, if charting stock prices over time, this is the data representing the dates." +}, +"reversed": { +"description": "True to reverse the order of the domain values (horizontal axis).", +"type": "boolean" +} +}, +"type": "object" +}, +"BasicChartSeries": { +"description": "A single series of data in a chart. For example, if charting stock prices over time, multiple series may exist, one for the \"Open Price\", \"High Price\", \"Low Price\" and \"Close Price\".", +"id": "BasicChartSeries", +"properties": { +"color": { +"$ref": "Color", +"deprecated": true, +"description": "The color for elements (such as bars, lines, and points) associated with this series. If empty, a default color is used. Deprecated: Use color_style." +}, +"colorStyle": { +"$ref": "ColorStyle", +"description": "The color for elements (such as bars, lines, and points) associated with this series. If empty, a default color is used. If color is also set, this field takes precedence." +}, +"dataLabel": { +"$ref": "DataLabel", +"description": "Information about the data labels for this series." +}, +"lineStyle": { +"$ref": "LineStyle", +"description": "The line style of this series. Valid only if the chartType is AREA, LINE, or SCATTER. COMBO charts are also supported if the series chart type is AREA or LINE." +}, +"pointStyle": { +"$ref": "PointStyle", +"description": "The style for points associated with this series. Valid only if the chartType is AREA, LINE, or SCATTER. COMBO charts are also supported if the series chart type is AREA, LINE, or SCATTER. If empty, a default point style is used." +}, +"series": { +"$ref": "ChartData", +"description": "The data being visualized in this chart series." +}, +"styleOverrides": { +"description": "Style override settings for series data points.", +"items": { +"$ref": "BasicSeriesDataPointStyleOverride" +}, +"type": "array" +}, +"targetAxis": { +"description": "The minor axis that will specify the range of values for this series. For example, if charting stocks over time, the \"Volume\" series may want to be pinned to the right with the prices pinned to the left, because the scale of trading volume is different than the scale of prices. It is an error to specify an axis that isn't a valid minor axis for the chart's type.", +"enum": [ +"BASIC_CHART_AXIS_POSITION_UNSPECIFIED", +"BOTTOM_AXIS", +"LEFT_AXIS", +"RIGHT_AXIS" +], +"enumDescriptions": [ +"Default value, do not use.", +"The axis rendered at the bottom of a chart. For most charts, this is the standard major axis. For bar charts, this is a minor axis.", +"The axis rendered at the left of a chart. For most charts, this is a minor axis. For bar charts, this is the standard major axis.", +"The axis rendered at the right of a chart. For most charts, this is a minor axis. For bar charts, this is an unusual major axis." +], +"type": "string" +}, +"type": { +"description": "The type of this series. Valid only if the chartType is COMBO. Different types will change the way the series is visualized. Only LINE, AREA, and COLUMN are supported.", +"enum": [ +"BASIC_CHART_TYPE_UNSPECIFIED", +"BAR", +"LINE", +"AREA", +"COLUMN", +"SCATTER", +"COMBO", +"STEPPED_AREA" +], +"enumDescriptions": [ +"Default value, do not use.", +"A bar chart.", +"A line chart.", +"An area chart.", +"A column chart.", +"A scatter chart.", +"A combo chart.", +"A stepped area chart." +], +"type": "string" +} +}, +"type": "object" +}, +"BasicChartSpec": { +"description": "The specification for a basic chart. See BasicChartType for the list of charts this supports.", +"id": "BasicChartSpec", +"properties": { +"axis": { +"description": "The axis on the chart.", +"items": { +"$ref": "BasicChartAxis" +}, +"type": "array" +}, +"chartType": { +"description": "The type of the chart.", +"enum": [ +"BASIC_CHART_TYPE_UNSPECIFIED", +"BAR", +"LINE", +"AREA", +"COLUMN", +"SCATTER", +"COMBO", +"STEPPED_AREA" +], +"enumDescriptions": [ +"Default value, do not use.", +"A bar chart.", +"A line chart.", +"An area chart.", +"A column chart.", +"A scatter chart.", +"A combo chart.", +"A stepped area chart." +], +"type": "string" +}, +"compareMode": { +"description": "The behavior of tooltips and data highlighting when hovering on data and chart area.", +"enum": [ +"BASIC_CHART_COMPARE_MODE_UNSPECIFIED", +"DATUM", +"CATEGORY" +], +"enumDescriptions": [ +"Default value, do not use.", +"Only the focused data element is highlighted and shown in the tooltip.", +"All data elements with the same category (e.g., domain value) are highlighted and shown in the tooltip." +], +"type": "string" +}, +"domains": { +"description": "The domain of data this is charting. Only a single domain is supported.", +"items": { +"$ref": "BasicChartDomain" +}, +"type": "array" +}, +"headerCount": { +"description": "The number of rows or columns in the data that are \"headers\". If not set, Google Sheets will guess how many rows are headers based on the data. (Note that BasicChartAxis.title may override the axis title inferred from the header values.)", +"format": "int32", +"type": "integer" +}, +"interpolateNulls": { +"description": "If some values in a series are missing, gaps may appear in the chart (e.g, segments of lines in a line chart will be missing). To eliminate these gaps set this to true. Applies to Line, Area, and Combo charts.", +"type": "boolean" +}, +"legendPosition": { +"description": "The position of the chart legend.", +"enum": [ +"BASIC_CHART_LEGEND_POSITION_UNSPECIFIED", +"BOTTOM_LEGEND", +"LEFT_LEGEND", +"RIGHT_LEGEND", +"TOP_LEGEND", +"NO_LEGEND" +], +"enumDescriptions": [ +"Default value, do not use.", +"The legend is rendered on the bottom of the chart.", +"The legend is rendered on the left of the chart.", +"The legend is rendered on the right of the chart.", +"The legend is rendered on the top of the chart.", +"No legend is rendered." +], +"type": "string" +}, +"lineSmoothing": { +"description": "Gets whether all lines should be rendered smooth or straight by default. Applies to Line charts.", +"type": "boolean" +}, +"series": { +"description": "The data this chart is visualizing.", +"items": { +"$ref": "BasicChartSeries" +}, +"type": "array" +}, +"stackedType": { +"description": "The stacked type for charts that support vertical stacking. Applies to Area, Bar, Column, Combo, and Stepped Area charts.", +"enum": [ +"BASIC_CHART_STACKED_TYPE_UNSPECIFIED", +"NOT_STACKED", +"STACKED", +"PERCENT_STACKED" +], +"enumDescriptions": [ +"Default value, do not use.", +"Series are not stacked.", +"Series values are stacked, each value is rendered vertically beginning from the top of the value below it.", +"Vertical stacks are stretched to reach the top of the chart, with values laid out as percentages of each other." +], +"type": "string" +}, +"threeDimensional": { +"description": "True to make the chart 3D. Applies to Bar and Column charts.", +"type": "boolean" +}, +"totalDataLabel": { +"$ref": "DataLabel", +"description": "Controls whether to display additional data labels on stacked charts which sum the total value of all stacked values at each value along the domain axis. These data labels can only be set when chart_type is one of AREA, BAR, COLUMN, COMBO or STEPPED_AREA and stacked_type is either STACKED or PERCENT_STACKED. In addition, for COMBO, this will only be supported if there is only one type of stackable series type or one type has more series than the others and each of the other types have no more than one series. For example, if a chart has two stacked bar series and one area series, the total data labels will be supported. If it has three bar series and two area series, total data labels are not allowed. Neither CUSTOM nor placement can be set on the total_data_label." +} +}, +"type": "object" +}, +"BasicFilter": { +"description": "The default filter associated with a sheet.", +"id": "BasicFilter", +"properties": { +"criteria": { +"additionalProperties": { +"$ref": "FilterCriteria" +}, +"deprecated": true, +"description": "The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column. This field is deprecated in favor of filter_specs.", +"type": "object" +}, +"filterSpecs": { +"description": "The filter criteria per column. Both criteria and filter_specs are populated in responses. If both fields are specified in an update request, this field takes precedence.", +"items": { +"$ref": "FilterSpec" +}, +"type": "array" +}, +"range": { +"$ref": "GridRange", +"description": "The range the filter covers." +}, +"sortSpecs": { +"description": "The sort order per column. Later specifications are used when values are equal in the earlier specifications.", +"items": { +"$ref": "SortSpec" +}, +"type": "array" +} +}, +"type": "object" +}, +"BasicSeriesDataPointStyleOverride": { +"description": "Style override settings for a single series data point.", +"id": "BasicSeriesDataPointStyleOverride", +"properties": { +"color": { +"$ref": "Color", +"deprecated": true, +"description": "Color of the series data point. If empty, the series default is used. Deprecated: Use color_style." +}, +"colorStyle": { +"$ref": "ColorStyle", +"description": "Color of the series data point. If empty, the series default is used. If color is also set, this field takes precedence." +}, +"index": { +"description": "The zero-based index of the series data point.", +"format": "int32", +"type": "integer" +}, +"pointStyle": { +"$ref": "PointStyle", +"description": "Point style of the series data point. Valid only if the chartType is AREA, LINE, or SCATTER. COMBO charts are also supported if the series chart type is AREA, LINE, or SCATTER. If empty, the series default is used." +} +}, +"type": "object" +}, +"BatchClearValuesByDataFilterRequest": { +"description": "The request for clearing more than one range selected by a DataFilter in a spreadsheet.", +"id": "BatchClearValuesByDataFilterRequest", +"properties": { +"dataFilters": { +"description": "The DataFilters used to determine which ranges to clear.", +"items": { +"$ref": "DataFilter" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchClearValuesByDataFilterResponse": { +"description": "The response when clearing a range of values selected with DataFilters in a spreadsheet.", +"id": "BatchClearValuesByDataFilterResponse", +"properties": { +"clearedRanges": { +"description": "The ranges that were cleared, in [A1 notation](/sheets/api/guides/concepts#cell). If the requests are for an unbounded range or a ranger larger than the bounds of the sheet, this is the actual ranges that were cleared, bounded to the sheet's limits.", +"items": { +"type": "string" +}, +"type": "array" +}, +"spreadsheetId": { +"description": "The spreadsheet the updates were applied to.", +"type": "string" +} +}, +"type": "object" +}, +"BatchClearValuesRequest": { +"description": "The request for clearing more than one range of values in a spreadsheet.", +"id": "BatchClearValuesRequest", +"properties": { +"ranges": { +"description": "The ranges to clear, in [A1 notation or R1C1 notation](/sheets/api/guides/concepts#cell).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchClearValuesResponse": { +"description": "The response when clearing a range of values in a spreadsheet.", +"id": "BatchClearValuesResponse", +"properties": { +"clearedRanges": { +"description": "The ranges that were cleared, in A1 notation. If the requests are for an unbounded range or a ranger larger than the bounds of the sheet, this is the actual ranges that were cleared, bounded to the sheet's limits.", +"items": { +"type": "string" +}, +"type": "array" +}, +"spreadsheetId": { +"description": "The spreadsheet the updates were applied to.", +"type": "string" +} +}, +"type": "object" +}, +"BatchGetValuesByDataFilterRequest": { +"description": "The request for retrieving a range of values in a spreadsheet selected by a set of DataFilters.", +"id": "BatchGetValuesByDataFilterRequest", +"properties": { +"dataFilters": { +"description": "The data filters used to match the ranges of values to retrieve. Ranges that match any of the specified data filters are included in the response.", +"items": { +"$ref": "DataFilter" +}, +"type": "array" +}, +"dateTimeRenderOption": { +"description": "How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render option is SERIAL_NUMBER.", +"enum": [ +"SERIAL_NUMBER", +"FORMATTED_STRING" +], +"enumDescriptions": [ +"Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.", +"Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale)." +], +"type": "string" +}, +"majorDimension": { +"description": "The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then a request that selects that range and sets `majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas a request that sets `majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"type": "string" +}, +"valueRenderOption": { +"description": "How values should be represented in the output. The default render option is FORMATTED_VALUE.", +"enum": [ +"FORMATTED_VALUE", +"UNFORMATTED_VALUE", +"FORMULA" +], +"enumDescriptions": [ +"Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", +"Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", +"Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." +], +"type": "string" +} +}, +"type": "object" +}, +"BatchGetValuesByDataFilterResponse": { +"description": "The response when retrieving more than one range of values in a spreadsheet selected by DataFilters.", +"id": "BatchGetValuesByDataFilterResponse", +"properties": { +"spreadsheetId": { +"description": "The ID of the spreadsheet the data was retrieved from.", +"type": "string" +}, +"valueRanges": { +"description": "The requested values with the list of data filters that matched them.", +"items": { +"$ref": "MatchedValueRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchGetValuesResponse": { +"description": "The response when retrieving more than one range of values in a spreadsheet.", +"id": "BatchGetValuesResponse", +"properties": { +"spreadsheetId": { +"description": "The ID of the spreadsheet the data was retrieved from.", +"type": "string" +}, +"valueRanges": { +"description": "The requested values. The order of the ValueRanges is the same as the order of the requested ranges.", +"items": { +"$ref": "ValueRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateSpreadsheetRequest": { +"description": "The request for updating any aspect of a spreadsheet.", +"id": "BatchUpdateSpreadsheetRequest", +"properties": { +"includeSpreadsheetInResponse": { +"description": "Determines if the update response should include the spreadsheet resource.", +"type": "boolean" +}, +"requests": { +"description": "A list of updates to apply to the spreadsheet. Requests will be applied in the order they are specified. If any request is not valid, no requests will be applied.", +"items": { +"$ref": "Request" +}, +"type": "array" +}, +"responseIncludeGridData": { +"description": "True if grid data should be returned. Meaningful only if include_spreadsheet_in_response is 'true'. This parameter is ignored if a field mask was set in the request.", +"type": "boolean" +}, +"responseRanges": { +"description": "Limits the ranges included in the response spreadsheet. Meaningful only if include_spreadsheet_in_response is 'true'.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateSpreadsheetResponse": { +"description": "The reply for batch updating a spreadsheet.", +"id": "BatchUpdateSpreadsheetResponse", +"properties": { +"replies": { +"description": "The reply of the updates. This maps 1:1 with the updates, although replies to some requests may be empty.", +"items": { +"$ref": "Response" +}, +"type": "array" +}, +"spreadsheetId": { +"description": "The spreadsheet the updates were applied to.", +"type": "string" +}, +"updatedSpreadsheet": { +"$ref": "Spreadsheet", +"description": "The spreadsheet after updates were applied. This is only set if BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response is `true`." +} +}, +"type": "object" +}, +"BatchUpdateValuesByDataFilterRequest": { +"description": "The request for updating more than one range of values in a spreadsheet.", +"id": "BatchUpdateValuesByDataFilterRequest", +"properties": { +"data": { +"description": "The new values to apply to the spreadsheet. If more than one range is matched by the specified DataFilter the specified values are applied to all of those ranges.", +"items": { +"$ref": "DataFilterValueRange" +}, +"type": "array" +}, +"includeValuesInResponse": { +"description": "Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values. The `updatedData` field within each of the BatchUpdateValuesResponse.responses contains the updated values. If the range to write was larger than the range actually written, the response includes all values in the requested range (excluding trailing empty rows and columns).", +"type": "boolean" +}, +"responseDateTimeRenderOption": { +"description": "Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default dateTime render option is SERIAL_NUMBER.", +"enum": [ +"SERIAL_NUMBER", +"FORMATTED_STRING" +], +"enumDescriptions": [ +"Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.", +"Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale)." +], +"type": "string" +}, +"responseValueRenderOption": { +"description": "Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE.", +"enum": [ +"FORMATTED_VALUE", +"UNFORMATTED_VALUE", +"FORMULA" +], +"enumDescriptions": [ +"Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", +"Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", +"Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." +], +"type": "string" +}, +"valueInputOption": { +"description": "How the input data should be interpreted.", +"enum": [ +"INPUT_VALUE_OPTION_UNSPECIFIED", +"RAW", +"USER_ENTERED" +], +"enumDescriptions": [ +"Default input value. This value must not be used.", +"The values the user has entered will not be parsed and will be stored as-is.", +"The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI." +], +"type": "string" +} +}, +"type": "object" +}, +"BatchUpdateValuesByDataFilterResponse": { +"description": "The response when updating a range of values in a spreadsheet.", +"id": "BatchUpdateValuesByDataFilterResponse", +"properties": { +"responses": { +"description": "The response for each range updated.", +"items": { +"$ref": "UpdateValuesByDataFilterResponse" +}, +"type": "array" +}, +"spreadsheetId": { +"description": "The spreadsheet the updates were applied to.", +"type": "string" +}, +"totalUpdatedCells": { +"description": "The total number of cells updated.", +"format": "int32", +"type": "integer" +}, +"totalUpdatedColumns": { +"description": "The total number of columns where at least one cell in the column was updated.", +"format": "int32", +"type": "integer" +}, +"totalUpdatedRows": { +"description": "The total number of rows where at least one cell in the row was updated.", +"format": "int32", +"type": "integer" +}, +"totalUpdatedSheets": { +"description": "The total number of sheets where at least one cell in the sheet was updated.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BatchUpdateValuesRequest": { +"description": "The request for updating more than one range of values in a spreadsheet.", +"id": "BatchUpdateValuesRequest", +"properties": { +"data": { +"description": "The new values to apply to the spreadsheet.", +"items": { +"$ref": "ValueRange" +}, +"type": "array" +}, +"includeValuesInResponse": { +"description": "Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values. The `updatedData` field within each of the BatchUpdateValuesResponse.responses contains the updated values. If the range to write was larger than the range actually written, the response includes all values in the requested range (excluding trailing empty rows and columns).", +"type": "boolean" +}, +"responseDateTimeRenderOption": { +"description": "Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default dateTime render option is SERIAL_NUMBER.", +"enum": [ +"SERIAL_NUMBER", +"FORMATTED_STRING" +], +"enumDescriptions": [ +"Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.", +"Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale)." +], +"type": "string" +}, +"responseValueRenderOption": { +"description": "Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE.", +"enum": [ +"FORMATTED_VALUE", +"UNFORMATTED_VALUE", +"FORMULA" +], +"enumDescriptions": [ +"Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.", +"Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.", +"Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/sheets/api/guides/formats#about_date_time_values)." +], +"type": "string" +}, +"valueInputOption": { +"description": "How the input data should be interpreted.", +"enum": [ +"INPUT_VALUE_OPTION_UNSPECIFIED", +"RAW", +"USER_ENTERED" +], +"enumDescriptions": [ +"Default input value. This value must not be used.", +"The values the user has entered will not be parsed and will be stored as-is.", +"The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI." +], +"type": "string" +} +}, +"type": "object" +}, +"BatchUpdateValuesResponse": { +"description": "The response when updating a range of values in a spreadsheet.", +"id": "BatchUpdateValuesResponse", +"properties": { +"responses": { +"description": "One UpdateValuesResponse per requested range, in the same order as the requests appeared.", +"items": { +"$ref": "UpdateValuesResponse" +}, +"type": "array" +}, +"spreadsheetId": { +"description": "The spreadsheet the updates were applied to.", +"type": "string" +}, +"totalUpdatedCells": { +"description": "The total number of cells updated.", +"format": "int32", +"type": "integer" +}, +"totalUpdatedColumns": { +"description": "The total number of columns where at least one cell in the column was updated.", +"format": "int32", +"type": "integer" +}, +"totalUpdatedRows": { +"description": "The total number of rows where at least one cell in the row was updated.", +"format": "int32", +"type": "integer" +}, +"totalUpdatedSheets": { +"description": "The total number of sheets where at least one cell in the sheet was updated.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BigQueryDataSourceSpec": { +"description": "The specification of a BigQuery data source that's connected to a sheet.", +"id": "BigQueryDataSourceSpec", +"properties": { +"projectId": { +"description": "The ID of a BigQuery enabled Google Cloud project with a billing account attached. For any queries executed against the data source, the project is charged.", +"type": "string" +}, +"querySpec": { +"$ref": "BigQueryQuerySpec", +"description": "A BigQueryQuerySpec." +}, +"tableSpec": { +"$ref": "BigQueryTableSpec", +"description": "A BigQueryTableSpec." +} +}, +"type": "object" +}, +"BigQueryQuerySpec": { +"description": "Specifies a custom BigQuery query.", +"id": "BigQueryQuerySpec", +"properties": { +"rawQuery": { +"description": "The raw query string.", +"type": "string" +} +}, +"type": "object" +}, +"BigQueryTableSpec": { +"description": "Specifies a BigQuery table definition. Only [native tables](https://cloud.google.com/bigquery/docs/tables-intro) are allowed.", +"id": "BigQueryTableSpec", +"properties": { +"datasetId": { +"description": "The BigQuery dataset id.", +"type": "string" +}, +"tableId": { +"description": "The BigQuery table id.", +"type": "string" +}, +"tableProjectId": { +"description": "The ID of a BigQuery project the table belongs to. If not specified, the project_id is assumed.", +"type": "string" +} +}, +"type": "object" +}, +"BooleanCondition": { +"description": "A condition that can evaluate to true or false. BooleanConditions are used by conditional formatting, data validation, and the criteria in filters.", +"id": "BooleanCondition", +"properties": { +"type": { +"description": "The type of condition.", +"enum": [ +"CONDITION_TYPE_UNSPECIFIED", +"NUMBER_GREATER", +"NUMBER_GREATER_THAN_EQ", +"NUMBER_LESS", +"NUMBER_LESS_THAN_EQ", +"NUMBER_EQ", +"NUMBER_NOT_EQ", +"NUMBER_BETWEEN", +"NUMBER_NOT_BETWEEN", +"TEXT_CONTAINS", +"TEXT_NOT_CONTAINS", +"TEXT_STARTS_WITH", +"TEXT_ENDS_WITH", +"TEXT_EQ", +"TEXT_IS_EMAIL", +"TEXT_IS_URL", +"DATE_EQ", +"DATE_BEFORE", +"DATE_AFTER", +"DATE_ON_OR_BEFORE", +"DATE_ON_OR_AFTER", +"DATE_BETWEEN", +"DATE_NOT_BETWEEN", +"DATE_IS_VALID", +"ONE_OF_RANGE", +"ONE_OF_LIST", +"BLANK", +"NOT_BLANK", +"CUSTOM_FORMULA", +"BOOLEAN", +"TEXT_NOT_EQ", +"DATE_NOT_EQ", +"FILTER_EXPRESSION" +], +"enumDescriptions": [ +"The default value, do not use.", +"The cell's value must be greater than the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue.", +"The cell's value must be greater than or equal to the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue.", +"The cell's value must be less than the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue.", +"The cell's value must be less than or equal to the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue.", +"The cell's value must be equal to the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue for data validation, conditional formatting, and filters on non-data source objects and at least one ConditionValue for filters on data source objects.", +"The cell's value must be not equal to the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue for data validation, conditional formatting, and filters on non-data source objects and at least one ConditionValue for filters on data source objects.", +"The cell's value must be between the two condition values. Supported by data validation, conditional formatting and filters. Requires exactly two ConditionValues.", +"The cell's value must not be between the two condition values. Supported by data validation, conditional formatting and filters. Requires exactly two ConditionValues.", +"The cell's value must contain the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue.", +"The cell's value must not contain the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue.", +"The cell's value must start with the condition's value. Supported by conditional formatting and filters. Requires a single ConditionValue.", +"The cell's value must end with the condition's value. Supported by conditional formatting and filters. Requires a single ConditionValue.", +"The cell's value must be exactly the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue for data validation, conditional formatting, and filters on non-data source objects and at least one ConditionValue for filters on data source objects.", +"The cell's value must be a valid email address. Supported by data validation. Requires no ConditionValues.", +"The cell's value must be a valid URL. Supported by data validation. Requires no ConditionValues.", +"The cell's value must be the same date as the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue for data validation, conditional formatting, and filters on non-data source objects and at least one ConditionValue for filters on data source objects.", +"The cell's value must be before the date of the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue that may be a relative date.", +"The cell's value must be after the date of the condition's value. Supported by data validation, conditional formatting and filters. Requires a single ConditionValue that may be a relative date.", +"The cell's value must be on or before the date of the condition's value. Supported by data validation. Requires a single ConditionValue that may be a relative date.", +"The cell's value must be on or after the date of the condition's value. Supported by data validation. Requires a single ConditionValue that may be a relative date.", +"The cell's value must be between the dates of the two condition values. Supported by data validation. Requires exactly two ConditionValues.", +"The cell's value must be outside the dates of the two condition values. Supported by data validation. Requires exactly two ConditionValues.", +"The cell's value must be a date. Supported by data validation. Requires no ConditionValues.", +"The cell's value must be listed in the grid in condition value's range. Supported by data validation. Requires a single ConditionValue, and the value must be a valid range in A1 notation.", +"The cell's value must be in the list of condition values. Supported by data validation. Supports any number of condition values, one per item in the list. Formulas are not supported in the values.", +"The cell's value must be empty. Supported by conditional formatting and filters. Requires no ConditionValues.", +"The cell's value must not be empty. Supported by conditional formatting and filters. Requires no ConditionValues.", +"The condition's formula must evaluate to true. Supported by data validation, conditional formatting and filters. Not supported by data source sheet filters. Requires a single ConditionValue.", +"The cell's value must be TRUE/FALSE or in the list of condition values. Supported by data validation. Renders as a cell checkbox. Supports zero, one or two ConditionValues. No values indicates the cell must be TRUE or FALSE, where TRUE renders as checked and FALSE renders as unchecked. One value indicates the cell will render as checked when it contains that value and unchecked when it is blank. Two values indicate that the cell will render as checked when it contains the first value and unchecked when it contains the second value. For example, [\"Yes\",\"No\"] indicates that the cell will render a checked box when it has the value \"Yes\" and an unchecked box when it has the value \"No\".", +"The cell's value must be exactly not the condition's value. Supported by filters on data source objects. Requires at least one ConditionValue.", +"The cell's value must be exactly not the condition's value. Supported by filters on data source objects. Requires at least one ConditionValue.", +"The cell's value must follow the pattern specified. Requires a single ConditionValue." +], +"type": "string" +}, +"values": { +"description": "The values of the condition. The number of supported values depends on the condition type. Some support zero values, others one or two values, and ConditionType.ONE_OF_LIST supports an arbitrary number of values.", +"items": { +"$ref": "ConditionValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"BooleanRule": { +"description": "A rule that may or may not match, depending on the condition.", +"id": "BooleanRule", +"properties": { +"condition": { +"$ref": "BooleanCondition", +"description": "The condition of the rule. If the condition evaluates to true, the format is applied." +}, +"format": { +"$ref": "CellFormat", +"description": "The format to apply. Conditional formatting can only apply a subset of formatting: bold, italic, strikethrough, foreground color and, background color." +} +}, +"type": "object" +}, +"Border": { +"description": "A border along a cell.", +"id": "Border", +"properties": { +"color": { +"$ref": "Color", +"deprecated": true, +"description": "The color of the border. Deprecated: Use color_style." +}, +"colorStyle": { +"$ref": "ColorStyle", +"description": "The color of the border. If color is also set, this field takes precedence." +}, +"style": { +"description": "The style of the border.", +"enum": [ +"STYLE_UNSPECIFIED", +"DOTTED", +"DASHED", +"SOLID", +"SOLID_MEDIUM", +"SOLID_THICK", +"NONE", +"DOUBLE" +], +"enumDescriptions": [ +"The style is not specified. Do not use this.", +"The border is dotted.", +"The border is dashed.", +"The border is a thin solid line.", +"The border is a medium solid line.", +"The border is a thick solid line.", +"No border. Used only when updating a border in order to erase it.", +"The border is two solid lines." +], +"type": "string" +}, +"width": { +"deprecated": true, +"description": "The width of the border, in pixels. Deprecated; the width is determined by the \"style\" field.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Borders": { +"description": "The borders of the cell.", +"id": "Borders", +"properties": { +"bottom": { +"$ref": "Border", +"description": "The bottom border of the cell." +}, +"left": { +"$ref": "Border", +"description": "The left border of the cell." +}, +"right": { +"$ref": "Border", +"description": "The right border of the cell." +}, +"top": { +"$ref": "Border", +"description": "The top border of the cell." +} +}, +"type": "object" +}, +"BubbleChartSpec": { +"description": "A bubble chart.", +"id": "BubbleChartSpec", +"properties": { +"bubbleBorderColor": { +"$ref": "Color", +"deprecated": true, +"description": "The bubble border color. Deprecated: Use bubble_border_color_style." +}, +"bubbleBorderColorStyle": { +"$ref": "ColorStyle", +"description": "The bubble border color. If bubble_border_color is also set, this field takes precedence." +}, +"bubbleLabels": { +"$ref": "ChartData", +"description": "The data containing the bubble labels. These do not need to be unique." +}, +"bubbleMaxRadiusSize": { +"description": "The max radius size of the bubbles, in pixels. If specified, the field must be a positive value.", +"format": "int32", +"type": "integer" +}, +"bubbleMinRadiusSize": { +"description": "The minimum radius size of the bubbles, in pixels. If specific, the field must be a positive value.", +"format": "int32", +"type": "integer" +}, +"bubbleOpacity": { +"description": "The opacity of the bubbles between 0 and 1.0. 0 is fully transparent and 1 is fully opaque.", +"format": "float", +"type": "number" +}, +"bubbleSizes": { +"$ref": "ChartData", +"description": "The data containing the bubble sizes. Bubble sizes are used to draw the bubbles at different sizes relative to each other. If specified, group_ids must also be specified. This field is optional." +}, +"bubbleTextStyle": { +"$ref": "TextFormat", +"description": "The format of the text inside the bubbles. Strikethrough, underline, and link are not supported." +}, +"domain": { +"$ref": "ChartData", +"description": "The data containing the bubble x-values. These values locate the bubbles in the chart horizontally." +}, +"groupIds": { +"$ref": "ChartData", +"description": "The data containing the bubble group IDs. All bubbles with the same group ID are drawn in the same color. If bubble_sizes is specified then this field must also be specified but may contain blank values. This field is optional." +}, +"legendPosition": { +"description": "Where the legend of the chart should be drawn.", +"enum": [ +"BUBBLE_CHART_LEGEND_POSITION_UNSPECIFIED", +"BOTTOM_LEGEND", +"LEFT_LEGEND", +"RIGHT_LEGEND", +"TOP_LEGEND", +"NO_LEGEND", +"INSIDE_LEGEND" +], +"enumDescriptions": [ +"Default value, do not use.", +"The legend is rendered on the bottom of the chart.", +"The legend is rendered on the left of the chart.", +"The legend is rendered on the right of the chart.", +"The legend is rendered on the top of the chart.", +"No legend is rendered.", +"The legend is rendered inside the chart area." +], +"type": "string" +}, +"series": { +"$ref": "ChartData", +"description": "The data containing the bubble y-values. These values locate the bubbles in the chart vertically." +} +}, +"type": "object" +}, +"CancelDataSourceRefreshRequest": { +"description": "Cancels one or multiple refreshes of data source objects in the spreadsheet by the specified references. The request requires an additional `bigquery.readonly` OAuth scope if you are cancelling a refresh on a BigQuery data source.", +"id": "CancelDataSourceRefreshRequest", +"properties": { +"dataSourceId": { +"description": "Reference to a DataSource. If specified, cancels all associated data source object refreshes for this data source.", +"type": "string" +}, +"isAll": { +"description": "Cancels all existing data source object refreshes for all data sources in the spreadsheet.", +"type": "boolean" +}, +"references": { +"$ref": "DataSourceObjectReferences", +"description": "References to data source objects whose refreshes are to be cancelled." +} +}, +"type": "object" +}, +"CancelDataSourceRefreshResponse": { +"description": "The response from cancelling one or multiple data source object refreshes.", +"id": "CancelDataSourceRefreshResponse", +"properties": { +"statuses": { +"description": "The cancellation statuses of refreshes of all data source objects specified in the request. If is_all is specified, the field contains only those in failure status. Refreshing and canceling refresh the same data source object is also not allowed in the same `batchUpdate`.", +"items": { +"$ref": "CancelDataSourceRefreshStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"CancelDataSourceRefreshStatus": { +"description": "The status of cancelling a single data source object refresh.", +"id": "CancelDataSourceRefreshStatus", +"properties": { +"reference": { +"$ref": "DataSourceObjectReference", +"description": "Reference to the data source object whose refresh is being cancelled." +}, +"refreshCancellationStatus": { +"$ref": "RefreshCancellationStatus", +"description": "The cancellation status." +} +}, +"type": "object" +}, +"CandlestickChartSpec": { +"description": "A candlestick chart.", +"id": "CandlestickChartSpec", +"properties": { +"data": { +"description": "The Candlestick chart data. Only one CandlestickData is supported.", +"items": { +"$ref": "CandlestickData" +}, +"type": "array" +}, +"domain": { +"$ref": "CandlestickDomain", +"description": "The domain data (horizontal axis) for the candlestick chart. String data will be treated as discrete labels, other data will be treated as continuous values." +} +}, +"type": "object" +}, +"CandlestickData": { +"description": "The Candlestick chart data, each containing the low, open, close, and high values for a series.", +"id": "CandlestickData", +"properties": { +"closeSeries": { +"$ref": "CandlestickSeries", +"description": "The range data (vertical axis) for the close/final value for each candle. This is the top of the candle body. If greater than the open value the candle will be filled. Otherwise the candle will be hollow." +}, +"highSeries": { +"$ref": "CandlestickSeries", +"description": "The range data (vertical axis) for the high/maximum value for each candle. This is the top of the candle's center line." +}, +"lowSeries": { +"$ref": "CandlestickSeries", +"description": "The range data (vertical axis) for the low/minimum value for each candle. This is the bottom of the candle's center line." +}, +"openSeries": { +"$ref": "CandlestickSeries", +"description": "The range data (vertical axis) for the open/initial value for each candle. This is the bottom of the candle body. If less than the close value the candle will be filled. Otherwise the candle will be hollow." +} +}, +"type": "object" +}, +"CandlestickDomain": { +"description": "The domain of a CandlestickChart.", +"id": "CandlestickDomain", +"properties": { +"data": { +"$ref": "ChartData", +"description": "The data of the CandlestickDomain." +}, +"reversed": { +"description": "True to reverse the order of the domain values (horizontal axis).", +"type": "boolean" +} +}, +"type": "object" +}, +"CandlestickSeries": { +"description": "The series of a CandlestickData.", +"id": "CandlestickSeries", +"properties": { +"data": { +"$ref": "ChartData", +"description": "The data of the CandlestickSeries." +} +}, +"type": "object" +}, +"CellData": { +"description": "Data about a specific cell.", +"id": "CellData", +"properties": { +"dataSourceFormula": { +"$ref": "DataSourceFormula", +"description": "Output only. Information about a data source formula on the cell. The field is set if user_entered_value is a formula referencing some DATA_SOURCE sheet, e.g. `=SUM(DataSheet!Column)`.", +"readOnly": true +}, +"dataSourceTable": { +"$ref": "DataSourceTable", +"description": "A data source table anchored at this cell. The size of data source table itself is computed dynamically based on its configuration. Only the first cell of the data source table contains the data source table definition. The other cells will contain the display values of the data source table result in their effective_value fields." +}, +"dataValidation": { +"$ref": "DataValidationRule", +"description": "A data validation rule on the cell, if any. When writing, the new data validation rule will overwrite any prior rule." +}, +"effectiveFormat": { +"$ref": "CellFormat", +"description": "The effective format being used by the cell. This includes the results of applying any conditional formatting and, if the cell contains a formula, the computed number format. If the effective format is the default format, effective format will not be written. This field is read-only." +}, +"effectiveValue": { +"$ref": "ExtendedValue", +"description": "The effective value of the cell. For cells with formulas, this is the calculated value. For cells with literals, this is the same as the user_entered_value. This field is read-only." +}, +"formattedValue": { +"description": "The formatted value of the cell. This is the value as it's shown to the user. This field is read-only.", +"type": "string" +}, +"hyperlink": { +"description": "A hyperlink this cell points to, if any. If the cell contains multiple hyperlinks, this field will be empty. This field is read-only. To set it, use a `=HYPERLINK` formula in the userEnteredValue.formulaValue field. A cell-level link can also be set from the userEnteredFormat.textFormat field. Alternatively, set a hyperlink in the textFormatRun.format.link field that spans the entire cell.", +"type": "string" +}, +"note": { +"description": "Any note on the cell.", +"type": "string" +}, +"pivotTable": { +"$ref": "PivotTable", +"description": "A pivot table anchored at this cell. The size of pivot table itself is computed dynamically based on its data, grouping, filters, values, etc. Only the top-left cell of the pivot table contains the pivot table definition. The other cells will contain the calculated values of the results of the pivot in their effective_value fields." +}, +"textFormatRuns": { +"description": "Runs of rich text applied to subsections of the cell. Runs are only valid on user entered strings, not formulas, bools, or numbers. Properties of a run start at a specific index in the text and continue until the next run. Runs will inherit the properties of the cell unless explicitly changed. When writing, the new runs will overwrite any prior runs. When writing a new user_entered_value, previous runs are erased.", +"items": { +"$ref": "TextFormatRun" +}, +"type": "array" +}, +"userEnteredFormat": { +"$ref": "CellFormat", +"description": "The format the user entered for the cell. When writing, the new format will be merged with the existing format." +}, +"userEnteredValue": { +"$ref": "ExtendedValue", +"description": "The value the user entered in the cell. e.g., `1234`, `'Hello'`, or `=NOW()` Note: Dates, Times and DateTimes are represented as doubles in serial number format." +} +}, +"type": "object" +}, +"CellFormat": { +"description": "The format of a cell.", +"id": "CellFormat", +"properties": { +"backgroundColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background color of the cell. Deprecated: Use background_color_style." +}, +"backgroundColorStyle": { +"$ref": "ColorStyle", +"description": "The background color of the cell. If background_color is also set, this field takes precedence." +}, +"borders": { +"$ref": "Borders", +"description": "The borders of the cell." +}, +"horizontalAlignment": { +"description": "The horizontal alignment of the value in the cell.", +"enum": [ +"HORIZONTAL_ALIGN_UNSPECIFIED", +"LEFT", +"CENTER", +"RIGHT" +], +"enumDescriptions": [ +"The horizontal alignment is not specified. Do not use this.", +"The text is explicitly aligned to the left of the cell.", +"The text is explicitly aligned to the center of the cell.", +"The text is explicitly aligned to the right of the cell." +], +"type": "string" +}, +"hyperlinkDisplayType": { +"description": "If one exists, how a hyperlink should be displayed in the cell.", +"enum": [ +"HYPERLINK_DISPLAY_TYPE_UNSPECIFIED", +"LINKED", +"PLAIN_TEXT" +], +"enumDescriptions": [ +"The default value: the hyperlink is rendered. Do not use this.", +"A hyperlink should be explicitly rendered.", +"A hyperlink should not be rendered." +], +"type": "string" +}, +"numberFormat": { +"$ref": "NumberFormat", +"description": "A format describing how number values should be represented to the user." +}, +"padding": { +"$ref": "Padding", +"description": "The padding of the cell." +}, +"textDirection": { +"description": "The direction of the text in the cell.", +"enum": [ +"TEXT_DIRECTION_UNSPECIFIED", +"LEFT_TO_RIGHT", +"RIGHT_TO_LEFT" +], +"enumDescriptions": [ +"The text direction is not specified. Do not use this.", +"The text direction of left-to-right was set by the user.", +"The text direction of right-to-left was set by the user." +], +"type": "string" +}, +"textFormat": { +"$ref": "TextFormat", +"description": "The format of the text in the cell (unless overridden by a format run). Setting a cell-level link here clears the cell's existing links. Setting the link field in a TextFormatRun takes precedence over the cell-level link." +}, +"textRotation": { +"$ref": "TextRotation", +"description": "The rotation applied to text in the cell." +}, +"verticalAlignment": { +"description": "The vertical alignment of the value in the cell.", +"enum": [ +"VERTICAL_ALIGN_UNSPECIFIED", +"TOP", +"MIDDLE", +"BOTTOM" +], +"enumDescriptions": [ +"The vertical alignment is not specified. Do not use this.", +"The text is explicitly aligned to the top of the cell.", +"The text is explicitly aligned to the middle of the cell.", +"The text is explicitly aligned to the bottom of the cell." +], +"type": "string" +}, +"wrapStrategy": { +"description": "The wrap strategy for the value in the cell.", +"enum": [ +"WRAP_STRATEGY_UNSPECIFIED", +"OVERFLOW_CELL", +"LEGACY_WRAP", +"CLIP", +"WRAP" +], +"enumDescriptions": [ +"The default value, do not use.", +"Lines that are longer than the cell width will be written in the next cell over, so long as that cell is empty. If the next cell over is non-empty, this behaves the same as `CLIP`. The text will never wrap to the next line unless the user manually inserts a new line. Example: | First sentence. | | Manual newline that is very long. <- Text continues into next cell | Next newline. |", +"This wrap strategy represents the old Google Sheets wrap strategy where words that are longer than a line are clipped rather than broken. This strategy is not supported on all platforms and is being phased out. Example: | Cell has a | | loooooooooo| <- Word is clipped. | word. |", +"Lines that are longer than the cell width will be clipped. The text will never wrap to the next line unless the user manually inserts a new line. Example: | First sentence. | | Manual newline t| <- Text is clipped | Next newline. |", +"Words that are longer than a line are wrapped at the character level rather than clipped. Example: | Cell has a | | loooooooooo| <- Word is broken. | ong word. |" +], +"type": "string" +} +}, +"type": "object" +}, +"ChartAxisViewWindowOptions": { +"description": "The options that define a \"view window\" for a chart (such as the visible values in an axis).", +"id": "ChartAxisViewWindowOptions", +"properties": { +"viewWindowMax": { +"description": "The maximum numeric value to be shown in this view window. If unset, will automatically determine a maximum value that looks good for the data.", +"format": "double", +"type": "number" +}, +"viewWindowMin": { +"description": "The minimum numeric value to be shown in this view window. If unset, will automatically determine a minimum value that looks good for the data.", +"format": "double", +"type": "number" +}, +"viewWindowMode": { +"description": "The view window's mode.", +"enum": [ +"DEFAULT_VIEW_WINDOW_MODE", +"VIEW_WINDOW_MODE_UNSUPPORTED", +"EXPLICIT", +"PRETTY" +], +"enumDescriptions": [ +"The default view window mode used in the Sheets editor for this chart type. In most cases, if set, the default mode is equivalent to `PRETTY`.", +"Do not use. Represents that the currently set mode is not supported by the API.", +"Follows the min and max exactly if specified. If a value is unspecified, it will fall back to the `PRETTY` value.", +"Chooses a min and max that make the chart look good. Both min and max are ignored in this mode." +], +"type": "string" +} +}, +"type": "object" +}, +"ChartCustomNumberFormatOptions": { +"description": "Custom number formatting options for chart attributes.", +"id": "ChartCustomNumberFormatOptions", +"properties": { +"prefix": { +"description": "Custom prefix to be prepended to the chart attribute. This field is optional.", +"type": "string" +}, +"suffix": { +"description": "Custom suffix to be appended to the chart attribute. This field is optional.", +"type": "string" +} +}, +"type": "object" +}, +"ChartData": { +"description": "The data included in a domain or series.", +"id": "ChartData", +"properties": { +"aggregateType": { +"description": "The aggregation type for the series of a data source chart. Only supported for data source charts.", +"enum": [ +"CHART_AGGREGATE_TYPE_UNSPECIFIED", +"AVERAGE", +"COUNT", +"MAX", +"MEDIAN", +"MIN", +"SUM" +], +"enumDescriptions": [ +"Default value, do not use.", +"Average aggregate function.", +"Count aggregate function.", +"Maximum aggregate function.", +"Median aggregate function.", +"Minimum aggregate function.", +"Sum aggregate function." +], +"type": "string" +}, +"columnReference": { +"$ref": "DataSourceColumnReference", +"description": "The reference to the data source column that the data reads from." +}, +"groupRule": { +"$ref": "ChartGroupRule", +"description": "The rule to group the data by if the ChartData backs the domain of a data source chart. Only supported for data source charts." +}, +"sourceRange": { +"$ref": "ChartSourceRange", +"description": "The source ranges of the data." +} +}, +"type": "object" +}, +"ChartDateTimeRule": { +"description": "Allows you to organize the date-time values in a source data column into buckets based on selected parts of their date or time values.", +"id": "ChartDateTimeRule", +"properties": { +"type": { +"description": "The type of date-time grouping to apply.", +"enum": [ +"CHART_DATE_TIME_RULE_TYPE_UNSPECIFIED", +"SECOND", +"MINUTE", +"HOUR", +"HOUR_MINUTE", +"HOUR_MINUTE_AMPM", +"DAY_OF_WEEK", +"DAY_OF_YEAR", +"DAY_OF_MONTH", +"DAY_MONTH", +"MONTH", +"QUARTER", +"YEAR", +"YEAR_MONTH", +"YEAR_QUARTER", +"YEAR_MONTH_DAY" +], +"enumDescriptions": [ +"The default type, do not use.", +"Group dates by second, from 0 to 59.", +"Group dates by minute, from 0 to 59.", +"Group dates by hour using a 24-hour system, from 0 to 23.", +"Group dates by hour and minute using a 24-hour system, for example 19:45.", +"Group dates by hour and minute using a 12-hour system, for example 7:45 PM. The AM/PM designation is translated based on the spreadsheet locale.", +"Group dates by day of week, for example Sunday. The days of the week will be translated based on the spreadsheet locale.", +"Group dates by day of year, from 1 to 366. Note that dates after Feb. 29 fall in different buckets in leap years than in non-leap years.", +"Group dates by day of month, from 1 to 31.", +"Group dates by day and month, for example 22-Nov. The month is translated based on the spreadsheet locale.", +"Group dates by month, for example Nov. The month is translated based on the spreadsheet locale.", +"Group dates by quarter, for example Q1 (which represents Jan-Mar).", +"Group dates by year, for example 2008.", +"Group dates by year and month, for example 2008-Nov. The month is translated based on the spreadsheet locale.", +"Group dates by year and quarter, for example 2008 Q4.", +"Group dates by year, month, and day, for example 2008-11-22." +], +"type": "string" +} +}, +"type": "object" +}, +"ChartGroupRule": { +"description": "An optional setting on the ChartData of the domain of a data source chart that defines buckets for the values in the domain rather than breaking out each individual value. For example, when plotting a data source chart, you can specify a histogram rule on the domain (it should only contain numeric values), grouping its values into buckets. Any values of a chart series that fall into the same bucket are aggregated based on the aggregate_type.", +"id": "ChartGroupRule", +"properties": { +"dateTimeRule": { +"$ref": "ChartDateTimeRule", +"description": "A ChartDateTimeRule." +}, +"histogramRule": { +"$ref": "ChartHistogramRule", +"description": "A ChartHistogramRule" +} +}, +"type": "object" +}, +"ChartHistogramRule": { +"description": "Allows you to organize numeric values in a source data column into buckets of constant size.", +"id": "ChartHistogramRule", +"properties": { +"intervalSize": { +"description": "The size of the buckets that are created. Must be positive.", +"format": "double", +"type": "number" +}, +"maxValue": { +"description": "The maximum value at which items are placed into buckets. Values greater than the maximum are grouped into a single bucket. If omitted, it is determined by the maximum item value.", +"format": "double", +"type": "number" +}, +"minValue": { +"description": "The minimum value at which items are placed into buckets. Values that are less than the minimum are grouped into a single bucket. If omitted, it is determined by the minimum item value.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ChartSourceRange": { +"description": "Source ranges for a chart.", +"id": "ChartSourceRange", +"properties": { +"sources": { +"description": "The ranges of data for a series or domain. Exactly one dimension must have a length of 1, and all sources in the list must have the same dimension with length 1. The domain (if it exists) & all series must have the same number of source ranges. If using more than one source range, then the source range at a given offset must be in order and contiguous across the domain and series. For example, these are valid configurations: domain sources: A1:A5 series1 sources: B1:B5 series2 sources: D6:D10 domain sources: A1:A5, C10:C12 series1 sources: B1:B5, D10:D12 series2 sources: C1:C5, E10:E12", +"items": { +"$ref": "GridRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"ChartSpec": { +"description": "The specifications of a chart.", +"id": "ChartSpec", +"properties": { +"altText": { +"description": "The alternative text that describes the chart. This is often used for accessibility.", +"type": "string" +}, +"backgroundColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background color of the entire chart. Not applicable to Org charts. Deprecated: Use background_color_style." +}, +"backgroundColorStyle": { +"$ref": "ColorStyle", +"description": "The background color of the entire chart. Not applicable to Org charts. If background_color is also set, this field takes precedence." +}, +"basicChart": { +"$ref": "BasicChartSpec", +"description": "A basic chart specification, can be one of many kinds of charts. See BasicChartType for the list of all charts this supports." +}, +"bubbleChart": { +"$ref": "BubbleChartSpec", +"description": "A bubble chart specification." +}, +"candlestickChart": { +"$ref": "CandlestickChartSpec", +"description": "A candlestick chart specification." +}, +"dataSourceChartProperties": { +"$ref": "DataSourceChartProperties", +"description": "If present, the field contains data source chart specific properties." +}, +"filterSpecs": { +"description": "The filters applied to the source data of the chart. Only supported for data source charts.", +"items": { +"$ref": "FilterSpec" +}, +"type": "array" +}, +"fontName": { +"description": "The name of the font to use by default for all chart text (e.g. title, axis labels, legend). If a font is specified for a specific part of the chart it will override this font name.", +"type": "string" +}, +"hiddenDimensionStrategy": { +"description": "Determines how the charts will use hidden rows or columns.", +"enum": [ +"CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED", +"SKIP_HIDDEN_ROWS_AND_COLUMNS", +"SKIP_HIDDEN_ROWS", +"SKIP_HIDDEN_COLUMNS", +"SHOW_ALL" +], +"enumDescriptions": [ +"Default value, do not use.", +"Charts will skip hidden rows and columns.", +"Charts will skip hidden rows only.", +"Charts will skip hidden columns only.", +"Charts will not skip any hidden rows or columns." +], +"type": "string" +}, +"histogramChart": { +"$ref": "HistogramChartSpec", +"description": "A histogram chart specification." +}, +"maximized": { +"description": "True to make a chart fill the entire space in which it's rendered with minimum padding. False to use the default padding. (Not applicable to Geo and Org charts.)", +"type": "boolean" +}, +"orgChart": { +"$ref": "OrgChartSpec", +"description": "An org chart specification." +}, +"pieChart": { +"$ref": "PieChartSpec", +"description": "A pie chart specification." +}, +"scorecardChart": { +"$ref": "ScorecardChartSpec", +"description": "A scorecard chart specification." +}, +"sortSpecs": { +"description": "The order to sort the chart data by. Only a single sort spec is supported. Only supported for data source charts.", +"items": { +"$ref": "SortSpec" +}, +"type": "array" +}, +"subtitle": { +"description": "The subtitle of the chart.", +"type": "string" +}, +"subtitleTextFormat": { +"$ref": "TextFormat", +"description": "The subtitle text format. Strikethrough, underline, and link are not supported." +}, +"subtitleTextPosition": { +"$ref": "TextPosition", +"description": "The subtitle text position. This field is optional." +}, +"title": { +"description": "The title of the chart.", +"type": "string" +}, +"titleTextFormat": { +"$ref": "TextFormat", +"description": "The title text format. Strikethrough, underline, and link are not supported." +}, +"titleTextPosition": { +"$ref": "TextPosition", +"description": "The title text position. This field is optional." +}, +"treemapChart": { +"$ref": "TreemapChartSpec", +"description": "A treemap chart specification." +}, +"waterfallChart": { +"$ref": "WaterfallChartSpec", +"description": "A waterfall chart specification." +} +}, +"type": "object" +}, +"ClearBasicFilterRequest": { +"description": "Clears the basic filter, if any exists on the sheet.", +"id": "ClearBasicFilterRequest", +"properties": { +"sheetId": { +"description": "The sheet ID on which the basic filter should be cleared.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ClearValuesRequest": { +"description": "The request for clearing a range of values in a spreadsheet.", +"id": "ClearValuesRequest", +"properties": {}, +"type": "object" +}, +"ClearValuesResponse": { +"description": "The response when clearing a range of values in a spreadsheet.", +"id": "ClearValuesResponse", +"properties": { +"clearedRange": { +"description": "The range (in A1 notation) that was cleared. (If the request was for an unbounded range or a ranger larger than the bounds of the sheet, this will be the actual range that was cleared, bounded to the sheet's limits.)", +"type": "string" +}, +"spreadsheetId": { +"description": "The spreadsheet the updates were applied to.", +"type": "string" +} +}, +"type": "object" +}, +"Color": { +"description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value\u2014for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...", +"id": "Color", +"properties": { +"alpha": { +"description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).", +"format": "float", +"type": "number" +}, +"blue": { +"description": "The amount of blue in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"green": { +"description": "The amount of green in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"red": { +"description": "The amount of red in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"ColorStyle": { +"description": "A color value.", +"id": "ColorStyle", +"properties": { +"rgbColor": { +"$ref": "Color", +"description": "RGB color. The [`alpha`](/sheets/api/reference/rest/v4/spreadsheets/other#Color.FIELDS.alpha) value in the [`Color`](/sheets/api/reference/rest/v4/spreadsheets/other#color) object isn't generally supported." +}, +"themeColor": { +"description": "Theme color.", +"enum": [ +"THEME_COLOR_TYPE_UNSPECIFIED", +"TEXT", +"BACKGROUND", +"ACCENT1", +"ACCENT2", +"ACCENT3", +"ACCENT4", +"ACCENT5", +"ACCENT6", +"LINK" +], +"enumDescriptions": [ +"Unspecified theme color", +"Represents the primary text color", +"Represents the primary background color", +"Represents the first accent color", +"Represents the second accent color", +"Represents the third accent color", +"Represents the fourth accent color", +"Represents the fifth accent color", +"Represents the sixth accent color", +"Represents the color to use for hyperlinks" +], +"type": "string" +} +}, +"type": "object" +}, +"ConditionValue": { +"description": "The value of the condition.", +"id": "ConditionValue", +"properties": { +"relativeDate": { +"description": "A relative date (based on the current date). Valid only if the type is DATE_BEFORE, DATE_AFTER, DATE_ON_OR_BEFORE or DATE_ON_OR_AFTER. Relative dates are not supported in data validation. They are supported only in conditional formatting and conditional filters.", +"enum": [ +"RELATIVE_DATE_UNSPECIFIED", +"PAST_YEAR", +"PAST_MONTH", +"PAST_WEEK", +"YESTERDAY", +"TODAY", +"TOMORROW" +], +"enumDescriptions": [ +"Default value, do not use.", +"The value is one year before today.", +"The value is one month before today.", +"The value is one week before today.", +"The value is yesterday.", +"The value is today.", +"The value is tomorrow." +], +"type": "string" +}, +"userEnteredValue": { +"description": "A value the condition is based on. The value is parsed as if the user typed into a cell. Formulas are supported (and must begin with an `=` or a '+').", +"type": "string" +} +}, +"type": "object" +}, +"ConditionalFormatRule": { +"description": "A rule describing a conditional format.", +"id": "ConditionalFormatRule", +"properties": { +"booleanRule": { +"$ref": "BooleanRule", +"description": "The formatting is either \"on\" or \"off\" according to the rule." +}, +"gradientRule": { +"$ref": "GradientRule", +"description": "The formatting will vary based on the gradients in the rule." +}, +"ranges": { +"description": "The ranges that are formatted if the condition is true. All the ranges must be on the same grid.", +"items": { +"$ref": "GridRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"CopyPasteRequest": { +"description": "Copies data from the source to the destination.", +"id": "CopyPasteRequest", +"properties": { +"destination": { +"$ref": "GridRange", +"description": "The location to paste to. If the range covers a span that's a multiple of the source's height or width, then the data will be repeated to fill in the destination range. If the range is smaller than the source range, the entire source data will still be copied (beyond the end of the destination range)." +}, +"pasteOrientation": { +"description": "How that data should be oriented when pasting.", +"enum": [ +"NORMAL", +"TRANSPOSE" +], +"enumDescriptions": [ +"Paste normally.", +"Paste transposed, where all rows become columns and vice versa." +], +"type": "string" +}, +"pasteType": { +"description": "What kind of data to paste.", +"enum": [ +"PASTE_NORMAL", +"PASTE_VALUES", +"PASTE_FORMAT", +"PASTE_NO_BORDERS", +"PASTE_FORMULA", +"PASTE_DATA_VALIDATION", +"PASTE_CONDITIONAL_FORMATTING" +], +"enumDescriptions": [ +"Paste values, formulas, formats, and merges.", +"Paste the values ONLY without formats, formulas, or merges.", +"Paste the format and data validation only.", +"Like `PASTE_NORMAL` but without borders.", +"Paste the formulas only.", +"Paste the data validation only.", +"Paste the conditional formatting rules only." +], +"type": "string" +}, +"source": { +"$ref": "GridRange", +"description": "The source range to copy." +} +}, +"type": "object" +}, +"CopySheetToAnotherSpreadsheetRequest": { +"description": "The request to copy a sheet across spreadsheets.", +"id": "CopySheetToAnotherSpreadsheetRequest", +"properties": { +"destinationSpreadsheetId": { +"description": "The ID of the spreadsheet to copy the sheet to.", +"type": "string" +} +}, +"type": "object" +}, +"CreateDeveloperMetadataRequest": { +"description": "A request to create developer metadata.", +"id": "CreateDeveloperMetadataRequest", +"properties": { +"developerMetadata": { +"$ref": "DeveloperMetadata", +"description": "The developer metadata to create." +} +}, +"type": "object" +}, +"CreateDeveloperMetadataResponse": { +"description": "The response from creating developer metadata.", +"id": "CreateDeveloperMetadataResponse", +"properties": { +"developerMetadata": { +"$ref": "DeveloperMetadata", +"description": "The developer metadata that was created." +} +}, +"type": "object" +}, +"CutPasteRequest": { +"description": "Moves data from the source to the destination.", +"id": "CutPasteRequest", +"properties": { +"destination": { +"$ref": "GridCoordinate", +"description": "The top-left coordinate where the data should be pasted." +}, +"pasteType": { +"description": "What kind of data to paste. All the source data will be cut, regardless of what is pasted.", +"enum": [ +"PASTE_NORMAL", +"PASTE_VALUES", +"PASTE_FORMAT", +"PASTE_NO_BORDERS", +"PASTE_FORMULA", +"PASTE_DATA_VALIDATION", +"PASTE_CONDITIONAL_FORMATTING" +], +"enumDescriptions": [ +"Paste values, formulas, formats, and merges.", +"Paste the values ONLY without formats, formulas, or merges.", +"Paste the format and data validation only.", +"Like `PASTE_NORMAL` but without borders.", +"Paste the formulas only.", +"Paste the data validation only.", +"Paste the conditional formatting rules only." +], +"type": "string" +}, +"source": { +"$ref": "GridRange", +"description": "The source data to cut." +} +}, +"type": "object" +}, +"DataExecutionStatus": { +"description": "The data execution status. A data execution is created to sync a data source object with the latest data from a DataSource. It is usually scheduled to run at background, you can check its state to tell if an execution completes There are several scenarios where a data execution is triggered to run: * Adding a data source creates an associated data source sheet as well as a data execution to sync the data from the data source to the sheet. * Updating a data source creates a data execution to refresh the associated data source sheet similarly. * You can send refresh request to explicitly refresh one or multiple data source objects.", +"id": "DataExecutionStatus", +"properties": { +"errorCode": { +"description": "The error code.", +"enum": [ +"DATA_EXECUTION_ERROR_CODE_UNSPECIFIED", +"TIMED_OUT", +"TOO_MANY_ROWS", +"TOO_MANY_COLUMNS", +"TOO_MANY_CELLS", +"ENGINE", +"PARAMETER_INVALID", +"UNSUPPORTED_DATA_TYPE", +"DUPLICATE_COLUMN_NAMES", +"INTERRUPTED", +"CONCURRENT_QUERY", +"OTHER", +"TOO_MANY_CHARS_PER_CELL", +"DATA_NOT_FOUND", +"PERMISSION_DENIED", +"MISSING_COLUMN_ALIAS", +"OBJECT_NOT_FOUND", +"OBJECT_IN_ERROR_STATE", +"OBJECT_SPEC_INVALID", +"DATA_EXECUTION_CANCELLED" +], +"enumDescriptions": [ +"Default value, do not use.", +"The data execution timed out.", +"The data execution returns more rows than the limit.", +"The data execution returns more columns than the limit.", +"The data execution returns more cells than the limit.", +"Error is received from the backend data execution engine (e.g. BigQuery). Check error_message for details.", +"One or some of the provided data source parameters are invalid.", +"The data execution returns an unsupported data type.", +"The data execution returns duplicate column names or aliases.", +"The data execution is interrupted. Please refresh later.", +"The data execution is currently in progress, can not be refreshed until it completes.", +"Other errors.", +"The data execution returns values that exceed the maximum characters allowed in a single cell.", +"The database referenced by the data source is not found. */", +"The user does not have access to the database referenced by the data source.", +"The data execution returns columns with missing aliases.", +"The data source object does not exist.", +"The data source object is currently in error state. To force refresh, set force in RefreshDataSourceRequest.", +"The data source object specification is invalid.", +"The data execution has been cancelled." +], +"type": "string" +}, +"errorMessage": { +"description": "The error message, which may be empty.", +"type": "string" +}, +"lastRefreshTime": { +"description": "Gets the time the data last successfully refreshed.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The state of the data execution.", +"enum": [ +"DATA_EXECUTION_STATE_UNSPECIFIED", +"NOT_STARTED", +"RUNNING", +"CANCELLING", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Default value, do not use.", +"The data execution has not started.", +"The data execution has started and is running.", +"The data execution is currently being cancelled.", +"The data execution has completed successfully.", +"The data execution has completed with errors." +], +"type": "string" +} +}, +"type": "object" +}, +"DataFilter": { +"description": "Filter that describes what data should be selected or returned from a request.", +"id": "DataFilter", +"properties": { +"a1Range": { +"description": "Selects data that matches the specified A1 range.", +"type": "string" +}, +"developerMetadataLookup": { +"$ref": "DeveloperMetadataLookup", +"description": "Selects data associated with the developer metadata matching the criteria described by this DeveloperMetadataLookup." +}, +"gridRange": { +"$ref": "GridRange", +"description": "Selects data that matches the range described by the GridRange." +} +}, +"type": "object" +}, +"DataFilterValueRange": { +"description": "A range of values whose location is specified by a DataFilter.", +"id": "DataFilterValueRange", +"properties": { +"dataFilter": { +"$ref": "DataFilter", +"description": "The data filter describing the location of the values in the spreadsheet." +}, +"majorDimension": { +"description": "The major dimension of the values.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"type": "string" +}, +"values": { +"description": "The data to be written. If the provided values exceed any of the ranges matched by the data filter then the request fails. If the provided values are less than the matched ranges only the specified values are written, existing values in the matched ranges remain unaffected.", +"items": { +"items": { +"type": "any" +}, +"type": "array" +}, +"type": "array" +} +}, +"type": "object" +}, +"DataLabel": { +"description": "Settings for one set of data labels. Data labels are annotations that appear next to a set of data, such as the points on a line chart, and provide additional information about what the data represents, such as a text representation of the value behind that point on the graph.", +"id": "DataLabel", +"properties": { +"customLabelData": { +"$ref": "ChartData", +"description": "Data to use for custom labels. Only used if type is set to CUSTOM. This data must be the same length as the series or other element this data label is applied to. In addition, if the series is split into multiple source ranges, this source data must come from the next column in the source data. For example, if the series is B2:B4,E6:E8 then this data must come from C2:C4,F6:F8." +}, +"placement": { +"description": "The placement of the data label relative to the labeled data.", +"enum": [ +"DATA_LABEL_PLACEMENT_UNSPECIFIED", +"CENTER", +"LEFT", +"RIGHT", +"ABOVE", +"BELOW", +"INSIDE_END", +"INSIDE_BASE", +"OUTSIDE_END" +], +"enumDescriptions": [ +"The positioning is determined automatically by the renderer.", +"Center within a bar or column, both horizontally and vertically.", +"To the left of a data point.", +"To the right of a data point.", +"Above a data point.", +"Below a data point.", +"Inside a bar or column at the end (top if positive, bottom if negative).", +"Inside a bar or column at the base.", +"Outside a bar or column at the end." +], +"type": "string" +}, +"textFormat": { +"$ref": "TextFormat", +"description": "The text format used for the data label. The link field is not supported." +}, +"type": { +"description": "The type of the data label.", +"enum": [ +"DATA_LABEL_TYPE_UNSPECIFIED", +"NONE", +"DATA", +"CUSTOM" +], +"enumDescriptions": [ +"The data label type is not specified and will be interpreted depending on the context of the data label within the chart.", +"The data label is not displayed.", +"The data label is displayed using values from the series data.", +"The data label is displayed using values from a custom data source indicated by customLabelData." +], +"type": "string" +} +}, +"type": "object" +}, +"DataSource": { +"description": "Information about an external data source in the spreadsheet.", +"id": "DataSource", +"properties": { +"calculatedColumns": { +"description": "All calculated columns in the data source.", +"items": { +"$ref": "DataSourceColumn" +}, +"type": "array" +}, +"dataSourceId": { +"description": "The spreadsheet-scoped unique ID that identifies the data source. Example: 1080547365.", +"type": "string" +}, +"sheetId": { +"description": "The ID of the Sheet connected with the data source. The field cannot be changed once set. When creating a data source, an associated DATA_SOURCE sheet is also created, if the field is not specified, the ID of the created sheet will be randomly generated.", +"format": "int32", +"type": "integer" +}, +"spec": { +"$ref": "DataSourceSpec", +"description": "The DataSourceSpec for the data source connected with this spreadsheet." +} +}, +"type": "object" +}, +"DataSourceChartProperties": { +"description": "Properties of a data source chart.", +"id": "DataSourceChartProperties", +"properties": { +"dataExecutionStatus": { +"$ref": "DataExecutionStatus", +"description": "Output only. The data execution status.", +"readOnly": true +}, +"dataSourceId": { +"description": "ID of the data source that the chart is associated with.", +"type": "string" +} +}, +"type": "object" +}, +"DataSourceColumn": { +"description": "A column in a data source.", +"id": "DataSourceColumn", +"properties": { +"formula": { +"description": "The formula of the calculated column.", +"type": "string" +}, +"reference": { +"$ref": "DataSourceColumnReference", +"description": "The column reference." +} +}, +"type": "object" +}, +"DataSourceColumnReference": { +"description": "An unique identifier that references a data source column.", +"id": "DataSourceColumnReference", +"properties": { +"name": { +"description": "The display name of the column. It should be unique within a data source.", +"type": "string" +} +}, +"type": "object" +}, +"DataSourceFormula": { +"description": "A data source formula.", +"id": "DataSourceFormula", +"properties": { +"dataExecutionStatus": { +"$ref": "DataExecutionStatus", +"description": "Output only. The data execution status.", +"readOnly": true +}, +"dataSourceId": { +"description": "The ID of the data source the formula is associated with.", +"type": "string" +} +}, +"type": "object" +}, +"DataSourceObjectReference": { +"description": "Reference to a data source object.", +"id": "DataSourceObjectReference", +"properties": { +"chartId": { +"description": "References to a data source chart.", +"format": "int32", +"type": "integer" +}, +"dataSourceFormulaCell": { +"$ref": "GridCoordinate", +"description": "References to a cell containing DataSourceFormula." +}, +"dataSourcePivotTableAnchorCell": { +"$ref": "GridCoordinate", +"description": "References to a data source PivotTable anchored at the cell." +}, +"dataSourceTableAnchorCell": { +"$ref": "GridCoordinate", +"description": "References to a DataSourceTable anchored at the cell." +}, +"sheetId": { +"description": "References to a DATA_SOURCE sheet.", +"type": "string" +} +}, +"type": "object" +}, +"DataSourceObjectReferences": { +"description": "A list of references to data source objects.", +"id": "DataSourceObjectReferences", +"properties": { +"references": { +"description": "The references.", +"items": { +"$ref": "DataSourceObjectReference" +}, +"type": "array" +} +}, +"type": "object" +}, +"DataSourceParameter": { +"description": "A parameter in a data source's query. The parameter allows the user to pass in values from the spreadsheet into a query.", +"id": "DataSourceParameter", +"properties": { +"name": { +"description": "Named parameter. Must be a legitimate identifier for the DataSource that supports it. For example, [BigQuery identifier](https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#identifiers).", +"type": "string" +}, +"namedRangeId": { +"description": "ID of a NamedRange. Its size must be 1x1.", +"type": "string" +}, +"range": { +"$ref": "GridRange", +"description": "A range that contains the value of the parameter. Its size must be 1x1." +} +}, +"type": "object" +}, +"DataSourceRefreshDailySchedule": { +"description": "A schedule for data to refresh every day in a given time interval.", +"id": "DataSourceRefreshDailySchedule", +"properties": { +"startTime": { +"$ref": "TimeOfDay", +"description": "The start time of a time interval in which a data source refresh is scheduled. Only `hours` part is used. The time interval size defaults to that in the Sheets editor." +} +}, +"type": "object" +}, +"DataSourceRefreshMonthlySchedule": { +"description": "A monthly schedule for data to refresh on specific days in the month in a given time interval.", +"id": "DataSourceRefreshMonthlySchedule", +"properties": { +"daysOfMonth": { +"description": "Days of the month to refresh. Only 1-28 are supported, mapping to the 1st to the 28th day. At least one day must be specified.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "The start time of a time interval in which a data source refresh is scheduled. Only `hours` part is used. The time interval size defaults to that in the Sheets editor." +} +}, +"type": "object" +}, +"DataSourceRefreshSchedule": { +"description": "Schedule for refreshing the data source. Data sources in the spreadsheet are refreshed within a time interval. You can specify the start time by clicking the Scheduled Refresh button in the Sheets editor, but the interval is fixed at 4 hours. For example, if you specify a start time of 8 AM , the refresh will take place between 8 AM and 12 PM every day.", +"id": "DataSourceRefreshSchedule", +"properties": { +"dailySchedule": { +"$ref": "DataSourceRefreshDailySchedule", +"description": "Daily refresh schedule." +}, +"enabled": { +"description": "True if the refresh schedule is enabled, or false otherwise.", +"type": "boolean" +}, +"monthlySchedule": { +"$ref": "DataSourceRefreshMonthlySchedule", +"description": "Monthly refresh schedule." +}, +"nextRun": { +"$ref": "Interval", +"description": "Output only. The time interval of the next run.", +"readOnly": true +}, +"refreshScope": { +"description": "The scope of the refresh. Must be ALL_DATA_SOURCES.", +"enum": [ +"DATA_SOURCE_REFRESH_SCOPE_UNSPECIFIED", +"ALL_DATA_SOURCES" +], +"enumDescriptions": [ +"Default value, do not use.", +"Refreshes all data sources and their associated data source objects in the spreadsheet." +], +"type": "string" +}, +"weeklySchedule": { +"$ref": "DataSourceRefreshWeeklySchedule", +"description": "Weekly refresh schedule." +} +}, +"type": "object" +}, +"DataSourceRefreshWeeklySchedule": { +"description": "A weekly schedule for data to refresh on specific days in a given time interval.", +"id": "DataSourceRefreshWeeklySchedule", +"properties": { +"daysOfWeek": { +"description": "Days of the week to refresh. At least one day must be specified.", +"items": { +"enum": [ +"DAY_OF_WEEK_UNSPECIFIED", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"The day of the week is unspecified.", +"Monday", +"Tuesday", +"Wednesday", +"Thursday", +"Friday", +"Saturday", +"Sunday" +], +"type": "string" +}, +"type": "array" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "The start time of a time interval in which a data source refresh is scheduled. Only `hours` part is used. The time interval size defaults to that in the Sheets editor." +} +}, +"type": "object" +}, +"DataSourceSheetDimensionRange": { +"description": "A range along a single dimension on a DATA_SOURCE sheet.", +"id": "DataSourceSheetDimensionRange", +"properties": { +"columnReferences": { +"description": "The columns on the data source sheet.", +"items": { +"$ref": "DataSourceColumnReference" +}, +"type": "array" +}, +"sheetId": { +"description": "The ID of the data source sheet the range is on.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DataSourceSheetProperties": { +"description": "Additional properties of a DATA_SOURCE sheet.", +"id": "DataSourceSheetProperties", +"properties": { +"columns": { +"description": "The columns displayed on the sheet, corresponding to the values in RowData.", +"items": { +"$ref": "DataSourceColumn" +}, +"type": "array" +}, +"dataExecutionStatus": { +"$ref": "DataExecutionStatus", +"description": "The data execution status." +}, +"dataSourceId": { +"description": "ID of the DataSource the sheet is connected to.", +"type": "string" +} +}, +"type": "object" +}, +"DataSourceSpec": { +"description": "This specifies the details of the data source. For example, for BigQuery, this specifies information about the BigQuery source.", +"id": "DataSourceSpec", +"properties": { +"bigQuery": { +"$ref": "BigQueryDataSourceSpec", +"description": "A BigQueryDataSourceSpec." +}, +"looker": { +"$ref": "LookerDataSourceSpec", +"description": "A LookerDatasourceSpec." +}, +"parameters": { +"description": "The parameters of the data source, used when querying the data source.", +"items": { +"$ref": "DataSourceParameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"DataSourceTable": { +"description": "A data source table, which allows the user to import a static table of data from the DataSource into Sheets. This is also known as \"Extract\" in the Sheets editor.", +"id": "DataSourceTable", +"properties": { +"columnSelectionType": { +"description": "The type to select columns for the data source table. Defaults to SELECTED.", +"enum": [ +"DATA_SOURCE_TABLE_COLUMN_SELECTION_TYPE_UNSPECIFIED", +"SELECTED", +"SYNC_ALL" +], +"enumDescriptions": [ +"The default column selection type, do not use.", +"Select columns specified by columns field.", +"Sync all current and future columns in the data source. If set, the data source table fetches all the columns in the data source at the time of refresh." +], +"type": "string" +}, +"columns": { +"description": "Columns selected for the data source table. The column_selection_type must be SELECTED.", +"items": { +"$ref": "DataSourceColumnReference" +}, +"type": "array" +}, +"dataExecutionStatus": { +"$ref": "DataExecutionStatus", +"description": "Output only. The data execution status.", +"readOnly": true +}, +"dataSourceId": { +"description": "The ID of the data source the data source table is associated with.", +"type": "string" +}, +"filterSpecs": { +"description": "Filter specifications in the data source table.", +"items": { +"$ref": "FilterSpec" +}, +"type": "array" +}, +"rowLimit": { +"description": "The limit of rows to return. If not set, a default limit is applied. Please refer to the Sheets editor for the default and max limit.", +"format": "int32", +"type": "integer" +}, +"sortSpecs": { +"description": "Sort specifications in the data source table. The result of the data source table is sorted based on the sort specifications in order.", +"items": { +"$ref": "SortSpec" +}, +"type": "array" +} +}, +"type": "object" +}, +"DataValidationRule": { +"description": "A data validation rule.", +"id": "DataValidationRule", +"properties": { +"condition": { +"$ref": "BooleanCondition", +"description": "The condition that data in the cell must match." +}, +"inputMessage": { +"description": "A message to show the user when adding data to the cell.", +"type": "string" +}, +"showCustomUi": { +"description": "True if the UI should be customized based on the kind of condition. If true, \"List\" conditions will show a dropdown.", +"type": "boolean" +}, +"strict": { +"description": "True if invalid data should be rejected.", +"type": "boolean" +} +}, +"type": "object" +}, +"DateTimeRule": { +"description": "Allows you to organize the date-time values in a source data column into buckets based on selected parts of their date or time values. For example, consider a pivot table showing sales transactions by date: +----------+--------------+ | Date | SUM of Sales | +----------+--------------+ | 1/1/2017 | $621.14 | | 2/3/2017 | $708.84 | | 5/8/2017 | $326.84 | ... +----------+--------------+ Applying a date-time group rule with a DateTimeRuleType of YEAR_MONTH results in the following pivot table. +--------------+--------------+ | Grouped Date | SUM of Sales | +--------------+--------------+ | 2017-Jan | $53,731.78 | | 2017-Feb | $83,475.32 | | 2017-Mar | $94,385.05 | ... +--------------+--------------+", +"id": "DateTimeRule", +"properties": { +"type": { +"description": "The type of date-time grouping to apply.", +"enum": [ +"DATE_TIME_RULE_TYPE_UNSPECIFIED", +"SECOND", +"MINUTE", +"HOUR", +"HOUR_MINUTE", +"HOUR_MINUTE_AMPM", +"DAY_OF_WEEK", +"DAY_OF_YEAR", +"DAY_OF_MONTH", +"DAY_MONTH", +"MONTH", +"QUARTER", +"YEAR", +"YEAR_MONTH", +"YEAR_QUARTER", +"YEAR_MONTH_DAY" +], +"enumDescriptions": [ +"The default type, do not use.", +"Group dates by second, from 0 to 59.", +"Group dates by minute, from 0 to 59.", +"Group dates by hour using a 24-hour system, from 0 to 23.", +"Group dates by hour and minute using a 24-hour system, for example 19:45.", +"Group dates by hour and minute using a 12-hour system, for example 7:45 PM. The AM/PM designation is translated based on the spreadsheet locale.", +"Group dates by day of week, for example Sunday. The days of the week will be translated based on the spreadsheet locale.", +"Group dates by day of year, from 1 to 366. Note that dates after Feb. 29 fall in different buckets in leap years than in non-leap years.", +"Group dates by day of month, from 1 to 31.", +"Group dates by day and month, for example 22-Nov. The month is translated based on the spreadsheet locale.", +"Group dates by month, for example Nov. The month is translated based on the spreadsheet locale.", +"Group dates by quarter, for example Q1 (which represents Jan-Mar).", +"Group dates by year, for example 2008.", +"Group dates by year and month, for example 2008-Nov. The month is translated based on the spreadsheet locale.", +"Group dates by year and quarter, for example 2008 Q4.", +"Group dates by year, month, and day, for example 2008-11-22." +], +"type": "string" +} +}, +"type": "object" +}, +"DeleteBandingRequest": { +"description": "Removes the banded range with the given ID from the spreadsheet.", +"id": "DeleteBandingRequest", +"properties": { +"bandedRangeId": { +"description": "The ID of the banded range to delete.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeleteConditionalFormatRuleRequest": { +"description": "Deletes a conditional format rule at the given index. All subsequent rules' indexes are decremented.", +"id": "DeleteConditionalFormatRuleRequest", +"properties": { +"index": { +"description": "The zero-based index of the rule to be deleted.", +"format": "int32", +"type": "integer" +}, +"sheetId": { +"description": "The sheet the rule is being deleted from.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeleteConditionalFormatRuleResponse": { +"description": "The result of deleting a conditional format rule.", +"id": "DeleteConditionalFormatRuleResponse", +"properties": { +"rule": { +"$ref": "ConditionalFormatRule", +"description": "The rule that was deleted." +} +}, +"type": "object" +}, +"DeleteDataSourceRequest": { +"description": "Deletes a data source. The request also deletes the associated data source sheet, and unlinks all associated data source objects.", +"id": "DeleteDataSourceRequest", +"properties": { +"dataSourceId": { +"description": "The ID of the data source to delete.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteDeveloperMetadataRequest": { +"description": "A request to delete developer metadata.", +"id": "DeleteDeveloperMetadataRequest", +"properties": { +"dataFilter": { +"$ref": "DataFilter", +"description": "The data filter describing the criteria used to select which developer metadata entry to delete." +} +}, +"type": "object" +}, +"DeleteDeveloperMetadataResponse": { +"description": "The response from deleting developer metadata.", +"id": "DeleteDeveloperMetadataResponse", +"properties": { +"deletedDeveloperMetadata": { +"description": "The metadata that was deleted.", +"items": { +"$ref": "DeveloperMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"DeleteDimensionGroupRequest": { +"description": "Deletes a group over the specified range by decrementing the depth of the dimensions in the range. For example, assume the sheet has a depth-1 group over B:E and a depth-2 group over C:D. Deleting a group over D:E leaves the sheet with a depth-1 group over B:D and a depth-2 group over C:C.", +"id": "DeleteDimensionGroupRequest", +"properties": { +"range": { +"$ref": "DimensionRange", +"description": "The range of the group to be deleted." +} +}, +"type": "object" +}, +"DeleteDimensionGroupResponse": { +"description": "The result of deleting a group.", +"id": "DeleteDimensionGroupResponse", +"properties": { +"dimensionGroups": { +"description": "All groups of a dimension after deleting a group from that dimension.", +"items": { +"$ref": "DimensionGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"DeleteDimensionRequest": { +"description": " Deletes the dimensions from the sheet.", +"id": "DeleteDimensionRequest", +"properties": { +"range": { +"$ref": "DimensionRange", +"description": "The dimensions to delete from the sheet." +} +}, +"type": "object" +}, +"DeleteDuplicatesRequest": { +"description": "Removes rows within this range that contain values in the specified columns that are duplicates of values in any previous row. Rows with identical values but different letter cases, formatting, or formulas are considered to be duplicates. This request also removes duplicate rows hidden from view (for example, due to a filter). When removing duplicates, the first instance of each duplicate row scanning from the top downwards is kept in the resulting range. Content outside of the specified range isn't removed, and rows considered duplicates do not have to be adjacent to each other in the range.", +"id": "DeleteDuplicatesRequest", +"properties": { +"comparisonColumns": { +"description": "The columns in the range to analyze for duplicate values. If no columns are selected then all columns are analyzed for duplicates.", +"items": { +"$ref": "DimensionRange" +}, +"type": "array" +}, +"range": { +"$ref": "GridRange", +"description": "The range to remove duplicates rows from." +} +}, +"type": "object" +}, +"DeleteDuplicatesResponse": { +"description": "The result of removing duplicates in a range.", +"id": "DeleteDuplicatesResponse", +"properties": { +"duplicatesRemovedCount": { +"description": "The number of duplicate rows removed.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeleteEmbeddedObjectRequest": { +"description": "Deletes the embedded object with the given ID.", +"id": "DeleteEmbeddedObjectRequest", +"properties": { +"objectId": { +"description": "The ID of the embedded object to delete.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeleteFilterViewRequest": { +"description": "Deletes a particular filter view.", +"id": "DeleteFilterViewRequest", +"properties": { +"filterId": { +"description": "The ID of the filter to delete.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeleteNamedRangeRequest": { +"description": "Removes the named range with the given ID from the spreadsheet.", +"id": "DeleteNamedRangeRequest", +"properties": { +"namedRangeId": { +"description": "The ID of the named range to delete.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteProtectedRangeRequest": { +"description": "Deletes the protected range with the given ID.", +"id": "DeleteProtectedRangeRequest", +"properties": { +"protectedRangeId": { +"description": "The ID of the protected range to delete.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeleteRangeRequest": { +"description": "Deletes a range of cells, shifting other cells into the deleted area.", +"id": "DeleteRangeRequest", +"properties": { +"range": { +"$ref": "GridRange", +"description": "The range of cells to delete." +}, +"shiftDimension": { +"description": "The dimension from which deleted cells will be replaced with. If ROWS, existing cells will be shifted upward to replace the deleted cells. If COLUMNS, existing cells will be shifted left to replace the deleted cells.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"type": "string" +} +}, +"type": "object" +}, +"DeleteSheetRequest": { +"description": "Deletes the requested sheet.", +"id": "DeleteSheetRequest", +"properties": { +"sheetId": { +"description": "The ID of the sheet to delete. If the sheet is of DATA_SOURCE type, the associated DataSource is also deleted.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DeveloperMetadata": { +"description": "Developer metadata associated with a location or object in a spreadsheet. Developer metadata may be used to associate arbitrary data with various parts of a spreadsheet and will remain associated at those locations as they move around and the spreadsheet is edited. For example, if developer metadata is associated with row 5 and another row is then subsequently inserted above row 5, that original metadata will still be associated with the row it was first associated with (what is now row 6). If the associated object is deleted its metadata is deleted too.", +"id": "DeveloperMetadata", +"properties": { +"location": { +"$ref": "DeveloperMetadataLocation", +"description": "The location where the metadata is associated." +}, +"metadataId": { +"description": "The spreadsheet-scoped unique ID that identifies the metadata. IDs may be specified when metadata is created, otherwise one will be randomly generated and assigned. Must be positive.", +"format": "int32", +"type": "integer" +}, +"metadataKey": { +"description": "The metadata key. There may be multiple metadata in a spreadsheet with the same key. Developer metadata must always have a key specified.", +"type": "string" +}, +"metadataValue": { +"description": "Data associated with the metadata's key.", +"type": "string" +}, +"visibility": { +"description": "The metadata visibility. Developer metadata must always have a visibility specified.", +"enum": [ +"DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", +"DOCUMENT", +"PROJECT" +], +"enumDescriptions": [ +"Default value.", +"Document-visible metadata is accessible from any developer project with access to the document.", +"Project-visible metadata is only visible to and accessible by the developer project that created the metadata." +], +"type": "string" +} +}, +"type": "object" +}, +"DeveloperMetadataLocation": { +"description": "A location where metadata may be associated in a spreadsheet.", +"id": "DeveloperMetadataLocation", +"properties": { +"dimensionRange": { +"$ref": "DimensionRange", +"description": "Represents the row or column when metadata is associated with a dimension. The specified DimensionRange must represent a single row or column; it cannot be unbounded or span multiple rows or columns." +}, +"locationType": { +"description": "The type of location this object represents. This field is read-only.", +"enum": [ +"DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", +"ROW", +"COLUMN", +"SHEET", +"SPREADSHEET" +], +"enumDescriptions": [ +"Default value.", +"Developer metadata associated on an entire row dimension.", +"Developer metadata associated on an entire column dimension.", +"Developer metadata associated on an entire sheet.", +"Developer metadata associated on the entire spreadsheet." +], +"type": "string" +}, +"sheetId": { +"description": "The ID of the sheet when metadata is associated with an entire sheet.", +"format": "int32", +"type": "integer" +}, +"spreadsheet": { +"description": "True when metadata is associated with an entire spreadsheet.", +"type": "boolean" +} +}, +"type": "object" +}, +"DeveloperMetadataLookup": { +"description": "Selects DeveloperMetadata that matches all of the specified fields. For example, if only a metadata ID is specified this considers the DeveloperMetadata with that particular unique ID. If a metadata key is specified, this considers all developer metadata with that key. If a key, visibility, and location type are all specified, this considers all developer metadata with that key and visibility that are associated with a location of that type. In general, this selects all DeveloperMetadata that matches the intersection of all the specified fields; any field or combination of fields may be specified.", +"id": "DeveloperMetadataLookup", +"properties": { +"locationMatchingStrategy": { +"description": "Determines how this lookup matches the location. If this field is specified as EXACT, only developer metadata associated on the exact location specified is matched. If this field is specified to INTERSECTING, developer metadata associated on intersecting locations is also matched. If left unspecified, this field assumes a default value of INTERSECTING. If this field is specified, a metadataLocation must also be specified.", +"enum": [ +"DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", +"EXACT_LOCATION", +"INTERSECTING_LOCATION" +], +"enumDescriptions": [ +"Default value. This value must not be used.", +"Indicates that a specified location should be matched exactly. For example, if row three were specified as a location this matching strategy would only match developer metadata also associated on row three. Metadata associated on other locations would not be considered.", +"Indicates that a specified location should match that exact location as well as any intersecting locations. For example, if row three were specified as a location this matching strategy would match developer metadata associated on row three as well as metadata associated on locations that intersect row three. If, for instance, there was developer metadata associated on column B, this matching strategy would also match that location because column B intersects row three." +], +"type": "string" +}, +"locationType": { +"description": "Limits the selected developer metadata to those entries which are associated with locations of the specified type. For example, when this field is specified as ROW this lookup only considers developer metadata associated on rows. If the field is left unspecified, all location types are considered. This field cannot be specified as SPREADSHEET when the locationMatchingStrategy is specified as INTERSECTING or when the metadataLocation is specified as a non-spreadsheet location: spreadsheet metadata cannot intersect any other developer metadata location. This field also must be left unspecified when the locationMatchingStrategy is specified as EXACT.", +"enum": [ +"DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", +"ROW", +"COLUMN", +"SHEET", +"SPREADSHEET" +], +"enumDescriptions": [ +"Default value.", +"Developer metadata associated on an entire row dimension.", +"Developer metadata associated on an entire column dimension.", +"Developer metadata associated on an entire sheet.", +"Developer metadata associated on the entire spreadsheet." +], +"type": "string" +}, +"metadataId": { +"description": "Limits the selected developer metadata to that which has a matching DeveloperMetadata.metadata_id.", +"format": "int32", +"type": "integer" +}, +"metadataKey": { +"description": "Limits the selected developer metadata to that which has a matching DeveloperMetadata.metadata_key.", +"type": "string" +}, +"metadataLocation": { +"$ref": "DeveloperMetadataLocation", +"description": "Limits the selected developer metadata to those entries associated with the specified location. This field either matches exact locations or all intersecting locations according the specified locationMatchingStrategy." +}, +"metadataValue": { +"description": "Limits the selected developer metadata to that which has a matching DeveloperMetadata.metadata_value.", +"type": "string" +}, +"visibility": { +"description": "Limits the selected developer metadata to that which has a matching DeveloperMetadata.visibility. If left unspecified, all developer metadata visible to the requesting project is considered.", +"enum": [ +"DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", +"DOCUMENT", +"PROJECT" +], +"enumDescriptions": [ +"Default value.", +"Document-visible metadata is accessible from any developer project with access to the document.", +"Project-visible metadata is only visible to and accessible by the developer project that created the metadata." +], +"type": "string" +} +}, +"type": "object" +}, +"DimensionGroup": { +"description": "A group over an interval of rows or columns on a sheet, which can contain or be contained within other groups. A group can be collapsed or expanded as a unit on the sheet.", +"id": "DimensionGroup", +"properties": { +"collapsed": { +"description": "This field is true if this group is collapsed. A collapsed group remains collapsed if an overlapping group at a shallower depth is expanded. A true value does not imply that all dimensions within the group are hidden, since a dimension's visibility can change independently from this group property. However, when this property is updated, all dimensions within it are set to hidden if this field is true, or set to visible if this field is false.", +"type": "boolean" +}, +"depth": { +"description": "The depth of the group, representing how many groups have a range that wholly contains the range of this group.", +"format": "int32", +"type": "integer" +}, +"range": { +"$ref": "DimensionRange", +"description": "The range over which this group exists." +} +}, +"type": "object" +}, +"DimensionProperties": { +"description": "Properties about a dimension.", +"id": "DimensionProperties", +"properties": { +"dataSourceColumnReference": { +"$ref": "DataSourceColumnReference", +"description": "Output only. If set, this is a column in a data source sheet.", +"readOnly": true +}, +"developerMetadata": { +"description": "The developer metadata associated with a single row or column.", +"items": { +"$ref": "DeveloperMetadata" +}, +"type": "array" +}, +"hiddenByFilter": { +"description": "True if this dimension is being filtered. This field is read-only.", +"type": "boolean" +}, +"hiddenByUser": { +"description": "True if this dimension is explicitly hidden.", +"type": "boolean" +}, +"pixelSize": { +"description": "The height (if a row) or width (if a column) of the dimension in pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DimensionRange": { +"description": "A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side.", +"id": "DimensionRange", +"properties": { +"dimension": { +"description": "The dimension of the span.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"type": "string" +}, +"endIndex": { +"description": "The end (exclusive) of the span, or not set if unbounded.", +"format": "int32", +"type": "integer" +}, +"sheetId": { +"description": "The sheet this span is on.", +"format": "int32", +"type": "integer" +}, +"startIndex": { +"description": "The start (inclusive) of the span, or not set if unbounded.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DuplicateFilterViewRequest": { +"description": "Duplicates a particular filter view.", +"id": "DuplicateFilterViewRequest", +"properties": { +"filterId": { +"description": "The ID of the filter being duplicated.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DuplicateFilterViewResponse": { +"description": "The result of a filter view being duplicated.", +"id": "DuplicateFilterViewResponse", +"properties": { +"filter": { +"$ref": "FilterView", +"description": "The newly created filter." +} +}, +"type": "object" +}, +"DuplicateSheetRequest": { +"description": "Duplicates the contents of a sheet.", +"id": "DuplicateSheetRequest", +"properties": { +"insertSheetIndex": { +"description": "The zero-based index where the new sheet should be inserted. The index of all sheets after this are incremented.", +"format": "int32", +"type": "integer" +}, +"newSheetId": { +"description": "If set, the ID of the new sheet. If not set, an ID is chosen. If set, the ID must not conflict with any existing sheet ID. If set, it must be non-negative.", +"format": "int32", +"type": "integer" +}, +"newSheetName": { +"description": "The name of the new sheet. If empty, a new name is chosen for you.", +"type": "string" +}, +"sourceSheetId": { +"description": "The sheet to duplicate. If the source sheet is of DATA_SOURCE type, its backing DataSource is also duplicated and associated with the new copy of the sheet. No data execution is triggered, the grid data of this sheet is also copied over but only available after the batch request completes.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DuplicateSheetResponse": { +"description": "The result of duplicating a sheet.", +"id": "DuplicateSheetResponse", +"properties": { +"properties": { +"$ref": "SheetProperties", +"description": "The properties of the duplicate sheet." +} +}, +"type": "object" +}, +"Editors": { +"description": "The editors of a protected range.", +"id": "Editors", +"properties": { +"domainUsersCanEdit": { +"description": "True if anyone in the document's domain has edit access to the protected range. Domain protection is only supported on documents within a domain.", +"type": "boolean" +}, +"groups": { +"description": "The email addresses of groups with edit access to the protected range.", +"items": { +"type": "string" +}, +"type": "array" +}, +"users": { +"description": "The email addresses of users with edit access to the protected range.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EmbeddedChart": { +"description": "A chart embedded in a sheet.", +"id": "EmbeddedChart", +"properties": { +"border": { +"$ref": "EmbeddedObjectBorder", +"description": "The border of the chart." +}, +"chartId": { +"description": "The ID of the chart.", +"format": "int32", +"type": "integer" +}, +"position": { +"$ref": "EmbeddedObjectPosition", +"description": "The position of the chart." +}, +"spec": { +"$ref": "ChartSpec", +"description": "The specification of the chart." +} +}, +"type": "object" +}, +"EmbeddedObjectBorder": { +"description": "A border along an embedded object.", +"id": "EmbeddedObjectBorder", +"properties": { +"color": { +"$ref": "Color", +"deprecated": true, +"description": "The color of the border. Deprecated: Use color_style." +}, +"colorStyle": { +"$ref": "ColorStyle", +"description": "The color of the border. If color is also set, this field takes precedence." +} +}, +"type": "object" +}, +"EmbeddedObjectPosition": { +"description": "The position of an embedded object such as a chart.", +"id": "EmbeddedObjectPosition", +"properties": { +"newSheet": { +"description": "If true, the embedded object is put on a new sheet whose ID is chosen for you. Used only when writing.", +"type": "boolean" +}, +"overlayPosition": { +"$ref": "OverlayPosition", +"description": "The position at which the object is overlaid on top of a grid." +}, +"sheetId": { +"description": "The sheet this is on. Set only if the embedded object is on its own sheet. Must be non-negative.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ErrorValue": { +"description": "An error in a cell.", +"id": "ErrorValue", +"properties": { +"message": { +"description": "A message with more information about the error (in the spreadsheet's locale).", +"type": "string" +}, +"type": { +"description": "The type of error.", +"enum": [ +"ERROR_TYPE_UNSPECIFIED", +"ERROR", +"NULL_VALUE", +"DIVIDE_BY_ZERO", +"VALUE", +"REF", +"NAME", +"NUM", +"N_A", +"LOADING" +], +"enumDescriptions": [ +"The default error type, do not use this.", +"Corresponds to the `#ERROR!` error.", +"Corresponds to the `#NULL!` error.", +"Corresponds to the `#DIV/0` error.", +"Corresponds to the `#VALUE!` error.", +"Corresponds to the `#REF!` error.", +"Corresponds to the `#NAME?` error.", +"Corresponds to the `#NUM!` error.", +"Corresponds to the `#N/A` error.", +"Corresponds to the `Loading...` state." +], +"type": "string" +} +}, +"type": "object" +}, +"ExtendedValue": { +"description": "The kinds of value that a cell in a spreadsheet can have.", +"id": "ExtendedValue", +"properties": { +"boolValue": { +"description": "Represents a boolean value.", +"type": "boolean" +}, +"errorValue": { +"$ref": "ErrorValue", +"description": "Represents an error. This field is read-only." +}, +"formulaValue": { +"description": "Represents a formula.", +"type": "string" +}, +"numberValue": { +"description": "Represents a double value. Note: Dates, Times and DateTimes are represented as doubles in SERIAL_NUMBER format.", +"format": "double", +"type": "number" +}, +"stringValue": { +"description": "Represents a string value. Leading single quotes are not included. For example, if the user typed `'123` into the UI, this would be represented as a `stringValue` of `\"123\"`.", +"type": "string" +} +}, +"type": "object" +}, +"FilterCriteria": { +"description": "Criteria for showing/hiding rows in a filter or filter view.", +"id": "FilterCriteria", +"properties": { +"condition": { +"$ref": "BooleanCondition", +"description": "A condition that must be true for values to be shown. (This does not override hidden_values -- if a value is listed there, it will still be hidden.)" +}, +"hiddenValues": { +"description": "Values that should be hidden.", +"items": { +"type": "string" +}, +"type": "array" +}, +"visibleBackgroundColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background fill color to filter by; only cells with this fill color are shown. Mutually exclusive with visible_foreground_color. Deprecated: Use visible_background_color_style." +}, +"visibleBackgroundColorStyle": { +"$ref": "ColorStyle", +"description": "The background fill color to filter by; only cells with this fill color are shown. This field is mutually exclusive with visible_foreground_color, and must be set to an RGB-type color. If visible_background_color is also set, this field takes precedence." +}, +"visibleForegroundColor": { +"$ref": "Color", +"deprecated": true, +"description": "The foreground color to filter by; only cells with this foreground color are shown. Mutually exclusive with visible_background_color. Deprecated: Use visible_foreground_color_style." +}, +"visibleForegroundColorStyle": { +"$ref": "ColorStyle", +"description": "The foreground color to filter by; only cells with this foreground color are shown. This field is mutually exclusive with visible_background_color, and must be set to an RGB-type color. If visible_foreground_color is also set, this field takes precedence." +} +}, +"type": "object" +}, +"FilterSpec": { +"description": "The filter criteria associated with a specific column.", +"id": "FilterSpec", +"properties": { +"columnIndex": { +"description": "The zero-based column index.", +"format": "int32", +"type": "integer" +}, +"dataSourceColumnReference": { +"$ref": "DataSourceColumnReference", +"description": "Reference to a data source column." +}, +"filterCriteria": { +"$ref": "FilterCriteria", +"description": "The criteria for the column." +} +}, +"type": "object" +}, +"FilterView": { +"description": "A filter view.", +"id": "FilterView", +"properties": { +"criteria": { +"additionalProperties": { +"$ref": "FilterCriteria" +}, +"deprecated": true, +"description": "The criteria for showing/hiding values per column. The map's key is the column index, and the value is the criteria for that column. This field is deprecated in favor of filter_specs.", +"type": "object" +}, +"filterSpecs": { +"description": "The filter criteria for showing/hiding values per column. Both criteria and filter_specs are populated in responses. If both fields are specified in an update request, this field takes precedence.", +"items": { +"$ref": "FilterSpec" +}, +"type": "array" +}, +"filterViewId": { +"description": "The ID of the filter view.", +"format": "int32", +"type": "integer" +}, +"namedRangeId": { +"description": "The named range this filter view is backed by, if any. When writing, only one of range or named_range_id may be set.", +"type": "string" +}, +"range": { +"$ref": "GridRange", +"description": "The range this filter view covers. When writing, only one of range or named_range_id may be set." +}, +"sortSpecs": { +"description": "The sort order per column. Later specifications are used when values are equal in the earlier specifications.", +"items": { +"$ref": "SortSpec" +}, +"type": "array" +}, +"title": { +"description": "The name of the filter view.", +"type": "string" +} +}, +"type": "object" +}, +"FindReplaceRequest": { +"description": "Finds and replaces data in cells over a range, sheet, or all sheets.", +"id": "FindReplaceRequest", +"properties": { +"allSheets": { +"description": "True to find/replace over all sheets.", +"type": "boolean" +}, +"find": { +"description": "The value to search.", +"type": "string" +}, +"includeFormulas": { +"description": "True if the search should include cells with formulas. False to skip cells with formulas.", +"type": "boolean" +}, +"matchCase": { +"description": "True if the search is case sensitive.", +"type": "boolean" +}, +"matchEntireCell": { +"description": "True if the find value should match the entire cell.", +"type": "boolean" +}, +"range": { +"$ref": "GridRange", +"description": "The range to find/replace over." +}, +"replacement": { +"description": "The value to use as the replacement.", +"type": "string" +}, +"searchByRegex": { +"description": "True if the find value is a regex. The regular expression and replacement should follow Java regex rules at https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html. The replacement string is allowed to refer to capturing groups. For example, if one cell has the contents `\"Google Sheets\"` and another has `\"Google Docs\"`, then searching for `\"o.* (.*)\"` with a replacement of `\"$1 Rocks\"` would change the contents of the cells to `\"GSheets Rocks\"` and `\"GDocs Rocks\"` respectively.", +"type": "boolean" +}, +"sheetId": { +"description": "The sheet to find/replace over.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"FindReplaceResponse": { +"description": "The result of the find/replace.", +"id": "FindReplaceResponse", +"properties": { +"formulasChanged": { +"description": "The number of formula cells changed.", +"format": "int32", +"type": "integer" +}, +"occurrencesChanged": { +"description": "The number of occurrences (possibly multiple within a cell) changed. For example, if replacing `\"e\"` with `\"o\"` in `\"Google Sheets\"`, this would be `\"3\"` because `\"Google Sheets\"` -> `\"Googlo Shoots\"`.", +"format": "int32", +"type": "integer" +}, +"rowsChanged": { +"description": "The number of rows changed.", +"format": "int32", +"type": "integer" +}, +"sheetsChanged": { +"description": "The number of sheets changed.", +"format": "int32", +"type": "integer" +}, +"valuesChanged": { +"description": "The number of non-formula cells changed.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GetSpreadsheetByDataFilterRequest": { +"description": "The request for retrieving a Spreadsheet.", +"id": "GetSpreadsheetByDataFilterRequest", +"properties": { +"dataFilters": { +"description": "The DataFilters used to select which ranges to retrieve from the spreadsheet.", +"items": { +"$ref": "DataFilter" +}, +"type": "array" +}, +"includeGridData": { +"description": "True if grid data should be returned. This parameter is ignored if a field mask was set in the request.", +"type": "boolean" +} +}, +"type": "object" +}, +"GradientRule": { +"description": "A rule that applies a gradient color scale format, based on the interpolation points listed. The format of a cell will vary based on its contents as compared to the values of the interpolation points.", +"id": "GradientRule", +"properties": { +"maxpoint": { +"$ref": "InterpolationPoint", +"description": "The final interpolation point." +}, +"midpoint": { +"$ref": "InterpolationPoint", +"description": "An optional midway interpolation point." +}, +"minpoint": { +"$ref": "InterpolationPoint", +"description": "The starting interpolation point." +} +}, +"type": "object" +}, +"GridCoordinate": { +"description": "A coordinate in a sheet. All indexes are zero-based.", +"id": "GridCoordinate", +"properties": { +"columnIndex": { +"description": "The column index of the coordinate.", +"format": "int32", +"type": "integer" +}, +"rowIndex": { +"description": "The row index of the coordinate.", +"format": "int32", +"type": "integer" +}, +"sheetId": { +"description": "The sheet this coordinate is on.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GridData": { +"description": "Data in the grid, as well as metadata about the dimensions.", +"id": "GridData", +"properties": { +"columnMetadata": { +"description": "Metadata about the requested columns in the grid, starting with the column in start_column.", +"items": { +"$ref": "DimensionProperties" +}, +"type": "array" +}, +"rowData": { +"description": "The data in the grid, one entry per row, starting with the row in startRow. The values in RowData will correspond to columns starting at start_column.", +"items": { +"$ref": "RowData" +}, +"type": "array" +}, +"rowMetadata": { +"description": "Metadata about the requested rows in the grid, starting with the row in start_row.", +"items": { +"$ref": "DimensionProperties" +}, +"type": "array" +}, +"startColumn": { +"description": "The first column this GridData refers to, zero-based.", +"format": "int32", +"type": "integer" +}, +"startRow": { +"description": "The first row this GridData refers to, zero-based.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GridProperties": { +"description": "Properties of a grid.", +"id": "GridProperties", +"properties": { +"columnCount": { +"description": "The number of columns in the grid.", +"format": "int32", +"type": "integer" +}, +"columnGroupControlAfter": { +"description": "True if the column grouping control toggle is shown after the group.", +"type": "boolean" +}, +"frozenColumnCount": { +"description": "The number of columns that are frozen in the grid.", +"format": "int32", +"type": "integer" +}, +"frozenRowCount": { +"description": "The number of rows that are frozen in the grid.", +"format": "int32", +"type": "integer" +}, +"hideGridlines": { +"description": "True if the grid isn't showing gridlines in the UI.", +"type": "boolean" +}, +"rowCount": { +"description": "The number of rows in the grid.", +"format": "int32", +"type": "integer" +}, +"rowGroupControlAfter": { +"description": "True if the row grouping control toggle is shown after the group.", +"type": "boolean" +} +}, +"type": "object" +}, +"GridRange": { +"description": "A range on a sheet. All indexes are zero-based. Indexes are half open, i.e. the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if `\"Sheet1\"` is sheet ID 123456, then: `Sheet1!A1:A1 == sheet_id: 123456, start_row_index: 0, end_row_index: 1, start_column_index: 0, end_column_index: 1` `Sheet1!A3:B4 == sheet_id: 123456, start_row_index: 2, end_row_index: 4, start_column_index: 0, end_column_index: 2` `Sheet1!A:B == sheet_id: 123456, start_column_index: 0, end_column_index: 2` `Sheet1!A5:B == sheet_id: 123456, start_row_index: 4, start_column_index: 0, end_column_index: 2` `Sheet1 == sheet_id: 123456` The start index must always be less than or equal to the end index. If the start index equals the end index, then the range is empty. Empty ranges are typically not meaningful and are usually rendered in the UI as `#REF!`.", +"id": "GridRange", +"properties": { +"endColumnIndex": { +"description": "The end column (exclusive) of the range, or not set if unbounded.", +"format": "int32", +"type": "integer" +}, +"endRowIndex": { +"description": "The end row (exclusive) of the range, or not set if unbounded.", +"format": "int32", +"type": "integer" +}, +"sheetId": { +"description": "The sheet this range is on.", +"format": "int32", +"type": "integer" +}, +"startColumnIndex": { +"description": "The start column (inclusive) of the range, or not set if unbounded.", +"format": "int32", +"type": "integer" +}, +"startRowIndex": { +"description": "The start row (inclusive) of the range, or not set if unbounded.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"HistogramChartSpec": { +"description": "A histogram chart. A histogram chart groups data items into bins, displaying each bin as a column of stacked items. Histograms are used to display the distribution of a dataset. Each column of items represents a range into which those items fall. The number of bins can be chosen automatically or specified explicitly.", +"id": "HistogramChartSpec", +"properties": { +"bucketSize": { +"description": "By default the bucket size (the range of values stacked in a single column) is chosen automatically, but it may be overridden here. E.g., A bucket size of 1.5 results in buckets from 0 - 1.5, 1.5 - 3.0, etc. Cannot be negative. This field is optional.", +"format": "double", +"type": "number" +}, +"legendPosition": { +"description": "The position of the chart legend.", +"enum": [ +"HISTOGRAM_CHART_LEGEND_POSITION_UNSPECIFIED", +"BOTTOM_LEGEND", +"LEFT_LEGEND", +"RIGHT_LEGEND", +"TOP_LEGEND", +"NO_LEGEND", +"INSIDE_LEGEND" +], +"enumDescriptions": [ +"Default value, do not use.", +"The legend is rendered on the bottom of the chart.", +"The legend is rendered on the left of the chart.", +"The legend is rendered on the right of the chart.", +"The legend is rendered on the top of the chart.", +"No legend is rendered.", +"The legend is rendered inside the chart area." +], +"type": "string" +}, +"outlierPercentile": { +"description": "The outlier percentile is used to ensure that outliers do not adversely affect the calculation of bucket sizes. For example, setting an outlier percentile of 0.05 indicates that the top and bottom 5% of values when calculating buckets. The values are still included in the chart, they will be added to the first or last buckets instead of their own buckets. Must be between 0.0 and 0.5.", +"format": "double", +"type": "number" +}, +"series": { +"description": "The series for a histogram may be either a single series of values to be bucketed or multiple series, each of the same length, containing the name of the series followed by the values to be bucketed for that series.", +"items": { +"$ref": "HistogramSeries" +}, +"type": "array" +}, +"showItemDividers": { +"description": "Whether horizontal divider lines should be displayed between items in each column.", +"type": "boolean" +} +}, +"type": "object" +}, +"HistogramRule": { +"description": "Allows you to organize the numeric values in a source data column into buckets of a constant size. All values from HistogramRule.start to HistogramRule.end are placed into groups of size HistogramRule.interval. In addition, all values below HistogramRule.start are placed in one group, and all values above HistogramRule.end are placed in another. Only HistogramRule.interval is required, though if HistogramRule.start and HistogramRule.end are both provided, HistogramRule.start must be less than HistogramRule.end. For example, a pivot table showing average purchase amount by age that has 50+ rows: +-----+-------------------+ | Age | AVERAGE of Amount | +-----+-------------------+ | 16 | $27.13 | | 17 | $5.24 | | 18 | $20.15 | ... +-----+-------------------+ could be turned into a pivot table that looks like the one below by applying a histogram group rule with a HistogramRule.start of 25, an HistogramRule.interval of 20, and an HistogramRule.end of 65. +-------------+-------------------+ | Grouped Age | AVERAGE of Amount | +-------------+-------------------+ | < 25 | $19.34 | | 25-45 | $31.43 | | 45-65 | $35.87 | | > 65 | $27.55 | +-------------+-------------------+ | Grand Total | $29.12 | +-------------+-------------------+", +"id": "HistogramRule", +"properties": { +"end": { +"description": "The maximum value at which items are placed into buckets of constant size. Values above end are lumped into a single bucket. This field is optional.", +"format": "double", +"type": "number" +}, +"interval": { +"description": "The size of the buckets that are created. Must be positive.", +"format": "double", +"type": "number" +}, +"start": { +"description": "The minimum value at which items are placed into buckets of constant size. Values below start are lumped into a single bucket. This field is optional.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"HistogramSeries": { +"description": "A histogram series containing the series color and data.", +"id": "HistogramSeries", +"properties": { +"barColor": { +"$ref": "Color", +"deprecated": true, +"description": "The color of the column representing this series in each bucket. This field is optional. Deprecated: Use bar_color_style." +}, +"barColorStyle": { +"$ref": "ColorStyle", +"description": "The color of the column representing this series in each bucket. This field is optional. If bar_color is also set, this field takes precedence." +}, +"data": { +"$ref": "ChartData", +"description": "The data for this histogram series." +} +}, +"type": "object" +}, +"InsertDimensionRequest": { +"description": "Inserts rows or columns in a sheet at a particular index.", +"id": "InsertDimensionRequest", +"properties": { +"inheritFromBefore": { +"description": "Whether dimension properties should be extended from the dimensions before or after the newly inserted dimensions. True to inherit from the dimensions before (in which case the start index must be greater than 0), and false to inherit from the dimensions after. For example, if row index 0 has red background and row index 1 has a green background, then inserting 2 rows at index 1 can inherit either the green or red background. If `inheritFromBefore` is true, the two new rows will be red (because the row before the insertion point was red), whereas if `inheritFromBefore` is false, the two new rows will be green (because the row after the insertion point was green).", +"type": "boolean" +}, +"range": { +"$ref": "DimensionRange", +"description": "The dimensions to insert. Both the start and end indexes must be bounded." +} +}, +"type": "object" +}, +"InsertRangeRequest": { +"description": "Inserts cells into a range, shifting the existing cells over or down.", +"id": "InsertRangeRequest", +"properties": { +"range": { +"$ref": "GridRange", +"description": "The range to insert new cells into." +}, +"shiftDimension": { +"description": "The dimension which will be shifted when inserting cells. If ROWS, existing cells will be shifted down. If COLUMNS, existing cells will be shifted right.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"type": "string" +} +}, +"type": "object" +}, +"InterpolationPoint": { +"description": "A single interpolation point on a gradient conditional format. These pin the gradient color scale according to the color, type and value chosen.", +"id": "InterpolationPoint", +"properties": { +"color": { +"$ref": "Color", +"deprecated": true, +"description": "The color this interpolation point should use. Deprecated: Use color_style." +}, +"colorStyle": { +"$ref": "ColorStyle", +"description": "The color this interpolation point should use. If color is also set, this field takes precedence." +}, +"type": { +"description": "How the value should be interpreted.", +"enum": [ +"INTERPOLATION_POINT_TYPE_UNSPECIFIED", +"MIN", +"MAX", +"NUMBER", +"PERCENT", +"PERCENTILE" +], +"enumDescriptions": [ +"The default value, do not use.", +"The interpolation point uses the minimum value in the cells over the range of the conditional format.", +"The interpolation point uses the maximum value in the cells over the range of the conditional format.", +"The interpolation point uses exactly the value in InterpolationPoint.value.", +"The interpolation point is the given percentage over all the cells in the range of the conditional format. This is equivalent to `NUMBER` if the value was: `=(MAX(FLATTEN(range)) * (value / 100)) + (MIN(FLATTEN(range)) * (1 - (value / 100)))` (where errors in the range are ignored when flattening).", +"The interpolation point is the given percentile over all the cells in the range of the conditional format. This is equivalent to `NUMBER` if the value was: `=PERCENTILE(FLATTEN(range), value / 100)` (where errors in the range are ignored when flattening)." +], +"type": "string" +}, +"value": { +"description": "The value this interpolation point uses. May be a formula. Unused if type is MIN or MAX.", +"type": "string" +} +}, +"type": "object" +}, +"Interval": { +"description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", +"id": "Interval", +"properties": { +"endTime": { +"description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"IterativeCalculationSettings": { +"description": "Settings to control how circular dependencies are resolved with iterative calculation.", +"id": "IterativeCalculationSettings", +"properties": { +"convergenceThreshold": { +"description": "When iterative calculation is enabled and successive results differ by less than this threshold value, the calculation rounds stop.", +"format": "double", +"type": "number" +}, +"maxIterations": { +"description": "When iterative calculation is enabled, the maximum number of calculation rounds to perform.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"KeyValueFormat": { +"description": "Formatting options for key value.", +"id": "KeyValueFormat", +"properties": { +"position": { +"$ref": "TextPosition", +"description": "Specifies the horizontal text positioning of key value. This field is optional. If not specified, default positioning is used." +}, +"textFormat": { +"$ref": "TextFormat", +"description": "Text formatting options for key value. The link field is not supported." +} +}, +"type": "object" +}, +"LineStyle": { +"description": "Properties that describe the style of a line.", +"id": "LineStyle", +"properties": { +"type": { +"description": "The dash type of the line.", +"enum": [ +"LINE_DASH_TYPE_UNSPECIFIED", +"INVISIBLE", +"CUSTOM", +"SOLID", +"DOTTED", +"MEDIUM_DASHED", +"MEDIUM_DASHED_DOTTED", +"LONG_DASHED", +"LONG_DASHED_DOTTED" +], +"enumDescriptions": [ +"Default value, do not use.", +"No dash type, which is equivalent to a non-visible line.", +"A custom dash for a line. Modifying the exact custom dash style is currently unsupported.", +"A solid line.", +"A dotted line.", +"A dashed line where the dashes have \"medium\" length.", +"A line that alternates between a \"medium\" dash and a dot.", +"A dashed line where the dashes have \"long\" length.", +"A line that alternates between a \"long\" dash and a dot." +], +"type": "string" +}, +"width": { +"description": "The thickness of the line, in px.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Link": { +"description": "An external or local reference.", +"id": "Link", +"properties": { +"uri": { +"description": "The link identifier.", +"type": "string" +} +}, +"type": "object" +}, +"LookerDataSourceSpec": { +"description": "The specification of a Looker data source.", +"id": "LookerDataSourceSpec", +"properties": { +"explore": { +"description": "Name of a Looker model explore.", +"type": "string" +}, +"instanceUri": { +"description": "A Looker instance URL.", +"type": "string" +}, +"model": { +"description": "Name of a Looker model.", +"type": "string" +} +}, +"type": "object" +}, +"ManualRule": { +"description": "Allows you to manually organize the values in a source data column into buckets with names of your choosing. For example, a pivot table that aggregates population by state: +-------+-------------------+ | State | SUM of Population | +-------+-------------------+ | AK | 0.7 | | AL | 4.8 | | AR | 2.9 | ... +-------+-------------------+ could be turned into a pivot table that aggregates population by time zone by providing a list of groups (for example, groupName = 'Central', items = ['AL', 'AR', 'IA', ...]) to a manual group rule. Note that a similar effect could be achieved by adding a time zone column to the source data and adjusting the pivot table. +-----------+-------------------+ | Time Zone | SUM of Population | +-----------+-------------------+ | Central | 106.3 | | Eastern | 151.9 | | Mountain | 17.4 | ... +-----------+-------------------+", +"id": "ManualRule", +"properties": { +"groups": { +"description": "The list of group names and the corresponding items from the source data that map to each group name.", +"items": { +"$ref": "ManualRuleGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"ManualRuleGroup": { +"description": "A group name and a list of items from the source data that should be placed in the group with this name.", +"id": "ManualRuleGroup", +"properties": { +"groupName": { +"$ref": "ExtendedValue", +"description": "The group name, which must be a string. Each group in a given ManualRule must have a unique group name." +}, +"items": { +"description": "The items in the source data that should be placed into this group. Each item may be a string, number, or boolean. Items may appear in at most one group within a given ManualRule. Items that do not appear in any group will appear on their own.", +"items": { +"$ref": "ExtendedValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"MatchedDeveloperMetadata": { +"description": "A developer metadata entry and the data filters specified in the original request that matched it.", +"id": "MatchedDeveloperMetadata", +"properties": { +"dataFilters": { +"description": "All filters matching the returned developer metadata.", +"items": { +"$ref": "DataFilter" +}, +"type": "array" +}, +"developerMetadata": { +"$ref": "DeveloperMetadata", +"description": "The developer metadata matching the specified filters." +} +}, +"type": "object" +}, +"MatchedValueRange": { +"description": "A value range that was matched by one or more data filers.", +"id": "MatchedValueRange", +"properties": { +"dataFilters": { +"description": "The DataFilters from the request that matched the range of values.", +"items": { +"$ref": "DataFilter" +}, +"type": "array" +}, +"valueRange": { +"$ref": "ValueRange", +"description": "The values matched by the DataFilter." +} +}, +"type": "object" +}, +"MergeCellsRequest": { +"description": "Merges all cells in the range.", +"id": "MergeCellsRequest", +"properties": { +"mergeType": { +"description": "How the cells should be merged.", +"enum": [ +"MERGE_ALL", +"MERGE_COLUMNS", +"MERGE_ROWS" +], +"enumDescriptions": [ +"Create a single merge from the range", +"Create a merge for each column in the range", +"Create a merge for each row in the range" +], +"type": "string" +}, +"range": { +"$ref": "GridRange", +"description": "The range of cells to merge." +} +}, +"type": "object" +}, +"MoveDimensionRequest": { +"description": "Moves one or more rows or columns.", +"id": "MoveDimensionRequest", +"properties": { +"destinationIndex": { +"description": "The zero-based start index of where to move the source data to, based on the coordinates *before* the source data is removed from the grid. Existing data will be shifted down or right (depending on the dimension) to make room for the moved dimensions. The source dimensions are removed from the grid, so the the data may end up in a different index than specified. For example, given `A1..A5` of `0, 1, 2, 3, 4` and wanting to move `\"1\"` and `\"2\"` to between `\"3\"` and `\"4\"`, the source would be `ROWS [1..3)`,and the destination index would be `\"4\"` (the zero-based index of row 5). The end result would be `A1..A5` of `0, 3, 1, 2, 4`.", +"format": "int32", +"type": "integer" +}, +"source": { +"$ref": "DimensionRange", +"description": "The source dimensions to move." +} +}, +"type": "object" +}, +"NamedRange": { +"description": "A named range.", +"id": "NamedRange", +"properties": { +"name": { +"description": "The name of the named range.", +"type": "string" +}, +"namedRangeId": { +"description": "The ID of the named range.", +"type": "string" +}, +"range": { +"$ref": "GridRange", +"description": "The range this represents." +} +}, +"type": "object" +}, +"NumberFormat": { +"description": "The number format of a cell.", +"id": "NumberFormat", +"properties": { +"pattern": { +"description": "Pattern string used for formatting. If not set, a default pattern based on the user's locale will be used if necessary for the given type. See the [Date and Number Formats guide](/sheets/api/guides/formats) for more information about the supported patterns.", +"type": "string" +}, +"type": { +"description": "The type of the number format. When writing, this field must be set.", +"enum": [ +"NUMBER_FORMAT_TYPE_UNSPECIFIED", +"TEXT", +"NUMBER", +"PERCENT", +"CURRENCY", +"DATE", +"TIME", +"DATE_TIME", +"SCIENTIFIC" +], +"enumDescriptions": [ +"The number format is not specified and is based on the contents of the cell. Do not explicitly use this.", +"Text formatting, e.g `1000.12`", +"Number formatting, e.g, `1,000.12`", +"Percent formatting, e.g `10.12%`", +"Currency formatting, e.g `$1,000.12`", +"Date formatting, e.g `9/26/2008`", +"Time formatting, e.g `3:59:00 PM`", +"Date+Time formatting, e.g `9/26/08 15:59:00`", +"Scientific number formatting, e.g `1.01E+03`" +], +"type": "string" +} +}, +"type": "object" +}, +"OrgChartSpec": { +"description": "An org chart. Org charts require a unique set of labels in labels and may optionally include parent_labels and tooltips. parent_labels contain, for each node, the label identifying the parent node. tooltips contain, for each node, an optional tooltip. For example, to describe an OrgChart with Alice as the CEO, Bob as the President (reporting to Alice) and Cathy as VP of Sales (also reporting to Alice), have labels contain \"Alice\", \"Bob\", \"Cathy\", parent_labels contain \"\", \"Alice\", \"Alice\" and tooltips contain \"CEO\", \"President\", \"VP Sales\".", +"id": "OrgChartSpec", +"properties": { +"labels": { +"$ref": "ChartData", +"description": "The data containing the labels for all the nodes in the chart. Labels must be unique." +}, +"nodeColor": { +"$ref": "Color", +"deprecated": true, +"description": "The color of the org chart nodes. Deprecated: Use node_color_style." +}, +"nodeColorStyle": { +"$ref": "ColorStyle", +"description": "The color of the org chart nodes. If node_color is also set, this field takes precedence." +}, +"nodeSize": { +"description": "The size of the org chart nodes.", +"enum": [ +"ORG_CHART_LABEL_SIZE_UNSPECIFIED", +"SMALL", +"MEDIUM", +"LARGE" +], +"enumDescriptions": [ +"Default value, do not use.", +"The small org chart node size.", +"The medium org chart node size.", +"The large org chart node size." +], +"type": "string" +}, +"parentLabels": { +"$ref": "ChartData", +"description": "The data containing the label of the parent for the corresponding node. A blank value indicates that the node has no parent and is a top-level node. This field is optional." +}, +"selectedNodeColor": { +"$ref": "Color", +"deprecated": true, +"description": "The color of the selected org chart nodes. Deprecated: Use selected_node_color_style." +}, +"selectedNodeColorStyle": { +"$ref": "ColorStyle", +"description": "The color of the selected org chart nodes. If selected_node_color is also set, this field takes precedence." +}, +"tooltips": { +"$ref": "ChartData", +"description": "The data containing the tooltip for the corresponding node. A blank value results in no tooltip being displayed for the node. This field is optional." +} +}, +"type": "object" +}, +"OverlayPosition": { +"description": "The location an object is overlaid on top of a grid.", +"id": "OverlayPosition", +"properties": { +"anchorCell": { +"$ref": "GridCoordinate", +"description": "The cell the object is anchored to." +}, +"heightPixels": { +"description": "The height of the object, in pixels. Defaults to 371.", +"format": "int32", +"type": "integer" +}, +"offsetXPixels": { +"description": "The horizontal offset, in pixels, that the object is offset from the anchor cell.", +"format": "int32", +"type": "integer" +}, +"offsetYPixels": { +"description": "The vertical offset, in pixels, that the object is offset from the anchor cell.", +"format": "int32", +"type": "integer" +}, +"widthPixels": { +"description": "The width of the object, in pixels. Defaults to 600.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Padding": { +"description": "The amount of padding around the cell, in pixels. When updating padding, every field must be specified.", +"id": "Padding", +"properties": { +"bottom": { +"description": "The bottom padding of the cell.", +"format": "int32", +"type": "integer" +}, +"left": { +"description": "The left padding of the cell.", +"format": "int32", +"type": "integer" +}, +"right": { +"description": "The right padding of the cell.", +"format": "int32", +"type": "integer" +}, +"top": { +"description": "The top padding of the cell.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PasteDataRequest": { +"description": "Inserts data into the spreadsheet starting at the specified coordinate.", +"id": "PasteDataRequest", +"properties": { +"coordinate": { +"$ref": "GridCoordinate", +"description": "The coordinate at which the data should start being inserted." +}, +"data": { +"description": "The data to insert.", +"type": "string" +}, +"delimiter": { +"description": "The delimiter in the data.", +"type": "string" +}, +"html": { +"description": "True if the data is HTML.", +"type": "boolean" +}, +"type": { +"description": "How the data should be pasted.", +"enum": [ +"PASTE_NORMAL", +"PASTE_VALUES", +"PASTE_FORMAT", +"PASTE_NO_BORDERS", +"PASTE_FORMULA", +"PASTE_DATA_VALIDATION", +"PASTE_CONDITIONAL_FORMATTING" +], +"enumDescriptions": [ +"Paste values, formulas, formats, and merges.", +"Paste the values ONLY without formats, formulas, or merges.", +"Paste the format and data validation only.", +"Like `PASTE_NORMAL` but without borders.", +"Paste the formulas only.", +"Paste the data validation only.", +"Paste the conditional formatting rules only." +], +"type": "string" +} +}, +"type": "object" +}, +"PieChartSpec": { +"description": "A pie chart.", +"id": "PieChartSpec", +"properties": { +"domain": { +"$ref": "ChartData", +"description": "The data that covers the domain of the pie chart." +}, +"legendPosition": { +"description": "Where the legend of the pie chart should be drawn.", +"enum": [ +"PIE_CHART_LEGEND_POSITION_UNSPECIFIED", +"BOTTOM_LEGEND", +"LEFT_LEGEND", +"RIGHT_LEGEND", +"TOP_LEGEND", +"NO_LEGEND", +"LABELED_LEGEND" +], +"enumDescriptions": [ +"Default value, do not use.", +"The legend is rendered on the bottom of the chart.", +"The legend is rendered on the left of the chart.", +"The legend is rendered on the right of the chart.", +"The legend is rendered on the top of the chart.", +"No legend is rendered.", +"Each pie slice has a label attached to it." +], +"type": "string" +}, +"pieHole": { +"description": "The size of the hole in the pie chart.", +"format": "double", +"type": "number" +}, +"series": { +"$ref": "ChartData", +"description": "The data that covers the one and only series of the pie chart." +}, +"threeDimensional": { +"description": "True if the pie is three dimensional.", +"type": "boolean" +} +}, +"type": "object" +}, +"PivotFilterCriteria": { +"description": "Criteria for showing/hiding rows in a pivot table.", +"id": "PivotFilterCriteria", +"properties": { +"condition": { +"$ref": "BooleanCondition", +"description": "A condition that must be true for values to be shown. (`visibleValues` does not override this -- even if a value is listed there, it is still hidden if it does not meet the condition.) Condition values that refer to ranges in A1-notation are evaluated relative to the pivot table sheet. References are treated absolutely, so are not filled down the pivot table. For example, a condition value of `=A1` on \"Pivot Table 1\" is treated as `'Pivot Table 1'!$A$1`. The source data of the pivot table can be referenced by column header name. For example, if the source data has columns named \"Revenue\" and \"Cost\" and a condition is applied to the \"Revenue\" column with type `NUMBER_GREATER` and value `=Cost`, then only columns where \"Revenue\" > \"Cost\" are included." +}, +"visibleByDefault": { +"description": "Whether values are visible by default. If true, the visible_values are ignored, all values that meet condition (if specified) are shown. If false, values that are both in visible_values and meet condition are shown.", +"type": "boolean" +}, +"visibleValues": { +"description": "Values that should be included. Values not listed here are excluded.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PivotFilterSpec": { +"description": "The pivot table filter criteria associated with a specific source column offset.", +"id": "PivotFilterSpec", +"properties": { +"columnOffsetIndex": { +"description": "The zero-based column offset of the source range.", +"format": "int32", +"type": "integer" +}, +"dataSourceColumnReference": { +"$ref": "DataSourceColumnReference", +"description": "The reference to the data source column." +}, +"filterCriteria": { +"$ref": "PivotFilterCriteria", +"description": "The criteria for the column." +} +}, +"type": "object" +}, +"PivotGroup": { +"description": "A single grouping (either row or column) in a pivot table.", +"id": "PivotGroup", +"properties": { +"dataSourceColumnReference": { +"$ref": "DataSourceColumnReference", +"description": "The reference to the data source column this grouping is based on." +}, +"groupLimit": { +"$ref": "PivotGroupLimit", +"description": "The count limit on rows or columns to apply to this pivot group." +}, +"groupRule": { +"$ref": "PivotGroupRule", +"description": "The group rule to apply to this row/column group." +}, +"label": { +"description": "The labels to use for the row/column groups which can be customized. For example, in the following pivot table, the row label is `Region` (which could be renamed to `State`) and the column label is `Product` (which could be renamed `Item`). Pivot tables created before December 2017 do not have header labels. If you'd like to add header labels to an existing pivot table, please delete the existing pivot table and then create a new pivot table with same parameters. +--------------+---------+-------+ | SUM of Units | Product | | | Region | Pen | Paper | +--------------+---------+-------+ | New York | 345 | 98 | | Oregon | 234 | 123 | | Tennessee | 531 | 415 | +--------------+---------+-------+ | Grand Total | 1110 | 636 | +--------------+---------+-------+", +"type": "string" +}, +"repeatHeadings": { +"description": "True if the headings in this pivot group should be repeated. This is only valid for row groupings and is ignored by columns. By default, we minimize repetition of headings by not showing higher level headings where they are the same. For example, even though the third row below corresponds to \"Q1 Mar\", \"Q1\" is not shown because it is redundant with previous rows. Setting repeat_headings to true would cause \"Q1\" to be repeated for \"Feb\" and \"Mar\". +--------------+ | Q1 | Jan | | | Feb | | | Mar | +--------+-----+ | Q1 Total | +--------------+", +"type": "boolean" +}, +"showTotals": { +"description": "True if the pivot table should include the totals for this grouping.", +"type": "boolean" +}, +"sortOrder": { +"description": "The order the values in this group should be sorted.", +"enum": [ +"SORT_ORDER_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"Default value, do not use this.", +"Sort ascending.", +"Sort descending." +], +"type": "string" +}, +"sourceColumnOffset": { +"description": "The column offset of the source range that this grouping is based on. For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` means this group refers to column `C`, whereas the offset `1` would refer to column `D`.", +"format": "int32", +"type": "integer" +}, +"valueBucket": { +"$ref": "PivotGroupSortValueBucket", +"description": "The bucket of the opposite pivot group to sort by. If not specified, sorting is alphabetical by this group's values." +}, +"valueMetadata": { +"description": "Metadata about values in the grouping.", +"items": { +"$ref": "PivotGroupValueMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"PivotGroupLimit": { +"description": "The count limit on rows or columns in the pivot group.", +"id": "PivotGroupLimit", +"properties": { +"applyOrder": { +"description": "The order in which the group limit is applied to the pivot table. Pivot group limits are applied from lower to higher order number. Order numbers are normalized to consecutive integers from 0. For write request, to fully customize the applying orders, all pivot group limits should have this field set with an unique number. Otherwise, the order is determined by the index in the PivotTable.rows list and then the PivotTable.columns list.", +"format": "int32", +"type": "integer" +}, +"countLimit": { +"description": "The count limit.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PivotGroupRule": { +"description": "An optional setting on a PivotGroup that defines buckets for the values in the source data column rather than breaking out each individual value. Only one PivotGroup with a group rule may be added for each column in the source data, though on any given column you may add both a PivotGroup that has a rule and a PivotGroup that does not.", +"id": "PivotGroupRule", +"properties": { +"dateTimeRule": { +"$ref": "DateTimeRule", +"description": "A DateTimeRule." +}, +"histogramRule": { +"$ref": "HistogramRule", +"description": "A HistogramRule." +}, +"manualRule": { +"$ref": "ManualRule", +"description": "A ManualRule." +} +}, +"type": "object" +}, +"PivotGroupSortValueBucket": { +"description": "Information about which values in a pivot group should be used for sorting.", +"id": "PivotGroupSortValueBucket", +"properties": { +"buckets": { +"description": "Determines the bucket from which values are chosen to sort. For example, in a pivot table with one row group & two column groups, the row group can list up to two values. The first value corresponds to a value within the first column group, and the second value corresponds to a value in the second column group. If no values are listed, this would indicate that the row should be sorted according to the \"Grand Total\" over the column groups. If a single value is listed, this would correspond to using the \"Total\" of that bucket.", +"items": { +"$ref": "ExtendedValue" +}, +"type": "array" +}, +"valuesIndex": { +"description": "The offset in the PivotTable.values list which the values in this grouping should be sorted by.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PivotGroupValueMetadata": { +"description": "Metadata about a value in a pivot grouping.", +"id": "PivotGroupValueMetadata", +"properties": { +"collapsed": { +"description": "True if the data corresponding to the value is collapsed.", +"type": "boolean" +}, +"value": { +"$ref": "ExtendedValue", +"description": "The calculated value the metadata corresponds to. (Note that formulaValue is not valid, because the values will be calculated.)" +} +}, +"type": "object" +}, +"PivotTable": { +"description": "A pivot table.", +"id": "PivotTable", +"properties": { +"columns": { +"description": "Each column grouping in the pivot table.", +"items": { +"$ref": "PivotGroup" +}, +"type": "array" +}, +"criteria": { +"additionalProperties": { +"$ref": "PivotFilterCriteria" +}, +"deprecated": true, +"description": "An optional mapping of filters per source column offset. The filters are applied before aggregating data into the pivot table. The map's key is the column offset of the source range that you want to filter, and the value is the criteria for that column. For example, if the source was `C10:E15`, a key of `0` will have the filter for column `C`, whereas the key `1` is for column `D`. This field is deprecated in favor of filter_specs.", +"type": "object" +}, +"dataExecutionStatus": { +"$ref": "DataExecutionStatus", +"description": "Output only. The data execution status for data source pivot tables.", +"readOnly": true +}, +"dataSourceId": { +"description": "The ID of the data source the pivot table is reading data from.", +"type": "string" +}, +"filterSpecs": { +"description": "The filters applied to the source columns before aggregating data for the pivot table. Both criteria and filter_specs are populated in responses. If both fields are specified in an update request, this field takes precedence.", +"items": { +"$ref": "PivotFilterSpec" +}, +"type": "array" +}, +"rows": { +"description": "Each row grouping in the pivot table.", +"items": { +"$ref": "PivotGroup" +}, +"type": "array" +}, +"source": { +"$ref": "GridRange", +"description": "The range the pivot table is reading data from." +}, +"valueLayout": { +"description": "Whether values should be listed horizontally (as columns) or vertically (as rows).", +"enum": [ +"HORIZONTAL", +"VERTICAL" +], +"enumDescriptions": [ +"Values are laid out horizontally (as columns).", +"Values are laid out vertically (as rows)." +], +"type": "string" +}, +"values": { +"description": "A list of values to include in the pivot table.", +"items": { +"$ref": "PivotValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"PivotValue": { +"description": "The definition of how a value in a pivot table should be calculated.", +"id": "PivotValue", +"properties": { +"calculatedDisplayType": { +"description": "If specified, indicates that pivot values should be displayed as the result of a calculation with another pivot value. For example, if calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the pivot values are displayed as the percentage of the grand total. In the Sheets editor, this is referred to as \"Show As\" in the value section of a pivot table.", +"enum": [ +"PIVOT_VALUE_CALCULATED_DISPLAY_TYPE_UNSPECIFIED", +"PERCENT_OF_ROW_TOTAL", +"PERCENT_OF_COLUMN_TOTAL", +"PERCENT_OF_GRAND_TOTAL" +], +"enumDescriptions": [ +"Default value, do not use.", +"Shows the pivot values as percentage of the row total values.", +"Shows the pivot values as percentage of the column total values.", +"Shows the pivot values as percentage of the grand total values." +], +"type": "string" +}, +"dataSourceColumnReference": { +"$ref": "DataSourceColumnReference", +"description": "The reference to the data source column that this value reads from." +}, +"formula": { +"description": "A custom formula to calculate the value. The formula must start with an `=` character.", +"type": "string" +}, +"name": { +"description": "A name to use for the value.", +"type": "string" +}, +"sourceColumnOffset": { +"description": "The column offset of the source range that this value reads from. For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` means this value refers to column `C`, whereas the offset `1` would refer to column `D`.", +"format": "int32", +"type": "integer" +}, +"summarizeFunction": { +"description": "A function to summarize the value. If formula is set, the only supported values are SUM and CUSTOM. If sourceColumnOffset is set, then `CUSTOM` is not supported.", +"enum": [ +"PIVOT_STANDARD_VALUE_FUNCTION_UNSPECIFIED", +"SUM", +"COUNTA", +"COUNT", +"COUNTUNIQUE", +"AVERAGE", +"MAX", +"MIN", +"MEDIAN", +"PRODUCT", +"STDEV", +"STDEVP", +"VAR", +"VARP", +"CUSTOM", +"NONE" +], +"enumDescriptions": [ +"The default, do not use.", +"Corresponds to the `SUM` function.", +"Corresponds to the `COUNTA` function.", +"Corresponds to the `COUNT` function.", +"Corresponds to the `COUNTUNIQUE` function.", +"Corresponds to the `AVERAGE` function.", +"Corresponds to the `MAX` function.", +"Corresponds to the `MIN` function.", +"Corresponds to the `MEDIAN` function.", +"Corresponds to the `PRODUCT` function.", +"Corresponds to the `STDEV` function.", +"Corresponds to the `STDEVP` function.", +"Corresponds to the `VAR` function.", +"Corresponds to the `VARP` function.", +"Indicates the formula should be used as-is. Only valid if PivotValue.formula was set.", +"Indicates that the value is already summarized, and the summarization function is not explicitly specified. Used for Looker data source pivot tables where the value is already summarized." +], +"type": "string" +} +}, +"type": "object" +}, +"PointStyle": { +"description": "The style of a point on the chart.", +"id": "PointStyle", +"properties": { +"shape": { +"description": "The point shape. If empty or unspecified, a default shape is used.", +"enum": [ +"POINT_SHAPE_UNSPECIFIED", +"CIRCLE", +"DIAMOND", +"HEXAGON", +"PENTAGON", +"SQUARE", +"STAR", +"TRIANGLE", +"X_MARK" +], +"enumDescriptions": [ +"Default value.", +"A circle shape.", +"A diamond shape.", +"A hexagon shape.", +"A pentagon shape.", +"A square shape.", +"A star shape.", +"A triangle shape.", +"An x-mark shape." +], +"type": "string" +}, +"size": { +"description": "The point size. If empty, a default size is used.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ProtectedRange": { +"description": "A protected range.", +"id": "ProtectedRange", +"properties": { +"description": { +"description": "The description of this protected range.", +"type": "string" +}, +"editors": { +"$ref": "Editors", +"description": "The users and groups with edit access to the protected range. This field is only visible to users with edit access to the protected range and the document. Editors are not supported with warning_only protection." +}, +"namedRangeId": { +"description": "The named range this protected range is backed by, if any. When writing, only one of range or named_range_id may be set.", +"type": "string" +}, +"protectedRangeId": { +"description": "The ID of the protected range. This field is read-only.", +"format": "int32", +"type": "integer" +}, +"range": { +"$ref": "GridRange", +"description": "The range that is being protected. The range may be fully unbounded, in which case this is considered a protected sheet. When writing, only one of range or named_range_id may be set." +}, +"requestingUserCanEdit": { +"description": "True if the user who requested this protected range can edit the protected area. This field is read-only.", +"type": "boolean" +}, +"unprotectedRanges": { +"description": "The list of unprotected ranges within a protected sheet. Unprotected ranges are only supported on protected sheets.", +"items": { +"$ref": "GridRange" +}, +"type": "array" +}, +"warningOnly": { +"description": "True if this protected range will show a warning when editing. Warning-based protection means that every user can edit data in the protected range, except editing will prompt a warning asking the user to confirm the edit. When writing: if this field is true, then editors are ignored. Additionally, if this field is changed from true to false and the `editors` field is not set (nor included in the field mask), then the editors will be set to all the editors in the document.", +"type": "boolean" +} +}, +"type": "object" +}, +"RandomizeRangeRequest": { +"description": "Randomizes the order of the rows in a range.", +"id": "RandomizeRangeRequest", +"properties": { +"range": { +"$ref": "GridRange", +"description": "The range to randomize." +} +}, +"type": "object" +}, +"RefreshCancellationStatus": { +"description": "The status of a refresh cancellation. You can send a cancel request to explicitly cancel one or multiple data source object refreshes.", +"id": "RefreshCancellationStatus", +"properties": { +"errorCode": { +"description": "The error code.", +"enum": [ +"REFRESH_CANCELLATION_ERROR_CODE_UNSPECIFIED", +"EXECUTION_NOT_FOUND", +"CANCEL_PERMISSION_DENIED", +"QUERY_EXECUTION_COMPLETED", +"CONCURRENT_CANCELLATION", +"CANCEL_OTHER_ERROR" +], +"enumDescriptions": [ +"Default value, do not use.", +"Execution to be cancelled not found in the query engine or in Sheets.", +"The user does not have permission to cancel the query.", +"The query execution has already completed and thus could not be cancelled.", +"There is already another cancellation in process.", +"All other errors." +], +"type": "string" +}, +"state": { +"description": "The state of a call to cancel a refresh in Sheets.", +"enum": [ +"REFRESH_CANCELLATION_STATE_UNSPECIFIED", +"CANCEL_SUCCEEDED", +"CANCEL_FAILED" +], +"enumDescriptions": [ +"Default value, do not use.", +"The API call to Sheets to cancel a refresh has succeeded. This does not mean that the cancel happened successfully, but that the call has been made successfully.", +"The API call to Sheets to cancel a refresh has failed." +], +"type": "string" +} +}, +"type": "object" +}, +"RefreshDataSourceObjectExecutionStatus": { +"description": "The execution status of refreshing one data source object.", +"id": "RefreshDataSourceObjectExecutionStatus", +"properties": { +"dataExecutionStatus": { +"$ref": "DataExecutionStatus", +"description": "The data execution status." +}, +"reference": { +"$ref": "DataSourceObjectReference", +"description": "Reference to a data source object being refreshed." +} +}, +"type": "object" +}, +"RefreshDataSourceRequest": { +"description": "Refreshes one or multiple data source objects in the spreadsheet by the specified references. The request requires an additional `bigquery.readonly` OAuth scope if you are refreshing a BigQuery data source. If there are multiple refresh requests referencing the same data source objects in one batch, only the last refresh request is processed, and all those requests will have the same response accordingly.", +"id": "RefreshDataSourceRequest", +"properties": { +"dataSourceId": { +"description": "Reference to a DataSource. If specified, refreshes all associated data source objects for the data source.", +"type": "string" +}, +"force": { +"description": "Refreshes the data source objects regardless of the current state. If not set and a referenced data source object was in error state, the refresh will fail immediately.", +"type": "boolean" +}, +"isAll": { +"description": "Refreshes all existing data source objects in the spreadsheet.", +"type": "boolean" +}, +"references": { +"$ref": "DataSourceObjectReferences", +"description": "References to data source objects to refresh." +} +}, +"type": "object" +}, +"RefreshDataSourceResponse": { +"description": "The response from refreshing one or multiple data source objects.", +"id": "RefreshDataSourceResponse", +"properties": { +"statuses": { +"description": "All the refresh status for the data source object references specified in the request. If is_all is specified, the field contains only those in failure status.", +"items": { +"$ref": "RefreshDataSourceObjectExecutionStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"RepeatCellRequest": { +"description": "Updates all cells in the range to the values in the given Cell object. Only the fields listed in the fields field are updated; others are unchanged. If writing a cell with a formula, the formula's ranges will automatically increment for each field in the range. For example, if writing a cell with formula `=A1` into range B2:C4, B2 would be `=A1`, B3 would be `=A2`, B4 would be `=A3`, C2 would be `=B1`, C3 would be `=B2`, C4 would be `=B3`. To keep the formula's ranges static, use the `$` indicator. For example, use the formula `=$A$1` to prevent both the row and the column from incrementing.", +"id": "RepeatCellRequest", +"properties": { +"cell": { +"$ref": "CellData", +"description": "The data to write." +}, +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `cell` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"range": { +"$ref": "GridRange", +"description": "The range to repeat the cell in." +} +}, +"type": "object" +}, +"Request": { +"description": "A single kind of update to apply to a spreadsheet.", +"id": "Request", +"properties": { +"addBanding": { +"$ref": "AddBandingRequest", +"description": "Adds a new banded range" +}, +"addChart": { +"$ref": "AddChartRequest", +"description": "Adds a chart." +}, +"addConditionalFormatRule": { +"$ref": "AddConditionalFormatRuleRequest", +"description": "Adds a new conditional format rule." +}, +"addDataSource": { +"$ref": "AddDataSourceRequest", +"description": "Adds a data source." +}, +"addDimensionGroup": { +"$ref": "AddDimensionGroupRequest", +"description": "Creates a group over the specified range." +}, +"addFilterView": { +"$ref": "AddFilterViewRequest", +"description": "Adds a filter view." +}, +"addNamedRange": { +"$ref": "AddNamedRangeRequest", +"description": "Adds a named range." +}, +"addProtectedRange": { +"$ref": "AddProtectedRangeRequest", +"description": "Adds a protected range." +}, +"addSheet": { +"$ref": "AddSheetRequest", +"description": "Adds a sheet." +}, +"addSlicer": { +"$ref": "AddSlicerRequest", +"description": "Adds a slicer." +}, +"appendCells": { +"$ref": "AppendCellsRequest", +"description": "Appends cells after the last row with data in a sheet." +}, +"appendDimension": { +"$ref": "AppendDimensionRequest", +"description": "Appends dimensions to the end of a sheet." +}, +"autoFill": { +"$ref": "AutoFillRequest", +"description": "Automatically fills in more data based on existing data." +}, +"autoResizeDimensions": { +"$ref": "AutoResizeDimensionsRequest", +"description": "Automatically resizes one or more dimensions based on the contents of the cells in that dimension." +}, +"cancelDataSourceRefresh": { +"$ref": "CancelDataSourceRefreshRequest", +"description": "Cancels refreshes of one or multiple data sources and associated dbobjects." +}, +"clearBasicFilter": { +"$ref": "ClearBasicFilterRequest", +"description": "Clears the basic filter on a sheet." +}, +"copyPaste": { +"$ref": "CopyPasteRequest", +"description": "Copies data from one area and pastes it to another." +}, +"createDeveloperMetadata": { +"$ref": "CreateDeveloperMetadataRequest", +"description": "Creates new developer metadata" +}, +"cutPaste": { +"$ref": "CutPasteRequest", +"description": "Cuts data from one area and pastes it to another." +}, +"deleteBanding": { +"$ref": "DeleteBandingRequest", +"description": "Removes a banded range" +}, +"deleteConditionalFormatRule": { +"$ref": "DeleteConditionalFormatRuleRequest", +"description": "Deletes an existing conditional format rule." +}, +"deleteDataSource": { +"$ref": "DeleteDataSourceRequest", +"description": "Deletes a data source." +}, +"deleteDeveloperMetadata": { +"$ref": "DeleteDeveloperMetadataRequest", +"description": "Deletes developer metadata" +}, +"deleteDimension": { +"$ref": "DeleteDimensionRequest", +"description": "Deletes rows or columns in a sheet." +}, +"deleteDimensionGroup": { +"$ref": "DeleteDimensionGroupRequest", +"description": "Deletes a group over the specified range." +}, +"deleteDuplicates": { +"$ref": "DeleteDuplicatesRequest", +"description": "Removes rows containing duplicate values in specified columns of a cell range." +}, +"deleteEmbeddedObject": { +"$ref": "DeleteEmbeddedObjectRequest", +"description": "Deletes an embedded object (e.g, chart, image) in a sheet." +}, +"deleteFilterView": { +"$ref": "DeleteFilterViewRequest", +"description": "Deletes a filter view from a sheet." +}, +"deleteNamedRange": { +"$ref": "DeleteNamedRangeRequest", +"description": "Deletes a named range." +}, +"deleteProtectedRange": { +"$ref": "DeleteProtectedRangeRequest", +"description": "Deletes a protected range." +}, +"deleteRange": { +"$ref": "DeleteRangeRequest", +"description": "Deletes a range of cells from a sheet, shifting the remaining cells." +}, +"deleteSheet": { +"$ref": "DeleteSheetRequest", +"description": "Deletes a sheet." +}, +"duplicateFilterView": { +"$ref": "DuplicateFilterViewRequest", +"description": "Duplicates a filter view." +}, +"duplicateSheet": { +"$ref": "DuplicateSheetRequest", +"description": "Duplicates a sheet." +}, +"findReplace": { +"$ref": "FindReplaceRequest", +"description": "Finds and replaces occurrences of some text with other text." +}, +"insertDimension": { +"$ref": "InsertDimensionRequest", +"description": "Inserts new rows or columns in a sheet." +}, +"insertRange": { +"$ref": "InsertRangeRequest", +"description": "Inserts new cells in a sheet, shifting the existing cells." +}, +"mergeCells": { +"$ref": "MergeCellsRequest", +"description": "Merges cells together." +}, +"moveDimension": { +"$ref": "MoveDimensionRequest", +"description": "Moves rows or columns to another location in a sheet." +}, +"pasteData": { +"$ref": "PasteDataRequest", +"description": "Pastes data (HTML or delimited) into a sheet." +}, +"randomizeRange": { +"$ref": "RandomizeRangeRequest", +"description": "Randomizes the order of the rows in a range." +}, +"refreshDataSource": { +"$ref": "RefreshDataSourceRequest", +"description": "Refreshes one or multiple data sources and associated dbobjects." +}, +"repeatCell": { +"$ref": "RepeatCellRequest", +"description": "Repeats a single cell across a range." +}, +"setBasicFilter": { +"$ref": "SetBasicFilterRequest", +"description": "Sets the basic filter on a sheet." +}, +"setDataValidation": { +"$ref": "SetDataValidationRequest", +"description": "Sets data validation for one or more cells." +}, +"sortRange": { +"$ref": "SortRangeRequest", +"description": "Sorts data in a range." +}, +"textToColumns": { +"$ref": "TextToColumnsRequest", +"description": "Converts a column of text into many columns of text." +}, +"trimWhitespace": { +"$ref": "TrimWhitespaceRequest", +"description": "Trims cells of whitespace (such as spaces, tabs, or new lines)." +}, +"unmergeCells": { +"$ref": "UnmergeCellsRequest", +"description": "Unmerges merged cells." +}, +"updateBanding": { +"$ref": "UpdateBandingRequest", +"description": "Updates a banded range" +}, +"updateBorders": { +"$ref": "UpdateBordersRequest", +"description": "Updates the borders in a range of cells." +}, +"updateCells": { +"$ref": "UpdateCellsRequest", +"description": "Updates many cells at once." +}, +"updateChartSpec": { +"$ref": "UpdateChartSpecRequest", +"description": "Updates a chart's specifications." +}, +"updateConditionalFormatRule": { +"$ref": "UpdateConditionalFormatRuleRequest", +"description": "Updates an existing conditional format rule." +}, +"updateDataSource": { +"$ref": "UpdateDataSourceRequest", +"description": "Updates a data source." +}, +"updateDeveloperMetadata": { +"$ref": "UpdateDeveloperMetadataRequest", +"description": "Updates an existing developer metadata entry" +}, +"updateDimensionGroup": { +"$ref": "UpdateDimensionGroupRequest", +"description": "Updates the state of the specified group." +}, +"updateDimensionProperties": { +"$ref": "UpdateDimensionPropertiesRequest", +"description": "Updates dimensions' properties." +}, +"updateEmbeddedObjectBorder": { +"$ref": "UpdateEmbeddedObjectBorderRequest", +"description": "Updates an embedded object's border." +}, +"updateEmbeddedObjectPosition": { +"$ref": "UpdateEmbeddedObjectPositionRequest", +"description": "Updates an embedded object's (e.g. chart, image) position." +}, +"updateFilterView": { +"$ref": "UpdateFilterViewRequest", +"description": "Updates the properties of a filter view." +}, +"updateNamedRange": { +"$ref": "UpdateNamedRangeRequest", +"description": "Updates a named range." +}, +"updateProtectedRange": { +"$ref": "UpdateProtectedRangeRequest", +"description": "Updates a protected range." +}, +"updateSheetProperties": { +"$ref": "UpdateSheetPropertiesRequest", +"description": "Updates a sheet's properties." +}, +"updateSlicerSpec": { +"$ref": "UpdateSlicerSpecRequest", +"description": "Updates a slicer's specifications." +}, +"updateSpreadsheetProperties": { +"$ref": "UpdateSpreadsheetPropertiesRequest", +"description": "Updates the spreadsheet's properties." +} +}, +"type": "object" +}, +"Response": { +"description": "A single response from an update.", +"id": "Response", +"properties": { +"addBanding": { +"$ref": "AddBandingResponse", +"description": "A reply from adding a banded range." +}, +"addChart": { +"$ref": "AddChartResponse", +"description": "A reply from adding a chart." +}, +"addDataSource": { +"$ref": "AddDataSourceResponse", +"description": "A reply from adding a data source." +}, +"addDimensionGroup": { +"$ref": "AddDimensionGroupResponse", +"description": "A reply from adding a dimension group." +}, +"addFilterView": { +"$ref": "AddFilterViewResponse", +"description": "A reply from adding a filter view." +}, +"addNamedRange": { +"$ref": "AddNamedRangeResponse", +"description": "A reply from adding a named range." +}, +"addProtectedRange": { +"$ref": "AddProtectedRangeResponse", +"description": "A reply from adding a protected range." +}, +"addSheet": { +"$ref": "AddSheetResponse", +"description": "A reply from adding a sheet." +}, +"addSlicer": { +"$ref": "AddSlicerResponse", +"description": "A reply from adding a slicer." +}, +"cancelDataSourceRefresh": { +"$ref": "CancelDataSourceRefreshResponse", +"description": "A reply from cancelling data source object refreshes." +}, +"createDeveloperMetadata": { +"$ref": "CreateDeveloperMetadataResponse", +"description": "A reply from creating a developer metadata entry." +}, +"deleteConditionalFormatRule": { +"$ref": "DeleteConditionalFormatRuleResponse", +"description": "A reply from deleting a conditional format rule." +}, +"deleteDeveloperMetadata": { +"$ref": "DeleteDeveloperMetadataResponse", +"description": "A reply from deleting a developer metadata entry." +}, +"deleteDimensionGroup": { +"$ref": "DeleteDimensionGroupResponse", +"description": "A reply from deleting a dimension group." +}, +"deleteDuplicates": { +"$ref": "DeleteDuplicatesResponse", +"description": "A reply from removing rows containing duplicate values." +}, +"duplicateFilterView": { +"$ref": "DuplicateFilterViewResponse", +"description": "A reply from duplicating a filter view." +}, +"duplicateSheet": { +"$ref": "DuplicateSheetResponse", +"description": "A reply from duplicating a sheet." +}, +"findReplace": { +"$ref": "FindReplaceResponse", +"description": "A reply from doing a find/replace." +}, +"refreshDataSource": { +"$ref": "RefreshDataSourceResponse", +"description": "A reply from refreshing data source objects." +}, +"trimWhitespace": { +"$ref": "TrimWhitespaceResponse", +"description": "A reply from trimming whitespace." +}, +"updateConditionalFormatRule": { +"$ref": "UpdateConditionalFormatRuleResponse", +"description": "A reply from updating a conditional format rule." +}, +"updateDataSource": { +"$ref": "UpdateDataSourceResponse", +"description": "A reply from updating a data source." +}, +"updateDeveloperMetadata": { +"$ref": "UpdateDeveloperMetadataResponse", +"description": "A reply from updating a developer metadata entry." +}, +"updateEmbeddedObjectPosition": { +"$ref": "UpdateEmbeddedObjectPositionResponse", +"description": "A reply from updating an embedded object's position." +} +}, +"type": "object" +}, +"RowData": { +"description": "Data about each cell in a row.", +"id": "RowData", +"properties": { +"values": { +"description": "The values in the row, one per column.", +"items": { +"$ref": "CellData" +}, +"type": "array" +} +}, +"type": "object" +}, +"ScorecardChartSpec": { +"description": "A scorecard chart. Scorecard charts are used to highlight key performance indicators, known as KPIs, on the spreadsheet. A scorecard chart can represent things like total sales, average cost, or a top selling item. You can specify a single data value, or aggregate over a range of data. Percentage or absolute difference from a baseline value can be highlighted, like changes over time.", +"id": "ScorecardChartSpec", +"properties": { +"aggregateType": { +"description": "The aggregation type for key and baseline chart data in scorecard chart. This field is not supported for data source charts. Use the ChartData.aggregateType field of the key_value_data or baseline_value_data instead for data source charts. This field is optional.", +"enum": [ +"CHART_AGGREGATE_TYPE_UNSPECIFIED", +"AVERAGE", +"COUNT", +"MAX", +"MEDIAN", +"MIN", +"SUM" +], +"enumDescriptions": [ +"Default value, do not use.", +"Average aggregate function.", +"Count aggregate function.", +"Maximum aggregate function.", +"Median aggregate function.", +"Minimum aggregate function.", +"Sum aggregate function." +], +"type": "string" +}, +"baselineValueData": { +"$ref": "ChartData", +"description": "The data for scorecard baseline value. This field is optional." +}, +"baselineValueFormat": { +"$ref": "BaselineValueFormat", +"description": "Formatting options for baseline value. This field is needed only if baseline_value_data is specified." +}, +"customFormatOptions": { +"$ref": "ChartCustomNumberFormatOptions", +"description": "Custom formatting options for numeric key/baseline values in scorecard chart. This field is used only when number_format_source is set to CUSTOM. This field is optional." +}, +"keyValueData": { +"$ref": "ChartData", +"description": "The data for scorecard key value." +}, +"keyValueFormat": { +"$ref": "KeyValueFormat", +"description": "Formatting options for key value." +}, +"numberFormatSource": { +"description": "The number format source used in the scorecard chart. This field is optional.", +"enum": [ +"CHART_NUMBER_FORMAT_SOURCE_UNDEFINED", +"FROM_DATA", +"CUSTOM" +], +"enumDescriptions": [ +"Default value, do not use.", +"Inherit number formatting from data.", +"Apply custom formatting as specified by ChartCustomNumberFormatOptions." +], +"type": "string" +}, +"scaleFactor": { +"description": "Value to scale scorecard key and baseline value. For example, a factor of 10 can be used to divide all values in the chart by 10. This field is optional.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"SearchDeveloperMetadataRequest": { +"description": "A request to retrieve all developer metadata matching the set of specified criteria.", +"id": "SearchDeveloperMetadataRequest", +"properties": { +"dataFilters": { +"description": "The data filters describing the criteria used to determine which DeveloperMetadata entries to return. DeveloperMetadata matching any of the specified filters are included in the response.", +"items": { +"$ref": "DataFilter" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchDeveloperMetadataResponse": { +"description": "A reply to a developer metadata search request.", +"id": "SearchDeveloperMetadataResponse", +"properties": { +"matchedDeveloperMetadata": { +"description": "The metadata matching the criteria of the search request.", +"items": { +"$ref": "MatchedDeveloperMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"SetBasicFilterRequest": { +"description": "Sets the basic filter associated with a sheet.", +"id": "SetBasicFilterRequest", +"properties": { +"filter": { +"$ref": "BasicFilter", +"description": "The filter to set." +} +}, +"type": "object" +}, +"SetDataValidationRequest": { +"description": "Sets a data validation rule to every cell in the range. To clear validation in a range, call this with no rule specified.", +"id": "SetDataValidationRequest", +"properties": { +"filteredRowsIncluded": { +"description": "Optional. If true, the data validation rule will be applied to the filtered rows as well.", +"type": "boolean" +}, +"range": { +"$ref": "GridRange", +"description": "The range the data validation rule should apply to." +}, +"rule": { +"$ref": "DataValidationRule", +"description": "The data validation rule to set on each cell in the range, or empty to clear the data validation in the range." +} +}, +"type": "object" +}, +"Sheet": { +"description": "A sheet in a spreadsheet.", +"id": "Sheet", +"properties": { +"bandedRanges": { +"description": "The banded (alternating colors) ranges on this sheet.", +"items": { +"$ref": "BandedRange" +}, +"type": "array" +}, +"basicFilter": { +"$ref": "BasicFilter", +"description": "The filter on this sheet, if any." +}, +"charts": { +"description": "The specifications of every chart on this sheet.", +"items": { +"$ref": "EmbeddedChart" +}, +"type": "array" +}, +"columnGroups": { +"description": "All column groups on this sheet, ordered by increasing range start index, then by group depth.", +"items": { +"$ref": "DimensionGroup" +}, +"type": "array" +}, +"conditionalFormats": { +"description": "The conditional format rules in this sheet.", +"items": { +"$ref": "ConditionalFormatRule" +}, +"type": "array" +}, +"data": { +"description": "Data in the grid, if this is a grid sheet. The number of GridData objects returned is dependent on the number of ranges requested on this sheet. For example, if this is representing `Sheet1`, and the spreadsheet was requested with ranges `Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will have a startRow/startColumn of `0`, while the second one will have `startRow 14` (zero-based row 15), and `startColumn 3` (zero-based column D). For a DATA_SOURCE sheet, you can not request a specific range, the GridData contains all the values.", +"items": { +"$ref": "GridData" +}, +"type": "array" +}, +"developerMetadata": { +"description": "The developer metadata associated with a sheet.", +"items": { +"$ref": "DeveloperMetadata" +}, +"type": "array" +}, +"filterViews": { +"description": "The filter views in this sheet.", +"items": { +"$ref": "FilterView" +}, +"type": "array" +}, +"merges": { +"description": "The ranges that are merged together.", +"items": { +"$ref": "GridRange" +}, +"type": "array" +}, +"properties": { +"$ref": "SheetProperties", +"description": "The properties of the sheet." +}, +"protectedRanges": { +"description": "The protected ranges in this sheet.", +"items": { +"$ref": "ProtectedRange" +}, +"type": "array" +}, +"rowGroups": { +"description": "All row groups on this sheet, ordered by increasing range start index, then by group depth.", +"items": { +"$ref": "DimensionGroup" +}, +"type": "array" +}, +"slicers": { +"description": "The slicers on this sheet.", +"items": { +"$ref": "Slicer" +}, +"type": "array" +} +}, +"type": "object" +}, +"SheetProperties": { +"description": "Properties of a sheet.", +"id": "SheetProperties", +"properties": { +"dataSourceSheetProperties": { +"$ref": "DataSourceSheetProperties", +"description": "Output only. If present, the field contains DATA_SOURCE sheet specific properties.", +"readOnly": true +}, +"gridProperties": { +"$ref": "GridProperties", +"description": "Additional properties of the sheet if this sheet is a grid. (If the sheet is an object sheet, containing a chart or image, then this field will be absent.) When writing it is an error to set any grid properties on non-grid sheets. If this sheet is a DATA_SOURCE sheet, this field is output only but contains the properties that reflect how a data source sheet is rendered in the UI, e.g. row_count." +}, +"hidden": { +"description": "True if the sheet is hidden in the UI, false if it's visible.", +"type": "boolean" +}, +"index": { +"description": "The index of the sheet within the spreadsheet. When adding or updating sheet properties, if this field is excluded then the sheet is added or moved to the end of the sheet list. When updating sheet indices or inserting sheets, movement is considered in \"before the move\" indexes. For example, if there were three sheets (S1, S2, S3) in order to move S1 ahead of S2 the index would have to be set to 2. A sheet index update request is ignored if the requested index is identical to the sheets current index or if the requested new index is equal to the current sheet index + 1.", +"format": "int32", +"type": "integer" +}, +"rightToLeft": { +"description": "True if the sheet is an RTL sheet instead of an LTR sheet.", +"type": "boolean" +}, +"sheetId": { +"description": "The ID of the sheet. Must be non-negative. This field cannot be changed once set.", +"format": "int32", +"type": "integer" +}, +"sheetType": { +"description": "The type of sheet. Defaults to GRID. This field cannot be changed once set.", +"enum": [ +"SHEET_TYPE_UNSPECIFIED", +"GRID", +"OBJECT", +"DATA_SOURCE" +], +"enumDescriptions": [ +"Default value, do not use.", +"The sheet is a grid.", +"The sheet has no grid and instead has an object like a chart or image.", +"The sheet connects with an external DataSource and shows the preview of data." +], +"type": "string" +}, +"tabColor": { +"$ref": "Color", +"deprecated": true, +"description": "The color of the tab in the UI. Deprecated: Use tab_color_style." +}, +"tabColorStyle": { +"$ref": "ColorStyle", +"description": "The color of the tab in the UI. If tab_color is also set, this field takes precedence." +}, +"title": { +"description": "The name of the sheet.", +"type": "string" +} +}, +"type": "object" +}, +"Slicer": { +"description": "A slicer in a sheet.", +"id": "Slicer", +"properties": { +"position": { +"$ref": "EmbeddedObjectPosition", +"description": "The position of the slicer. Note that slicer can be positioned only on existing sheet. Also, width and height of slicer can be automatically adjusted to keep it within permitted limits." +}, +"slicerId": { +"description": "The ID of the slicer.", +"format": "int32", +"type": "integer" +}, +"spec": { +"$ref": "SlicerSpec", +"description": "The specification of the slicer." +} +}, +"type": "object" +}, +"SlicerSpec": { +"description": "The specifications of a slicer.", +"id": "SlicerSpec", +"properties": { +"applyToPivotTables": { +"description": "True if the filter should apply to pivot tables. If not set, default to `True`.", +"type": "boolean" +}, +"backgroundColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background color of the slicer. Deprecated: Use background_color_style." +}, +"backgroundColorStyle": { +"$ref": "ColorStyle", +"description": "The background color of the slicer. If background_color is also set, this field takes precedence." +}, +"columnIndex": { +"description": "The zero-based column index in the data table on which the filter is applied to.", +"format": "int32", +"type": "integer" +}, +"dataRange": { +"$ref": "GridRange", +"description": "The data range of the slicer." +}, +"filterCriteria": { +"$ref": "FilterCriteria", +"description": "The filtering criteria of the slicer." +}, +"horizontalAlignment": { +"description": "The horizontal alignment of title in the slicer. If unspecified, defaults to `LEFT`", +"enum": [ +"HORIZONTAL_ALIGN_UNSPECIFIED", +"LEFT", +"CENTER", +"RIGHT" +], +"enumDescriptions": [ +"The horizontal alignment is not specified. Do not use this.", +"The text is explicitly aligned to the left of the cell.", +"The text is explicitly aligned to the center of the cell.", +"The text is explicitly aligned to the right of the cell." +], +"type": "string" +}, +"textFormat": { +"$ref": "TextFormat", +"description": "The text format of title in the slicer. The link field is not supported." +}, +"title": { +"description": "The title of the slicer.", +"type": "string" +} +}, +"type": "object" +}, +"SortRangeRequest": { +"description": "Sorts data in rows based on a sort order per column.", +"id": "SortRangeRequest", +"properties": { +"range": { +"$ref": "GridRange", +"description": "The range to sort." +}, +"sortSpecs": { +"description": "The sort order per column. Later specifications are used when values are equal in the earlier specifications.", +"items": { +"$ref": "SortSpec" +}, +"type": "array" +} +}, +"type": "object" +}, +"SortSpec": { +"description": "A sort order associated with a specific column or row.", +"id": "SortSpec", +"properties": { +"backgroundColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background fill color to sort by; cells with this fill color are sorted to the top. Mutually exclusive with foreground_color. Deprecated: Use background_color_style." +}, +"backgroundColorStyle": { +"$ref": "ColorStyle", +"description": "The background fill color to sort by; cells with this fill color are sorted to the top. Mutually exclusive with foreground_color, and must be an RGB-type color. If background_color is also set, this field takes precedence." +}, +"dataSourceColumnReference": { +"$ref": "DataSourceColumnReference", +"description": "Reference to a data source column." +}, +"dimensionIndex": { +"description": "The dimension the sort should be applied to.", +"format": "int32", +"type": "integer" +}, +"foregroundColor": { +"$ref": "Color", +"deprecated": true, +"description": "The foreground color to sort by; cells with this foreground color are sorted to the top. Mutually exclusive with background_color. Deprecated: Use foreground_color_style." +}, +"foregroundColorStyle": { +"$ref": "ColorStyle", +"description": "The foreground color to sort by; cells with this foreground color are sorted to the top. Mutually exclusive with background_color, and must be an RGB-type color. If foreground_color is also set, this field takes precedence." +}, +"sortOrder": { +"description": "The order data should be sorted.", +"enum": [ +"SORT_ORDER_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"Default value, do not use this.", +"Sort ascending.", +"Sort descending." +], +"type": "string" +} +}, +"type": "object" +}, +"SourceAndDestination": { +"description": "A combination of a source range and how to extend that source.", +"id": "SourceAndDestination", +"properties": { +"dimension": { +"description": "The dimension that data should be filled into.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"type": "string" +}, +"fillLength": { +"description": "The number of rows or columns that data should be filled into. Positive numbers expand beyond the last row or last column of the source. Negative numbers expand before the first row or first column of the source.", +"format": "int32", +"type": "integer" +}, +"source": { +"$ref": "GridRange", +"description": "The location of the data to use as the source of the autofill." +} +}, +"type": "object" +}, +"Spreadsheet": { +"description": "Resource that represents a spreadsheet.", +"id": "Spreadsheet", +"properties": { +"dataSourceSchedules": { +"description": "Output only. A list of data source refresh schedules.", +"items": { +"$ref": "DataSourceRefreshSchedule" +}, +"readOnly": true, +"type": "array" +}, +"dataSources": { +"description": "A list of external data sources connected with the spreadsheet.", +"items": { +"$ref": "DataSource" +}, +"type": "array" +}, +"developerMetadata": { +"description": "The developer metadata associated with a spreadsheet.", +"items": { +"$ref": "DeveloperMetadata" +}, +"type": "array" +}, +"namedRanges": { +"description": "The named ranges defined in a spreadsheet.", +"items": { +"$ref": "NamedRange" +}, +"type": "array" +}, +"properties": { +"$ref": "SpreadsheetProperties", +"description": "Overall properties of a spreadsheet." +}, +"sheets": { +"description": "The sheets that are part of a spreadsheet.", +"items": { +"$ref": "Sheet" +}, +"type": "array" +}, +"spreadsheetId": { +"description": "The ID of the spreadsheet. This field is read-only.", +"type": "string" +}, +"spreadsheetUrl": { +"description": "The url of the spreadsheet. This field is read-only.", +"type": "string" +} +}, +"type": "object" +}, +"SpreadsheetProperties": { +"description": "Properties of a spreadsheet.", +"id": "SpreadsheetProperties", +"properties": { +"autoRecalc": { +"description": "The amount of time to wait before volatile functions are recalculated.", +"enum": [ +"RECALCULATION_INTERVAL_UNSPECIFIED", +"ON_CHANGE", +"MINUTE", +"HOUR" +], +"enumDescriptions": [ +"Default value. This value must not be used.", +"Volatile functions are updated on every change.", +"Volatile functions are updated on every change and every minute.", +"Volatile functions are updated on every change and hourly." +], +"type": "string" +}, +"defaultFormat": { +"$ref": "CellFormat", +"description": "The default format of all cells in the spreadsheet. CellData.effectiveFormat will not be set if the cell's format is equal to this default format. This field is read-only." +}, +"importFunctionsExternalUrlAccessAllowed": { +"description": "Whether to allow external URL access for image and import functions. Read only when true. When false, you can set to true. This value will be bypassed and always return true if the admin has enabled the [allowlisting feature](https://support.google.com/a?p=url_allowlist).", +"type": "boolean" +}, +"iterativeCalculationSettings": { +"$ref": "IterativeCalculationSettings", +"description": "Determines whether and how circular references are resolved with iterative calculation. Absence of this field means that circular references result in calculation errors." +}, +"locale": { +"description": "The locale of the spreadsheet in one of the following formats: * an ISO 639-1 language code such as `en` * an ISO 639-2 language code such as `fil`, if no 639-1 code exists * a combination of the ISO language code and country code, such as `en_US` Note: when updating this field, not all locales/languages are supported.", +"type": "string" +}, +"spreadsheetTheme": { +"$ref": "SpreadsheetTheme", +"description": "Theme applied to the spreadsheet." +}, +"timeZone": { +"description": "The time zone of the spreadsheet, in CLDR format such as `America/New_York`. If the time zone isn't recognized, this may be a custom time zone such as `GMT-07:00`.", +"type": "string" +}, +"title": { +"description": "The title of the spreadsheet.", +"type": "string" +} +}, +"type": "object" +}, +"SpreadsheetTheme": { +"description": "Represents spreadsheet theme", +"id": "SpreadsheetTheme", +"properties": { +"primaryFontFamily": { +"description": "Name of the primary font family.", +"type": "string" +}, +"themeColors": { +"description": "The spreadsheet theme color pairs. To update you must provide all theme color pairs.", +"items": { +"$ref": "ThemeColorPair" +}, +"type": "array" +} +}, +"type": "object" +}, +"TextFormat": { +"description": "The format of a run of text in a cell. Absent values indicate that the field isn't specified.", +"id": "TextFormat", +"properties": { +"bold": { +"description": "True if the text is bold.", +"type": "boolean" +}, +"fontFamily": { +"description": "The font family.", +"type": "string" +}, +"fontSize": { +"description": "The size of the font.", +"format": "int32", +"type": "integer" +}, +"foregroundColor": { +"$ref": "Color", +"deprecated": true, +"description": "The foreground color of the text. Deprecated: Use foreground_color_style." +}, +"foregroundColorStyle": { +"$ref": "ColorStyle", +"description": "The foreground color of the text. If foreground_color is also set, this field takes precedence." +}, +"italic": { +"description": "True if the text is italicized.", +"type": "boolean" +}, +"link": { +"$ref": "Link", +"description": "The link destination of the text, if any. Setting the link field in a TextFormatRun will clear the cell's existing links or a cell-level link set in the same request. When a link is set, the text foreground color will be set to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults." +}, +"strikethrough": { +"description": "True if the text has a strikethrough.", +"type": "boolean" +}, +"underline": { +"description": "True if the text is underlined.", +"type": "boolean" +} +}, +"type": "object" +}, +"TextFormatRun": { +"description": "A run of a text format. The format of this run continues until the start index of the next run. When updating, all fields must be set.", +"id": "TextFormatRun", +"properties": { +"format": { +"$ref": "TextFormat", +"description": "The format of this run. Absent values inherit the cell's format." +}, +"startIndex": { +"description": "The zero-based character index where this run starts, in UTF-16 code units.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TextPosition": { +"description": "Position settings for text.", +"id": "TextPosition", +"properties": { +"horizontalAlignment": { +"description": "Horizontal alignment setting for the piece of text.", +"enum": [ +"HORIZONTAL_ALIGN_UNSPECIFIED", +"LEFT", +"CENTER", +"RIGHT" +], +"enumDescriptions": [ +"The horizontal alignment is not specified. Do not use this.", +"The text is explicitly aligned to the left of the cell.", +"The text is explicitly aligned to the center of the cell.", +"The text is explicitly aligned to the right of the cell." +], +"type": "string" +} +}, +"type": "object" +}, +"TextRotation": { +"description": "The rotation applied to text in a cell.", +"id": "TextRotation", +"properties": { +"angle": { +"description": "The angle between the standard orientation and the desired orientation. Measured in degrees. Valid values are between -90 and 90. Positive angles are angled upwards, negative are angled downwards. Note: For LTR text direction positive angles are in the counterclockwise direction, whereas for RTL they are in the clockwise direction", +"format": "int32", +"type": "integer" +}, +"vertical": { +"description": "If true, text reads top to bottom, but the orientation of individual characters is unchanged. For example: | V | | e | | r | | t | | i | | c | | a | | l |", +"type": "boolean" +} +}, +"type": "object" +}, +"TextToColumnsRequest": { +"description": "Splits a column of text into multiple columns, based on a delimiter in each cell.", +"id": "TextToColumnsRequest", +"properties": { +"delimiter": { +"description": "The delimiter to use. Used only if delimiterType is CUSTOM.", +"type": "string" +}, +"delimiterType": { +"description": "The delimiter type to use.", +"enum": [ +"DELIMITER_TYPE_UNSPECIFIED", +"COMMA", +"SEMICOLON", +"PERIOD", +"SPACE", +"CUSTOM", +"AUTODETECT" +], +"enumDescriptions": [ +"Default value. This value must not be used.", +"\",\"", +"\";\"", +"\".\"", +"\" \"", +"A custom value as defined in delimiter.", +"Automatically detect columns." +], +"type": "string" +}, +"source": { +"$ref": "GridRange", +"description": "The source data range. This must span exactly one column." +} +}, +"type": "object" +}, +"ThemeColorPair": { +"description": "A pair mapping a spreadsheet theme color type to the concrete color it represents.", +"id": "ThemeColorPair", +"properties": { +"color": { +"$ref": "ColorStyle", +"description": "The concrete color corresponding to the theme color type." +}, +"colorType": { +"description": "The type of the spreadsheet theme color.", +"enum": [ +"THEME_COLOR_TYPE_UNSPECIFIED", +"TEXT", +"BACKGROUND", +"ACCENT1", +"ACCENT2", +"ACCENT3", +"ACCENT4", +"ACCENT5", +"ACCENT6", +"LINK" +], +"enumDescriptions": [ +"Unspecified theme color", +"Represents the primary text color", +"Represents the primary background color", +"Represents the first accent color", +"Represents the second accent color", +"Represents the third accent color", +"Represents the fourth accent color", +"Represents the fifth accent color", +"Represents the sixth accent color", +"Represents the color to use for hyperlinks" +], +"type": "string" +} +}, +"type": "object" +}, +"TimeOfDay": { +"description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", +"id": "TimeOfDay", +"properties": { +"hours": { +"description": "Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", +"format": "int32", +"type": "integer" +}, +"minutes": { +"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TreemapChartColorScale": { +"description": "A color scale for a treemap chart.", +"id": "TreemapChartColorScale", +"properties": { +"maxValueColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background color for cells with a color value greater than or equal to maxValue. Defaults to #109618 if not specified. Deprecated: Use max_value_color_style." +}, +"maxValueColorStyle": { +"$ref": "ColorStyle", +"description": "The background color for cells with a color value greater than or equal to maxValue. Defaults to #109618 if not specified. If max_value_color is also set, this field takes precedence." +}, +"midValueColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background color for cells with a color value at the midpoint between minValue and maxValue. Defaults to #efe6dc if not specified. Deprecated: Use mid_value_color_style." +}, +"midValueColorStyle": { +"$ref": "ColorStyle", +"description": "The background color for cells with a color value at the midpoint between minValue and maxValue. Defaults to #efe6dc if not specified. If mid_value_color is also set, this field takes precedence." +}, +"minValueColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background color for cells with a color value less than or equal to minValue. Defaults to #dc3912 if not specified. Deprecated: Use min_value_color_style." +}, +"minValueColorStyle": { +"$ref": "ColorStyle", +"description": "The background color for cells with a color value less than or equal to minValue. Defaults to #dc3912 if not specified. If min_value_color is also set, this field takes precedence." +}, +"noDataColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background color for cells that have no color data associated with them. Defaults to #000000 if not specified. Deprecated: Use no_data_color_style." +}, +"noDataColorStyle": { +"$ref": "ColorStyle", +"description": "The background color for cells that have no color data associated with them. Defaults to #000000 if not specified. If no_data_color is also set, this field takes precedence." +} +}, +"type": "object" +}, +"TreemapChartSpec": { +"description": "A Treemap chart.", +"id": "TreemapChartSpec", +"properties": { +"colorData": { +"$ref": "ChartData", +"description": "The data that determines the background color of each treemap data cell. This field is optional. If not specified, size_data is used to determine background colors. If specified, the data is expected to be numeric. color_scale will determine how the values in this data map to data cell background colors." +}, +"colorScale": { +"$ref": "TreemapChartColorScale", +"description": "The color scale for data cells in the treemap chart. Data cells are assigned colors based on their color values. These color values come from color_data, or from size_data if color_data is not specified. Cells with color values less than or equal to min_value will have minValueColor as their background color. Cells with color values greater than or equal to max_value will have maxValueColor as their background color. Cells with color values between min_value and max_value will have background colors on a gradient between minValueColor and maxValueColor, the midpoint of the gradient being midValueColor. Cells with missing or non-numeric color values will have noDataColor as their background color." +}, +"headerColor": { +"$ref": "Color", +"deprecated": true, +"description": "The background color for header cells. Deprecated: Use header_color_style." +}, +"headerColorStyle": { +"$ref": "ColorStyle", +"description": "The background color for header cells. If header_color is also set, this field takes precedence." +}, +"hideTooltips": { +"description": "True to hide tooltips.", +"type": "boolean" +}, +"hintedLevels": { +"description": "The number of additional data levels beyond the labeled levels to be shown on the treemap chart. These levels are not interactive and are shown without their labels. Defaults to 0 if not specified.", +"format": "int32", +"type": "integer" +}, +"labels": { +"$ref": "ChartData", +"description": "The data that contains the treemap cell labels." +}, +"levels": { +"description": "The number of data levels to show on the treemap chart. These levels are interactive and are shown with their labels. Defaults to 2 if not specified.", +"format": "int32", +"type": "integer" +}, +"maxValue": { +"description": "The maximum possible data value. Cells with values greater than this will have the same color as cells with this value. If not specified, defaults to the actual maximum value from color_data, or the maximum value from size_data if color_data is not specified.", +"format": "double", +"type": "number" +}, +"minValue": { +"description": "The minimum possible data value. Cells with values less than this will have the same color as cells with this value. If not specified, defaults to the actual minimum value from color_data, or the minimum value from size_data if color_data is not specified.", +"format": "double", +"type": "number" +}, +"parentLabels": { +"$ref": "ChartData", +"description": "The data the contains the treemap cells' parent labels." +}, +"sizeData": { +"$ref": "ChartData", +"description": "The data that determines the size of each treemap data cell. This data is expected to be numeric. The cells corresponding to non-numeric or missing data will not be rendered. If color_data is not specified, this data is used to determine data cell background colors as well." +}, +"textFormat": { +"$ref": "TextFormat", +"description": "The text format for all labels on the chart. The link field is not supported." +} +}, +"type": "object" +}, +"TrimWhitespaceRequest": { +"description": "Trims the whitespace (such as spaces, tabs, or new lines) in every cell in the specified range. This request removes all whitespace from the start and end of each cell's text, and reduces any subsequence of remaining whitespace characters to a single space. If the resulting trimmed text starts with a '+' or '=' character, the text remains as a string value and isn't interpreted as a formula.", +"id": "TrimWhitespaceRequest", +"properties": { +"range": { +"$ref": "GridRange", +"description": "The range whose cells to trim." +} +}, +"type": "object" +}, +"TrimWhitespaceResponse": { +"description": "The result of trimming whitespace in cells.", +"id": "TrimWhitespaceResponse", +"properties": { +"cellsChangedCount": { +"description": "The number of cells that were trimmed of whitespace.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UnmergeCellsRequest": { +"description": "Unmerges cells in the given range.", +"id": "UnmergeCellsRequest", +"properties": { +"range": { +"$ref": "GridRange", +"description": "The range within which all cells should be unmerged. If the range spans multiple merges, all will be unmerged. The range must not partially span any merge." +} +}, +"type": "object" +}, +"UpdateBandingRequest": { +"description": "Updates properties of the supplied banded range.", +"id": "UpdateBandingRequest", +"properties": { +"bandedRange": { +"$ref": "BandedRange", +"description": "The banded range to update with the new properties." +}, +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `bandedRange` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdateBordersRequest": { +"description": "Updates the borders of a range. If a field is not set in the request, that means the border remains as-is. For example, with two subsequent UpdateBordersRequest: 1. range: A1:A5 `{ top: RED, bottom: WHITE }` 2. range: A1:A5 `{ left: BLUE }` That would result in A1:A5 having a borders of `{ top: RED, bottom: WHITE, left: BLUE }`. If you want to clear a border, explicitly set the style to NONE.", +"id": "UpdateBordersRequest", +"properties": { +"bottom": { +"$ref": "Border", +"description": "The border to put at the bottom of the range." +}, +"innerHorizontal": { +"$ref": "Border", +"description": "The horizontal border to put within the range." +}, +"innerVertical": { +"$ref": "Border", +"description": "The vertical border to put within the range." +}, +"left": { +"$ref": "Border", +"description": "The border to put at the left of the range." +}, +"range": { +"$ref": "GridRange", +"description": "The range whose borders should be updated." +}, +"right": { +"$ref": "Border", +"description": "The border to put at the right of the range." +}, +"top": { +"$ref": "Border", +"description": "The border to put at the top of the range." +} +}, +"type": "object" +}, +"UpdateCellsRequest": { +"description": "Updates all cells in a range with new data.", +"id": "UpdateCellsRequest", +"properties": { +"fields": { +"description": "The fields of CellData that should be updated. At least one field must be specified. The root is the CellData; 'row.values.' should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"range": { +"$ref": "GridRange", +"description": "The range to write data to. If the data in rows does not cover the entire requested range, the fields matching those set in fields will be cleared." +}, +"rows": { +"description": "The data to write.", +"items": { +"$ref": "RowData" +}, +"type": "array" +}, +"start": { +"$ref": "GridCoordinate", +"description": "The coordinate to start writing data at. Any number of rows and columns (including a different number of columns per row) may be written." +} +}, +"type": "object" +}, +"UpdateChartSpecRequest": { +"description": "Updates a chart's specifications. (This does not move or resize a chart. To move or resize a chart, use UpdateEmbeddedObjectPositionRequest.)", +"id": "UpdateChartSpecRequest", +"properties": { +"chartId": { +"description": "The ID of the chart to update.", +"format": "int32", +"type": "integer" +}, +"spec": { +"$ref": "ChartSpec", +"description": "The specification to apply to the chart." +} +}, +"type": "object" +}, +"UpdateConditionalFormatRuleRequest": { +"description": "Updates a conditional format rule at the given index, or moves a conditional format rule to another index.", +"id": "UpdateConditionalFormatRuleRequest", +"properties": { +"index": { +"description": "The zero-based index of the rule that should be replaced or moved.", +"format": "int32", +"type": "integer" +}, +"newIndex": { +"description": "The zero-based new index the rule should end up at.", +"format": "int32", +"type": "integer" +}, +"rule": { +"$ref": "ConditionalFormatRule", +"description": "The rule that should replace the rule at the given index." +}, +"sheetId": { +"description": "The sheet of the rule to move. Required if new_index is set, unused otherwise.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UpdateConditionalFormatRuleResponse": { +"description": "The result of updating a conditional format rule.", +"id": "UpdateConditionalFormatRuleResponse", +"properties": { +"newIndex": { +"description": "The index of the new rule.", +"format": "int32", +"type": "integer" +}, +"newRule": { +"$ref": "ConditionalFormatRule", +"description": "The new rule that replaced the old rule (if replacing), or the rule that was moved (if moved)" +}, +"oldIndex": { +"description": "The old index of the rule. Not set if a rule was replaced (because it is the same as new_index).", +"format": "int32", +"type": "integer" +}, +"oldRule": { +"$ref": "ConditionalFormatRule", +"description": "The old (deleted) rule. Not set if a rule was moved (because it is the same as new_rule)." +} +}, +"type": "object" +}, +"UpdateDataSourceRequest": { +"description": "Updates a data source. After the data source is updated successfully, an execution is triggered to refresh the associated DATA_SOURCE sheet to read data from the updated data source. The request requires an additional `bigquery.readonly` OAuth scope if you are updating a BigQuery data source.", +"id": "UpdateDataSourceRequest", +"properties": { +"dataSource": { +"$ref": "DataSource", +"description": "The data source to update." +}, +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `dataSource` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdateDataSourceResponse": { +"description": "The response from updating data source.", +"id": "UpdateDataSourceResponse", +"properties": { +"dataExecutionStatus": { +"$ref": "DataExecutionStatus", +"description": "The data execution status." +}, +"dataSource": { +"$ref": "DataSource", +"description": "The updated data source." +} +}, +"type": "object" +}, +"UpdateDeveloperMetadataRequest": { +"description": "A request to update properties of developer metadata. Updates the properties of the developer metadata selected by the filters to the values provided in the DeveloperMetadata resource. Callers must specify the properties they wish to update in the fields parameter, as well as specify at least one DataFilter matching the metadata they wish to update.", +"id": "UpdateDeveloperMetadataRequest", +"properties": { +"dataFilters": { +"description": "The filters matching the developer metadata entries to update.", +"items": { +"$ref": "DataFilter" +}, +"type": "array" +}, +"developerMetadata": { +"$ref": "DeveloperMetadata", +"description": "The value that all metadata matched by the data filters will be updated to." +}, +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `developerMetadata` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdateDeveloperMetadataResponse": { +"description": "The response from updating developer metadata.", +"id": "UpdateDeveloperMetadataResponse", +"properties": { +"developerMetadata": { +"description": "The updated developer metadata.", +"items": { +"$ref": "DeveloperMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"UpdateDimensionGroupRequest": { +"description": "Updates the state of the specified group.", +"id": "UpdateDimensionGroupRequest", +"properties": { +"dimensionGroup": { +"$ref": "DimensionGroup", +"description": "The group whose state should be updated. The range and depth of the group should specify a valid group on the sheet, and all other fields updated." +}, +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `dimensionGroup` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdateDimensionPropertiesRequest": { +"description": "Updates properties of dimensions within the specified range.", +"id": "UpdateDimensionPropertiesRequest", +"properties": { +"dataSourceSheetRange": { +"$ref": "DataSourceSheetDimensionRange", +"description": "The columns on a data source sheet to update." +}, +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `properties` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"properties": { +"$ref": "DimensionProperties", +"description": "Properties to update." +}, +"range": { +"$ref": "DimensionRange", +"description": "The rows or columns to update." +} +}, +"type": "object" +}, +"UpdateEmbeddedObjectBorderRequest": { +"description": "Updates an embedded object's border property.", +"id": "UpdateEmbeddedObjectBorderRequest", +"properties": { +"border": { +"$ref": "EmbeddedObjectBorder", +"description": "The border that applies to the embedded object." +}, +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `border` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"objectId": { +"description": "The ID of the embedded object to update.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UpdateEmbeddedObjectPositionRequest": { +"description": "Update an embedded object's position (such as a moving or resizing a chart or image).", +"id": "UpdateEmbeddedObjectPositionRequest", +"properties": { +"fields": { +"description": "The fields of OverlayPosition that should be updated when setting a new position. Used only if newPosition.overlayPosition is set, in which case at least one field must be specified. The root `newPosition.overlayPosition` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"newPosition": { +"$ref": "EmbeddedObjectPosition", +"description": "An explicit position to move the embedded object to. If newPosition.sheetId is set, a new sheet with that ID will be created. If newPosition.newSheet is set to true, a new sheet will be created with an ID that will be chosen for you." +}, +"objectId": { +"description": "The ID of the object to moved.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UpdateEmbeddedObjectPositionResponse": { +"description": "The result of updating an embedded object's position.", +"id": "UpdateEmbeddedObjectPositionResponse", +"properties": { +"position": { +"$ref": "EmbeddedObjectPosition", +"description": "The new position of the embedded object." +} +}, +"type": "object" +}, +"UpdateFilterViewRequest": { +"description": "Updates properties of the filter view.", +"id": "UpdateFilterViewRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `filter` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"filter": { +"$ref": "FilterView", +"description": "The new properties of the filter view." +} +}, +"type": "object" +}, +"UpdateNamedRangeRequest": { +"description": "Updates properties of the named range with the specified namedRangeId.", +"id": "UpdateNamedRangeRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `namedRange` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"namedRange": { +"$ref": "NamedRange", +"description": "The named range to update with the new properties." +} +}, +"type": "object" +}, +"UpdateProtectedRangeRequest": { +"description": "Updates an existing protected range with the specified protectedRangeId.", +"id": "UpdateProtectedRangeRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `protectedRange` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"protectedRange": { +"$ref": "ProtectedRange", +"description": "The protected range to update with the new properties." +} +}, +"type": "object" +}, +"UpdateSheetPropertiesRequest": { +"description": "Updates properties of the sheet with the specified sheetId.", +"id": "UpdateSheetPropertiesRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `properties` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"properties": { +"$ref": "SheetProperties", +"description": "The properties to update." +} +}, +"type": "object" +}, +"UpdateSlicerSpecRequest": { +"description": "Updates a slicer's specifications. (This does not move or resize a slicer. To move or resize a slicer use UpdateEmbeddedObjectPositionRequest.", +"id": "UpdateSlicerSpecRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `SlicerSpec` is implied and should not be specified. A single \"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"slicerId": { +"description": "The id of the slicer to update.", +"format": "int32", +"type": "integer" +}, +"spec": { +"$ref": "SlicerSpec", +"description": "The specification to apply to the slicer." +} +}, +"type": "object" +}, +"UpdateSpreadsheetPropertiesRequest": { +"description": "Updates properties of a spreadsheet.", +"id": "UpdateSpreadsheetPropertiesRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root 'properties' is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field.", +"format": "google-fieldmask", +"type": "string" +}, +"properties": { +"$ref": "SpreadsheetProperties", +"description": "The properties to update." +} +}, +"type": "object" +}, +"UpdateValuesByDataFilterResponse": { +"description": "The response when updating a range of values by a data filter in a spreadsheet.", +"id": "UpdateValuesByDataFilterResponse", +"properties": { +"dataFilter": { +"$ref": "DataFilter", +"description": "The data filter that selected the range that was updated." +}, +"updatedCells": { +"description": "The number of cells updated.", +"format": "int32", +"type": "integer" +}, +"updatedColumns": { +"description": "The number of columns where at least one cell in the column was updated.", +"format": "int32", +"type": "integer" +}, +"updatedData": { +"$ref": "ValueRange", +"description": "The values of the cells in the range matched by the dataFilter after all updates were applied. This is only included if the request's `includeValuesInResponse` field was `true`." +}, +"updatedRange": { +"description": "The range (in [A1 notation](/sheets/api/guides/concepts#cell)) that updates were applied to.", +"type": "string" +}, +"updatedRows": { +"description": "The number of rows where at least one cell in the row was updated.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UpdateValuesResponse": { +"description": "The response when updating a range of values in a spreadsheet.", +"id": "UpdateValuesResponse", +"properties": { +"spreadsheetId": { +"description": "The spreadsheet the updates were applied to.", +"type": "string" +}, +"updatedCells": { +"description": "The number of cells updated.", +"format": "int32", +"type": "integer" +}, +"updatedColumns": { +"description": "The number of columns where at least one cell in the column was updated.", +"format": "int32", +"type": "integer" +}, +"updatedData": { +"$ref": "ValueRange", +"description": "The values of the cells after updates were applied. This is only included if the request's `includeValuesInResponse` field was `true`." +}, +"updatedRange": { +"description": "The range (in A1 notation) that updates were applied to.", +"type": "string" +}, +"updatedRows": { +"description": "The number of rows where at least one cell in the row was updated.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ValueRange": { +"description": "Data within a range of the spreadsheet.", +"id": "ValueRange", +"properties": { +"majorDimension": { +"description": "The major dimension of the values. For output, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=A1:B2,majorDimension=ROWS` will return `[[1,2],[3,4]]`, whereas requesting `range=A1:B2,majorDimension=COLUMNS` will return `[[1,3],[2,4]]`. For input, with `range=A1:B2,majorDimension=ROWS` then `[[1,2],[3,4]]` will set `A1=1,B1=2,A2=3,B2=4`. With `range=A1:B2,majorDimension=COLUMNS` then `[[1,2],[3,4]]` will set `A1=1,B1=3,A2=2,B2=4`. When writing, if this field is not set, it defaults to ROWS.", +"enum": [ +"DIMENSION_UNSPECIFIED", +"ROWS", +"COLUMNS" +], +"enumDescriptions": [ +"The default value, do not use.", +"Operates on the rows of a sheet.", +"Operates on the columns of a sheet." +], +"type": "string" +}, +"range": { +"description": "The range the values cover, in [A1 notation](/sheets/api/guides/concepts#cell). For output, this range indicates the entire requested range, even though the values will exclude trailing rows and columns. When appending values, this field represents the range to search for a table, after which values will be appended.", +"type": "string" +}, +"values": { +"description": "The data that was read or to be written. This is an array of arrays, the outer array representing all the data and each inner array representing a major dimension. Each item in the inner array corresponds with one cell. For output, empty trailing rows and columns will not be included. For input, supported value types are: bool, string, and double. Null values will be skipped. To set a cell to an empty value, set the string value to an empty string.", +"items": { +"items": { +"type": "any" +}, +"type": "array" +}, +"type": "array" +} +}, +"type": "object" +}, +"WaterfallChartColumnStyle": { +"description": "Styles for a waterfall chart column.", +"id": "WaterfallChartColumnStyle", +"properties": { +"color": { +"$ref": "Color", +"deprecated": true, +"description": "The color of the column. Deprecated: Use color_style." +}, +"colorStyle": { +"$ref": "ColorStyle", +"description": "The color of the column. If color is also set, this field takes precedence." +}, +"label": { +"description": "The label of the column's legend.", +"type": "string" +} +}, +"type": "object" +}, +"WaterfallChartCustomSubtotal": { +"description": "A custom subtotal column for a waterfall chart series.", +"id": "WaterfallChartCustomSubtotal", +"properties": { +"dataIsSubtotal": { +"description": "True if the data point at subtotal_index is the subtotal. If false, the subtotal will be computed and appear after the data point.", +"type": "boolean" +}, +"label": { +"description": "A label for the subtotal column.", +"type": "string" +}, +"subtotalIndex": { +"description": "The zero-based index of a data point within the series. If data_is_subtotal is true, the data point at this index is the subtotal. Otherwise, the subtotal appears after the data point with this index. A series can have multiple subtotals at arbitrary indices, but subtotals do not affect the indices of the data points. For example, if a series has three data points, their indices will always be 0, 1, and 2, regardless of how many subtotals exist on the series or what data points they are associated with.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"WaterfallChartDomain": { +"description": "The domain of a waterfall chart.", +"id": "WaterfallChartDomain", +"properties": { +"data": { +"$ref": "ChartData", +"description": "The data of the WaterfallChartDomain." +}, +"reversed": { +"description": "True to reverse the order of the domain values (horizontal axis).", +"type": "boolean" +} +}, +"type": "object" +}, +"WaterfallChartSeries": { +"description": "A single series of data for a waterfall chart.", +"id": "WaterfallChartSeries", +"properties": { +"customSubtotals": { +"description": "Custom subtotal columns appearing in this series. The order in which subtotals are defined is not significant. Only one subtotal may be defined for each data point.", +"items": { +"$ref": "WaterfallChartCustomSubtotal" +}, +"type": "array" +}, +"data": { +"$ref": "ChartData", +"description": "The data being visualized in this series." +}, +"dataLabel": { +"$ref": "DataLabel", +"description": "Information about the data labels for this series." +}, +"hideTrailingSubtotal": { +"description": "True to hide the subtotal column from the end of the series. By default, a subtotal column will appear at the end of each series. Setting this field to true will hide that subtotal column for this series.", +"type": "boolean" +}, +"negativeColumnsStyle": { +"$ref": "WaterfallChartColumnStyle", +"description": "Styles for all columns in this series with negative values." +}, +"positiveColumnsStyle": { +"$ref": "WaterfallChartColumnStyle", +"description": "Styles for all columns in this series with positive values." +}, +"subtotalColumnsStyle": { +"$ref": "WaterfallChartColumnStyle", +"description": "Styles for all subtotal columns in this series." +} +}, +"type": "object" +}, +"WaterfallChartSpec": { +"description": "A waterfall chart.", +"id": "WaterfallChartSpec", +"properties": { +"connectorLineStyle": { +"$ref": "LineStyle", +"description": "The line style for the connector lines." +}, +"domain": { +"$ref": "WaterfallChartDomain", +"description": "The domain data (horizontal axis) for the waterfall chart." +}, +"firstValueIsTotal": { +"description": "True to interpret the first value as a total.", +"type": "boolean" +}, +"hideConnectorLines": { +"description": "True to hide connector lines between columns.", +"type": "boolean" +}, +"series": { +"description": "The data this waterfall chart is visualizing.", +"items": { +"$ref": "WaterfallChartSeries" +}, +"type": "array" +}, +"stackedType": { +"description": "The stacked type.", +"enum": [ +"WATERFALL_STACKED_TYPE_UNSPECIFIED", +"STACKED", +"SEQUENTIAL" +], +"enumDescriptions": [ +"Default value, do not use.", +"Values corresponding to the same domain (horizontal axis) value will be stacked vertically.", +"Series will spread out along the horizontal axis." +], +"type": "string" +}, +"totalDataLabel": { +"$ref": "DataLabel", +"description": "Controls whether to display additional data labels on stacked charts which sum the total value of all stacked values at each value along the domain axis. stacked_type must be STACKED and neither CUSTOM nor placement can be set on the total_data_label." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Sheets API", +"version": "v4", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/solar.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/solar.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..2fd64a15edb4f2e6e83e7d081f28d1c467e392b4 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/solar.v1.json @@ -0,0 +1,967 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://solar.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Solar", +"description": "Solar API.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/maps/documentation/solar", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "solar:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://solar.mtls.googleapis.com/", +"name": "solar", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"buildingInsights": { +"methods": { +"findClosest": { +"description": "Locates the closest building to a query point. Returns an error with code `NOT_FOUND` if there are no buildings within approximately 50m of the query point.", +"flatPath": "v1/buildingInsights:findClosest", +"httpMethod": "GET", +"id": "solar.buildingInsights.findClosest", +"parameterOrder": [], +"parameters": { +"experiments": { +"description": "Optional. Specifies the pre-GA features to enable.", +"enum": [ +"EXPERIMENT_UNSPECIFIED", +"EXPANDED_COVERAGE" +], +"enumDescriptions": [ +"No experiments are specified.", +"Expands the geographic region available for querying solar data." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"location.latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"location": "query", +"type": "number" +}, +"location.longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"location": "query", +"type": "number" +}, +"requiredQuality": { +"description": "Optional. The minimum quality level allowed in the results. No result with lower quality than this will be returned. Not specifying this is equivalent to restricting to HIGH quality only.", +"enum": [ +"IMAGERY_QUALITY_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"BASE" +], +"enumDescriptions": [ +"No quality is known.", +"Solar data is derived from aerial imagery captured at low-altitude and processed at 0.1 m/pixel.", +"Solar data is derived from enhanced aerial imagery captured at high-altitude and processed at 0.25 m/pixel.", +"Solar data is derived from enhanced satellite imagery processed at 0.25 m/pixel.", +"Solar data is derived from enhanced satellite imagery processed at 0.25 m/pixel." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/buildingInsights:findClosest", +"response": { +"$ref": "BuildingInsights" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"dataLayers": { +"methods": { +"get": { +"description": "Gets solar information for a region surrounding a location. Returns an error with code `NOT_FOUND` if the location is outside the coverage area.", +"flatPath": "v1/dataLayers:get", +"httpMethod": "GET", +"id": "solar.dataLayers.get", +"parameterOrder": [], +"parameters": { +"exactQualityRequired": { +"description": "Optional. Whether to require exact quality of the imagery. If set to false, the `required_quality` field is interpreted as the minimum required quality, such that HIGH quality imagery may be returned when `required_quality` is set to MEDIUM. If set to true, `required_quality` is interpreted as the exact required quality and only `MEDIUM` quality imagery is returned if `required_quality` is set to `MEDIUM`.", +"location": "query", +"type": "boolean" +}, +"experiments": { +"description": "Optional. Specifies the pre-GA experiments to enable.", +"enum": [ +"EXPERIMENT_UNSPECIFIED", +"EXPANDED_COVERAGE" +], +"enumDescriptions": [ +"No experiments are specified.", +"Expands the geographic region available for querying solar data." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"location.latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"location": "query", +"type": "number" +}, +"location.longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"location": "query", +"type": "number" +}, +"pixelSizeMeters": { +"description": "Optional. The minimum scale, in meters per pixel, of the data to return. Values of 0.1 (the default, if this field is not set explicitly), 0.25, 0.5, and 1.0 are supported. Imagery components whose normal resolution is less than `pixel_size_meters` will be returned at the resolution specified by `pixel_size_meters`; imagery components whose normal resolution is equal to or greater than `pixel_size_meters` will be returned at that normal resolution.", +"format": "float", +"location": "query", +"type": "number" +}, +"radiusMeters": { +"description": "Required. The radius, in meters, defining the region surrounding that centre point for which data should be returned. The limitations on this value are: * Any value up to 100m can always be specified. * Values over 100m can be specified, as long as `radius_meters` <= `pixel_size_meters * 1000`. * However, for values over 175m, the `DataLayerView` in the request must not include monthly flux or hourly shade.", +"format": "float", +"location": "query", +"type": "number" +}, +"requiredQuality": { +"description": "Optional. The minimum quality level allowed in the results. No result with lower quality than this will be returned. Not specifying this is equivalent to restricting to HIGH quality only.", +"enum": [ +"IMAGERY_QUALITY_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"BASE" +], +"enumDescriptions": [ +"No quality is known.", +"Solar data is derived from aerial imagery captured at low-altitude and processed at 0.1 m/pixel.", +"Solar data is derived from enhanced aerial imagery captured at high-altitude and processed at 0.25 m/pixel.", +"Solar data is derived from enhanced satellite imagery processed at 0.25 m/pixel.", +"Solar data is derived from enhanced satellite imagery processed at 0.25 m/pixel." +], +"location": "query", +"type": "string" +}, +"view": { +"description": "Optional. The desired subset of the data to return.", +"enum": [ +"DATA_LAYER_VIEW_UNSPECIFIED", +"DSM_LAYER", +"IMAGERY_LAYERS", +"IMAGERY_AND_ANNUAL_FLUX_LAYERS", +"IMAGERY_AND_ALL_FLUX_LAYERS", +"FULL_LAYERS" +], +"enumDescriptions": [ +"Equivalent to FULL.", +"Get the DSM only.", +"Get the DSM, RGB, and mask.", +"Get the DSM, RGB, mask, and annual flux.", +"Get the DSM, RGB, mask, annual flux, and monthly flux.", +"Get all data." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/dataLayers:get", +"response": { +"$ref": "DataLayers" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"geoTiff": { +"methods": { +"get": { +"description": "Returns an image by its ID.", +"flatPath": "v1/geoTiff:get", +"httpMethod": "GET", +"id": "solar.geoTiff.get", +"parameterOrder": [], +"parameters": { +"id": { +"description": "Required. The ID of the asset being requested.", +"location": "query", +"type": "string" +} +}, +"path": "v1/geoTiff:get", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20241211", +"rootUrl": "https://solar.googleapis.com/", +"schemas": { +"BuildingInsights": { +"description": "Response message for `Solar.FindClosestBuildingInsights`. Information about the location, dimensions, and solar potential of a building.", +"id": "BuildingInsights", +"properties": { +"administrativeArea": { +"description": "Administrative area 1 (e.g., in the US, the state) that contains this building. For example, in the US, the abbreviation might be \"MA\" or \"CA.\"", +"type": "string" +}, +"boundingBox": { +"$ref": "LatLngBox", +"description": "The bounding box of the building." +}, +"center": { +"$ref": "LatLng", +"description": "A point near the center of the building." +}, +"imageryDate": { +"$ref": "Date", +"description": "Date that the underlying imagery was acquired. This is approximate." +}, +"imageryProcessedDate": { +"$ref": "Date", +"description": "When processing was completed on this imagery." +}, +"imageryQuality": { +"description": "The quality of the imagery used to compute the data for this building.", +"enum": [ +"IMAGERY_QUALITY_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"BASE" +], +"enumDescriptions": [ +"No quality is known.", +"Solar data is derived from aerial imagery captured at low-altitude and processed at 0.1 m/pixel.", +"Solar data is derived from enhanced aerial imagery captured at high-altitude and processed at 0.25 m/pixel.", +"Solar data is derived from enhanced satellite imagery processed at 0.25 m/pixel.", +"Solar data is derived from enhanced satellite imagery processed at 0.25 m/pixel." +], +"type": "string" +}, +"name": { +"description": "The resource name for the building, of the format `buildings/{place_id}`.", +"type": "string" +}, +"postalCode": { +"description": "Postal code (e.g., US zip code) this building is contained by.", +"type": "string" +}, +"regionCode": { +"description": "Region code for the country (or region) this building is in.", +"type": "string" +}, +"solarPotential": { +"$ref": "SolarPotential", +"description": "Solar potential of the building." +}, +"statisticalArea": { +"description": "Statistical area (e.g., US census tract) this building is in.", +"type": "string" +} +}, +"type": "object" +}, +"CashPurchaseSavings": { +"description": "Cost and benefit of an outright purchase of a particular configuration of solar panels with a particular electricity usage.", +"id": "CashPurchaseSavings", +"properties": { +"outOfPocketCost": { +"$ref": "Money", +"description": "Initial cost before tax incentives: the amount that must be paid out-of-pocket. Contrast with `upfront_cost`, which is after tax incentives." +}, +"paybackYears": { +"description": "Number of years until payback occurs. A negative value means payback never occurs within the lifetime period.", +"format": "float", +"type": "number" +}, +"rebateValue": { +"$ref": "Money", +"description": "The value of all tax rebates." +}, +"savings": { +"$ref": "SavingsOverTime", +"description": "How much is saved (or not) over the lifetime period." +}, +"upfrontCost": { +"$ref": "Money", +"description": "Initial cost after tax incentives: it's the amount that must be paid during first year. Contrast with `out_of_pocket_cost`, which is before tax incentives." +} +}, +"type": "object" +}, +"DataLayers": { +"description": "Information about the solar potential of a region. The actual data are contained in a number of GeoTIFF files covering the requested region, for which this message contains URLs: Each string in the `DataLayers` message contains a URL from which the corresponding GeoTIFF can be fetched. These URLs are valid for a few hours after they've been generated. Most of the GeoTIFF files are at a resolution of 0.1m/pixel, but the monthly flux file is at 0.5m/pixel, and the hourly shade files are at 1m/pixel. If a `pixel_size_meters` value was specified in the `GetDataLayersRequest`, then the minimum resolution in the GeoTIFF files will be that value.", +"id": "DataLayers", +"properties": { +"annualFluxUrl": { +"description": "The URL for the annual flux map (annual sunlight on roofs) of the region. Values are kWh/kW/year. This is *unmasked flux*: flux is computed for every location, not just building rooftops. Invalid locations are stored as -9999: locations outside our coverage area will be invalid, and a few locations inside the coverage area, where we were unable to calculate flux, will also be invalid.", +"type": "string" +}, +"dsmUrl": { +"description": "The URL for an image of the DSM (Digital Surface Model) of the region. Values are in meters above EGM96 geoid (i.e., sea level). Invalid locations (where we don't have data) are stored as -9999.", +"type": "string" +}, +"hourlyShadeUrls": { +"description": "Twelve URLs for hourly shade, corresponding to January...December, in order. Each GeoTIFF will contain 24 bands, corresponding to the 24 hours of the day. Each pixel is a 32 bit integer, corresponding to the (up to) 31 days of that month; a 1 bit means that the corresponding location is able to see the sun at that day, of that hour, of that month. Invalid locations are stored as -9999 (since this is negative, it has bit 31 set, and no valid value could have bit 31 set as that would correspond to the 32nd day of the month). An example may be useful. If you want to know whether a point (at pixel location (x, y)) saw sun at 4pm on the 22nd of June you would: 1. fetch the sixth URL in this list (corresponding to June). 1. look up the 17th channel (corresponding to 4pm). 1. read the 32-bit value at (x, y). 1. read bit 21 of the value (corresponding to the 22nd of the month). 1. if that bit is a 1, then that spot saw the sun at 4pm 22 June. More formally: Given `month` (1-12), `day` (1...month max; February has 28 days) and `hour` (0-23), the shade/sun for that month/day/hour at a position `(x, y)` is the bit ``` (hourly_shade[month - 1])(x, y)[hour] & (1 << (day - 1)) ``` where `(x, y)` is spatial indexing, `[month - 1]` refers to fetching the `month - 1`st URL (indexing from zero), `[hour]` is indexing into the channels, and a final non-zero result means \"sunny\". There are no leap days, and DST doesn't exist (all days are 24 hours long; noon is always \"standard time\" noon).", +"items": { +"type": "string" +}, +"type": "array" +}, +"imageryDate": { +"$ref": "Date", +"description": "When the source imagery (from which all the other data are derived) in this region was taken. It is necessarily somewhat approximate, as the images may have been taken over more than one day." +}, +"imageryProcessedDate": { +"$ref": "Date", +"description": "When processing was completed on this imagery." +}, +"imageryQuality": { +"description": "The quality of the result's imagery.", +"enum": [ +"IMAGERY_QUALITY_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"BASE" +], +"enumDescriptions": [ +"No quality is known.", +"Solar data is derived from aerial imagery captured at low-altitude and processed at 0.1 m/pixel.", +"Solar data is derived from enhanced aerial imagery captured at high-altitude and processed at 0.25 m/pixel.", +"Solar data is derived from enhanced satellite imagery processed at 0.25 m/pixel.", +"Solar data is derived from enhanced satellite imagery processed at 0.25 m/pixel." +], +"type": "string" +}, +"maskUrl": { +"description": "The URL for the building mask image: one bit per pixel saying whether that pixel is considered to be part of a rooftop or not.", +"type": "string" +}, +"monthlyFluxUrl": { +"description": "The URL for the monthly flux map (sunlight on roofs, broken down by month) of the region. Values are kWh/kW/year. The GeoTIFF pointed to by this URL will contain twelve bands, corresponding to January...December, in order.", +"type": "string" +}, +"rgbUrl": { +"description": "The URL for an image of RGB data (aerial photo) of the region.", +"type": "string" +} +}, +"type": "object" +}, +"Date": { +"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", +"id": "Date", +"properties": { +"day": { +"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", +"format": "int32", +"type": "integer" +}, +"month": { +"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", +"format": "int32", +"type": "integer" +}, +"year": { +"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"FinancedPurchaseSavings": { +"description": "Cost and benefit of using a loan to buy a particular configuration of solar panels with a particular electricity usage.", +"id": "FinancedPurchaseSavings", +"properties": { +"annualLoanPayment": { +"$ref": "Money", +"description": "Annual loan payments." +}, +"loanInterestRate": { +"description": "The interest rate on loans assumed in this set of calculations.", +"format": "float", +"type": "number" +}, +"rebateValue": { +"$ref": "Money", +"description": "The value of all tax rebates (including Federal Investment Tax Credit (ITC))." +}, +"savings": { +"$ref": "SavingsOverTime", +"description": "How much is saved (or not) over the lifetime period." +} +}, +"type": "object" +}, +"FinancialAnalysis": { +"description": "Analysis of the cost and benefits of the optimum solar layout for a particular electric bill size.", +"id": "FinancialAnalysis", +"properties": { +"averageKwhPerMonth": { +"description": "How much electricity the house uses in an average month, based on the bill size and the local electricity rates.", +"format": "float", +"type": "number" +}, +"cashPurchaseSavings": { +"$ref": "CashPurchaseSavings", +"description": "Cost and benefit of buying the solar panels with cash." +}, +"defaultBill": { +"description": "Whether this is the bill size selected to be the default bill for the area this building is in. Exactly one `FinancialAnalysis` in `BuildingSolarPotential` should have `default_bill` set.", +"type": "boolean" +}, +"financedPurchaseSavings": { +"$ref": "FinancedPurchaseSavings", +"description": "Cost and benefit of buying the solar panels by financing the purchase." +}, +"financialDetails": { +"$ref": "FinancialDetails", +"description": "Financial information that applies regardless of the financing method used." +}, +"leasingSavings": { +"$ref": "LeasingSavings", +"description": "Cost and benefit of leasing the solar panels." +}, +"monthlyBill": { +"$ref": "Money", +"description": "The monthly electric bill this analysis assumes." +}, +"panelConfigIndex": { +"description": "Index in solar_panel_configs of the optimum solar layout for this bill size. This can be -1 indicating that there is no layout. In this case, the remaining submessages will be omitted.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"FinancialDetails": { +"description": "Details of a financial analysis. Some of these details are already stored at higher levels (e.g., out of pocket cost). Total money amounts are over a lifetime period defined by the panel_lifetime_years field in SolarPotential. Note: The out of pocket cost of purchasing the panels is given in the out_of_pocket_cost field in CashPurchaseSavings.", +"id": "FinancialDetails", +"properties": { +"costOfElectricityWithoutSolar": { +"$ref": "Money", +"description": "Total cost of electricity the user would have paid over the lifetime period if they didn't install solar." +}, +"federalIncentive": { +"$ref": "Money", +"description": "Amount of money available from federal incentives; this applies if the user buys (with or without a loan) the panels." +}, +"initialAcKwhPerYear": { +"description": "How many AC kWh we think the solar panels will generate in their first year.", +"format": "float", +"type": "number" +}, +"lifetimeSrecTotal": { +"$ref": "Money", +"description": "Amount of money the user will receive from Solar Renewable Energy Credits over the panel lifetime; this applies if the user buys (with or without a loan) the panels." +}, +"netMeteringAllowed": { +"description": "Whether net metering is allowed.", +"type": "boolean" +}, +"percentageExportedToGrid": { +"description": "The percentage (0-100) of solar electricity production we assumed was exported to the grid, based on the first quarter of production. This affects the calculations if net metering is not allowed.", +"format": "float", +"type": "number" +}, +"remainingLifetimeUtilityBill": { +"$ref": "Money", +"description": "Utility bill for electricity not produced by solar, for the lifetime of the panels." +}, +"solarPercentage": { +"description": "Percentage (0-100) of the user's power supplied by solar. Valid for the first year but approximately correct for future years.", +"format": "float", +"type": "number" +}, +"stateIncentive": { +"$ref": "Money", +"description": "Amount of money available from state incentives; this applies if the user buys (with or without a loan) the panels." +}, +"utilityIncentive": { +"$ref": "Money", +"description": "Amount of money available from utility incentives; this applies if the user buys (with or without a loan) the panels." +} +}, +"type": "object" +}, +"HttpBody": { +"description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", +"id": "HttpBody", +"properties": { +"contentType": { +"description": "The HTTP Content-Type header value specifying the content type of the body.", +"type": "string" +}, +"data": { +"description": "The HTTP request/response body as raw binary.", +"format": "byte", +"type": "string" +}, +"extensions": { +"description": "Application specific response metadata. Must be set in the first response for streaming APIs.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"LatLng": { +"description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.", +"id": "LatLng", +"properties": { +"latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"LatLngBox": { +"description": "A bounding box in lat/lng coordinates.", +"id": "LatLngBox", +"properties": { +"ne": { +"$ref": "LatLng", +"description": "The northeast corner of the box." +}, +"sw": { +"$ref": "LatLng", +"description": "The southwest corner of the box." +} +}, +"type": "object" +}, +"LeasingSavings": { +"description": "Cost and benefit of leasing a particular configuration of solar panels with a particular electricity usage.", +"id": "LeasingSavings", +"properties": { +"annualLeasingCost": { +"$ref": "Money", +"description": "Estimated annual leasing cost." +}, +"leasesAllowed": { +"description": "Whether leases are allowed in this juristiction (leases are not allowed in some states). If this field is false, then the values in this message should probably be ignored.", +"type": "boolean" +}, +"leasesSupported": { +"description": "Whether leases are supported in this juristiction by the financial calculation engine. If this field is false, then the values in this message should probably be ignored. This is independent of `leases_allowed`: in some areas leases are allowed, but under conditions that aren't handled by the financial models.", +"type": "boolean" +}, +"savings": { +"$ref": "SavingsOverTime", +"description": "How much is saved (or not) over the lifetime period." +} +}, +"type": "object" +}, +"Money": { +"description": "Represents an amount of money with its currency type.", +"id": "Money", +"properties": { +"currencyCode": { +"description": "The three-letter currency code defined in ISO 4217.", +"type": "string" +}, +"nanos": { +"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", +"format": "int32", +"type": "integer" +}, +"units": { +"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"RoofSegmentSizeAndSunshineStats": { +"description": "Information about the size and sunniness quantiles of a roof segment.", +"id": "RoofSegmentSizeAndSunshineStats", +"properties": { +"azimuthDegrees": { +"description": "Compass direction the roof segment is pointing in. 0 = North, 90 = East, 180 = South. For a \"flat\" roof segment (`pitch_degrees` very near 0), azimuth is not well defined, so for consistency, we define it arbitrarily to be 0 (North).", +"format": "float", +"type": "number" +}, +"boundingBox": { +"$ref": "LatLngBox", +"description": "The bounding box of the roof segment." +}, +"center": { +"$ref": "LatLng", +"description": "A point near the center of the roof segment." +}, +"pitchDegrees": { +"description": "Angle of the roof segment relative to the theoretical ground plane. 0 = parallel to the ground, 90 = perpendicular to the ground.", +"format": "float", +"type": "number" +}, +"planeHeightAtCenterMeters": { +"description": "The height of the roof segment plane, in meters above sea level, at the point designated by `center`. Together with the pitch, azimuth, and center location, this fully defines the roof segment plane.", +"format": "float", +"type": "number" +}, +"stats": { +"$ref": "SizeAndSunshineStats", +"description": "Total size and sunlight quantiles for the roof segment." +} +}, +"type": "object" +}, +"RoofSegmentSummary": { +"description": "Information about a roof segment on the building, with some number of panels placed on it.", +"id": "RoofSegmentSummary", +"properties": { +"azimuthDegrees": { +"description": "Compass direction the roof segment is pointing in. 0 = North, 90 = East, 180 = South. For a \"flat\" roof segment (`pitch_degrees` very near 0), azimuth is not well defined, so for consistency, we define it arbitrarily to be 0 (North).", +"format": "float", +"type": "number" +}, +"panelsCount": { +"description": "The total number of panels on this segment.", +"format": "int32", +"type": "integer" +}, +"pitchDegrees": { +"description": "Angle of the roof segment relative to the theoretical ground plane. 0 = parallel to the ground, 90 = perpendicular to the ground.", +"format": "float", +"type": "number" +}, +"segmentIndex": { +"description": "Index in roof_segment_stats of the corresponding `RoofSegmentSizeAndSunshineStats`.", +"format": "int32", +"type": "integer" +}, +"yearlyEnergyDcKwh": { +"description": "How much sunlight energy this part of the layout captures over the course of a year, in DC kWh, assuming the panels described above.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"SavingsOverTime": { +"description": "Financial information that's shared between different financing methods.", +"id": "SavingsOverTime", +"properties": { +"financiallyViable": { +"description": "Indicates whether this scenario is financially viable. Will be false for scenarios with poor financial viability (e.g., money-losing).", +"type": "boolean" +}, +"presentValueOfSavingsLifetime": { +"$ref": "Money", +"description": "Using the assumed discount rate, what is the present value of the cumulative lifetime savings?" +}, +"presentValueOfSavingsYear20": { +"$ref": "Money", +"description": "Using the assumed discount rate, what is the present value of the cumulative 20-year savings?" +}, +"savingsLifetime": { +"$ref": "Money", +"description": "Savings in the entire panel lifetime." +}, +"savingsYear1": { +"$ref": "Money", +"description": "Savings in the first year after panel installation." +}, +"savingsYear20": { +"$ref": "Money", +"description": "Savings in the first twenty years after panel installation." +} +}, +"type": "object" +}, +"SizeAndSunshineStats": { +"description": "Size and sunniness quantiles of a roof, or part of a roof.", +"id": "SizeAndSunshineStats", +"properties": { +"areaMeters2": { +"description": "The area of the roof or roof segment, in m^2. This is the roof area (accounting for tilt), not the ground footprint area.", +"format": "float", +"type": "number" +}, +"groundAreaMeters2": { +"description": "The ground footprint area covered by the roof or roof segment, in m^2.", +"format": "float", +"type": "number" +}, +"sunshineQuantiles": { +"description": "Quantiles of the pointwise sunniness across the area. If there are N values here, this represents the (N-1)-iles. For example, if there are 5 values, then they would be the quartiles (min, 25%, 50%, 75%, max). Values are in annual kWh/kW like max_sunshine_hours_per_year.", +"items": { +"format": "float", +"type": "number" +}, +"type": "array" +} +}, +"type": "object" +}, +"SolarPanel": { +"description": "SolarPanel describes the position, orientation, and production of a single solar panel. See the panel_height_meters, panel_width_meters, and panel_capacity_watts fields in SolarPotential for information on the parameters of the panel.", +"id": "SolarPanel", +"properties": { +"center": { +"$ref": "LatLng", +"description": "The centre of the panel." +}, +"orientation": { +"description": "The orientation of the panel.", +"enum": [ +"SOLAR_PANEL_ORIENTATION_UNSPECIFIED", +"LANDSCAPE", +"PORTRAIT" +], +"enumDescriptions": [ +"No panel orientation is known.", +"A `LANDSCAPE` panel has its long edge perpendicular to the azimuth direction of the roof segment that it is placed on.", +"A `PORTRAIT` panel has its long edge parallel to the azimuth direction of the roof segment that it is placed on." +], +"type": "string" +}, +"segmentIndex": { +"description": "Index in roof_segment_stats of the `RoofSegmentSizeAndSunshineStats` which corresponds to the roof segment that this panel is placed on.", +"format": "int32", +"type": "integer" +}, +"yearlyEnergyDcKwh": { +"description": "How much sunlight energy this layout captures over the course of a year, in DC kWh.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"SolarPanelConfig": { +"description": "SolarPanelConfig describes a particular placement of solar panels on the roof.", +"id": "SolarPanelConfig", +"properties": { +"panelsCount": { +"description": "Total number of panels. Note that this is redundant to (the sum of) the corresponding fields in roof_segment_summaries.", +"format": "int32", +"type": "integer" +}, +"roofSegmentSummaries": { +"description": "Information about the production of each roof segment that is carrying at least one panel in this layout. `roof_segment_summaries[i]` describes the i-th roof segment, including its size, expected production and orientation.", +"items": { +"$ref": "RoofSegmentSummary" +}, +"type": "array" +}, +"yearlyEnergyDcKwh": { +"description": "How much sunlight energy this layout captures over the course of a year, in DC kWh, assuming the panels described above.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"SolarPotential": { +"description": "Information about the solar potential of a building. A number of fields in this are defined in terms of \"panels\". The fields panel_capacity_watts, panel_height_meters, and panel_width_meters describe the parameters of the model of panel used in these calculations.", +"id": "SolarPotential", +"properties": { +"buildingStats": { +"$ref": "SizeAndSunshineStats", +"description": "Size and sunlight quantiles for the entire building, including parts of the roof that were not assigned to some roof segment. Because the orientations of these parts are not well characterised, the roof area estimate is unreliable, but the ground area estimate is reliable. It may be that a more reliable whole building roof area can be obtained by scaling the roof area from whole_roof_stats by the ratio of the ground areas of `building_stats` and `whole_roof_stats`." +}, +"carbonOffsetFactorKgPerMwh": { +"description": "Equivalent amount of CO2 produced per MWh of grid electricity. This is a measure of the carbon intensity of grid electricity displaced by solar electricity.", +"format": "float", +"type": "number" +}, +"financialAnalyses": { +"description": "A FinancialAnalysis gives the savings from going solar assuming a given monthly bill and a given electricity provider. They are in order of increasing order of monthly bill amount. This field will be empty for buildings in areas for which the Solar API does not have enough information to perform financial computations.", +"items": { +"$ref": "FinancialAnalysis" +}, +"type": "array" +}, +"maxArrayAreaMeters2": { +"description": "Size, in square meters, of the maximum array.", +"format": "float", +"type": "number" +}, +"maxArrayPanelsCount": { +"description": "Size of the maximum array - that is, the maximum number of panels that can fit on the roof.", +"format": "int32", +"type": "integer" +}, +"maxSunshineHoursPerYear": { +"description": "Maximum number of sunshine hours received per year, by any point on the roof. Sunshine hours are a measure of the total amount of insolation (energy) received per year. 1 sunshine hour = 1 kWh per kW (where kW refers to kW of capacity under Standard Testing Conditions).", +"format": "float", +"type": "number" +}, +"panelCapacityWatts": { +"description": "Capacity, in watts, of the panel used in the calculations.", +"format": "float", +"type": "number" +}, +"panelHeightMeters": { +"description": "Height, in meters in portrait orientation, of the panel used in the calculations.", +"format": "float", +"type": "number" +}, +"panelLifetimeYears": { +"description": "The expected lifetime, in years, of the solar panels. This is used in the financial calculations.", +"format": "int32", +"type": "integer" +}, +"panelWidthMeters": { +"description": "Width, in meters in portrait orientation, of the panel used in the calculations.", +"format": "float", +"type": "number" +}, +"roofSegmentStats": { +"description": "Size and sunlight quantiles for each roof segment.", +"items": { +"$ref": "RoofSegmentSizeAndSunshineStats" +}, +"type": "array" +}, +"solarPanelConfigs": { +"description": "Each SolarPanelConfig describes a different arrangement of solar panels on the roof. They are in order of increasing number of panels. The `SolarPanelConfig` with panels_count=N is based on the first N panels in the `solar_panels` list. This field is only populated if at least 4 panels can fit on a roof.", +"items": { +"$ref": "SolarPanelConfig" +}, +"type": "array" +}, +"solarPanels": { +"description": "Each SolarPanel describes a single solar panel. They are listed in the order that the panel layout algorithm placed this. This is usually, though not always, in decreasing order of annual energy production.", +"items": { +"$ref": "SolarPanel" +}, +"type": "array" +}, +"wholeRoofStats": { +"$ref": "SizeAndSunshineStats", +"description": "Total size and sunlight quantiles for the part of the roof that was assigned to some roof segment. Despite the name, this may not include the entire building. See building_stats." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Solar API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/texttospeech.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/texttospeech.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..788be18c1e5aebb2a528d4fa6e4bd3068c7eeb22 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/texttospeech.v1beta1.json @@ -0,0 +1,791 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://texttospeech.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Texttospeech", +"description": "Synthesizes natural-sounding speech by applying powerful neural network models.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/text-to-speech/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "texttospeech:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://texttospeech.mtls.googleapis.com/", +"name": "texttospeech", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"synthesizeLongAudio": { +"description": "Synthesizes long form text asynchronously.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}:synthesizeLongAudio", +"httpMethod": "POST", +"id": "texttospeech.projects.locations.synthesizeLongAudio", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The resource states of the request in the form of `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}:synthesizeLongAudio", +"request": { +"$ref": "SynthesizeLongAudioRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "texttospeech.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "texttospeech.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"text": { +"methods": { +"synthesize": { +"description": "Synthesizes speech synchronously: receive results after all text input has been processed.", +"flatPath": "v1beta1/text:synthesize", +"httpMethod": "POST", +"id": "texttospeech.text.synthesize", +"parameterOrder": [], +"parameters": {}, +"path": "v1beta1/text:synthesize", +"request": { +"$ref": "SynthesizeSpeechRequest" +}, +"response": { +"$ref": "SynthesizeSpeechResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"voices": { +"methods": { +"list": { +"description": "Returns a list of Voice supported for synthesis.", +"flatPath": "v1beta1/voices", +"httpMethod": "GET", +"id": "texttospeech.voices.list", +"parameterOrder": [], +"parameters": { +"languageCode": { +"description": "Optional. Recommended. [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. If not specified, the API will return all supported voices. If specified, the ListVoices call will only return voices that can be used to synthesize this language_code. For example, if you specify `\"en-NZ\"`, all `\"en-NZ\"` voices will be returned. If you specify `\"no\"`, both `\"no-\\*\"` (Norwegian) and `\"nb-\\*\"` (Norwegian Bokmal) voices will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/voices", +"response": { +"$ref": "ListVoicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20241216", +"rootUrl": "https://texttospeech.googleapis.com/", +"schemas": { +"AdvancedVoiceOptions": { +"description": "Used for advanced voice options.", +"id": "AdvancedVoiceOptions", +"properties": { +"lowLatencyJourneySynthesis": { +"description": "Only for Journey voices. If false, the synthesis will be context aware and have higher latency.", +"type": "boolean" +} +}, +"type": "object" +}, +"AudioConfig": { +"description": "Description of audio data to be synthesized.", +"id": "AudioConfig", +"properties": { +"audioEncoding": { +"description": "Required. The format of the audio byte stream.", +"enum": [ +"AUDIO_ENCODING_UNSPECIFIED", +"LINEAR16", +"MP3", +"MP3_64_KBPS", +"OGG_OPUS", +"MULAW", +"ALAW", +"PCM" +], +"enumDescriptions": [ +"Not specified. Will return result google.rpc.Code.INVALID_ARGUMENT.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM). Audio content returned as LINEAR16 also contains a WAV header.", +"MP3 audio at 32kbps.", +"MP3 at 64kbps.", +"Opus encoded audio wrapped in an ogg container. The result will be a file which can be played natively on Android, and in browsers (at least Chrome and Firefox). The quality of the encoding is considerably higher than MP3 while using approximately the same bitrate.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law. Audio content returned as MULAW also contains a WAV header.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/A-law. Audio content returned as ALAW also contains a WAV header.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM). Note that as opposed to LINEAR16, audio will not be wrapped in a WAV (or any other) header." +], +"type": "string" +}, +"effectsProfileId": { +"description": "Optional. Input only. An identifier which selects 'audio effects' profiles that are applied on (post synthesized) text to speech. Effects are applied on top of each other in the order they are given. See [audio profiles](https://cloud.google.com/text-to-speech/docs/audio-profiles) for current supported profile ids.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pitch": { +"description": "Optional. Input only. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 semitones from the original pitch. -20 means decrease 20 semitones from the original pitch.", +"format": "double", +"type": "number" +}, +"sampleRateHertz": { +"description": "Optional. The synthesis sample rate (in hertz) for this audio. When this is specified in SynthesizeSpeechRequest, if this is different from the voice's natural sample rate, then the synthesizer will honor this request by converting to the desired sample rate (which might result in worse audio quality), unless the specified sample rate is not supported for the encoding chosen, in which case it will fail the request and return google.rpc.Code.INVALID_ARGUMENT.", +"format": "int32", +"type": "integer" +}, +"speakingRate": { +"description": "Optional. Input only. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other values < 0.25 or > 4.0 will return an error.", +"format": "double", +"type": "number" +}, +"volumeGainDb": { +"description": "Optional. Input only. Volume gain (in dB) of the normal native volume supported by the specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. Strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"CustomPronunciationParams": { +"description": "Pronunciation customization for a phrase.", +"id": "CustomPronunciationParams", +"properties": { +"phoneticEncoding": { +"description": "The phonetic encoding of the phrase.", +"enum": [ +"PHONETIC_ENCODING_UNSPECIFIED", +"PHONETIC_ENCODING_IPA", +"PHONETIC_ENCODING_X_SAMPA" +], +"enumDescriptions": [ +"Not specified.", +"IPA. (e.g. apple -> \u02c8\u00e6p\u0259l ) https://en.wikipedia.org/wiki/International_Phonetic_Alphabet", +"X-SAMPA (e.g. apple -> \"{p@l\" ) https://en.wikipedia.org/wiki/X-SAMPA" +], +"type": "string" +}, +"phrase": { +"description": "The phrase to which the customization will be applied. The phrase can be multiple words (in the case of proper nouns etc), but should not span to a whole sentence.", +"type": "string" +}, +"pronunciation": { +"description": "The pronunciation of the phrase. This must be in the phonetic encoding specified above.", +"type": "string" +} +}, +"type": "object" +}, +"CustomPronunciations": { +"description": "A collection of pronunciation customizations.", +"id": "CustomPronunciations", +"properties": { +"pronunciations": { +"description": "The pronunciation customizations to be applied.", +"items": { +"$ref": "CustomPronunciationParams" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomVoiceParams": { +"description": "Description of the custom voice to be synthesized.", +"id": "CustomVoiceParams", +"properties": { +"model": { +"description": "Required. The name of the AutoML model that synthesizes the custom voice.", +"type": "string" +}, +"reportedUsage": { +"deprecated": true, +"description": "Optional. Deprecated. The usage of the synthesized audio to be reported.", +"enum": [ +"REPORTED_USAGE_UNSPECIFIED", +"REALTIME", +"OFFLINE" +], +"enumDescriptions": [ +"Request with reported usage unspecified will be rejected.", +"For scenarios where the synthesized audio is not downloadable and can only be used once. For example, real-time request in IVR system.", +"For scenarios where the synthesized audio is downloadable and can be reused. For example, the synthesized audio is downloaded, stored in customer service system and played repeatedly." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudTexttospeechV1beta1SynthesizeLongAudioMetadata": { +"description": "Metadata for response returned by the `SynthesizeLongAudio` method.", +"id": "GoogleCloudTexttospeechV1beta1SynthesizeLongAudioMetadata", +"properties": { +"lastUpdateTime": { +"deprecated": true, +"description": "Deprecated. Do not use.", +"format": "google-datetime", +"type": "string" +}, +"progressPercentage": { +"description": "The progress of the most recent processing update in percentage, ie. 70.0%.", +"format": "double", +"type": "number" +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVoicesResponse": { +"description": "The message returned to the client by the `ListVoices` method.", +"id": "ListVoicesResponse", +"properties": { +"voices": { +"description": "The list of voices.", +"items": { +"$ref": "Voice" +}, +"type": "array" +} +}, +"type": "object" +}, +"MultiSpeakerMarkup": { +"description": "A collection of turns for multi-speaker synthesis.", +"id": "MultiSpeakerMarkup", +"properties": { +"turns": { +"description": "Required. Speaker turns.", +"items": { +"$ref": "Turn" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"SynthesisInput": { +"description": "Contains text input to be synthesized. Either `text` or `ssml` must be supplied. Supplying both or neither returns google.rpc.Code.INVALID_ARGUMENT. The input size is limited to 5000 bytes.", +"id": "SynthesisInput", +"properties": { +"customPronunciations": { +"$ref": "CustomPronunciations", +"description": "Optional. The pronunciation customizations to be applied to the input. If this is set, the input will be synthesized using the given pronunciation customizations. The initial support will be for EFIGS (English, French, Italian, German, Spanish) languages, as provided in VoiceSelectionParams. Journey and Instant Clone voices are not supported yet. In order to customize the pronunciation of a phrase, there must be an exact match of the phrase in the input types. If using SSML, the phrase must not be inside a phoneme tag (entirely or partially)." +}, +"multiSpeakerMarkup": { +"$ref": "MultiSpeakerMarkup", +"description": "The multi-speaker input to be synthesized. Only applicable for multi-speaker synthesis." +}, +"ssml": { +"description": "The SSML document to be synthesized. The SSML document must be valid and well-formed. Otherwise the RPC will fail and return google.rpc.Code.INVALID_ARGUMENT. For more information, see [SSML](https://cloud.google.com/text-to-speech/docs/ssml).", +"type": "string" +}, +"text": { +"description": "The raw text to be synthesized.", +"type": "string" +} +}, +"type": "object" +}, +"SynthesizeLongAudioMetadata": { +"description": "Metadata for response returned by the `SynthesizeLongAudio` method.", +"id": "SynthesizeLongAudioMetadata", +"properties": { +"lastUpdateTime": { +"deprecated": true, +"description": "Deprecated. Do not use.", +"format": "google-datetime", +"type": "string" +}, +"progressPercentage": { +"description": "The progress of the most recent processing update in percentage, ie. 70.0%.", +"format": "double", +"type": "number" +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"SynthesizeLongAudioRequest": { +"description": "The top-level message sent by the client for the `SynthesizeLongAudio` method.", +"id": "SynthesizeLongAudioRequest", +"properties": { +"audioConfig": { +"$ref": "AudioConfig", +"description": "Required. The configuration of the synthesized audio." +}, +"input": { +"$ref": "SynthesisInput", +"description": "Required. The Synthesizer requires either plain text or SSML as input." +}, +"outputGcsUri": { +"description": "Required. Specifies a Cloud Storage URI for the synthesis results. Must be specified in the format: `gs://bucket_name/object_name`, and the bucket must already exist.", +"type": "string" +}, +"voice": { +"$ref": "VoiceSelectionParams", +"description": "Required. The desired voice of the synthesized audio." +} +}, +"type": "object" +}, +"SynthesizeSpeechRequest": { +"description": "The top-level message sent by the client for the `SynthesizeSpeech` method.", +"id": "SynthesizeSpeechRequest", +"properties": { +"advancedVoiceOptions": { +"$ref": "AdvancedVoiceOptions", +"description": "Advanced voice options." +}, +"audioConfig": { +"$ref": "AudioConfig", +"description": "Required. The configuration of the synthesized audio." +}, +"enableTimePointing": { +"description": "Whether and what timepoints are returned in the response.", +"items": { +"enum": [ +"TIMEPOINT_TYPE_UNSPECIFIED", +"SSML_MARK" +], +"enumDescriptions": [ +"Not specified. No timepoint information will be returned.", +"Timepoint information of `` tags in SSML input will be returned." +], +"type": "string" +}, +"type": "array" +}, +"input": { +"$ref": "SynthesisInput", +"description": "Required. The Synthesizer requires either plain text or SSML as input." +}, +"voice": { +"$ref": "VoiceSelectionParams", +"description": "Required. The desired voice of the synthesized audio." +} +}, +"type": "object" +}, +"SynthesizeSpeechResponse": { +"description": "The message returned to the client by the `SynthesizeSpeech` method.", +"id": "SynthesizeSpeechResponse", +"properties": { +"audioConfig": { +"$ref": "AudioConfig", +"description": "The audio metadata of `audio_content`." +}, +"audioContent": { +"description": "The audio data bytes encoded as specified in the request, including the header for encodings that are wrapped in containers (e.g. MP3, OGG_OPUS). For LINEAR16 audio, we include the WAV header. Note: as with all bytes fields, protobuffers use a pure binary representation, whereas JSON representations use base64.", +"format": "byte", +"type": "string" +}, +"timepoints": { +"description": "A link between a position in the original request input and a corresponding time in the output audio. It's only supported via `` of SSML input.", +"items": { +"$ref": "Timepoint" +}, +"type": "array" +} +}, +"type": "object" +}, +"Timepoint": { +"description": "This contains a mapping between a certain point in the input text and a corresponding time in the output audio.", +"id": "Timepoint", +"properties": { +"markName": { +"description": "Timepoint name as received from the client within `` tag.", +"type": "string" +}, +"timeSeconds": { +"description": "Time offset in seconds from the start of the synthesized audio.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Turn": { +"description": "A Multi-speaker turn.", +"id": "Turn", +"properties": { +"speaker": { +"description": "Required. The speaker of the turn, for example, 'O' or 'Q'. Please refer to documentation for available speakers.", +"type": "string" +}, +"text": { +"description": "Required. The text to speak.", +"type": "string" +} +}, +"type": "object" +}, +"Voice": { +"description": "Description of a voice supported by the TTS service.", +"id": "Voice", +"properties": { +"languageCodes": { +"description": "The languages that this voice supports, expressed as [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tags (e.g. \"en-US\", \"es-419\", \"cmn-tw\").", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of this voice. Each distinct voice has a unique name.", +"type": "string" +}, +"naturalSampleRateHertz": { +"description": "The natural sample rate (in hertz) for this voice.", +"format": "int32", +"type": "integer" +}, +"ssmlGender": { +"description": "The gender of this voice.", +"enum": [ +"SSML_VOICE_GENDER_UNSPECIFIED", +"MALE", +"FEMALE", +"NEUTRAL" +], +"enumDescriptions": [ +"An unspecified gender. In VoiceSelectionParams, this means that the client doesn't care which gender the selected voice will have. In the Voice field of ListVoicesResponse, this may mean that the voice doesn't fit any of the other categories in this enum, or that the gender of the voice isn't known.", +"A male voice.", +"A female voice.", +"A gender-neutral voice. This voice is not yet supported." +], +"type": "string" +} +}, +"type": "object" +}, +"VoiceCloneParams": { +"description": "The configuration of Voice Clone feature.", +"id": "VoiceCloneParams", +"properties": { +"voiceCloningKey": { +"description": "Required. Created by GenerateVoiceCloningKey.", +"type": "string" +} +}, +"type": "object" +}, +"VoiceSelectionParams": { +"description": "Description of which voice to use for a synthesis request.", +"id": "VoiceSelectionParams", +"properties": { +"customVoice": { +"$ref": "CustomVoiceParams", +"description": "The configuration for a custom voice. If [CustomVoiceParams.model] is set, the service will choose the custom voice matching the specified configuration." +}, +"languageCode": { +"description": "Required. The language (and potentially also the region) of the voice expressed as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag, e.g. \"en-US\". This should not include a script tag (e.g. use \"cmn-cn\" rather than \"cmn-Hant-cn\"), because the script will be inferred from the input provided in the SynthesisInput. The TTS service will use this parameter to help choose an appropriate voice. Note that the TTS service may choose a voice with a slightly different language code than the one selected; it may substitute a different region (e.g. using en-US rather than en-CA if there isn't a Canadian voice available), or even a different language, e.g. using \"nb\" (Norwegian Bokmal) instead of \"no\" (Norwegian)\".", +"type": "string" +}, +"name": { +"description": "The name of the voice. If both the name and the gender are not set, the service will choose a voice based on the other parameters such as language_code.", +"type": "string" +}, +"ssmlGender": { +"description": "The preferred gender of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and name. Note that this is only a preference, not requirement; if a voice of the appropriate gender is not available, the synthesizer should substitute a voice with a different gender rather than failing the request.", +"enum": [ +"SSML_VOICE_GENDER_UNSPECIFIED", +"MALE", +"FEMALE", +"NEUTRAL" +], +"enumDescriptions": [ +"An unspecified gender. In VoiceSelectionParams, this means that the client doesn't care which gender the selected voice will have. In the Voice field of ListVoicesResponse, this may mean that the voice doesn't fit any of the other categories in this enum, or that the gender of the voice isn't known.", +"A male voice.", +"A female voice.", +"A gender-neutral voice. This voice is not yet supported." +], +"type": "string" +}, +"voiceClone": { +"$ref": "VoiceCloneParams", +"description": "Optional. The configuration for a voice clone. If [VoiceCloneParams.voice_clone_key] is set, the service will choose the voice clone matching the specified configuration." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Text-to-Speech API", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/versionhistory.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/versionhistory.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..2ba8fbda1ac64365afeb392110c16eedf947256f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/versionhistory.v1.json @@ -0,0 +1,509 @@ +{ +"basePath": "", +"baseUrl": "https://versionhistory.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Version History", +"description": "Version History API - Prod", +"discoveryVersion": "v1", +"documentationLink": "https://developers.chrome.com/versionhistory", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "versionhistory:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://versionhistory.mtls.googleapis.com/", +"name": "versionhistory", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"platforms": { +"methods": { +"list": { +"description": "Returns list of platforms that are available for a given product. The resource \"product\" has no resource name in its name.", +"flatPath": "v1/{v1Id}/platforms", +"httpMethod": "GET", +"id": "versionhistory.platforms.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Optional limit on the number of channels to include in the response. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListChannels` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The product, which owns this collection of platforms. Format: {product}", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/platforms", +"response": { +"$ref": "ListPlatformsResponse" +} +} +}, +"resources": { +"channels": { +"methods": { +"list": { +"description": "Returns list of channels that are available for a given platform.", +"flatPath": "v1/{v1Id}/platforms/{platformsId}/channels", +"httpMethod": "GET", +"id": "versionhistory.platforms.channels.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Optional limit on the number of channels to include in the response. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListChannels` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The platform, which owns this collection of channels. Format: {product}/platforms/{platform}", +"location": "path", +"pattern": "^[^/]+/platforms/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/channels", +"response": { +"$ref": "ListChannelsResponse" +} +} +}, +"resources": { +"versions": { +"methods": { +"list": { +"description": "Returns list of version for the given platform/channel.", +"flatPath": "v1/{v1Id}/platforms/{platformsId}/channels/{channelsId}/versions", +"httpMethod": "GET", +"id": "versionhistory.platforms.channels.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter string. Format is a comma separated list of All comma separated filter clauses are conjoined with a logical \"and\". Valid field_names are \"version\", \"name\", \"platform\", and \"channel\". Valid operators are \"<\", \"<=\", \"=\", \">=\", and \">\". Channel comparison is done by distance from stable. Ex) stable < beta, beta < dev, canary < canary_asan. Version comparison is done numerically. If version is not entirely written, the version will be appended with 0 in missing fields. Ex) version > 80 becoms version > 80.0.0.0 Name and platform are filtered by string comparison. Ex) \"...?filter=channel<=beta, version >= 80 Ex) \"...?filter=version > 80, version < 81", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Ordering string. Valid order_by strings are \"version\", \"name\", \"platform\", and \"channel\". Optionally, you can append \" desc\" or \" asc\" to specify the sorting order. Multiple order_by strings can be used in a comma separated list. Ordering by channel will sort by distance from the stable channel (not alphabetically). A list of channels sorted in this order is: stable, beta, dev, canary, and canary_asan. Sorting by name may cause unexpected behaviour as it is a naive string sort. For example, 1.0.0.8 will be before 1.0.0.10 in descending order. If order_by is not specified the response will be sorted by version in descending order. Ex) \"...?order_by=version asc\" Ex) \"...?order_by=platform desc, channel, version\"", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Optional limit on the number of versions to include in the response. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListVersions` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The channel, which owns this collection of versions. Format: {product}/platforms/{platform}/channels/{channel}", +"location": "path", +"pattern": "^[^/]+/platforms/[^/]+/channels/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/versions", +"response": { +"$ref": "ListVersionsResponse" +} +} +}, +"resources": { +"releases": { +"methods": { +"list": { +"description": "Returns list of releases of the given version.", +"flatPath": "v1/{v1Id}/platforms/{platformsId}/channels/{channelsId}/versions/{versionsId}/releases", +"httpMethod": "GET", +"id": "versionhistory.platforms.channels.versions.releases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter string. Format is a comma separated list of All comma separated filter clauses are conjoined with a logical \"and\". Valid field_names are \"version\", \"name\", \"platform\", \"channel\", \"fraction\" \"starttime\", and \"endtime\". Valid operators are \"<\", \"<=\", \"=\", \">=\", and \">\". Channel comparison is done by distance from stable. must be a valid channel when filtering by channel. Ex) stable < beta, beta < dev, canary < canary_asan. Version comparison is done numerically. Ex) 1.0.0.8 < 1.0.0.10. If version is not entirely written, the version will be appended with 0 for the missing fields. Ex) version > 80 becoms version > 80.0.0.0 When filtering by starttime or endtime, string must be in RFC 3339 date string format. Name and platform are filtered by string comparison. Ex) \"...?filter=channel<=beta, version >= 80 Ex) \"...?filter=version > 80, version < 81 Ex) \"...?filter=starttime>2020-01-01T00:00:00Z", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Ordering string. Valid order_by strings are \"version\", \"name\", \"starttime\", \"endtime\", \"platform\", \"channel\", and \"fraction\". Optionally, you can append \"desc\" or \"asc\" to specify the sorting order. Multiple order_by strings can be used in a comma separated list. Ordering by channel will sort by distance from the stable channel (not alphabetically). A list of channels sorted in this order is: stable, beta, dev, canary, and canary_asan. Sorting by name may cause unexpected behaviour as it is a naive string sort. For example, 1.0.0.8 will be before 1.0.0.10 in descending order. If order_by is not specified the response will be sorted by starttime in descending order. Ex) \"...?order_by=starttime asc\" Ex) \"...?order_by=platform desc, channel, startime desc\"", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Optional limit on the number of releases to include in the response. If unspecified, the server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `ListReleases` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The version, which owns this collection of releases. Format: {product}/platforms/{platform}/channels/{channel}/versions/{version}", +"location": "path", +"pattern": "^[^/]+/platforms/[^/]+/channels/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/releases", +"response": { +"$ref": "ListReleasesResponse" +} +} +} +} +} +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://versionhistory.googleapis.com/", +"schemas": { +"Channel": { +"description": "Each Channel is owned by a Platform and owns a collection of versions. Possible Channels are listed in the Channel enum below. Not all Channels are available for every Platform (e.g. CANARY does not exist for LINUX).", +"id": "Channel", +"properties": { +"channelType": { +"description": "Type of channel.", +"enum": [ +"CHANNEL_TYPE_UNSPECIFIED", +"STABLE", +"BETA", +"DEV", +"CANARY", +"CANARY_ASAN", +"ALL", +"EXTENDED", +"LTS", +"LTC" +], +"enumDescriptions": [ +"", +"The Stable channel.", +"The Beta channel.", +"The Dev channel.", +"The Canary channel.", +"The Canary channel for Chrome, with DCHECK/ASAN enabled.", +"", +"The Extended Stable channel for Chrome.", +"The Long-term support channel for ChromeOS.", +"The Long-term support candidate channel for ChromeOS." +], +"type": "string" +}, +"name": { +"description": "Channel name. Format is \"{product}/platforms/{platform}/channels/{channel}\"", +"type": "string" +} +}, +"type": "object" +}, +"Interval": { +"description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", +"id": "Interval", +"properties": { +"endTime": { +"description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ListChannelsResponse": { +"description": "Response message for ListChannels.", +"id": "ListChannelsResponse", +"properties": { +"channels": { +"description": "The list of channels.", +"items": { +"$ref": "Channel" +}, +"type": "array" +}, +"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" +} +}, +"type": "object" +}, +"ListPlatformsResponse": { +"description": "Response message for ListPlatforms.", +"id": "ListPlatformsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"platforms": { +"description": "The list of platforms.", +"items": { +"$ref": "Platform" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListReleasesResponse": { +"description": "Response message for ListReleases.", +"id": "ListReleasesResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"releases": { +"description": "The list of releases.", +"items": { +"$ref": "Release" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVersionsResponse": { +"description": "Response message for ListVersions.", +"id": "ListVersionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"versions": { +"description": "The list of versions.", +"items": { +"$ref": "Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"Platform": { +"description": "Each Platform is owned by a Product and owns a collection of channels. Available platforms are listed in Platform enum below. Not all Channels are available for every Platform (e.g. CANARY does not exist for LINUX).", +"id": "Platform", +"properties": { +"name": { +"description": "Platform name. Format is \"{product}/platforms/{platform}\"", +"type": "string" +}, +"platformType": { +"description": "Type of platform.", +"enum": [ +"PLATFORM_TYPE_UNSPECIFIED", +"WIN", +"WIN64", +"MAC", +"LINUX", +"ANDROID", +"WEBVIEW", +"IOS", +"ALL", +"MAC_ARM64", +"LACROS", +"LACROS_ARM32", +"CHROMEOS", +"LACROS_ARM64", +"FUCHSIA", +"WIN_ARM64" +], +"enumDescriptions": [ +"", +"Chrome Desktop for Windows (32-bit).", +"Chrome Desktop for Windows (x86_64).", +"Chrome Desktop for macOS (x86_64).", +"Chrome Desktop for Linux.", +"Chrome for Android.", +"WebView for Android.", +"Chrome for iOS.", +"", +"Chrome for macOS (ARM64).", +"ChromeOS Lacros (x86_64).", +"ChromeOS Lacros (ARM).", +"ChromeOS.", +"ChromeOS Lacros (ARM64).", +"Chrome for Fuchsia.", +"Chrome Desktop for Windows (ARM64)." +], +"type": "string" +} +}, +"type": "object" +}, +"Release": { +"description": "A Release is owned by a Version. A Release contains information about the release(s) of its parent version. This includes when the release began and ended, as well as what percentage it was released at. If the version is released again, or if the serving percentage changes, it will create another release under the version.", +"id": "Release", +"properties": { +"fraction": { +"description": "Rollout fraction. This fraction indicates the fraction of people that should receive this version in this release. If the fraction is not specified in ReleaseManager, the API will assume fraction is 1.", +"format": "double", +"type": "number" +}, +"fractionGroup": { +"description": "Rollout fraction group. Only fractions with the same fraction_group are statistically comparable: there may be non-fractional differences between different fraction groups.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Release name. Format is \"{product}/platforms/{platform}/channels/{channel}/versions/{version}/releases/{release}\"", +"type": "string" +}, +"pinnable": { +"description": "Whether or not the release was available for version pinning.", +"type": "boolean" +}, +"serving": { +"$ref": "Interval", +"description": "Timestamp interval of when the release was live. If end_time is unspecified, the release is currently live." +}, +"version": { +"description": "String containing just the version number. e.g. \"84.0.4147.38\"", +"type": "string" +} +}, +"type": "object" +}, +"Version": { +"description": "Each Version is owned by a Channel. A Version only displays the Version number (e.g. 84.0.4147.38). A Version owns a collection of releases.", +"id": "Version", +"properties": { +"name": { +"description": "Version name. Format is \"{product}/platforms/{platform}/channels/{channel}/versions/{version}\" e.g. \"chrome/platforms/win/channels/beta/versions/84.0.4147.38\"", +"type": "string" +}, +"version": { +"description": "String containing just the version number. e.g. \"84.0.4147.38\"", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "versionhistory.googleapis.com API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vision.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vision.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..5f29da0f7aa8f5f5f69c8fd5d8a842a7cf9cedff --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vision.v1.json @@ -0,0 +1,9410 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +}, +"https://www.googleapis.com/auth/cloud-vision": { +"description": "Apply machine learning models to understand and label images" +} +} +} +}, +"basePath": "", +"baseUrl": "https://vision.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Vision", +"description": "Integrates Google Vision features, including image labeling, face, logo, and landmark detection, optical character recognition (OCR), and detection of explicit content, into applications.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/vision/", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "vision:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://vision.mtls.googleapis.com/", +"name": "vision", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"files": { +"methods": { +"annotate": { +"description": "Service that performs image detection and annotation for a batch of files. Now only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. This service will extract at most 5 (customers can specify which 5 in AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each file provided and perform detection and annotation for each image extracted.", +"flatPath": "v1/files:annotate", +"httpMethod": "POST", +"id": "vision.files.annotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1/files:annotate", +"request": { +"$ref": "BatchAnnotateFilesRequest" +}, +"response": { +"$ref": "BatchAnnotateFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"asyncBatchAnnotate": { +"description": "Run asynchronous image detection and annotation for a list of generic files, such as PDF files, which may contain multiple pages and multiple images per page. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).", +"flatPath": "v1/files:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.files.asyncBatchAnnotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1/files:asyncBatchAnnotate", +"request": { +"$ref": "AsyncBatchAnnotateFilesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +}, +"images": { +"methods": { +"annotate": { +"description": "Run image detection and annotation for a batch of images.", +"flatPath": "v1/images:annotate", +"httpMethod": "POST", +"id": "vision.images.annotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1/images:annotate", +"request": { +"$ref": "BatchAnnotateImagesRequest" +}, +"response": { +"$ref": "BatchAnnotateImagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"asyncBatchAnnotate": { +"description": "Run asynchronous image detection and annotation for a list of images. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). This service will write image annotation outputs to json files in customer GCS bucket, each json file containing BatchAnnotateImagesResponse proto.", +"flatPath": "v1/images:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.images.asyncBatchAnnotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1/images:asyncBatchAnnotate", +"request": { +"$ref": "AsyncBatchAnnotateImagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +}, +"locations": { +"resources": { +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "vision.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +} +} +}, +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "vision.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "vision.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/operations/{operationsId}", +"httpMethod": "GET", +"id": "vision.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/operations", +"httpMethod": "GET", +"id": "vision.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^operations$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +}, +"projects": { +"resources": { +"files": { +"methods": { +"annotate": { +"description": "Service that performs image detection and annotation for a batch of files. Now only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. This service will extract at most 5 (customers can specify which 5 in AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each file provided and perform detection and annotation for each image extracted.", +"flatPath": "v1/projects/{projectsId}/files:annotate", +"httpMethod": "POST", +"id": "vision.projects.files.annotate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/files:annotate", +"request": { +"$ref": "BatchAnnotateFilesRequest" +}, +"response": { +"$ref": "BatchAnnotateFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"asyncBatchAnnotate": { +"description": "Run asynchronous image detection and annotation for a list of generic files, such as PDF files, which may contain multiple pages and multiple images per page. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).", +"flatPath": "v1/projects/{projectsId}/files:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.projects.files.asyncBatchAnnotate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/files:asyncBatchAnnotate", +"request": { +"$ref": "AsyncBatchAnnotateFilesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +}, +"images": { +"methods": { +"annotate": { +"description": "Run image detection and annotation for a batch of images.", +"flatPath": "v1/projects/{projectsId}/images:annotate", +"httpMethod": "POST", +"id": "vision.projects.images.annotate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/images:annotate", +"request": { +"$ref": "BatchAnnotateImagesRequest" +}, +"response": { +"$ref": "BatchAnnotateImagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"asyncBatchAnnotate": { +"description": "Run asynchronous image detection and annotation for a list of images. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). This service will write image annotation outputs to json files in customer GCS bucket, each json file containing BatchAnnotateImagesResponse proto.", +"flatPath": "v1/projects/{projectsId}/images:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.projects.images.asyncBatchAnnotate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/images:asyncBatchAnnotate", +"request": { +"$ref": "AsyncBatchAnnotateImagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +}, +"locations": { +"resources": { +"files": { +"methods": { +"annotate": { +"description": "Service that performs image detection and annotation for a batch of files. Now only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. This service will extract at most 5 (customers can specify which 5 in AnnotateFileRequest.pages) frames (gif) or pages (pdf or tiff) from each file provided and perform detection and annotation for each image extracted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/files:annotate", +"httpMethod": "POST", +"id": "vision.projects.locations.files.annotate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/files:annotate", +"request": { +"$ref": "BatchAnnotateFilesRequest" +}, +"response": { +"$ref": "BatchAnnotateFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"asyncBatchAnnotate": { +"description": "Run asynchronous image detection and annotation for a list of generic files, such as PDF files, which may contain multiple pages and multiple images per page. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateFilesResponse` (results).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/files:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.projects.locations.files.asyncBatchAnnotate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/files:asyncBatchAnnotate", +"request": { +"$ref": "AsyncBatchAnnotateFilesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +}, +"images": { +"methods": { +"annotate": { +"description": "Run image detection and annotation for a batch of images.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/images:annotate", +"httpMethod": "POST", +"id": "vision.projects.locations.images.annotate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/images:annotate", +"request": { +"$ref": "BatchAnnotateImagesRequest" +}, +"response": { +"$ref": "BatchAnnotateImagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"asyncBatchAnnotate": { +"description": "Run asynchronous image detection and annotation for a list of images. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains `AsyncBatchAnnotateImagesResponse` (results). This service will write image annotation outputs to json files in customer GCS bucket, each json file containing BatchAnnotateImagesResponse proto.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/images:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.projects.locations.images.asyncBatchAnnotate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/images:asyncBatchAnnotate", +"request": { +"$ref": "AsyncBatchAnnotateImagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "vision.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +}, +"productSets": { +"methods": { +"addProduct": { +"description": "Adds a Product to the specified ProductSet. If the Product is already present, no change is made. One Product can be added to at most 100 ProductSets. Possible errors: * Returns NOT_FOUND if the Product or the ProductSet doesn't exist.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}:addProduct", +"httpMethod": "POST", +"id": "vision.projects.locations.productSets.addProduct", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name for the ProductSet to modify. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:addProduct", +"request": { +"$ref": "AddProductToProductSetRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"create": { +"description": "Creates and returns a new ProductSet resource. Possible errors: * Returns INVALID_ARGUMENT if display_name is missing, or is longer than 4096 characters.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets", +"httpMethod": "POST", +"id": "vision.projects.locations.productSets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project in which the ProductSet should be created. Format is `projects/PROJECT_ID/locations/LOC_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"productSetId": { +"description": "A user-supplied resource id for this ProductSet. If set, the server will attempt to use this value as the resource id. If it is already in use, an error is returned with code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character `/`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/productSets", +"request": { +"$ref": "ProductSet" +}, +"response": { +"$ref": "ProductSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"delete": { +"description": "Permanently deletes a ProductSet. Products and ReferenceImages in the ProductSet are not deleted. The actual image files are not deleted from Google Cloud Storage.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}", +"httpMethod": "DELETE", +"id": "vision.projects.locations.productSets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the ProductSet to delete. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"get": { +"description": "Gets information associated with a ProductSet. Possible errors: * Returns NOT_FOUND if the ProductSet does not exist.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}", +"httpMethod": "GET", +"id": "vision.projects.locations.productSets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the ProductSet to get. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ProductSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"import": { +"description": "Asynchronous API that imports a list of reference images to specified product sets based on a list of image information. The google.longrunning.Operation API can be used to keep track of the progress and results of the request. `Operation.metadata` contains `BatchOperationMetadata`. (progress) `Operation.response` contains `ImportProductSetsResponse`. (results) The input source of this method is a csv file on Google Cloud Storage. For the format of the csv file please see ImportProductSetsGcsSource.csv_file_uri.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets:import", +"httpMethod": "POST", +"id": "vision.projects.locations.productSets.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project in which the ProductSets should be imported. Format is `projects/PROJECT_ID/locations/LOC_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/productSets:import", +"request": { +"$ref": "ImportProductSetsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"list": { +"description": "Lists ProductSets in an unspecified order. Possible errors: * Returns INVALID_ARGUMENT if page_size is greater than 100, or less than 1.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets", +"httpMethod": "GET", +"id": "vision.projects.locations.productSets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return. Default 10, maximum 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project from which ProductSets should be listed. Format is `projects/PROJECT_ID/locations/LOC_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/productSets", +"response": { +"$ref": "ListProductSetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"patch": { +"description": "Makes changes to a ProductSet resource. Only display_name can be updated currently. Possible errors: * Returns NOT_FOUND if the ProductSet does not exist. * Returns INVALID_ARGUMENT if display_name is present in update_mask but missing from the request or longer than 4096 characters.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}", +"httpMethod": "PATCH", +"id": "vision.projects.locations.productSets.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the ProductSet. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`. This field is ignored when creating a ProductSet.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask that specifies which fields to update. If update_mask isn't specified, all mutable fields are to be updated. Valid mask path is `display_name`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ProductSet" +}, +"response": { +"$ref": "ProductSet" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"removeProduct": { +"description": "Removes a Product from the specified ProductSet.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}:removeProduct", +"httpMethod": "POST", +"id": "vision.projects.locations.productSets.removeProduct", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name for the ProductSet to modify. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:removeProduct", +"request": { +"$ref": "RemoveProductFromProductSetRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +}, +"resources": { +"products": { +"methods": { +"list": { +"description": "Lists the Products in a ProductSet, in an unspecified order. If the ProductSet does not exist, the products field of the response will be empty. Possible errors: * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/productSets/{productSetsId}/products", +"httpMethod": "GET", +"id": "vision.projects.locations.productSets.products.list", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The ProductSet resource for which to retrieve Products. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/productSets/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return. Default 10, maximum 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token returned from a previous List request, if any.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/products", +"response": { +"$ref": "ListProductsInProductSetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +} +} +}, +"products": { +"methods": { +"create": { +"description": "Creates and returns a new product resource. Possible errors: * Returns INVALID_ARGUMENT if display_name is missing or longer than 4096 characters. * Returns INVALID_ARGUMENT if description is longer than 4096 characters. * Returns INVALID_ARGUMENT if product_category is missing or invalid.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products", +"httpMethod": "POST", +"id": "vision.projects.locations.products.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project in which the Product should be created. Format is `projects/PROJECT_ID/locations/LOC_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"productId": { +"description": "A user-supplied resource id for this Product. If set, the server will attempt to use this value as the resource id. If it is already in use, an error is returned with code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character `/`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/products", +"request": { +"$ref": "Product" +}, +"response": { +"$ref": "Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"delete": { +"description": "Permanently deletes a product and its reference images. Metadata of the product and all its images will be deleted right away, but search queries against ProductSets containing the product may still work until all related caches are refreshed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}", +"httpMethod": "DELETE", +"id": "vision.projects.locations.products.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of product to delete. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"get": { +"description": "Gets information associated with a Product. Possible errors: * Returns NOT_FOUND if the Product does not exist.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}", +"httpMethod": "GET", +"id": "vision.projects.locations.products.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Product to get. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"list": { +"description": "Lists products in an unspecified order. Possible errors: * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products", +"httpMethod": "GET", +"id": "vision.projects.locations.products.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return. Default 10, maximum 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project OR ProductSet from which Products should be listed. Format: `projects/PROJECT_ID/locations/LOC_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/products", +"response": { +"$ref": "ListProductsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"patch": { +"description": "Makes changes to a Product resource. Only the `display_name`, `description`, and `labels` fields can be updated right now. If labels are updated, the change will not be reflected in queries until the next index time. Possible errors: * Returns NOT_FOUND if the Product does not exist. * Returns INVALID_ARGUMENT if display_name is present in update_mask but is missing from the request or longer than 4096 characters. * Returns INVALID_ARGUMENT if description is present in update_mask but is longer than 4096 characters. * Returns INVALID_ARGUMENT if product_category is present in update_mask.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}", +"httpMethod": "PATCH", +"id": "vision.projects.locations.products.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the product. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This field is ignored when creating a product.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The FieldMask that specifies which fields to update. If update_mask isn't specified, all mutable fields are to be updated. Valid mask paths include `product_labels`, `display_name`, and `description`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Product" +}, +"response": { +"$ref": "Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"purge": { +"description": "Asynchronous API to delete all Products in a ProductSet or all Products that are in no ProductSet. If a Product is a member of the specified ProductSet in addition to other ProductSets, the Product will still be deleted. It is recommended to not delete the specified ProductSet until after this operation has completed. It is also recommended to not add any of the Products involved in the batch delete to a new ProductSet while this operation is running because those Products may still end up deleted. It's not possible to undo the PurgeProducts operation. Therefore, it is recommended to keep the csv files used in ImportProductSets (if that was how you originally built the Product Set) before starting PurgeProducts, in case you need to re-import the data after deletion. If the plan is to purge all of the Products from a ProductSet and then re-use the empty ProductSet to re-import new Products into the empty ProductSet, you must wait until the PurgeProducts operation has finished for that ProductSet. The google.longrunning.Operation API can be used to keep track of the progress and results of the request. `Operation.metadata` contains `BatchOperationMetadata`. (progress)", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products:purge", +"httpMethod": "POST", +"id": "vision.projects.locations.products.purge", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project and location in which the Products should be deleted. Format is `projects/PROJECT_ID/locations/LOC_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/products:purge", +"request": { +"$ref": "PurgeProductsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +}, +"resources": { +"referenceImages": { +"methods": { +"create": { +"description": "Creates and returns a new ReferenceImage resource. The `bounding_poly` field is optional. If `bounding_poly` is not specified, the system will try to detect regions of interest in the image that are compatible with the product_category on the parent product. If it is specified, detection is ALWAYS skipped. The system converts polygons into non-rotated rectangles. Note that the pipeline will resize the image if the image resolution is too large to process (above 50MP). Possible errors: * Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096 characters. * Returns INVALID_ARGUMENT if the product does not exist. * Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing compatible with the parent product's product_category is detected. * Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages", +"httpMethod": "POST", +"id": "vision.projects.locations.products.referenceImages.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the product in which to create the reference image. Format is `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +}, +"referenceImageId": { +"description": "A user-supplied resource id for the ReferenceImage to be added. If set, the server will attempt to use this value as the resource id. If it is already in use, an error is returned with code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character `/`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/referenceImages", +"request": { +"$ref": "ReferenceImage" +}, +"response": { +"$ref": "ReferenceImage" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"delete": { +"description": "Permanently deletes a reference image. The image metadata will be deleted right away, but search queries against ProductSets containing the image may still work until all related caches are refreshed. The actual image files are not deleted from Google Cloud Storage.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages/{referenceImagesId}", +"httpMethod": "DELETE", +"id": "vision.projects.locations.products.referenceImages.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the reference image to delete. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+/referenceImages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"get": { +"description": "Gets information associated with a ReferenceImage. Possible errors: * Returns NOT_FOUND if the specified image does not exist.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages/{referenceImagesId}", +"httpMethod": "GET", +"id": "vision.projects.locations.products.referenceImages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ReferenceImage to get. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+/referenceImages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ReferenceImage" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +}, +"list": { +"description": "Lists reference images. Possible errors: * Returns NOT_FOUND if the parent product does not exist. * Returns INVALID_ARGUMENT if the page_size is greater than 100, or less than 1.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/products/{productsId}/referenceImages", +"httpMethod": "GET", +"id": "vision.projects.locations.products.referenceImages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return. Default 10, maximum 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results to be returned. This is the value of `nextPageToken` returned in a previous reference image list request. Defaults to the first page if not specified.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the product containing the reference images. Format is `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/referenceImages", +"response": { +"$ref": "ListReferenceImagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +} +} +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "vision.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +} +} +} +}, +"revision": "20241115", +"rootUrl": "https://vision.googleapis.com/", +"schemas": { +"AddProductToProductSetRequest": { +"description": "Request message for the `AddProductToProductSet` method.", +"id": "AddProductToProductSetRequest", +"properties": { +"product": { +"description": "Required. The resource name for the Product to be added to this ProductSet. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`", +"type": "string" +} +}, +"type": "object" +}, +"AnnotateFileRequest": { +"description": "A request to annotate one single file, e.g. a PDF, TIFF or GIF file.", +"id": "AnnotateFileRequest", +"properties": { +"features": { +"description": "Required. Requested features.", +"items": { +"$ref": "Feature" +}, +"type": "array" +}, +"imageContext": { +"$ref": "ImageContext", +"description": "Additional context that may accompany the image(s) in the file." +}, +"inputConfig": { +"$ref": "InputConfig", +"description": "Required. Information about the input file." +}, +"pages": { +"description": "Pages of the file to perform image annotation. Pages starts from 1, we assume the first page of the file is page 1. At most 5 pages are supported per request. Pages can be negative. Page 1 means the first page. Page 2 means the second page. Page -1 means the last page. Page -2 means the second to the last page. If the file is GIF instead of PDF or TIFF, page refers to GIF frames. If this field is empty, by default the service performs image annotation for the first 5 pages of the file.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"AnnotateFileResponse": { +"description": "Response to a single file annotation request. A file may contain one or more images, which individually have their own responses.", +"id": "AnnotateFileResponse", +"properties": { +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the failed request. The `responses` field will not be set in this case." +}, +"inputConfig": { +"$ref": "InputConfig", +"description": "Information about the file for which this response is generated." +}, +"responses": { +"description": "Individual responses to images found within the file. This field will be empty if the `error` field is set.", +"items": { +"$ref": "AnnotateImageResponse" +}, +"type": "array" +}, +"totalPages": { +"description": "This field gives the total number of pages in the file.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"AnnotateImageRequest": { +"description": "Request for performing Google Cloud Vision API tasks over a user-provided image, with user-requested features, and with context information.", +"id": "AnnotateImageRequest", +"properties": { +"features": { +"description": "Requested features.", +"items": { +"$ref": "Feature" +}, +"type": "array" +}, +"image": { +"$ref": "Image", +"description": "The image to be processed." +}, +"imageContext": { +"$ref": "ImageContext", +"description": "Additional context that may accompany the image." +} +}, +"type": "object" +}, +"AnnotateImageResponse": { +"description": "Response to an image annotation request.", +"id": "AnnotateImageResponse", +"properties": { +"context": { +"$ref": "ImageAnnotationContext", +"description": "If present, contextual information is needed to understand where this image comes from." +}, +"cropHintsAnnotation": { +"$ref": "CropHintsAnnotation", +"description": "If present, crop hints have completed successfully." +}, +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the operation. Note that filled-in image annotations are guaranteed to be correct, even when `error` is set." +}, +"faceAnnotations": { +"description": "If present, face detection has completed successfully.", +"items": { +"$ref": "FaceAnnotation" +}, +"type": "array" +}, +"fullTextAnnotation": { +"$ref": "TextAnnotation", +"description": "If present, text (OCR) detection or document (OCR) text detection has completed successfully. This annotation provides the structural hierarchy for the OCR detected text." +}, +"imagePropertiesAnnotation": { +"$ref": "ImageProperties", +"description": "If present, image properties were extracted successfully." +}, +"labelAnnotations": { +"description": "If present, label detection has completed successfully.", +"items": { +"$ref": "EntityAnnotation" +}, +"type": "array" +}, +"landmarkAnnotations": { +"description": "If present, landmark detection has completed successfully.", +"items": { +"$ref": "EntityAnnotation" +}, +"type": "array" +}, +"localizedObjectAnnotations": { +"description": "If present, localized object detection has completed successfully. This will be sorted descending by confidence score.", +"items": { +"$ref": "LocalizedObjectAnnotation" +}, +"type": "array" +}, +"logoAnnotations": { +"description": "If present, logo detection has completed successfully.", +"items": { +"$ref": "EntityAnnotation" +}, +"type": "array" +}, +"productSearchResults": { +"$ref": "ProductSearchResults", +"description": "If present, product search has completed successfully." +}, +"safeSearchAnnotation": { +"$ref": "SafeSearchAnnotation", +"description": "If present, safe-search annotation has completed successfully." +}, +"textAnnotations": { +"description": "If present, text (OCR) detection has completed successfully.", +"items": { +"$ref": "EntityAnnotation" +}, +"type": "array" +}, +"webDetection": { +"$ref": "WebDetection", +"description": "If present, web detection has completed successfully." +} +}, +"type": "object" +}, +"AsyncAnnotateFileRequest": { +"description": "An offline file annotation request.", +"id": "AsyncAnnotateFileRequest", +"properties": { +"features": { +"description": "Required. Requested features.", +"items": { +"$ref": "Feature" +}, +"type": "array" +}, +"imageContext": { +"$ref": "ImageContext", +"description": "Additional context that may accompany the image(s) in the file." +}, +"inputConfig": { +"$ref": "InputConfig", +"description": "Required. Information about the input file." +}, +"outputConfig": { +"$ref": "OutputConfig", +"description": "Required. The desired output location and metadata (e.g. format)." +} +}, +"type": "object" +}, +"AsyncAnnotateFileResponse": { +"description": "The response for a single offline file annotation request.", +"id": "AsyncAnnotateFileResponse", +"properties": { +"outputConfig": { +"$ref": "OutputConfig", +"description": "The output location and metadata from AsyncAnnotateFileRequest." +} +}, +"type": "object" +}, +"AsyncBatchAnnotateFilesRequest": { +"description": "Multiple async file annotation requests are batched into a single service call.", +"id": "AsyncBatchAnnotateFilesRequest", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", +"type": "object" +}, +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"type": "string" +}, +"requests": { +"description": "Required. Individual async file annotation requests for this batch.", +"items": { +"$ref": "AsyncAnnotateFileRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"AsyncBatchAnnotateFilesResponse": { +"description": "Response to an async batch file annotation request.", +"id": "AsyncBatchAnnotateFilesResponse", +"properties": { +"responses": { +"description": "The list of file annotation responses, one for each request in AsyncBatchAnnotateFilesRequest.", +"items": { +"$ref": "AsyncAnnotateFileResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"AsyncBatchAnnotateImagesRequest": { +"description": "Request for async image annotation for a list of images.", +"id": "AsyncBatchAnnotateImagesRequest", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", +"type": "object" +}, +"outputConfig": { +"$ref": "OutputConfig", +"description": "Required. The desired output location and metadata (e.g. format)." +}, +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"type": "string" +}, +"requests": { +"description": "Required. Individual image annotation requests for this batch.", +"items": { +"$ref": "AnnotateImageRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"AsyncBatchAnnotateImagesResponse": { +"description": "Response to an async batch image annotation request.", +"id": "AsyncBatchAnnotateImagesResponse", +"properties": { +"outputConfig": { +"$ref": "OutputConfig", +"description": "The output location and metadata from AsyncBatchAnnotateImagesRequest." +} +}, +"type": "object" +}, +"BatchAnnotateFilesRequest": { +"description": "A list of requests to annotate files using the BatchAnnotateFiles API.", +"id": "BatchAnnotateFilesRequest", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", +"type": "object" +}, +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"type": "string" +}, +"requests": { +"description": "Required. The list of file annotation requests. Right now we support only one AnnotateFileRequest in BatchAnnotateFilesRequest.", +"items": { +"$ref": "AnnotateFileRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchAnnotateFilesResponse": { +"description": "A list of file annotation responses.", +"id": "BatchAnnotateFilesResponse", +"properties": { +"responses": { +"description": "The list of file annotation responses, each response corresponding to each AnnotateFileRequest in BatchAnnotateFilesRequest.", +"items": { +"$ref": "AnnotateFileResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchAnnotateImagesRequest": { +"description": "Multiple image annotation requests are batched into a single service call.", +"id": "BatchAnnotateImagesRequest", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", +"type": "object" +}, +"parent": { +"description": "Optional. Target project and location to make a call. Format: `projects/{project-id}/locations/{location-id}`. If no parent is specified, a region will be chosen automatically. Supported location-ids: `us`: USA country only, `asia`: East asia areas, like Japan, Taiwan, `eu`: The European Union. Example: `projects/project-A/locations/eu`.", +"type": "string" +}, +"requests": { +"description": "Required. Individual image annotation requests for this batch.", +"items": { +"$ref": "AnnotateImageRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchAnnotateImagesResponse": { +"description": "Response to a batch image annotation request.", +"id": "BatchAnnotateImagesResponse", +"properties": { +"responses": { +"description": "Individual responses to image annotation requests within the batch.", +"items": { +"$ref": "AnnotateImageResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchOperationMetadata": { +"description": "Metadata for the batch operations such as the current state. This is included in the `metadata` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "BatchOperationMetadata", +"properties": { +"endTime": { +"description": "The time when the batch request is finished and google.longrunning.Operation.done is set to true.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the batch operation.", +"enum": [ +"STATE_UNSPECIFIED", +"PROCESSING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Invalid.", +"Request is actively being processed.", +"The request is done and at least one item has been successfully processed.", +"The request is done and no item has been successfully processed.", +"The request is done after the longrunning.Operations.CancelOperation has been called by the user. Any records that were processed before the cancel command are output as specified in the request." +], +"type": "string" +}, +"submitTime": { +"description": "The time when the batch request was submitted to the server.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Block": { +"description": "Logical element on the page.", +"id": "Block", +"properties": { +"blockType": { +"description": "Detected block type (text, image etc) for this block.", +"enum": [ +"UNKNOWN", +"TEXT", +"TABLE", +"PICTURE", +"RULER", +"BARCODE" +], +"enumDescriptions": [ +"Unknown block type.", +"Regular text block.", +"Table block.", +"Image block.", +"Horizontal/vertical line box.", +"Barcode block." +], +"type": "string" +}, +"boundingBox": { +"$ref": "BoundingPoly", +"description": "The bounding box for the block. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results on the block. Range [0, 1].", +"format": "float", +"type": "number" +}, +"paragraphs": { +"description": "List of paragraphs in this block (if this blocks is of type text).", +"items": { +"$ref": "Paragraph" +}, +"type": "array" +}, +"property": { +"$ref": "TextProperty", +"description": "Additional information detected for the block." +} +}, +"type": "object" +}, +"BoundingPoly": { +"description": "A bounding polygon for the detected image annotation.", +"id": "BoundingPoly", +"properties": { +"normalizedVertices": { +"description": "The bounding polygon normalized vertices.", +"items": { +"$ref": "NormalizedVertex" +}, +"type": "array" +}, +"vertices": { +"description": "The bounding polygon vertices.", +"items": { +"$ref": "Vertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Color": { +"description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value\u2014for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...", +"id": "Color", +"properties": { +"alpha": { +"description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).", +"format": "float", +"type": "number" +}, +"blue": { +"description": "The amount of blue in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"green": { +"description": "The amount of green in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +}, +"red": { +"description": "The amount of red in the color as a value in the interval [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"ColorInfo": { +"description": "Color information consists of RGB channels, score, and the fraction of the image that the color occupies in the image.", +"id": "ColorInfo", +"properties": { +"color": { +"$ref": "Color", +"description": "RGB components of the color." +}, +"pixelFraction": { +"description": "The fraction of pixels the color occupies in the image. Value in range [0, 1].", +"format": "float", +"type": "number" +}, +"score": { +"description": "Image-specific score for this color. Value in range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"CropHint": { +"description": "Single crop hint that is used to generate a new crop when serving an image.", +"id": "CropHint", +"properties": { +"boundingPoly": { +"$ref": "BoundingPoly", +"description": "The bounding polygon for the crop region. The coordinates of the bounding box are in the original image's scale." +}, +"confidence": { +"description": "Confidence of this being a salient region. Range [0, 1].", +"format": "float", +"type": "number" +}, +"importanceFraction": { +"description": "Fraction of importance of this salient region with respect to the original image.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"CropHintsAnnotation": { +"description": "Set of crop hints that are used to generate new crops when serving images.", +"id": "CropHintsAnnotation", +"properties": { +"cropHints": { +"description": "Crop hint results.", +"items": { +"$ref": "CropHint" +}, +"type": "array" +} +}, +"type": "object" +}, +"CropHintsParams": { +"description": "Parameters for crop hints annotation request.", +"id": "CropHintsParams", +"properties": { +"aspectRatios": { +"description": "Aspect ratios in floats, representing the ratio of the width to the height of the image. For example, if the desired aspect ratio is 4/3, the corresponding float value should be 1.33333. If not specified, the best possible crop is returned. The number of provided aspect ratios is limited to a maximum of 16; any aspect ratios provided after the 16th are ignored.", +"items": { +"format": "float", +"type": "number" +}, +"type": "array" +} +}, +"type": "object" +}, +"DetectedBreak": { +"description": "Detected start or end of a structural component.", +"id": "DetectedBreak", +"properties": { +"isPrefix": { +"description": "True if break prepends the element.", +"type": "boolean" +}, +"type": { +"description": "Detected break type.", +"enum": [ +"UNKNOWN", +"SPACE", +"SURE_SPACE", +"EOL_SURE_SPACE", +"HYPHEN", +"LINE_BREAK" +], +"enumDescriptions": [ +"Unknown break label type.", +"Regular space.", +"Sure space (very wide).", +"Line-wrapping break.", +"End-line hyphen that is not present in text; does not co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.", +"Line break that ends a paragraph." +], +"type": "string" +} +}, +"type": "object" +}, +"DetectedLanguage": { +"description": "Detected language for a structural component.", +"id": "DetectedLanguage", +"properties": { +"confidence": { +"description": "Confidence of detected language. Range [0, 1].", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"DominantColorsAnnotation": { +"description": "Set of dominant colors and their corresponding scores.", +"id": "DominantColorsAnnotation", +"properties": { +"colors": { +"description": "RGB color values with their score and pixel fraction.", +"items": { +"$ref": "ColorInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"EntityAnnotation": { +"description": "Set of detected entity features.", +"id": "EntityAnnotation", +"properties": { +"boundingPoly": { +"$ref": "BoundingPoly", +"description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." +}, +"confidence": { +"deprecated": true, +"description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", +"format": "float", +"type": "number" +}, +"description": { +"description": "Entity textual description, expressed in its `locale` language.", +"type": "string" +}, +"locale": { +"description": "The language code for the locale in which the entity textual `description` is expressed.", +"type": "string" +}, +"locations": { +"description": "The location information for the detected entity. Multiple `LocationInfo` elements can be present because one location may indicate the location of the scene in the image, and another location may indicate the location of the place where the image was taken. Location information is usually present for landmarks.", +"items": { +"$ref": "LocationInfo" +}, +"type": "array" +}, +"mid": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"properties": { +"description": "Some entities may have optional user-supplied `Property` (name/value) fields, such a score or string that qualifies the entity.", +"items": { +"$ref": "Property" +}, +"type": "array" +}, +"score": { +"description": "Overall score of the result. Range [0, 1].", +"format": "float", +"type": "number" +}, +"topicality": { +"description": "The relevancy of the ICA (Image Content Annotation) label to the image. For example, the relevancy of \"tower\" is likely higher to an image containing the detected \"Eiffel Tower\" than to an image containing a detected distant towering building, even though the confidence that there is a tower in each image may be the same. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"FaceAnnotation": { +"description": "A face annotation object contains the results of face detection.", +"id": "FaceAnnotation", +"properties": { +"angerLikelihood": { +"description": "Anger likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"blurredLikelihood": { +"description": "Blurred likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"boundingPoly": { +"$ref": "BoundingPoly", +"description": "The bounding polygon around the face. The coordinates of the bounding box are in the original image's scale. The bounding box is computed to \"frame\" the face in accordance with human expectations. It is based on the landmarker results. Note that one or more x and/or y coordinates may not be generated in the `BoundingPoly` (the polygon will be unbounded) if only a partial face appears in the image to be annotated." +}, +"detectionConfidence": { +"description": "Detection confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"fdBoundingPoly": { +"$ref": "BoundingPoly", +"description": "The `fd_bounding_poly` bounding polygon is tighter than the `boundingPoly`, and encloses only the skin part of the face. Typically, it is used to eliminate the face from any image analysis that detects the \"amount of skin\" visible in an image. It is not based on the landmarker results, only on the initial face detection, hence the fd (face detection) prefix." +}, +"headwearLikelihood": { +"description": "Headwear likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"joyLikelihood": { +"description": "Joy likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"landmarkingConfidence": { +"description": "Face landmarking confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"landmarks": { +"description": "Detected face landmarks.", +"items": { +"$ref": "Landmark" +}, +"type": "array" +}, +"panAngle": { +"description": "Yaw angle, which indicates the leftward/rightward angle that the face is pointing relative to the vertical plane perpendicular to the image. Range [-180,180].", +"format": "float", +"type": "number" +}, +"rollAngle": { +"description": "Roll angle, which indicates the amount of clockwise/anti-clockwise rotation of the face relative to the image vertical about the axis perpendicular to the face. Range [-180,180].", +"format": "float", +"type": "number" +}, +"sorrowLikelihood": { +"description": "Sorrow likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"surpriseLikelihood": { +"description": "Surprise likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"tiltAngle": { +"description": "Pitch angle, which indicates the upwards/downwards angle that the face is pointing relative to the image's horizontal plane. Range [-180,180].", +"format": "float", +"type": "number" +}, +"underExposedLikelihood": { +"description": "Under-exposed likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"Feature": { +"description": "The type of Google Cloud Vision API detection to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list.", +"id": "Feature", +"properties": { +"maxResults": { +"description": "Maximum number of results of this type. Does not apply to `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`.", +"format": "int32", +"type": "integer" +}, +"model": { +"description": "Model to use for the feature. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\". `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` also support \"builtin/weekly\" for the bleeding edge release updated weekly.", +"type": "string" +}, +"type": { +"description": "The feature type.", +"enum": [ +"TYPE_UNSPECIFIED", +"FACE_DETECTION", +"LANDMARK_DETECTION", +"LOGO_DETECTION", +"LABEL_DETECTION", +"TEXT_DETECTION", +"DOCUMENT_TEXT_DETECTION", +"SAFE_SEARCH_DETECTION", +"IMAGE_PROPERTIES", +"CROP_HINTS", +"WEB_DETECTION", +"PRODUCT_SEARCH", +"OBJECT_LOCALIZATION" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run face detection.", +"Run landmark detection.", +"Run logo detection.", +"Run label detection.", +"Run text detection / optical character recognition (OCR). Text detection is optimized for areas of text within a larger image; if the image is a document, use `DOCUMENT_TEXT_DETECTION` instead.", +"Run dense text document OCR. Takes precedence when both `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` are present.", +"Run Safe Search to detect potentially unsafe or undesirable content.", +"Compute a set of image properties, such as the image's dominant colors.", +"Run crop hints.", +"Run web detection.", +"Run Product Search.", +"Run localizer for object detection." +], +"type": "string" +} +}, +"type": "object" +}, +"GcsDestination": { +"description": "The Google Cloud Storage location where the output will be written to.", +"id": "GcsDestination", +"properties": { +"uri": { +"description": "Google Cloud Storage URI prefix where the results will be stored. Results will be in JSON format and preceded by its corresponding input URI prefix. This field can either represent a gcs file prefix or gcs directory. In either case, the uri should be unique because in order to get all of the output files, you will need to do a wildcard gcs search on the uri prefix you provide. Examples: * File Prefix: gs://bucket-name/here/filenameprefix The output files will be created in gs://bucket-name/here/ and the names of the output files will begin with \"filenameprefix\". * Directory Prefix: gs://bucket-name/some/location/ The output files will be created in gs://bucket-name/some/location/ and the names of the output files could be anything because there was no filename prefix specified. If multiple outputs, each response is still AnnotateFileResponse, each of which contains some subset of the full list of AnnotateImageResponse. Multiple outputs can happen if, for example, the output JSON is too large and overflows into multiple sharded files.", +"type": "string" +} +}, +"type": "object" +}, +"GcsSource": { +"description": "The Google Cloud Storage location where the input will be read from.", +"id": "GcsSource", +"properties": { +"uri": { +"description": "Google Cloud Storage URI for the input file. This must only be a Google Cloud Storage object. Wildcards are not currently supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1AnnotateFileResponse": { +"description": "Response to a single file annotation request. A file may contain one or more images, which individually have their own responses.", +"id": "GoogleCloudVisionV1p1beta1AnnotateFileResponse", +"properties": { +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the failed request. The `responses` field will not be set in this case." +}, +"inputConfig": { +"$ref": "GoogleCloudVisionV1p1beta1InputConfig", +"description": "Information about the file for which this response is generated." +}, +"responses": { +"description": "Individual responses to images found within the file. This field will be empty if the `error` field is set.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1AnnotateImageResponse" +}, +"type": "array" +}, +"totalPages": { +"description": "This field gives the total number of pages in the file.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1AnnotateImageResponse": { +"description": "Response to an image annotation request.", +"id": "GoogleCloudVisionV1p1beta1AnnotateImageResponse", +"properties": { +"context": { +"$ref": "GoogleCloudVisionV1p1beta1ImageAnnotationContext", +"description": "If present, contextual information is needed to understand where this image comes from." +}, +"cropHintsAnnotation": { +"$ref": "GoogleCloudVisionV1p1beta1CropHintsAnnotation", +"description": "If present, crop hints have completed successfully." +}, +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the operation. Note that filled-in image annotations are guaranteed to be correct, even when `error` is set." +}, +"faceAnnotations": { +"description": "If present, face detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1FaceAnnotation" +}, +"type": "array" +}, +"fullTextAnnotation": { +"$ref": "GoogleCloudVisionV1p1beta1TextAnnotation", +"description": "If present, text (OCR) detection or document (OCR) text detection has completed successfully. This annotation provides the structural hierarchy for the OCR detected text." +}, +"imagePropertiesAnnotation": { +"$ref": "GoogleCloudVisionV1p1beta1ImageProperties", +"description": "If present, image properties were extracted successfully." +}, +"labelAnnotations": { +"description": "If present, label detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1EntityAnnotation" +}, +"type": "array" +}, +"landmarkAnnotations": { +"description": "If present, landmark detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1EntityAnnotation" +}, +"type": "array" +}, +"localizedObjectAnnotations": { +"description": "If present, localized object detection has completed successfully. This will be sorted descending by confidence score.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation" +}, +"type": "array" +}, +"logoAnnotations": { +"description": "If present, logo detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1EntityAnnotation" +}, +"type": "array" +}, +"productSearchResults": { +"$ref": "GoogleCloudVisionV1p1beta1ProductSearchResults", +"description": "If present, product search has completed successfully." +}, +"safeSearchAnnotation": { +"$ref": "GoogleCloudVisionV1p1beta1SafeSearchAnnotation", +"description": "If present, safe-search annotation has completed successfully." +}, +"textAnnotations": { +"description": "If present, text (OCR) detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1EntityAnnotation" +}, +"type": "array" +}, +"webDetection": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetection", +"description": "If present, web detection has completed successfully." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse": { +"description": "The response for a single offline file annotation request.", +"id": "GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse", +"properties": { +"outputConfig": { +"$ref": "GoogleCloudVisionV1p1beta1OutputConfig", +"description": "The output location and metadata from AsyncAnnotateFileRequest." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse": { +"description": "Response to an async batch file annotation request.", +"id": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesResponse", +"properties": { +"responses": { +"description": "The list of file annotation responses, one for each request in AsyncBatchAnnotateFilesRequest.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1AsyncAnnotateFileResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1Block": { +"description": "Logical element on the page.", +"id": "GoogleCloudVisionV1p1beta1Block", +"properties": { +"blockType": { +"description": "Detected block type (text, image etc) for this block.", +"enum": [ +"UNKNOWN", +"TEXT", +"TABLE", +"PICTURE", +"RULER", +"BARCODE" +], +"enumDescriptions": [ +"Unknown block type.", +"Regular text block.", +"Table block.", +"Image block.", +"Horizontal/vertical line box.", +"Barcode block." +], +"type": "string" +}, +"boundingBox": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "The bounding box for the block. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results on the block. Range [0, 1].", +"format": "float", +"type": "number" +}, +"paragraphs": { +"description": "List of paragraphs in this block (if this blocks is of type text).", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Paragraph" +}, +"type": "array" +}, +"property": { +"$ref": "GoogleCloudVisionV1p1beta1TextAnnotationTextProperty", +"description": "Additional information detected for the block." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1BoundingPoly": { +"description": "A bounding polygon for the detected image annotation.", +"id": "GoogleCloudVisionV1p1beta1BoundingPoly", +"properties": { +"normalizedVertices": { +"description": "The bounding polygon normalized vertices.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1NormalizedVertex" +}, +"type": "array" +}, +"vertices": { +"description": "The bounding polygon vertices.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Vertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1ColorInfo": { +"description": "Color information consists of RGB channels, score, and the fraction of the image that the color occupies in the image.", +"id": "GoogleCloudVisionV1p1beta1ColorInfo", +"properties": { +"color": { +"$ref": "Color", +"description": "RGB components of the color." +}, +"pixelFraction": { +"description": "The fraction of pixels the color occupies in the image. Value in range [0, 1].", +"format": "float", +"type": "number" +}, +"score": { +"description": "Image-specific score for this color. Value in range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1CropHint": { +"description": "Single crop hint that is used to generate a new crop when serving an image.", +"id": "GoogleCloudVisionV1p1beta1CropHint", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "The bounding polygon for the crop region. The coordinates of the bounding box are in the original image's scale." +}, +"confidence": { +"description": "Confidence of this being a salient region. Range [0, 1].", +"format": "float", +"type": "number" +}, +"importanceFraction": { +"description": "Fraction of importance of this salient region with respect to the original image.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1CropHintsAnnotation": { +"description": "Set of crop hints that are used to generate new crops when serving images.", +"id": "GoogleCloudVisionV1p1beta1CropHintsAnnotation", +"properties": { +"cropHints": { +"description": "Crop hint results.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1CropHint" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1DominantColorsAnnotation": { +"description": "Set of dominant colors and their corresponding scores.", +"id": "GoogleCloudVisionV1p1beta1DominantColorsAnnotation", +"properties": { +"colors": { +"description": "RGB color values with their score and pixel fraction.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1ColorInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1EntityAnnotation": { +"description": "Set of detected entity features.", +"id": "GoogleCloudVisionV1p1beta1EntityAnnotation", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." +}, +"confidence": { +"deprecated": true, +"description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", +"format": "float", +"type": "number" +}, +"description": { +"description": "Entity textual description, expressed in its `locale` language.", +"type": "string" +}, +"locale": { +"description": "The language code for the locale in which the entity textual `description` is expressed.", +"type": "string" +}, +"locations": { +"description": "The location information for the detected entity. Multiple `LocationInfo` elements can be present because one location may indicate the location of the scene in the image, and another location may indicate the location of the place where the image was taken. Location information is usually present for landmarks.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1LocationInfo" +}, +"type": "array" +}, +"mid": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"properties": { +"description": "Some entities may have optional user-supplied `Property` (name/value) fields, such a score or string that qualifies the entity.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Property" +}, +"type": "array" +}, +"score": { +"description": "Overall score of the result. Range [0, 1].", +"format": "float", +"type": "number" +}, +"topicality": { +"description": "The relevancy of the ICA (Image Content Annotation) label to the image. For example, the relevancy of \"tower\" is likely higher to an image containing the detected \"Eiffel Tower\" than to an image containing a detected distant towering building, even though the confidence that there is a tower in each image may be the same. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1FaceAnnotation": { +"description": "A face annotation object contains the results of face detection.", +"id": "GoogleCloudVisionV1p1beta1FaceAnnotation", +"properties": { +"angerLikelihood": { +"description": "Anger likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"blurredLikelihood": { +"description": "Blurred likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "The bounding polygon around the face. The coordinates of the bounding box are in the original image's scale. The bounding box is computed to \"frame\" the face in accordance with human expectations. It is based on the landmarker results. Note that one or more x and/or y coordinates may not be generated in the `BoundingPoly` (the polygon will be unbounded) if only a partial face appears in the image to be annotated." +}, +"detectionConfidence": { +"description": "Detection confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"fdBoundingPoly": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "The `fd_bounding_poly` bounding polygon is tighter than the `boundingPoly`, and encloses only the skin part of the face. Typically, it is used to eliminate the face from any image analysis that detects the \"amount of skin\" visible in an image. It is not based on the landmarker results, only on the initial face detection, hence the fd (face detection) prefix." +}, +"headwearLikelihood": { +"description": "Headwear likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"joyLikelihood": { +"description": "Joy likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"landmarkingConfidence": { +"description": "Face landmarking confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"landmarks": { +"description": "Detected face landmarks.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1FaceAnnotationLandmark" +}, +"type": "array" +}, +"panAngle": { +"description": "Yaw angle, which indicates the leftward/rightward angle that the face is pointing relative to the vertical plane perpendicular to the image. Range [-180,180].", +"format": "float", +"type": "number" +}, +"rollAngle": { +"description": "Roll angle, which indicates the amount of clockwise/anti-clockwise rotation of the face relative to the image vertical about the axis perpendicular to the face. Range [-180,180].", +"format": "float", +"type": "number" +}, +"sorrowLikelihood": { +"description": "Sorrow likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"surpriseLikelihood": { +"description": "Surprise likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"tiltAngle": { +"description": "Pitch angle, which indicates the upwards/downwards angle that the face is pointing relative to the image's horizontal plane. Range [-180,180].", +"format": "float", +"type": "number" +}, +"underExposedLikelihood": { +"description": "Under-exposed likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1FaceAnnotationLandmark": { +"description": "A face-specific landmark (for example, a face feature). Landmark positions may fall outside the bounds of the image if the face is near one or more edges of the image. Therefore it is NOT guaranteed that `0 <= x < width` or `0 <= y < height`.", +"id": "GoogleCloudVisionV1p1beta1FaceAnnotationLandmark", +"properties": { +"position": { +"$ref": "GoogleCloudVisionV1p1beta1Position", +"description": "Face landmark position." +}, +"type": { +"description": "Face landmark type.", +"enum": [ +"UNKNOWN_LANDMARK", +"LEFT_EYE", +"RIGHT_EYE", +"LEFT_OF_LEFT_EYEBROW", +"RIGHT_OF_LEFT_EYEBROW", +"LEFT_OF_RIGHT_EYEBROW", +"RIGHT_OF_RIGHT_EYEBROW", +"MIDPOINT_BETWEEN_EYES", +"NOSE_TIP", +"UPPER_LIP", +"LOWER_LIP", +"MOUTH_LEFT", +"MOUTH_RIGHT", +"MOUTH_CENTER", +"NOSE_BOTTOM_RIGHT", +"NOSE_BOTTOM_LEFT", +"NOSE_BOTTOM_CENTER", +"LEFT_EYE_TOP_BOUNDARY", +"LEFT_EYE_RIGHT_CORNER", +"LEFT_EYE_BOTTOM_BOUNDARY", +"LEFT_EYE_LEFT_CORNER", +"RIGHT_EYE_TOP_BOUNDARY", +"RIGHT_EYE_RIGHT_CORNER", +"RIGHT_EYE_BOTTOM_BOUNDARY", +"RIGHT_EYE_LEFT_CORNER", +"LEFT_EYEBROW_UPPER_MIDPOINT", +"RIGHT_EYEBROW_UPPER_MIDPOINT", +"LEFT_EAR_TRAGION", +"RIGHT_EAR_TRAGION", +"LEFT_EYE_PUPIL", +"RIGHT_EYE_PUPIL", +"FOREHEAD_GLABELLA", +"CHIN_GNATHION", +"CHIN_LEFT_GONION", +"CHIN_RIGHT_GONION", +"LEFT_CHEEK_CENTER", +"RIGHT_CHEEK_CENTER" +], +"enumDescriptions": [ +"Unknown face landmark detected. Should not be filled.", +"Left eye.", +"Right eye.", +"Left of left eyebrow.", +"Right of left eyebrow.", +"Left of right eyebrow.", +"Right of right eyebrow.", +"Midpoint between eyes.", +"Nose tip.", +"Upper lip.", +"Lower lip.", +"Mouth left.", +"Mouth right.", +"Mouth center.", +"Nose, bottom right.", +"Nose, bottom left.", +"Nose, bottom center.", +"Left eye, top boundary.", +"Left eye, right corner.", +"Left eye, bottom boundary.", +"Left eye, left corner.", +"Right eye, top boundary.", +"Right eye, right corner.", +"Right eye, bottom boundary.", +"Right eye, left corner.", +"Left eyebrow, upper midpoint.", +"Right eyebrow, upper midpoint.", +"Left ear tragion.", +"Right ear tragion.", +"Left eye pupil.", +"Right eye pupil.", +"Forehead glabella.", +"Chin gnathion.", +"Chin left gonion.", +"Chin right gonion.", +"Left cheek center.", +"Right cheek center." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1GcsDestination": { +"description": "The Google Cloud Storage location where the output will be written to.", +"id": "GoogleCloudVisionV1p1beta1GcsDestination", +"properties": { +"uri": { +"description": "Google Cloud Storage URI prefix where the results will be stored. Results will be in JSON format and preceded by its corresponding input URI prefix. This field can either represent a gcs file prefix or gcs directory. In either case, the uri should be unique because in order to get all of the output files, you will need to do a wildcard gcs search on the uri prefix you provide. Examples: * File Prefix: gs://bucket-name/here/filenameprefix The output files will be created in gs://bucket-name/here/ and the names of the output files will begin with \"filenameprefix\". * Directory Prefix: gs://bucket-name/some/location/ The output files will be created in gs://bucket-name/some/location/ and the names of the output files could be anything because there was no filename prefix specified. If multiple outputs, each response is still AnnotateFileResponse, each of which contains some subset of the full list of AnnotateImageResponse. Multiple outputs can happen if, for example, the output JSON is too large and overflows into multiple sharded files.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1GcsSource": { +"description": "The Google Cloud Storage location where the input will be read from.", +"id": "GoogleCloudVisionV1p1beta1GcsSource", +"properties": { +"uri": { +"description": "Google Cloud Storage URI for the input file. This must only be a Google Cloud Storage object. Wildcards are not currently supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1ImageAnnotationContext": { +"description": "If an image was produced from a file (e.g. a PDF), this message gives information about the source of that image.", +"id": "GoogleCloudVisionV1p1beta1ImageAnnotationContext", +"properties": { +"pageNumber": { +"description": "If the file was a PDF or TIFF, this field gives the page number within the file used to produce the image.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "The URI of the file used to produce the image.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1ImageProperties": { +"description": "Stores image properties, such as dominant colors.", +"id": "GoogleCloudVisionV1p1beta1ImageProperties", +"properties": { +"dominantColors": { +"$ref": "GoogleCloudVisionV1p1beta1DominantColorsAnnotation", +"description": "If present, dominant colors completed successfully." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1InputConfig": { +"description": "The desired input location and metadata.", +"id": "GoogleCloudVisionV1p1beta1InputConfig", +"properties": { +"content": { +"description": "File content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64. Currently, this field only works for BatchAnnotateFiles requests. It does not work for AsyncBatchAnnotateFiles requests.", +"format": "byte", +"type": "string" +}, +"gcsSource": { +"$ref": "GoogleCloudVisionV1p1beta1GcsSource", +"description": "The Google Cloud Storage location to read the input from." +}, +"mimeType": { +"description": "The type of the file. Currently only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. Wildcards are not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation": { +"description": "Set of detected objects with bounding boxes.", +"id": "GoogleCloudVisionV1p1beta1LocalizedObjectAnnotation", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "Image region to which this object belongs. This must be populated." +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1LocationInfo": { +"description": "Detected entity location information.", +"id": "GoogleCloudVisionV1p1beta1LocationInfo", +"properties": { +"latLng": { +"$ref": "LatLng", +"description": "lat/long location coordinates." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1NormalizedVertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.", +"id": "GoogleCloudVisionV1p1beta1NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1OperationMetadata": { +"description": "Contains metadata for the BatchAnnotateImages operation.", +"id": "GoogleCloudVisionV1p1beta1OperationMetadata", +"properties": { +"createTime": { +"description": "The time when the batch request was received.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Current state of the batch operation.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATED", +"RUNNING", +"DONE", +"CANCELLED" +], +"enumDescriptions": [ +"Invalid.", +"Request is received.", +"Request is actively being processed.", +"The batch processing is done.", +"The batch processing was cancelled." +], +"type": "string" +}, +"updateTime": { +"description": "The time when the operation result was last updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1OutputConfig": { +"description": "The desired output location and metadata.", +"id": "GoogleCloudVisionV1p1beta1OutputConfig", +"properties": { +"batchSize": { +"description": "The max number of response protos to put into each output JSON file on Google Cloud Storage. The valid range is [1, 100]. If not specified, the default value is 20. For example, for one pdf file with 100 pages, 100 response protos will be generated. If `batch_size` = 20, then 5 json files each containing 20 response protos will be written under the prefix `gcs_destination`.`uri`. Currently, batch_size only applies to GcsDestination, with potential future support for other output configurations.", +"format": "int32", +"type": "integer" +}, +"gcsDestination": { +"$ref": "GoogleCloudVisionV1p1beta1GcsDestination", +"description": "The Google Cloud Storage location to write the output(s) to." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1Page": { +"description": "Detected page from OCR.", +"id": "GoogleCloudVisionV1p1beta1Page", +"properties": { +"blocks": { +"description": "List of blocks of text, images etc on this page.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Block" +}, +"type": "array" +}, +"confidence": { +"description": "Confidence of the OCR results on the page. Range [0, 1].", +"format": "float", +"type": "number" +}, +"height": { +"description": "Page height. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +}, +"property": { +"$ref": "GoogleCloudVisionV1p1beta1TextAnnotationTextProperty", +"description": "Additional information detected on the page." +}, +"width": { +"description": "Page width. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1Paragraph": { +"description": "Structural unit of text representing a number of words in certain order.", +"id": "GoogleCloudVisionV1p1beta1Paragraph", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "The bounding box for the paragraph. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the paragraph. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p1beta1TextAnnotationTextProperty", +"description": "Additional information detected for the paragraph." +}, +"words": { +"description": "List of all words in this paragraph.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Word" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1Position": { +"description": "A 3D position in the image, used primarily for Face detection landmarks. A valid Position must have both x and y coordinates. The position coordinates are in the same scale as the original image.", +"id": "GoogleCloudVisionV1p1beta1Position", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +}, +"z": { +"description": "Z coordinate (or depth).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1Product": { +"description": "A Product contains ReferenceImages.", +"id": "GoogleCloudVisionV1p1beta1Product", +"properties": { +"description": { +"description": "User-provided metadata to be stored with this product. Must be at most 4096 characters long.", +"type": "string" +}, +"displayName": { +"description": "The user-provided name for this Product. Must not be empty. Must be at most 4096 characters long.", +"type": "string" +}, +"name": { +"description": "The resource name of the product. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This field is ignored when creating a product.", +"type": "string" +}, +"productCategory": { +"description": "Immutable. The category for the product identified by the reference image. This should be one of \"homegoods-v2\", \"apparel-v2\", \"toys-v2\", \"packagedgoods-v1\" or \"general-v1\". The legacy categories \"homegoods\", \"apparel\", and \"toys\" are still supported, but these should not be used for new products.", +"type": "string" +}, +"productLabels": { +"description": "Key-value pairs that can be attached to a product. At query time, constraints can be specified based on the product_labels. Note that integer values can be provided as strings, e.g. \"1199\". Only strings with integer values can match a range-based restriction which is to be supported soon. Multiple values can be assigned to the same key. One product may have up to 500 product_labels. Notice that the total number of distinct product_labels over all products in one ProductSet cannot exceed 1M, otherwise the product search pipeline will refuse to work for that ProductSet.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1ProductKeyValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1ProductKeyValue": { +"description": "A product label represented as a key-value pair.", +"id": "GoogleCloudVisionV1p1beta1ProductKeyValue", +"properties": { +"key": { +"description": "The key of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +}, +"value": { +"description": "The value of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1ProductSearchResults": { +"description": "Results for a product search request.", +"id": "GoogleCloudVisionV1p1beta1ProductSearchResults", +"properties": { +"indexTime": { +"description": "Timestamp of the index which provided these results. Products added to the product set and products removed from the product set after this time are not reflected in the current results.", +"format": "google-datetime", +"type": "string" +}, +"productGroupedResults": { +"description": "List of results grouped by products detected in the query image. Each entry corresponds to one bounding polygon in the query image, and contains the matching products specific to that region. There may be duplicate product matches in the union of all the per-product results.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1ProductSearchResultsResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult": { +"description": "Information about the products similar to a single product in a query image.", +"id": "GoogleCloudVisionV1p1beta1ProductSearchResultsGroupedResult", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "The bounding polygon around the product detected in the query image." +}, +"objectAnnotations": { +"description": "List of generic predictions for the object in the bounding box.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1ProductSearchResultsResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation": { +"description": "Prediction for what the object in the bounding box is.", +"id": "GoogleCloudVisionV1p1beta1ProductSearchResultsObjectAnnotation", +"properties": { +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1ProductSearchResultsResult": { +"description": "Information about a product.", +"id": "GoogleCloudVisionV1p1beta1ProductSearchResultsResult", +"properties": { +"image": { +"description": "The resource name of the image from the product that is the closest match to the query.", +"type": "string" +}, +"product": { +"$ref": "GoogleCloudVisionV1p1beta1Product", +"description": "The Product." +}, +"score": { +"description": "A confidence level on the match, ranging from 0 (no confidence) to 1 (full confidence).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1Property": { +"description": "A `Property` consists of a user-supplied name/value pair.", +"id": "GoogleCloudVisionV1p1beta1Property", +"properties": { +"name": { +"description": "Name of the property.", +"type": "string" +}, +"uint64Value": { +"description": "Value of numeric properties.", +"format": "uint64", +"type": "string" +}, +"value": { +"description": "Value of the property.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1SafeSearchAnnotation": { +"description": "Set of features pertaining to the image, computed by computer vision methods over safe-search verticals (for example, adult, spoof, medical, violence).", +"id": "GoogleCloudVisionV1p1beta1SafeSearchAnnotation", +"properties": { +"adult": { +"description": "Represents the adult content likelihood for the image. Adult content may contain elements such as nudity, pornographic images or cartoons, or sexual activities.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"medical": { +"description": "Likelihood that this is a medical image.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"racy": { +"description": "Likelihood that the request image contains racy content. Racy content may include (but is not limited to) skimpy or sheer clothing, strategically covered nudity, lewd or provocative poses, or close-ups of sensitive body areas.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"spoof": { +"description": "Spoof likelihood. The likelihood that an modification was made to the image's canonical version to make it appear funny or offensive.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"violence": { +"description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1Symbol": { +"description": "A single symbol representation.", +"id": "GoogleCloudVisionV1p1beta1Symbol", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "The bounding box for the symbol. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the symbol. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p1beta1TextAnnotationTextProperty", +"description": "Additional information detected for the symbol." +}, +"text": { +"description": "The actual UTF-8 representation of the symbol.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1TextAnnotation": { +"description": "TextAnnotation contains a structured representation of OCR extracted text. The hierarchy of an OCR extracted text structure is like this: TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol Each structural component, starting from Page, may further have their own properties. Properties describe detected languages, breaks etc.. Please refer to the TextAnnotation.TextProperty message definition below for more detail.", +"id": "GoogleCloudVisionV1p1beta1TextAnnotation", +"properties": { +"pages": { +"description": "List of pages detected by OCR.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Page" +}, +"type": "array" +}, +"text": { +"description": "UTF-8 text detected on the pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak": { +"description": "Detected start or end of a structural component.", +"id": "GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak", +"properties": { +"isPrefix": { +"description": "True if break prepends the element.", +"type": "boolean" +}, +"type": { +"description": "Detected break type.", +"enum": [ +"UNKNOWN", +"SPACE", +"SURE_SPACE", +"EOL_SURE_SPACE", +"HYPHEN", +"LINE_BREAK" +], +"enumDescriptions": [ +"Unknown break label type.", +"Regular space.", +"Sure space (very wide).", +"Line-wrapping break.", +"End-line hyphen that is not present in text; does not co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.", +"Line break that ends a paragraph." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage": { +"description": "Detected language for a structural component.", +"id": "GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage", +"properties": { +"confidence": { +"description": "Confidence of detected language. Range [0, 1].", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1TextAnnotationTextProperty": { +"description": "Additional information detected on the structural component.", +"id": "GoogleCloudVisionV1p1beta1TextAnnotationTextProperty", +"properties": { +"detectedBreak": { +"$ref": "GoogleCloudVisionV1p1beta1TextAnnotationDetectedBreak", +"description": "Detected start or end of a text segment." +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1TextAnnotationDetectedLanguage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1Vertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image.", +"id": "GoogleCloudVisionV1p1beta1Vertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "int32", +"type": "integer" +}, +"y": { +"description": "Y coordinate.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1WebDetection": { +"description": "Relevant information for the image from the Internet.", +"id": "GoogleCloudVisionV1p1beta1WebDetection", +"properties": { +"bestGuessLabels": { +"description": "The service's best guess as to the topic of the request image. Inferred from similar images on the open web.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetectionWebLabel" +}, +"type": "array" +}, +"fullMatchingImages": { +"description": "Fully matching images from the Internet. Can include resized copies of the query image.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetectionWebImage" +}, +"type": "array" +}, +"pagesWithMatchingImages": { +"description": "Web pages containing the matching images from the Internet.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetectionWebPage" +}, +"type": "array" +}, +"partialMatchingImages": { +"description": "Partial matching images from the Internet. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetectionWebImage" +}, +"type": "array" +}, +"visuallySimilarImages": { +"description": "The visually similar image results.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetectionWebImage" +}, +"type": "array" +}, +"webEntities": { +"description": "Deduced entities from similar images on the Internet.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetectionWebEntity" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1WebDetectionWebEntity": { +"description": "Entity deduced from similar images on the Internet.", +"id": "GoogleCloudVisionV1p1beta1WebDetectionWebEntity", +"properties": { +"description": { +"description": "Canonical description of the entity, in English.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID.", +"type": "string" +}, +"score": { +"description": "Overall relevancy score for the entity. Not normalized and not comparable across different image queries.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1WebDetectionWebImage": { +"description": "Metadata for online images.", +"id": "GoogleCloudVisionV1p1beta1WebDetectionWebImage", +"properties": { +"score": { +"description": "(Deprecated) Overall relevancy score for the image.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result image URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1WebDetectionWebLabel": { +"description": "Label to provide extra metadata for the web detection.", +"id": "GoogleCloudVisionV1p1beta1WebDetectionWebLabel", +"properties": { +"label": { +"description": "Label for extra metadata.", +"type": "string" +}, +"languageCode": { +"description": "The BCP-47 language code for `label`, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1WebDetectionWebPage": { +"description": "Metadata for web pages.", +"id": "GoogleCloudVisionV1p1beta1WebDetectionWebPage", +"properties": { +"fullMatchingImages": { +"description": "Fully matching images on the page. Can include resized copies of the query image.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetectionWebImage" +}, +"type": "array" +}, +"pageTitle": { +"description": "Title for the web page, may contain HTML markups.", +"type": "string" +}, +"partialMatchingImages": { +"description": "Partial matching images on the page. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetectionWebImage" +}, +"type": "array" +}, +"score": { +"description": "(Deprecated) Overall relevancy score for the web page.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result web page URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1Word": { +"description": "A word representation.", +"id": "GoogleCloudVisionV1p1beta1Word", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"description": "The bounding box for the word. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the word. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p1beta1TextAnnotationTextProperty", +"description": "Additional information detected for the word." +}, +"symbols": { +"description": "List of symbols in the word. The order of the symbols follows the natural reading order.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Symbol" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1AnnotateFileResponse": { +"description": "Response to a single file annotation request. A file may contain one or more images, which individually have their own responses.", +"id": "GoogleCloudVisionV1p2beta1AnnotateFileResponse", +"properties": { +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the failed request. The `responses` field will not be set in this case." +}, +"inputConfig": { +"$ref": "GoogleCloudVisionV1p2beta1InputConfig", +"description": "Information about the file for which this response is generated." +}, +"responses": { +"description": "Individual responses to images found within the file. This field will be empty if the `error` field is set.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1AnnotateImageResponse" +}, +"type": "array" +}, +"totalPages": { +"description": "This field gives the total number of pages in the file.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1AnnotateImageResponse": { +"description": "Response to an image annotation request.", +"id": "GoogleCloudVisionV1p2beta1AnnotateImageResponse", +"properties": { +"context": { +"$ref": "GoogleCloudVisionV1p2beta1ImageAnnotationContext", +"description": "If present, contextual information is needed to understand where this image comes from." +}, +"cropHintsAnnotation": { +"$ref": "GoogleCloudVisionV1p2beta1CropHintsAnnotation", +"description": "If present, crop hints have completed successfully." +}, +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the operation. Note that filled-in image annotations are guaranteed to be correct, even when `error` is set." +}, +"faceAnnotations": { +"description": "If present, face detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1FaceAnnotation" +}, +"type": "array" +}, +"fullTextAnnotation": { +"$ref": "GoogleCloudVisionV1p2beta1TextAnnotation", +"description": "If present, text (OCR) detection or document (OCR) text detection has completed successfully. This annotation provides the structural hierarchy for the OCR detected text." +}, +"imagePropertiesAnnotation": { +"$ref": "GoogleCloudVisionV1p2beta1ImageProperties", +"description": "If present, image properties were extracted successfully." +}, +"labelAnnotations": { +"description": "If present, label detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1EntityAnnotation" +}, +"type": "array" +}, +"landmarkAnnotations": { +"description": "If present, landmark detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1EntityAnnotation" +}, +"type": "array" +}, +"localizedObjectAnnotations": { +"description": "If present, localized object detection has completed successfully. This will be sorted descending by confidence score.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation" +}, +"type": "array" +}, +"logoAnnotations": { +"description": "If present, logo detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1EntityAnnotation" +}, +"type": "array" +}, +"productSearchResults": { +"$ref": "GoogleCloudVisionV1p2beta1ProductSearchResults", +"description": "If present, product search has completed successfully." +}, +"safeSearchAnnotation": { +"$ref": "GoogleCloudVisionV1p2beta1SafeSearchAnnotation", +"description": "If present, safe-search annotation has completed successfully." +}, +"textAnnotations": { +"description": "If present, text (OCR) detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1EntityAnnotation" +}, +"type": "array" +}, +"webDetection": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetection", +"description": "If present, web detection has completed successfully." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse": { +"description": "The response for a single offline file annotation request.", +"id": "GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse", +"properties": { +"outputConfig": { +"$ref": "GoogleCloudVisionV1p2beta1OutputConfig", +"description": "The output location and metadata from AsyncAnnotateFileRequest." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse": { +"description": "Response to an async batch file annotation request.", +"id": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesResponse", +"properties": { +"responses": { +"description": "The list of file annotation responses, one for each request in AsyncBatchAnnotateFilesRequest.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1AsyncAnnotateFileResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1Block": { +"description": "Logical element on the page.", +"id": "GoogleCloudVisionV1p2beta1Block", +"properties": { +"blockType": { +"description": "Detected block type (text, image etc) for this block.", +"enum": [ +"UNKNOWN", +"TEXT", +"TABLE", +"PICTURE", +"RULER", +"BARCODE" +], +"enumDescriptions": [ +"Unknown block type.", +"Regular text block.", +"Table block.", +"Image block.", +"Horizontal/vertical line box.", +"Barcode block." +], +"type": "string" +}, +"boundingBox": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "The bounding box for the block. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results on the block. Range [0, 1].", +"format": "float", +"type": "number" +}, +"paragraphs": { +"description": "List of paragraphs in this block (if this blocks is of type text).", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Paragraph" +}, +"type": "array" +}, +"property": { +"$ref": "GoogleCloudVisionV1p2beta1TextAnnotationTextProperty", +"description": "Additional information detected for the block." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1BoundingPoly": { +"description": "A bounding polygon for the detected image annotation.", +"id": "GoogleCloudVisionV1p2beta1BoundingPoly", +"properties": { +"normalizedVertices": { +"description": "The bounding polygon normalized vertices.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1NormalizedVertex" +}, +"type": "array" +}, +"vertices": { +"description": "The bounding polygon vertices.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Vertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1ColorInfo": { +"description": "Color information consists of RGB channels, score, and the fraction of the image that the color occupies in the image.", +"id": "GoogleCloudVisionV1p2beta1ColorInfo", +"properties": { +"color": { +"$ref": "Color", +"description": "RGB components of the color." +}, +"pixelFraction": { +"description": "The fraction of pixels the color occupies in the image. Value in range [0, 1].", +"format": "float", +"type": "number" +}, +"score": { +"description": "Image-specific score for this color. Value in range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1CropHint": { +"description": "Single crop hint that is used to generate a new crop when serving an image.", +"id": "GoogleCloudVisionV1p2beta1CropHint", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "The bounding polygon for the crop region. The coordinates of the bounding box are in the original image's scale." +}, +"confidence": { +"description": "Confidence of this being a salient region. Range [0, 1].", +"format": "float", +"type": "number" +}, +"importanceFraction": { +"description": "Fraction of importance of this salient region with respect to the original image.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1CropHintsAnnotation": { +"description": "Set of crop hints that are used to generate new crops when serving images.", +"id": "GoogleCloudVisionV1p2beta1CropHintsAnnotation", +"properties": { +"cropHints": { +"description": "Crop hint results.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1CropHint" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1DominantColorsAnnotation": { +"description": "Set of dominant colors and their corresponding scores.", +"id": "GoogleCloudVisionV1p2beta1DominantColorsAnnotation", +"properties": { +"colors": { +"description": "RGB color values with their score and pixel fraction.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1ColorInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1EntityAnnotation": { +"description": "Set of detected entity features.", +"id": "GoogleCloudVisionV1p2beta1EntityAnnotation", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." +}, +"confidence": { +"deprecated": true, +"description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", +"format": "float", +"type": "number" +}, +"description": { +"description": "Entity textual description, expressed in its `locale` language.", +"type": "string" +}, +"locale": { +"description": "The language code for the locale in which the entity textual `description` is expressed.", +"type": "string" +}, +"locations": { +"description": "The location information for the detected entity. Multiple `LocationInfo` elements can be present because one location may indicate the location of the scene in the image, and another location may indicate the location of the place where the image was taken. Location information is usually present for landmarks.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1LocationInfo" +}, +"type": "array" +}, +"mid": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"properties": { +"description": "Some entities may have optional user-supplied `Property` (name/value) fields, such a score or string that qualifies the entity.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Property" +}, +"type": "array" +}, +"score": { +"description": "Overall score of the result. Range [0, 1].", +"format": "float", +"type": "number" +}, +"topicality": { +"description": "The relevancy of the ICA (Image Content Annotation) label to the image. For example, the relevancy of \"tower\" is likely higher to an image containing the detected \"Eiffel Tower\" than to an image containing a detected distant towering building, even though the confidence that there is a tower in each image may be the same. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1FaceAnnotation": { +"description": "A face annotation object contains the results of face detection.", +"id": "GoogleCloudVisionV1p2beta1FaceAnnotation", +"properties": { +"angerLikelihood": { +"description": "Anger likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"blurredLikelihood": { +"description": "Blurred likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "The bounding polygon around the face. The coordinates of the bounding box are in the original image's scale. The bounding box is computed to \"frame\" the face in accordance with human expectations. It is based on the landmarker results. Note that one or more x and/or y coordinates may not be generated in the `BoundingPoly` (the polygon will be unbounded) if only a partial face appears in the image to be annotated." +}, +"detectionConfidence": { +"description": "Detection confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"fdBoundingPoly": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "The `fd_bounding_poly` bounding polygon is tighter than the `boundingPoly`, and encloses only the skin part of the face. Typically, it is used to eliminate the face from any image analysis that detects the \"amount of skin\" visible in an image. It is not based on the landmarker results, only on the initial face detection, hence the fd (face detection) prefix." +}, +"headwearLikelihood": { +"description": "Headwear likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"joyLikelihood": { +"description": "Joy likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"landmarkingConfidence": { +"description": "Face landmarking confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"landmarks": { +"description": "Detected face landmarks.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1FaceAnnotationLandmark" +}, +"type": "array" +}, +"panAngle": { +"description": "Yaw angle, which indicates the leftward/rightward angle that the face is pointing relative to the vertical plane perpendicular to the image. Range [-180,180].", +"format": "float", +"type": "number" +}, +"rollAngle": { +"description": "Roll angle, which indicates the amount of clockwise/anti-clockwise rotation of the face relative to the image vertical about the axis perpendicular to the face. Range [-180,180].", +"format": "float", +"type": "number" +}, +"sorrowLikelihood": { +"description": "Sorrow likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"surpriseLikelihood": { +"description": "Surprise likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"tiltAngle": { +"description": "Pitch angle, which indicates the upwards/downwards angle that the face is pointing relative to the image's horizontal plane. Range [-180,180].", +"format": "float", +"type": "number" +}, +"underExposedLikelihood": { +"description": "Under-exposed likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1FaceAnnotationLandmark": { +"description": "A face-specific landmark (for example, a face feature). Landmark positions may fall outside the bounds of the image if the face is near one or more edges of the image. Therefore it is NOT guaranteed that `0 <= x < width` or `0 <= y < height`.", +"id": "GoogleCloudVisionV1p2beta1FaceAnnotationLandmark", +"properties": { +"position": { +"$ref": "GoogleCloudVisionV1p2beta1Position", +"description": "Face landmark position." +}, +"type": { +"description": "Face landmark type.", +"enum": [ +"UNKNOWN_LANDMARK", +"LEFT_EYE", +"RIGHT_EYE", +"LEFT_OF_LEFT_EYEBROW", +"RIGHT_OF_LEFT_EYEBROW", +"LEFT_OF_RIGHT_EYEBROW", +"RIGHT_OF_RIGHT_EYEBROW", +"MIDPOINT_BETWEEN_EYES", +"NOSE_TIP", +"UPPER_LIP", +"LOWER_LIP", +"MOUTH_LEFT", +"MOUTH_RIGHT", +"MOUTH_CENTER", +"NOSE_BOTTOM_RIGHT", +"NOSE_BOTTOM_LEFT", +"NOSE_BOTTOM_CENTER", +"LEFT_EYE_TOP_BOUNDARY", +"LEFT_EYE_RIGHT_CORNER", +"LEFT_EYE_BOTTOM_BOUNDARY", +"LEFT_EYE_LEFT_CORNER", +"RIGHT_EYE_TOP_BOUNDARY", +"RIGHT_EYE_RIGHT_CORNER", +"RIGHT_EYE_BOTTOM_BOUNDARY", +"RIGHT_EYE_LEFT_CORNER", +"LEFT_EYEBROW_UPPER_MIDPOINT", +"RIGHT_EYEBROW_UPPER_MIDPOINT", +"LEFT_EAR_TRAGION", +"RIGHT_EAR_TRAGION", +"LEFT_EYE_PUPIL", +"RIGHT_EYE_PUPIL", +"FOREHEAD_GLABELLA", +"CHIN_GNATHION", +"CHIN_LEFT_GONION", +"CHIN_RIGHT_GONION", +"LEFT_CHEEK_CENTER", +"RIGHT_CHEEK_CENTER" +], +"enumDescriptions": [ +"Unknown face landmark detected. Should not be filled.", +"Left eye.", +"Right eye.", +"Left of left eyebrow.", +"Right of left eyebrow.", +"Left of right eyebrow.", +"Right of right eyebrow.", +"Midpoint between eyes.", +"Nose tip.", +"Upper lip.", +"Lower lip.", +"Mouth left.", +"Mouth right.", +"Mouth center.", +"Nose, bottom right.", +"Nose, bottom left.", +"Nose, bottom center.", +"Left eye, top boundary.", +"Left eye, right corner.", +"Left eye, bottom boundary.", +"Left eye, left corner.", +"Right eye, top boundary.", +"Right eye, right corner.", +"Right eye, bottom boundary.", +"Right eye, left corner.", +"Left eyebrow, upper midpoint.", +"Right eyebrow, upper midpoint.", +"Left ear tragion.", +"Right ear tragion.", +"Left eye pupil.", +"Right eye pupil.", +"Forehead glabella.", +"Chin gnathion.", +"Chin left gonion.", +"Chin right gonion.", +"Left cheek center.", +"Right cheek center." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1GcsDestination": { +"description": "The Google Cloud Storage location where the output will be written to.", +"id": "GoogleCloudVisionV1p2beta1GcsDestination", +"properties": { +"uri": { +"description": "Google Cloud Storage URI prefix where the results will be stored. Results will be in JSON format and preceded by its corresponding input URI prefix. This field can either represent a gcs file prefix or gcs directory. In either case, the uri should be unique because in order to get all of the output files, you will need to do a wildcard gcs search on the uri prefix you provide. Examples: * File Prefix: gs://bucket-name/here/filenameprefix The output files will be created in gs://bucket-name/here/ and the names of the output files will begin with \"filenameprefix\". * Directory Prefix: gs://bucket-name/some/location/ The output files will be created in gs://bucket-name/some/location/ and the names of the output files could be anything because there was no filename prefix specified. If multiple outputs, each response is still AnnotateFileResponse, each of which contains some subset of the full list of AnnotateImageResponse. Multiple outputs can happen if, for example, the output JSON is too large and overflows into multiple sharded files.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1GcsSource": { +"description": "The Google Cloud Storage location where the input will be read from.", +"id": "GoogleCloudVisionV1p2beta1GcsSource", +"properties": { +"uri": { +"description": "Google Cloud Storage URI for the input file. This must only be a Google Cloud Storage object. Wildcards are not currently supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1ImageAnnotationContext": { +"description": "If an image was produced from a file (e.g. a PDF), this message gives information about the source of that image.", +"id": "GoogleCloudVisionV1p2beta1ImageAnnotationContext", +"properties": { +"pageNumber": { +"description": "If the file was a PDF or TIFF, this field gives the page number within the file used to produce the image.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "The URI of the file used to produce the image.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1ImageProperties": { +"description": "Stores image properties, such as dominant colors.", +"id": "GoogleCloudVisionV1p2beta1ImageProperties", +"properties": { +"dominantColors": { +"$ref": "GoogleCloudVisionV1p2beta1DominantColorsAnnotation", +"description": "If present, dominant colors completed successfully." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1InputConfig": { +"description": "The desired input location and metadata.", +"id": "GoogleCloudVisionV1p2beta1InputConfig", +"properties": { +"content": { +"description": "File content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64. Currently, this field only works for BatchAnnotateFiles requests. It does not work for AsyncBatchAnnotateFiles requests.", +"format": "byte", +"type": "string" +}, +"gcsSource": { +"$ref": "GoogleCloudVisionV1p2beta1GcsSource", +"description": "The Google Cloud Storage location to read the input from." +}, +"mimeType": { +"description": "The type of the file. Currently only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. Wildcards are not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation": { +"description": "Set of detected objects with bounding boxes.", +"id": "GoogleCloudVisionV1p2beta1LocalizedObjectAnnotation", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "Image region to which this object belongs. This must be populated." +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1LocationInfo": { +"description": "Detected entity location information.", +"id": "GoogleCloudVisionV1p2beta1LocationInfo", +"properties": { +"latLng": { +"$ref": "LatLng", +"description": "lat/long location coordinates." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1NormalizedVertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.", +"id": "GoogleCloudVisionV1p2beta1NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1OperationMetadata": { +"description": "Contains metadata for the BatchAnnotateImages operation.", +"id": "GoogleCloudVisionV1p2beta1OperationMetadata", +"properties": { +"createTime": { +"description": "The time when the batch request was received.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Current state of the batch operation.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATED", +"RUNNING", +"DONE", +"CANCELLED" +], +"enumDescriptions": [ +"Invalid.", +"Request is received.", +"Request is actively being processed.", +"The batch processing is done.", +"The batch processing was cancelled." +], +"type": "string" +}, +"updateTime": { +"description": "The time when the operation result was last updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1OutputConfig": { +"description": "The desired output location and metadata.", +"id": "GoogleCloudVisionV1p2beta1OutputConfig", +"properties": { +"batchSize": { +"description": "The max number of response protos to put into each output JSON file on Google Cloud Storage. The valid range is [1, 100]. If not specified, the default value is 20. For example, for one pdf file with 100 pages, 100 response protos will be generated. If `batch_size` = 20, then 5 json files each containing 20 response protos will be written under the prefix `gcs_destination`.`uri`. Currently, batch_size only applies to GcsDestination, with potential future support for other output configurations.", +"format": "int32", +"type": "integer" +}, +"gcsDestination": { +"$ref": "GoogleCloudVisionV1p2beta1GcsDestination", +"description": "The Google Cloud Storage location to write the output(s) to." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1Page": { +"description": "Detected page from OCR.", +"id": "GoogleCloudVisionV1p2beta1Page", +"properties": { +"blocks": { +"description": "List of blocks of text, images etc on this page.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Block" +}, +"type": "array" +}, +"confidence": { +"description": "Confidence of the OCR results on the page. Range [0, 1].", +"format": "float", +"type": "number" +}, +"height": { +"description": "Page height. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +}, +"property": { +"$ref": "GoogleCloudVisionV1p2beta1TextAnnotationTextProperty", +"description": "Additional information detected on the page." +}, +"width": { +"description": "Page width. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1Paragraph": { +"description": "Structural unit of text representing a number of words in certain order.", +"id": "GoogleCloudVisionV1p2beta1Paragraph", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "The bounding box for the paragraph. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the paragraph. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p2beta1TextAnnotationTextProperty", +"description": "Additional information detected for the paragraph." +}, +"words": { +"description": "List of all words in this paragraph.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Word" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1Position": { +"description": "A 3D position in the image, used primarily for Face detection landmarks. A valid Position must have both x and y coordinates. The position coordinates are in the same scale as the original image.", +"id": "GoogleCloudVisionV1p2beta1Position", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +}, +"z": { +"description": "Z coordinate (or depth).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1Product": { +"description": "A Product contains ReferenceImages.", +"id": "GoogleCloudVisionV1p2beta1Product", +"properties": { +"description": { +"description": "User-provided metadata to be stored with this product. Must be at most 4096 characters long.", +"type": "string" +}, +"displayName": { +"description": "The user-provided name for this Product. Must not be empty. Must be at most 4096 characters long.", +"type": "string" +}, +"name": { +"description": "The resource name of the product. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This field is ignored when creating a product.", +"type": "string" +}, +"productCategory": { +"description": "Immutable. The category for the product identified by the reference image. This should be one of \"homegoods-v2\", \"apparel-v2\", \"toys-v2\", \"packagedgoods-v1\" or \"general-v1\". The legacy categories \"homegoods\", \"apparel\", and \"toys\" are still supported, but these should not be used for new products.", +"type": "string" +}, +"productLabels": { +"description": "Key-value pairs that can be attached to a product. At query time, constraints can be specified based on the product_labels. Note that integer values can be provided as strings, e.g. \"1199\". Only strings with integer values can match a range-based restriction which is to be supported soon. Multiple values can be assigned to the same key. One product may have up to 500 product_labels. Notice that the total number of distinct product_labels over all products in one ProductSet cannot exceed 1M, otherwise the product search pipeline will refuse to work for that ProductSet.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1ProductKeyValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1ProductKeyValue": { +"description": "A product label represented as a key-value pair.", +"id": "GoogleCloudVisionV1p2beta1ProductKeyValue", +"properties": { +"key": { +"description": "The key of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +}, +"value": { +"description": "The value of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1ProductSearchResults": { +"description": "Results for a product search request.", +"id": "GoogleCloudVisionV1p2beta1ProductSearchResults", +"properties": { +"indexTime": { +"description": "Timestamp of the index which provided these results. Products added to the product set and products removed from the product set after this time are not reflected in the current results.", +"format": "google-datetime", +"type": "string" +}, +"productGroupedResults": { +"description": "List of results grouped by products detected in the query image. Each entry corresponds to one bounding polygon in the query image, and contains the matching products specific to that region. There may be duplicate product matches in the union of all the per-product results.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1ProductSearchResultsResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult": { +"description": "Information about the products similar to a single product in a query image.", +"id": "GoogleCloudVisionV1p2beta1ProductSearchResultsGroupedResult", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "The bounding polygon around the product detected in the query image." +}, +"objectAnnotations": { +"description": "List of generic predictions for the object in the bounding box.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1ProductSearchResultsResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation": { +"description": "Prediction for what the object in the bounding box is.", +"id": "GoogleCloudVisionV1p2beta1ProductSearchResultsObjectAnnotation", +"properties": { +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1ProductSearchResultsResult": { +"description": "Information about a product.", +"id": "GoogleCloudVisionV1p2beta1ProductSearchResultsResult", +"properties": { +"image": { +"description": "The resource name of the image from the product that is the closest match to the query.", +"type": "string" +}, +"product": { +"$ref": "GoogleCloudVisionV1p2beta1Product", +"description": "The Product." +}, +"score": { +"description": "A confidence level on the match, ranging from 0 (no confidence) to 1 (full confidence).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1Property": { +"description": "A `Property` consists of a user-supplied name/value pair.", +"id": "GoogleCloudVisionV1p2beta1Property", +"properties": { +"name": { +"description": "Name of the property.", +"type": "string" +}, +"uint64Value": { +"description": "Value of numeric properties.", +"format": "uint64", +"type": "string" +}, +"value": { +"description": "Value of the property.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1SafeSearchAnnotation": { +"description": "Set of features pertaining to the image, computed by computer vision methods over safe-search verticals (for example, adult, spoof, medical, violence).", +"id": "GoogleCloudVisionV1p2beta1SafeSearchAnnotation", +"properties": { +"adult": { +"description": "Represents the adult content likelihood for the image. Adult content may contain elements such as nudity, pornographic images or cartoons, or sexual activities.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"medical": { +"description": "Likelihood that this is a medical image.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"racy": { +"description": "Likelihood that the request image contains racy content. Racy content may include (but is not limited to) skimpy or sheer clothing, strategically covered nudity, lewd or provocative poses, or close-ups of sensitive body areas.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"spoof": { +"description": "Spoof likelihood. The likelihood that an modification was made to the image's canonical version to make it appear funny or offensive.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"violence": { +"description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1Symbol": { +"description": "A single symbol representation.", +"id": "GoogleCloudVisionV1p2beta1Symbol", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "The bounding box for the symbol. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the symbol. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p2beta1TextAnnotationTextProperty", +"description": "Additional information detected for the symbol." +}, +"text": { +"description": "The actual UTF-8 representation of the symbol.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1TextAnnotation": { +"description": "TextAnnotation contains a structured representation of OCR extracted text. The hierarchy of an OCR extracted text structure is like this: TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol Each structural component, starting from Page, may further have their own properties. Properties describe detected languages, breaks etc.. Please refer to the TextAnnotation.TextProperty message definition below for more detail.", +"id": "GoogleCloudVisionV1p2beta1TextAnnotation", +"properties": { +"pages": { +"description": "List of pages detected by OCR.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Page" +}, +"type": "array" +}, +"text": { +"description": "UTF-8 text detected on the pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak": { +"description": "Detected start or end of a structural component.", +"id": "GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak", +"properties": { +"isPrefix": { +"description": "True if break prepends the element.", +"type": "boolean" +}, +"type": { +"description": "Detected break type.", +"enum": [ +"UNKNOWN", +"SPACE", +"SURE_SPACE", +"EOL_SURE_SPACE", +"HYPHEN", +"LINE_BREAK" +], +"enumDescriptions": [ +"Unknown break label type.", +"Regular space.", +"Sure space (very wide).", +"Line-wrapping break.", +"End-line hyphen that is not present in text; does not co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.", +"Line break that ends a paragraph." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage": { +"description": "Detected language for a structural component.", +"id": "GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage", +"properties": { +"confidence": { +"description": "Confidence of detected language. Range [0, 1].", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1TextAnnotationTextProperty": { +"description": "Additional information detected on the structural component.", +"id": "GoogleCloudVisionV1p2beta1TextAnnotationTextProperty", +"properties": { +"detectedBreak": { +"$ref": "GoogleCloudVisionV1p2beta1TextAnnotationDetectedBreak", +"description": "Detected start or end of a text segment." +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1TextAnnotationDetectedLanguage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1Vertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image.", +"id": "GoogleCloudVisionV1p2beta1Vertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "int32", +"type": "integer" +}, +"y": { +"description": "Y coordinate.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1WebDetection": { +"description": "Relevant information for the image from the Internet.", +"id": "GoogleCloudVisionV1p2beta1WebDetection", +"properties": { +"bestGuessLabels": { +"description": "The service's best guess as to the topic of the request image. Inferred from similar images on the open web.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetectionWebLabel" +}, +"type": "array" +}, +"fullMatchingImages": { +"description": "Fully matching images from the Internet. Can include resized copies of the query image.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetectionWebImage" +}, +"type": "array" +}, +"pagesWithMatchingImages": { +"description": "Web pages containing the matching images from the Internet.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetectionWebPage" +}, +"type": "array" +}, +"partialMatchingImages": { +"description": "Partial matching images from the Internet. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetectionWebImage" +}, +"type": "array" +}, +"visuallySimilarImages": { +"description": "The visually similar image results.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetectionWebImage" +}, +"type": "array" +}, +"webEntities": { +"description": "Deduced entities from similar images on the Internet.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetectionWebEntity" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1WebDetectionWebEntity": { +"description": "Entity deduced from similar images on the Internet.", +"id": "GoogleCloudVisionV1p2beta1WebDetectionWebEntity", +"properties": { +"description": { +"description": "Canonical description of the entity, in English.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID.", +"type": "string" +}, +"score": { +"description": "Overall relevancy score for the entity. Not normalized and not comparable across different image queries.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1WebDetectionWebImage": { +"description": "Metadata for online images.", +"id": "GoogleCloudVisionV1p2beta1WebDetectionWebImage", +"properties": { +"score": { +"description": "(Deprecated) Overall relevancy score for the image.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result image URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1WebDetectionWebLabel": { +"description": "Label to provide extra metadata for the web detection.", +"id": "GoogleCloudVisionV1p2beta1WebDetectionWebLabel", +"properties": { +"label": { +"description": "Label for extra metadata.", +"type": "string" +}, +"languageCode": { +"description": "The BCP-47 language code for `label`, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1WebDetectionWebPage": { +"description": "Metadata for web pages.", +"id": "GoogleCloudVisionV1p2beta1WebDetectionWebPage", +"properties": { +"fullMatchingImages": { +"description": "Fully matching images on the page. Can include resized copies of the query image.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetectionWebImage" +}, +"type": "array" +}, +"pageTitle": { +"description": "Title for the web page, may contain HTML markups.", +"type": "string" +}, +"partialMatchingImages": { +"description": "Partial matching images on the page. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetectionWebImage" +}, +"type": "array" +}, +"score": { +"description": "(Deprecated) Overall relevancy score for the web page.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result web page URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1Word": { +"description": "A word representation.", +"id": "GoogleCloudVisionV1p2beta1Word", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"description": "The bounding box for the word. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the word. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p2beta1TextAnnotationTextProperty", +"description": "Additional information detected for the word." +}, +"symbols": { +"description": "List of symbols in the word. The order of the symbols follows the natural reading order.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Symbol" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1AnnotateFileResponse": { +"description": "Response to a single file annotation request. A file may contain one or more images, which individually have their own responses.", +"id": "GoogleCloudVisionV1p3beta1AnnotateFileResponse", +"properties": { +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the failed request. The `responses` field will not be set in this case." +}, +"inputConfig": { +"$ref": "GoogleCloudVisionV1p3beta1InputConfig", +"description": "Information about the file for which this response is generated." +}, +"responses": { +"description": "Individual responses to images found within the file. This field will be empty if the `error` field is set.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1AnnotateImageResponse" +}, +"type": "array" +}, +"totalPages": { +"description": "This field gives the total number of pages in the file.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1AnnotateImageResponse": { +"description": "Response to an image annotation request.", +"id": "GoogleCloudVisionV1p3beta1AnnotateImageResponse", +"properties": { +"context": { +"$ref": "GoogleCloudVisionV1p3beta1ImageAnnotationContext", +"description": "If present, contextual information is needed to understand where this image comes from." +}, +"cropHintsAnnotation": { +"$ref": "GoogleCloudVisionV1p3beta1CropHintsAnnotation", +"description": "If present, crop hints have completed successfully." +}, +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the operation. Note that filled-in image annotations are guaranteed to be correct, even when `error` is set." +}, +"faceAnnotations": { +"description": "If present, face detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1FaceAnnotation" +}, +"type": "array" +}, +"fullTextAnnotation": { +"$ref": "GoogleCloudVisionV1p3beta1TextAnnotation", +"description": "If present, text (OCR) detection or document (OCR) text detection has completed successfully. This annotation provides the structural hierarchy for the OCR detected text." +}, +"imagePropertiesAnnotation": { +"$ref": "GoogleCloudVisionV1p3beta1ImageProperties", +"description": "If present, image properties were extracted successfully." +}, +"labelAnnotations": { +"description": "If present, label detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1EntityAnnotation" +}, +"type": "array" +}, +"landmarkAnnotations": { +"description": "If present, landmark detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1EntityAnnotation" +}, +"type": "array" +}, +"localizedObjectAnnotations": { +"description": "If present, localized object detection has completed successfully. This will be sorted descending by confidence score.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation" +}, +"type": "array" +}, +"logoAnnotations": { +"description": "If present, logo detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1EntityAnnotation" +}, +"type": "array" +}, +"productSearchResults": { +"$ref": "GoogleCloudVisionV1p3beta1ProductSearchResults", +"description": "If present, product search has completed successfully." +}, +"safeSearchAnnotation": { +"$ref": "GoogleCloudVisionV1p3beta1SafeSearchAnnotation", +"description": "If present, safe-search annotation has completed successfully." +}, +"textAnnotations": { +"description": "If present, text (OCR) detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1EntityAnnotation" +}, +"type": "array" +}, +"webDetection": { +"$ref": "GoogleCloudVisionV1p3beta1WebDetection", +"description": "If present, web detection has completed successfully." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse": { +"description": "The response for a single offline file annotation request.", +"id": "GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse", +"properties": { +"outputConfig": { +"$ref": "GoogleCloudVisionV1p3beta1OutputConfig", +"description": "The output location and metadata from AsyncAnnotateFileRequest." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse": { +"description": "Response to an async batch file annotation request.", +"id": "GoogleCloudVisionV1p3beta1AsyncBatchAnnotateFilesResponse", +"properties": { +"responses": { +"description": "The list of file annotation responses, one for each request in AsyncBatchAnnotateFilesRequest.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1AsyncAnnotateFileResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1BatchOperationMetadata": { +"description": "Metadata for the batch operations such as the current state. This is included in the `metadata` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVisionV1p3beta1BatchOperationMetadata", +"properties": { +"endTime": { +"description": "The time when the batch request is finished and google.longrunning.Operation.done is set to true.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the batch operation.", +"enum": [ +"STATE_UNSPECIFIED", +"PROCESSING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Invalid.", +"Request is actively being processed.", +"The request is done and at least one item has been successfully processed.", +"The request is done and no item has been successfully processed.", +"The request is done after the longrunning.Operations.CancelOperation has been called by the user. Any records that were processed before the cancel command are output as specified in the request." +], +"type": "string" +}, +"submitTime": { +"description": "The time when the batch request was submitted to the server.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1Block": { +"description": "Logical element on the page.", +"id": "GoogleCloudVisionV1p3beta1Block", +"properties": { +"blockType": { +"description": "Detected block type (text, image etc) for this block.", +"enum": [ +"UNKNOWN", +"TEXT", +"TABLE", +"PICTURE", +"RULER", +"BARCODE" +], +"enumDescriptions": [ +"Unknown block type.", +"Regular text block.", +"Table block.", +"Image block.", +"Horizontal/vertical line box.", +"Barcode block." +], +"type": "string" +}, +"boundingBox": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "The bounding box for the block. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results on the block. Range [0, 1].", +"format": "float", +"type": "number" +}, +"paragraphs": { +"description": "List of paragraphs in this block (if this blocks is of type text).", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1Paragraph" +}, +"type": "array" +}, +"property": { +"$ref": "GoogleCloudVisionV1p3beta1TextAnnotationTextProperty", +"description": "Additional information detected for the block." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1BoundingPoly": { +"description": "A bounding polygon for the detected image annotation.", +"id": "GoogleCloudVisionV1p3beta1BoundingPoly", +"properties": { +"normalizedVertices": { +"description": "The bounding polygon normalized vertices.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1NormalizedVertex" +}, +"type": "array" +}, +"vertices": { +"description": "The bounding polygon vertices.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1Vertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ColorInfo": { +"description": "Color information consists of RGB channels, score, and the fraction of the image that the color occupies in the image.", +"id": "GoogleCloudVisionV1p3beta1ColorInfo", +"properties": { +"color": { +"$ref": "Color", +"description": "RGB components of the color." +}, +"pixelFraction": { +"description": "The fraction of pixels the color occupies in the image. Value in range [0, 1].", +"format": "float", +"type": "number" +}, +"score": { +"description": "Image-specific score for this color. Value in range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1CropHint": { +"description": "Single crop hint that is used to generate a new crop when serving an image.", +"id": "GoogleCloudVisionV1p3beta1CropHint", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "The bounding polygon for the crop region. The coordinates of the bounding box are in the original image's scale." +}, +"confidence": { +"description": "Confidence of this being a salient region. Range [0, 1].", +"format": "float", +"type": "number" +}, +"importanceFraction": { +"description": "Fraction of importance of this salient region with respect to the original image.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1CropHintsAnnotation": { +"description": "Set of crop hints that are used to generate new crops when serving images.", +"id": "GoogleCloudVisionV1p3beta1CropHintsAnnotation", +"properties": { +"cropHints": { +"description": "Crop hint results.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1CropHint" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1DominantColorsAnnotation": { +"description": "Set of dominant colors and their corresponding scores.", +"id": "GoogleCloudVisionV1p3beta1DominantColorsAnnotation", +"properties": { +"colors": { +"description": "RGB color values with their score and pixel fraction.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1ColorInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1EntityAnnotation": { +"description": "Set of detected entity features.", +"id": "GoogleCloudVisionV1p3beta1EntityAnnotation", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." +}, +"confidence": { +"deprecated": true, +"description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", +"format": "float", +"type": "number" +}, +"description": { +"description": "Entity textual description, expressed in its `locale` language.", +"type": "string" +}, +"locale": { +"description": "The language code for the locale in which the entity textual `description` is expressed.", +"type": "string" +}, +"locations": { +"description": "The location information for the detected entity. Multiple `LocationInfo` elements can be present because one location may indicate the location of the scene in the image, and another location may indicate the location of the place where the image was taken. Location information is usually present for landmarks.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1LocationInfo" +}, +"type": "array" +}, +"mid": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"properties": { +"description": "Some entities may have optional user-supplied `Property` (name/value) fields, such a score or string that qualifies the entity.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1Property" +}, +"type": "array" +}, +"score": { +"description": "Overall score of the result. Range [0, 1].", +"format": "float", +"type": "number" +}, +"topicality": { +"description": "The relevancy of the ICA (Image Content Annotation) label to the image. For example, the relevancy of \"tower\" is likely higher to an image containing the detected \"Eiffel Tower\" than to an image containing a detected distant towering building, even though the confidence that there is a tower in each image may be the same. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1FaceAnnotation": { +"description": "A face annotation object contains the results of face detection.", +"id": "GoogleCloudVisionV1p3beta1FaceAnnotation", +"properties": { +"angerLikelihood": { +"description": "Anger likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"blurredLikelihood": { +"description": "Blurred likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "The bounding polygon around the face. The coordinates of the bounding box are in the original image's scale. The bounding box is computed to \"frame\" the face in accordance with human expectations. It is based on the landmarker results. Note that one or more x and/or y coordinates may not be generated in the `BoundingPoly` (the polygon will be unbounded) if only a partial face appears in the image to be annotated." +}, +"detectionConfidence": { +"description": "Detection confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"fdBoundingPoly": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "The `fd_bounding_poly` bounding polygon is tighter than the `boundingPoly`, and encloses only the skin part of the face. Typically, it is used to eliminate the face from any image analysis that detects the \"amount of skin\" visible in an image. It is not based on the landmarker results, only on the initial face detection, hence the fd (face detection) prefix." +}, +"headwearLikelihood": { +"description": "Headwear likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"joyLikelihood": { +"description": "Joy likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"landmarkingConfidence": { +"description": "Face landmarking confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"landmarks": { +"description": "Detected face landmarks.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1FaceAnnotationLandmark" +}, +"type": "array" +}, +"panAngle": { +"description": "Yaw angle, which indicates the leftward/rightward angle that the face is pointing relative to the vertical plane perpendicular to the image. Range [-180,180].", +"format": "float", +"type": "number" +}, +"rollAngle": { +"description": "Roll angle, which indicates the amount of clockwise/anti-clockwise rotation of the face relative to the image vertical about the axis perpendicular to the face. Range [-180,180].", +"format": "float", +"type": "number" +}, +"sorrowLikelihood": { +"description": "Sorrow likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"surpriseLikelihood": { +"description": "Surprise likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"tiltAngle": { +"description": "Pitch angle, which indicates the upwards/downwards angle that the face is pointing relative to the image's horizontal plane. Range [-180,180].", +"format": "float", +"type": "number" +}, +"underExposedLikelihood": { +"description": "Under-exposed likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1FaceAnnotationLandmark": { +"description": "A face-specific landmark (for example, a face feature). Landmark positions may fall outside the bounds of the image if the face is near one or more edges of the image. Therefore it is NOT guaranteed that `0 <= x < width` or `0 <= y < height`.", +"id": "GoogleCloudVisionV1p3beta1FaceAnnotationLandmark", +"properties": { +"position": { +"$ref": "GoogleCloudVisionV1p3beta1Position", +"description": "Face landmark position." +}, +"type": { +"description": "Face landmark type.", +"enum": [ +"UNKNOWN_LANDMARK", +"LEFT_EYE", +"RIGHT_EYE", +"LEFT_OF_LEFT_EYEBROW", +"RIGHT_OF_LEFT_EYEBROW", +"LEFT_OF_RIGHT_EYEBROW", +"RIGHT_OF_RIGHT_EYEBROW", +"MIDPOINT_BETWEEN_EYES", +"NOSE_TIP", +"UPPER_LIP", +"LOWER_LIP", +"MOUTH_LEFT", +"MOUTH_RIGHT", +"MOUTH_CENTER", +"NOSE_BOTTOM_RIGHT", +"NOSE_BOTTOM_LEFT", +"NOSE_BOTTOM_CENTER", +"LEFT_EYE_TOP_BOUNDARY", +"LEFT_EYE_RIGHT_CORNER", +"LEFT_EYE_BOTTOM_BOUNDARY", +"LEFT_EYE_LEFT_CORNER", +"RIGHT_EYE_TOP_BOUNDARY", +"RIGHT_EYE_RIGHT_CORNER", +"RIGHT_EYE_BOTTOM_BOUNDARY", +"RIGHT_EYE_LEFT_CORNER", +"LEFT_EYEBROW_UPPER_MIDPOINT", +"RIGHT_EYEBROW_UPPER_MIDPOINT", +"LEFT_EAR_TRAGION", +"RIGHT_EAR_TRAGION", +"LEFT_EYE_PUPIL", +"RIGHT_EYE_PUPIL", +"FOREHEAD_GLABELLA", +"CHIN_GNATHION", +"CHIN_LEFT_GONION", +"CHIN_RIGHT_GONION", +"LEFT_CHEEK_CENTER", +"RIGHT_CHEEK_CENTER" +], +"enumDescriptions": [ +"Unknown face landmark detected. Should not be filled.", +"Left eye.", +"Right eye.", +"Left of left eyebrow.", +"Right of left eyebrow.", +"Left of right eyebrow.", +"Right of right eyebrow.", +"Midpoint between eyes.", +"Nose tip.", +"Upper lip.", +"Lower lip.", +"Mouth left.", +"Mouth right.", +"Mouth center.", +"Nose, bottom right.", +"Nose, bottom left.", +"Nose, bottom center.", +"Left eye, top boundary.", +"Left eye, right corner.", +"Left eye, bottom boundary.", +"Left eye, left corner.", +"Right eye, top boundary.", +"Right eye, right corner.", +"Right eye, bottom boundary.", +"Right eye, left corner.", +"Left eyebrow, upper midpoint.", +"Right eyebrow, upper midpoint.", +"Left ear tragion.", +"Right ear tragion.", +"Left eye pupil.", +"Right eye pupil.", +"Forehead glabella.", +"Chin gnathion.", +"Chin left gonion.", +"Chin right gonion.", +"Left cheek center.", +"Right cheek center." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1GcsDestination": { +"description": "The Google Cloud Storage location where the output will be written to.", +"id": "GoogleCloudVisionV1p3beta1GcsDestination", +"properties": { +"uri": { +"description": "Google Cloud Storage URI prefix where the results will be stored. Results will be in JSON format and preceded by its corresponding input URI prefix. This field can either represent a gcs file prefix or gcs directory. In either case, the uri should be unique because in order to get all of the output files, you will need to do a wildcard gcs search on the uri prefix you provide. Examples: * File Prefix: gs://bucket-name/here/filenameprefix The output files will be created in gs://bucket-name/here/ and the names of the output files will begin with \"filenameprefix\". * Directory Prefix: gs://bucket-name/some/location/ The output files will be created in gs://bucket-name/some/location/ and the names of the output files could be anything because there was no filename prefix specified. If multiple outputs, each response is still AnnotateFileResponse, each of which contains some subset of the full list of AnnotateImageResponse. Multiple outputs can happen if, for example, the output JSON is too large and overflows into multiple sharded files.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1GcsSource": { +"description": "The Google Cloud Storage location where the input will be read from.", +"id": "GoogleCloudVisionV1p3beta1GcsSource", +"properties": { +"uri": { +"description": "Google Cloud Storage URI for the input file. This must only be a Google Cloud Storage object. Wildcards are not currently supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ImageAnnotationContext": { +"description": "If an image was produced from a file (e.g. a PDF), this message gives information about the source of that image.", +"id": "GoogleCloudVisionV1p3beta1ImageAnnotationContext", +"properties": { +"pageNumber": { +"description": "If the file was a PDF or TIFF, this field gives the page number within the file used to produce the image.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "The URI of the file used to produce the image.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ImageProperties": { +"description": "Stores image properties, such as dominant colors.", +"id": "GoogleCloudVisionV1p3beta1ImageProperties", +"properties": { +"dominantColors": { +"$ref": "GoogleCloudVisionV1p3beta1DominantColorsAnnotation", +"description": "If present, dominant colors completed successfully." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ImportProductSetsResponse": { +"description": "Response message for the `ImportProductSets` method. This message is returned by the google.longrunning.Operations.GetOperation method in the returned google.longrunning.Operation.response field.", +"id": "GoogleCloudVisionV1p3beta1ImportProductSetsResponse", +"properties": { +"referenceImages": { +"description": "The list of reference_images that are imported successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1ReferenceImage" +}, +"type": "array" +}, +"statuses": { +"description": "The rpc status for each ImportProductSet request, including both successes and errors. The number of statuses here matches the number of lines in the csv file, and statuses[i] stores the success or failure status of processing the i-th line of the csv, starting from line 0.", +"items": { +"$ref": "Status" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1InputConfig": { +"description": "The desired input location and metadata.", +"id": "GoogleCloudVisionV1p3beta1InputConfig", +"properties": { +"content": { +"description": "File content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64. Currently, this field only works for BatchAnnotateFiles requests. It does not work for AsyncBatchAnnotateFiles requests.", +"format": "byte", +"type": "string" +}, +"gcsSource": { +"$ref": "GoogleCloudVisionV1p3beta1GcsSource", +"description": "The Google Cloud Storage location to read the input from." +}, +"mimeType": { +"description": "The type of the file. Currently only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. Wildcards are not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation": { +"description": "Set of detected objects with bounding boxes.", +"id": "GoogleCloudVisionV1p3beta1LocalizedObjectAnnotation", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "Image region to which this object belongs. This must be populated." +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1LocationInfo": { +"description": "Detected entity location information.", +"id": "GoogleCloudVisionV1p3beta1LocationInfo", +"properties": { +"latLng": { +"$ref": "LatLng", +"description": "lat/long location coordinates." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1NormalizedVertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.", +"id": "GoogleCloudVisionV1p3beta1NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1OperationMetadata": { +"description": "Contains metadata for the BatchAnnotateImages operation.", +"id": "GoogleCloudVisionV1p3beta1OperationMetadata", +"properties": { +"createTime": { +"description": "The time when the batch request was received.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Current state of the batch operation.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATED", +"RUNNING", +"DONE", +"CANCELLED" +], +"enumDescriptions": [ +"Invalid.", +"Request is received.", +"Request is actively being processed.", +"The batch processing is done.", +"The batch processing was cancelled." +], +"type": "string" +}, +"updateTime": { +"description": "The time when the operation result was last updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1OutputConfig": { +"description": "The desired output location and metadata.", +"id": "GoogleCloudVisionV1p3beta1OutputConfig", +"properties": { +"batchSize": { +"description": "The max number of response protos to put into each output JSON file on Google Cloud Storage. The valid range is [1, 100]. If not specified, the default value is 20. For example, for one pdf file with 100 pages, 100 response protos will be generated. If `batch_size` = 20, then 5 json files each containing 20 response protos will be written under the prefix `gcs_destination`.`uri`. Currently, batch_size only applies to GcsDestination, with potential future support for other output configurations.", +"format": "int32", +"type": "integer" +}, +"gcsDestination": { +"$ref": "GoogleCloudVisionV1p3beta1GcsDestination", +"description": "The Google Cloud Storage location to write the output(s) to." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1Page": { +"description": "Detected page from OCR.", +"id": "GoogleCloudVisionV1p3beta1Page", +"properties": { +"blocks": { +"description": "List of blocks of text, images etc on this page.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1Block" +}, +"type": "array" +}, +"confidence": { +"description": "Confidence of the OCR results on the page. Range [0, 1].", +"format": "float", +"type": "number" +}, +"height": { +"description": "Page height. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +}, +"property": { +"$ref": "GoogleCloudVisionV1p3beta1TextAnnotationTextProperty", +"description": "Additional information detected on the page." +}, +"width": { +"description": "Page width. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1Paragraph": { +"description": "Structural unit of text representing a number of words in certain order.", +"id": "GoogleCloudVisionV1p3beta1Paragraph", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "The bounding box for the paragraph. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the paragraph. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p3beta1TextAnnotationTextProperty", +"description": "Additional information detected for the paragraph." +}, +"words": { +"description": "List of all words in this paragraph.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1Word" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1Position": { +"description": "A 3D position in the image, used primarily for Face detection landmarks. A valid Position must have both x and y coordinates. The position coordinates are in the same scale as the original image.", +"id": "GoogleCloudVisionV1p3beta1Position", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +}, +"z": { +"description": "Z coordinate (or depth).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1Product": { +"description": "A Product contains ReferenceImages.", +"id": "GoogleCloudVisionV1p3beta1Product", +"properties": { +"description": { +"description": "User-provided metadata to be stored with this product. Must be at most 4096 characters long.", +"type": "string" +}, +"displayName": { +"description": "The user-provided name for this Product. Must not be empty. Must be at most 4096 characters long.", +"type": "string" +}, +"name": { +"description": "The resource name of the product. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This field is ignored when creating a product.", +"type": "string" +}, +"productCategory": { +"description": "Immutable. The category for the product identified by the reference image. This should be one of \"homegoods-v2\", \"apparel-v2\", \"toys-v2\", \"packagedgoods-v1\" or \"general-v1\". The legacy categories \"homegoods\", \"apparel\", and \"toys\" are still supported, but these should not be used for new products.", +"type": "string" +}, +"productLabels": { +"description": "Key-value pairs that can be attached to a product. At query time, constraints can be specified based on the product_labels. Note that integer values can be provided as strings, e.g. \"1199\". Only strings with integer values can match a range-based restriction which is to be supported soon. Multiple values can be assigned to the same key. One product may have up to 500 product_labels. Notice that the total number of distinct product_labels over all products in one ProductSet cannot exceed 1M, otherwise the product search pipeline will refuse to work for that ProductSet.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1ProductKeyValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ProductKeyValue": { +"description": "A product label represented as a key-value pair.", +"id": "GoogleCloudVisionV1p3beta1ProductKeyValue", +"properties": { +"key": { +"description": "The key of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +}, +"value": { +"description": "The value of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ProductSearchResults": { +"description": "Results for a product search request.", +"id": "GoogleCloudVisionV1p3beta1ProductSearchResults", +"properties": { +"indexTime": { +"description": "Timestamp of the index which provided these results. Products added to the product set and products removed from the product set after this time are not reflected in the current results.", +"format": "google-datetime", +"type": "string" +}, +"productGroupedResults": { +"description": "List of results grouped by products detected in the query image. Each entry corresponds to one bounding polygon in the query image, and contains the matching products specific to that region. There may be duplicate product matches in the union of all the per-product results.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1ProductSearchResultsResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult": { +"description": "Information about the products similar to a single product in a query image.", +"id": "GoogleCloudVisionV1p3beta1ProductSearchResultsGroupedResult", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "The bounding polygon around the product detected in the query image." +}, +"objectAnnotations": { +"description": "List of generic predictions for the object in the bounding box.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1ProductSearchResultsResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation": { +"description": "Prediction for what the object in the bounding box is.", +"id": "GoogleCloudVisionV1p3beta1ProductSearchResultsObjectAnnotation", +"properties": { +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ProductSearchResultsResult": { +"description": "Information about a product.", +"id": "GoogleCloudVisionV1p3beta1ProductSearchResultsResult", +"properties": { +"image": { +"description": "The resource name of the image from the product that is the closest match to the query.", +"type": "string" +}, +"product": { +"$ref": "GoogleCloudVisionV1p3beta1Product", +"description": "The Product." +}, +"score": { +"description": "A confidence level on the match, ranging from 0 (no confidence) to 1 (full confidence).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1Property": { +"description": "A `Property` consists of a user-supplied name/value pair.", +"id": "GoogleCloudVisionV1p3beta1Property", +"properties": { +"name": { +"description": "Name of the property.", +"type": "string" +}, +"uint64Value": { +"description": "Value of numeric properties.", +"format": "uint64", +"type": "string" +}, +"value": { +"description": "Value of the property.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1ReferenceImage": { +"description": "A `ReferenceImage` represents a product image and its associated metadata, such as bounding boxes.", +"id": "GoogleCloudVisionV1p3beta1ReferenceImage", +"properties": { +"boundingPolys": { +"description": "Optional. Bounding polygons around the areas of interest in the reference image. If this field is empty, the system will try to detect regions of interest. At most 10 bounding polygons will be used. The provided shape is converted into a non-rotated rectangle. Once converted, the small edge of the rectangle must be greater than or equal to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok; 1:5 is not).", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the reference image. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`. This field is ignored when creating a reference image.", +"type": "string" +}, +"uri": { +"description": "Required. The Google Cloud Storage URI of the reference image. The URI must start with `gs://`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1SafeSearchAnnotation": { +"description": "Set of features pertaining to the image, computed by computer vision methods over safe-search verticals (for example, adult, spoof, medical, violence).", +"id": "GoogleCloudVisionV1p3beta1SafeSearchAnnotation", +"properties": { +"adult": { +"description": "Represents the adult content likelihood for the image. Adult content may contain elements such as nudity, pornographic images or cartoons, or sexual activities.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"medical": { +"description": "Likelihood that this is a medical image.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"racy": { +"description": "Likelihood that the request image contains racy content. Racy content may include (but is not limited to) skimpy or sheer clothing, strategically covered nudity, lewd or provocative poses, or close-ups of sensitive body areas.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"spoof": { +"description": "Spoof likelihood. The likelihood that an modification was made to the image's canonical version to make it appear funny or offensive.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"violence": { +"description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1Symbol": { +"description": "A single symbol representation.", +"id": "GoogleCloudVisionV1p3beta1Symbol", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "The bounding box for the symbol. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the symbol. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p3beta1TextAnnotationTextProperty", +"description": "Additional information detected for the symbol." +}, +"text": { +"description": "The actual UTF-8 representation of the symbol.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1TextAnnotation": { +"description": "TextAnnotation contains a structured representation of OCR extracted text. The hierarchy of an OCR extracted text structure is like this: TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol Each structural component, starting from Page, may further have their own properties. Properties describe detected languages, breaks etc.. Please refer to the TextAnnotation.TextProperty message definition below for more detail.", +"id": "GoogleCloudVisionV1p3beta1TextAnnotation", +"properties": { +"pages": { +"description": "List of pages detected by OCR.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1Page" +}, +"type": "array" +}, +"text": { +"description": "UTF-8 text detected on the pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak": { +"description": "Detected start or end of a structural component.", +"id": "GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak", +"properties": { +"isPrefix": { +"description": "True if break prepends the element.", +"type": "boolean" +}, +"type": { +"description": "Detected break type.", +"enum": [ +"UNKNOWN", +"SPACE", +"SURE_SPACE", +"EOL_SURE_SPACE", +"HYPHEN", +"LINE_BREAK" +], +"enumDescriptions": [ +"Unknown break label type.", +"Regular space.", +"Sure space (very wide).", +"Line-wrapping break.", +"End-line hyphen that is not present in text; does not co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.", +"Line break that ends a paragraph." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage": { +"description": "Detected language for a structural component.", +"id": "GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage", +"properties": { +"confidence": { +"description": "Confidence of detected language. Range [0, 1].", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1TextAnnotationTextProperty": { +"description": "Additional information detected on the structural component.", +"id": "GoogleCloudVisionV1p3beta1TextAnnotationTextProperty", +"properties": { +"detectedBreak": { +"$ref": "GoogleCloudVisionV1p3beta1TextAnnotationDetectedBreak", +"description": "Detected start or end of a text segment." +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1TextAnnotationDetectedLanguage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1Vertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image.", +"id": "GoogleCloudVisionV1p3beta1Vertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "int32", +"type": "integer" +}, +"y": { +"description": "Y coordinate.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1WebDetection": { +"description": "Relevant information for the image from the Internet.", +"id": "GoogleCloudVisionV1p3beta1WebDetection", +"properties": { +"bestGuessLabels": { +"description": "The service's best guess as to the topic of the request image. Inferred from similar images on the open web.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1WebDetectionWebLabel" +}, +"type": "array" +}, +"fullMatchingImages": { +"description": "Fully matching images from the Internet. Can include resized copies of the query image.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1WebDetectionWebImage" +}, +"type": "array" +}, +"pagesWithMatchingImages": { +"description": "Web pages containing the matching images from the Internet.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1WebDetectionWebPage" +}, +"type": "array" +}, +"partialMatchingImages": { +"description": "Partial matching images from the Internet. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1WebDetectionWebImage" +}, +"type": "array" +}, +"visuallySimilarImages": { +"description": "The visually similar image results.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1WebDetectionWebImage" +}, +"type": "array" +}, +"webEntities": { +"description": "Deduced entities from similar images on the Internet.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1WebDetectionWebEntity" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1WebDetectionWebEntity": { +"description": "Entity deduced from similar images on the Internet.", +"id": "GoogleCloudVisionV1p3beta1WebDetectionWebEntity", +"properties": { +"description": { +"description": "Canonical description of the entity, in English.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID.", +"type": "string" +}, +"score": { +"description": "Overall relevancy score for the entity. Not normalized and not comparable across different image queries.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1WebDetectionWebImage": { +"description": "Metadata for online images.", +"id": "GoogleCloudVisionV1p3beta1WebDetectionWebImage", +"properties": { +"score": { +"description": "(Deprecated) Overall relevancy score for the image.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result image URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1WebDetectionWebLabel": { +"description": "Label to provide extra metadata for the web detection.", +"id": "GoogleCloudVisionV1p3beta1WebDetectionWebLabel", +"properties": { +"label": { +"description": "Label for extra metadata.", +"type": "string" +}, +"languageCode": { +"description": "The BCP-47 language code for `label`, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1WebDetectionWebPage": { +"description": "Metadata for web pages.", +"id": "GoogleCloudVisionV1p3beta1WebDetectionWebPage", +"properties": { +"fullMatchingImages": { +"description": "Fully matching images on the page. Can include resized copies of the query image.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1WebDetectionWebImage" +}, +"type": "array" +}, +"pageTitle": { +"description": "Title for the web page, may contain HTML markups.", +"type": "string" +}, +"partialMatchingImages": { +"description": "Partial matching images on the page. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1WebDetectionWebImage" +}, +"type": "array" +}, +"score": { +"description": "(Deprecated) Overall relevancy score for the web page.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result web page URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p3beta1Word": { +"description": "A word representation.", +"id": "GoogleCloudVisionV1p3beta1Word", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p3beta1BoundingPoly", +"description": "The bounding box for the word. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the word. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p3beta1TextAnnotationTextProperty", +"description": "Additional information detected for the word." +}, +"symbols": { +"description": "List of symbols in the word. The order of the symbols follows the natural reading order.", +"items": { +"$ref": "GoogleCloudVisionV1p3beta1Symbol" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1AnnotateFileResponse": { +"description": "Response to a single file annotation request. A file may contain one or more images, which individually have their own responses.", +"id": "GoogleCloudVisionV1p4beta1AnnotateFileResponse", +"properties": { +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the failed request. The `responses` field will not be set in this case." +}, +"inputConfig": { +"$ref": "GoogleCloudVisionV1p4beta1InputConfig", +"description": "Information about the file for which this response is generated." +}, +"responses": { +"description": "Individual responses to images found within the file. This field will be empty if the `error` field is set.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1AnnotateImageResponse" +}, +"type": "array" +}, +"totalPages": { +"description": "This field gives the total number of pages in the file.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1AnnotateImageResponse": { +"description": "Response to an image annotation request.", +"id": "GoogleCloudVisionV1p4beta1AnnotateImageResponse", +"properties": { +"context": { +"$ref": "GoogleCloudVisionV1p4beta1ImageAnnotationContext", +"description": "If present, contextual information is needed to understand where this image comes from." +}, +"cropHintsAnnotation": { +"$ref": "GoogleCloudVisionV1p4beta1CropHintsAnnotation", +"description": "If present, crop hints have completed successfully." +}, +"error": { +"$ref": "Status", +"description": "If set, represents the error message for the operation. Note that filled-in image annotations are guaranteed to be correct, even when `error` is set." +}, +"faceAnnotations": { +"description": "If present, face detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1FaceAnnotation" +}, +"type": "array" +}, +"fullTextAnnotation": { +"$ref": "GoogleCloudVisionV1p4beta1TextAnnotation", +"description": "If present, text (OCR) detection or document (OCR) text detection has completed successfully. This annotation provides the structural hierarchy for the OCR detected text." +}, +"imagePropertiesAnnotation": { +"$ref": "GoogleCloudVisionV1p4beta1ImageProperties", +"description": "If present, image properties were extracted successfully." +}, +"labelAnnotations": { +"description": "If present, label detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1EntityAnnotation" +}, +"type": "array" +}, +"landmarkAnnotations": { +"description": "If present, landmark detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1EntityAnnotation" +}, +"type": "array" +}, +"localizedObjectAnnotations": { +"description": "If present, localized object detection has completed successfully. This will be sorted descending by confidence score.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation" +}, +"type": "array" +}, +"logoAnnotations": { +"description": "If present, logo detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1EntityAnnotation" +}, +"type": "array" +}, +"productSearchResults": { +"$ref": "GoogleCloudVisionV1p4beta1ProductSearchResults", +"description": "If present, product search has completed successfully." +}, +"safeSearchAnnotation": { +"$ref": "GoogleCloudVisionV1p4beta1SafeSearchAnnotation", +"description": "If present, safe-search annotation has completed successfully." +}, +"textAnnotations": { +"description": "If present, text (OCR) detection has completed successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1EntityAnnotation" +}, +"type": "array" +}, +"webDetection": { +"$ref": "GoogleCloudVisionV1p4beta1WebDetection", +"description": "If present, web detection has completed successfully." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse": { +"description": "The response for a single offline file annotation request.", +"id": "GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse", +"properties": { +"outputConfig": { +"$ref": "GoogleCloudVisionV1p4beta1OutputConfig", +"description": "The output location and metadata from AsyncAnnotateFileRequest." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse": { +"description": "Response to an async batch file annotation request.", +"id": "GoogleCloudVisionV1p4beta1AsyncBatchAnnotateFilesResponse", +"properties": { +"responses": { +"description": "The list of file annotation responses, one for each request in AsyncBatchAnnotateFilesRequest.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1AsyncAnnotateFileResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse": { +"description": "Response to an async batch image annotation request.", +"id": "GoogleCloudVisionV1p4beta1AsyncBatchAnnotateImagesResponse", +"properties": { +"outputConfig": { +"$ref": "GoogleCloudVisionV1p4beta1OutputConfig", +"description": "The output location and metadata from AsyncBatchAnnotateImagesRequest." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse": { +"description": "A list of file annotation responses.", +"id": "GoogleCloudVisionV1p4beta1BatchAnnotateFilesResponse", +"properties": { +"responses": { +"description": "The list of file annotation responses, each response corresponding to each AnnotateFileRequest in BatchAnnotateFilesRequest.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1AnnotateFileResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1BatchOperationMetadata": { +"description": "Metadata for the batch operations such as the current state. This is included in the `metadata` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVisionV1p4beta1BatchOperationMetadata", +"properties": { +"endTime": { +"description": "The time when the batch request is finished and google.longrunning.Operation.done is set to true.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the batch operation.", +"enum": [ +"STATE_UNSPECIFIED", +"PROCESSING", +"SUCCESSFUL", +"FAILED", +"CANCELLED" +], +"enumDescriptions": [ +"Invalid.", +"Request is actively being processed.", +"The request is done and at least one item has been successfully processed.", +"The request is done and no item has been successfully processed.", +"The request is done after the longrunning.Operations.CancelOperation has been called by the user. Any records that were processed before the cancel command are output as specified in the request." +], +"type": "string" +}, +"submitTime": { +"description": "The time when the batch request was submitted to the server.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Block": { +"description": "Logical element on the page.", +"id": "GoogleCloudVisionV1p4beta1Block", +"properties": { +"blockType": { +"description": "Detected block type (text, image etc) for this block.", +"enum": [ +"UNKNOWN", +"TEXT", +"TABLE", +"PICTURE", +"RULER", +"BARCODE" +], +"enumDescriptions": [ +"Unknown block type.", +"Regular text block.", +"Table block.", +"Image block.", +"Horizontal/vertical line box.", +"Barcode block." +], +"type": "string" +}, +"boundingBox": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "The bounding box for the block. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results on the block. Range [0, 1].", +"format": "float", +"type": "number" +}, +"paragraphs": { +"description": "List of paragraphs in this block (if this blocks is of type text).", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1Paragraph" +}, +"type": "array" +}, +"property": { +"$ref": "GoogleCloudVisionV1p4beta1TextAnnotationTextProperty", +"description": "Additional information detected for the block." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1BoundingPoly": { +"description": "A bounding polygon for the detected image annotation.", +"id": "GoogleCloudVisionV1p4beta1BoundingPoly", +"properties": { +"normalizedVertices": { +"description": "The bounding polygon normalized vertices.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1NormalizedVertex" +}, +"type": "array" +}, +"vertices": { +"description": "The bounding polygon vertices.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1Vertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Celebrity": { +"description": "A Celebrity is a group of Faces with an identity.", +"id": "GoogleCloudVisionV1p4beta1Celebrity", +"properties": { +"description": { +"description": "The Celebrity's description.", +"type": "string" +}, +"displayName": { +"description": "The Celebrity's display name.", +"type": "string" +}, +"name": { +"description": "The resource name of the preloaded Celebrity. Has the format `builtin/{mid}`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ColorInfo": { +"description": "Color information consists of RGB channels, score, and the fraction of the image that the color occupies in the image.", +"id": "GoogleCloudVisionV1p4beta1ColorInfo", +"properties": { +"color": { +"$ref": "Color", +"description": "RGB components of the color." +}, +"pixelFraction": { +"description": "The fraction of pixels the color occupies in the image. Value in range [0, 1].", +"format": "float", +"type": "number" +}, +"score": { +"description": "Image-specific score for this color. Value in range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1CropHint": { +"description": "Single crop hint that is used to generate a new crop when serving an image.", +"id": "GoogleCloudVisionV1p4beta1CropHint", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "The bounding polygon for the crop region. The coordinates of the bounding box are in the original image's scale." +}, +"confidence": { +"description": "Confidence of this being a salient region. Range [0, 1].", +"format": "float", +"type": "number" +}, +"importanceFraction": { +"description": "Fraction of importance of this salient region with respect to the original image.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1CropHintsAnnotation": { +"description": "Set of crop hints that are used to generate new crops when serving images.", +"id": "GoogleCloudVisionV1p4beta1CropHintsAnnotation", +"properties": { +"cropHints": { +"description": "Crop hint results.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1CropHint" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1DominantColorsAnnotation": { +"description": "Set of dominant colors and their corresponding scores.", +"id": "GoogleCloudVisionV1p4beta1DominantColorsAnnotation", +"properties": { +"colors": { +"description": "RGB color values with their score and pixel fraction.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1ColorInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1EntityAnnotation": { +"description": "Set of detected entity features.", +"id": "GoogleCloudVisionV1p4beta1EntityAnnotation", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "Image region to which this entity belongs. Not produced for `LABEL_DETECTION` features." +}, +"confidence": { +"deprecated": true, +"description": "**Deprecated. Use `score` instead.** The accuracy of the entity detection in an image. For example, for an image in which the \"Eiffel Tower\" entity is detected, this field represents the confidence that there is a tower in the query image. Range [0, 1].", +"format": "float", +"type": "number" +}, +"description": { +"description": "Entity textual description, expressed in its `locale` language.", +"type": "string" +}, +"locale": { +"description": "The language code for the locale in which the entity textual `description` is expressed.", +"type": "string" +}, +"locations": { +"description": "The location information for the detected entity. Multiple `LocationInfo` elements can be present because one location may indicate the location of the scene in the image, and another location may indicate the location of the place where the image was taken. Location information is usually present for landmarks.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1LocationInfo" +}, +"type": "array" +}, +"mid": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"properties": { +"description": "Some entities may have optional user-supplied `Property` (name/value) fields, such a score or string that qualifies the entity.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1Property" +}, +"type": "array" +}, +"score": { +"description": "Overall score of the result. Range [0, 1].", +"format": "float", +"type": "number" +}, +"topicality": { +"description": "The relevancy of the ICA (Image Content Annotation) label to the image. For example, the relevancy of \"tower\" is likely higher to an image containing the detected \"Eiffel Tower\" than to an image containing a detected distant towering building, even though the confidence that there is a tower in each image may be the same. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1FaceAnnotation": { +"description": "A face annotation object contains the results of face detection.", +"id": "GoogleCloudVisionV1p4beta1FaceAnnotation", +"properties": { +"angerLikelihood": { +"description": "Anger likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"blurredLikelihood": { +"description": "Blurred likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "The bounding polygon around the face. The coordinates of the bounding box are in the original image's scale. The bounding box is computed to \"frame\" the face in accordance with human expectations. It is based on the landmarker results. Note that one or more x and/or y coordinates may not be generated in the `BoundingPoly` (the polygon will be unbounded) if only a partial face appears in the image to be annotated." +}, +"detectionConfidence": { +"description": "Detection confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"fdBoundingPoly": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "The `fd_bounding_poly` bounding polygon is tighter than the `boundingPoly`, and encloses only the skin part of the face. Typically, it is used to eliminate the face from any image analysis that detects the \"amount of skin\" visible in an image. It is not based on the landmarker results, only on the initial face detection, hence the fd (face detection) prefix." +}, +"headwearLikelihood": { +"description": "Headwear likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"joyLikelihood": { +"description": "Joy likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"landmarkingConfidence": { +"description": "Face landmarking confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"landmarks": { +"description": "Detected face landmarks.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1FaceAnnotationLandmark" +}, +"type": "array" +}, +"panAngle": { +"description": "Yaw angle, which indicates the leftward/rightward angle that the face is pointing relative to the vertical plane perpendicular to the image. Range [-180,180].", +"format": "float", +"type": "number" +}, +"recognitionResult": { +"description": "Additional recognition information. Only computed if image_context.face_recognition_params is provided, **and** a match is found to a Celebrity in the input CelebritySet. This field is sorted in order of decreasing confidence values.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1FaceRecognitionResult" +}, +"type": "array" +}, +"rollAngle": { +"description": "Roll angle, which indicates the amount of clockwise/anti-clockwise rotation of the face relative to the image vertical about the axis perpendicular to the face. Range [-180,180].", +"format": "float", +"type": "number" +}, +"sorrowLikelihood": { +"description": "Sorrow likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"surpriseLikelihood": { +"description": "Surprise likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"tiltAngle": { +"description": "Pitch angle, which indicates the upwards/downwards angle that the face is pointing relative to the image's horizontal plane. Range [-180,180].", +"format": "float", +"type": "number" +}, +"underExposedLikelihood": { +"description": "Under-exposed likelihood.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1FaceAnnotationLandmark": { +"description": "A face-specific landmark (for example, a face feature). Landmark positions may fall outside the bounds of the image if the face is near one or more edges of the image. Therefore it is NOT guaranteed that `0 <= x < width` or `0 <= y < height`.", +"id": "GoogleCloudVisionV1p4beta1FaceAnnotationLandmark", +"properties": { +"position": { +"$ref": "GoogleCloudVisionV1p4beta1Position", +"description": "Face landmark position." +}, +"type": { +"description": "Face landmark type.", +"enum": [ +"UNKNOWN_LANDMARK", +"LEFT_EYE", +"RIGHT_EYE", +"LEFT_OF_LEFT_EYEBROW", +"RIGHT_OF_LEFT_EYEBROW", +"LEFT_OF_RIGHT_EYEBROW", +"RIGHT_OF_RIGHT_EYEBROW", +"MIDPOINT_BETWEEN_EYES", +"NOSE_TIP", +"UPPER_LIP", +"LOWER_LIP", +"MOUTH_LEFT", +"MOUTH_RIGHT", +"MOUTH_CENTER", +"NOSE_BOTTOM_RIGHT", +"NOSE_BOTTOM_LEFT", +"NOSE_BOTTOM_CENTER", +"LEFT_EYE_TOP_BOUNDARY", +"LEFT_EYE_RIGHT_CORNER", +"LEFT_EYE_BOTTOM_BOUNDARY", +"LEFT_EYE_LEFT_CORNER", +"RIGHT_EYE_TOP_BOUNDARY", +"RIGHT_EYE_RIGHT_CORNER", +"RIGHT_EYE_BOTTOM_BOUNDARY", +"RIGHT_EYE_LEFT_CORNER", +"LEFT_EYEBROW_UPPER_MIDPOINT", +"RIGHT_EYEBROW_UPPER_MIDPOINT", +"LEFT_EAR_TRAGION", +"RIGHT_EAR_TRAGION", +"LEFT_EYE_PUPIL", +"RIGHT_EYE_PUPIL", +"FOREHEAD_GLABELLA", +"CHIN_GNATHION", +"CHIN_LEFT_GONION", +"CHIN_RIGHT_GONION", +"LEFT_CHEEK_CENTER", +"RIGHT_CHEEK_CENTER" +], +"enumDescriptions": [ +"Unknown face landmark detected. Should not be filled.", +"Left eye.", +"Right eye.", +"Left of left eyebrow.", +"Right of left eyebrow.", +"Left of right eyebrow.", +"Right of right eyebrow.", +"Midpoint between eyes.", +"Nose tip.", +"Upper lip.", +"Lower lip.", +"Mouth left.", +"Mouth right.", +"Mouth center.", +"Nose, bottom right.", +"Nose, bottom left.", +"Nose, bottom center.", +"Left eye, top boundary.", +"Left eye, right corner.", +"Left eye, bottom boundary.", +"Left eye, left corner.", +"Right eye, top boundary.", +"Right eye, right corner.", +"Right eye, bottom boundary.", +"Right eye, left corner.", +"Left eyebrow, upper midpoint.", +"Right eyebrow, upper midpoint.", +"Left ear tragion.", +"Right ear tragion.", +"Left eye pupil.", +"Right eye pupil.", +"Forehead glabella.", +"Chin gnathion.", +"Chin left gonion.", +"Chin right gonion.", +"Left cheek center.", +"Right cheek center." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1FaceRecognitionResult": { +"description": "Information about a face's identity.", +"id": "GoogleCloudVisionV1p4beta1FaceRecognitionResult", +"properties": { +"celebrity": { +"$ref": "GoogleCloudVisionV1p4beta1Celebrity", +"description": "The Celebrity that this face was matched to." +}, +"confidence": { +"description": "Recognition confidence. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1GcsDestination": { +"description": "The Google Cloud Storage location where the output will be written to.", +"id": "GoogleCloudVisionV1p4beta1GcsDestination", +"properties": { +"uri": { +"description": "Google Cloud Storage URI prefix where the results will be stored. Results will be in JSON format and preceded by its corresponding input URI prefix. This field can either represent a gcs file prefix or gcs directory. In either case, the uri should be unique because in order to get all of the output files, you will need to do a wildcard gcs search on the uri prefix you provide. Examples: * File Prefix: gs://bucket-name/here/filenameprefix The output files will be created in gs://bucket-name/here/ and the names of the output files will begin with \"filenameprefix\". * Directory Prefix: gs://bucket-name/some/location/ The output files will be created in gs://bucket-name/some/location/ and the names of the output files could be anything because there was no filename prefix specified. If multiple outputs, each response is still AnnotateFileResponse, each of which contains some subset of the full list of AnnotateImageResponse. Multiple outputs can happen if, for example, the output JSON is too large and overflows into multiple sharded files.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1GcsSource": { +"description": "The Google Cloud Storage location where the input will be read from.", +"id": "GoogleCloudVisionV1p4beta1GcsSource", +"properties": { +"uri": { +"description": "Google Cloud Storage URI for the input file. This must only be a Google Cloud Storage object. Wildcards are not currently supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ImageAnnotationContext": { +"description": "If an image was produced from a file (e.g. a PDF), this message gives information about the source of that image.", +"id": "GoogleCloudVisionV1p4beta1ImageAnnotationContext", +"properties": { +"pageNumber": { +"description": "If the file was a PDF or TIFF, this field gives the page number within the file used to produce the image.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "The URI of the file used to produce the image.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ImageProperties": { +"description": "Stores image properties, such as dominant colors.", +"id": "GoogleCloudVisionV1p4beta1ImageProperties", +"properties": { +"dominantColors": { +"$ref": "GoogleCloudVisionV1p4beta1DominantColorsAnnotation", +"description": "If present, dominant colors completed successfully." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ImportProductSetsResponse": { +"description": "Response message for the `ImportProductSets` method. This message is returned by the google.longrunning.Operations.GetOperation method in the returned google.longrunning.Operation.response field.", +"id": "GoogleCloudVisionV1p4beta1ImportProductSetsResponse", +"properties": { +"referenceImages": { +"description": "The list of reference_images that are imported successfully.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1ReferenceImage" +}, +"type": "array" +}, +"statuses": { +"description": "The rpc status for each ImportProductSet request, including both successes and errors. The number of statuses here matches the number of lines in the csv file, and statuses[i] stores the success or failure status of processing the i-th line of the csv, starting from line 0.", +"items": { +"$ref": "Status" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1InputConfig": { +"description": "The desired input location and metadata.", +"id": "GoogleCloudVisionV1p4beta1InputConfig", +"properties": { +"content": { +"description": "File content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64. Currently, this field only works for BatchAnnotateFiles requests. It does not work for AsyncBatchAnnotateFiles requests.", +"format": "byte", +"type": "string" +}, +"gcsSource": { +"$ref": "GoogleCloudVisionV1p4beta1GcsSource", +"description": "The Google Cloud Storage location to read the input from." +}, +"mimeType": { +"description": "The type of the file. Currently only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. Wildcards are not supported.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation": { +"description": "Set of detected objects with bounding boxes.", +"id": "GoogleCloudVisionV1p4beta1LocalizedObjectAnnotation", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "Image region to which this object belongs. This must be populated." +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1LocationInfo": { +"description": "Detected entity location information.", +"id": "GoogleCloudVisionV1p4beta1LocationInfo", +"properties": { +"latLng": { +"$ref": "LatLng", +"description": "lat/long location coordinates." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1NormalizedVertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.", +"id": "GoogleCloudVisionV1p4beta1NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1OperationMetadata": { +"description": "Contains metadata for the BatchAnnotateImages operation.", +"id": "GoogleCloudVisionV1p4beta1OperationMetadata", +"properties": { +"createTime": { +"description": "The time when the batch request was received.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Current state of the batch operation.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATED", +"RUNNING", +"DONE", +"CANCELLED" +], +"enumDescriptions": [ +"Invalid.", +"Request is received.", +"Request is actively being processed.", +"The batch processing is done.", +"The batch processing was cancelled." +], +"type": "string" +}, +"updateTime": { +"description": "The time when the operation result was last updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1OutputConfig": { +"description": "The desired output location and metadata.", +"id": "GoogleCloudVisionV1p4beta1OutputConfig", +"properties": { +"batchSize": { +"description": "The max number of response protos to put into each output JSON file on Google Cloud Storage. The valid range is [1, 100]. If not specified, the default value is 20. For example, for one pdf file with 100 pages, 100 response protos will be generated. If `batch_size` = 20, then 5 json files each containing 20 response protos will be written under the prefix `gcs_destination`.`uri`. Currently, batch_size only applies to GcsDestination, with potential future support for other output configurations.", +"format": "int32", +"type": "integer" +}, +"gcsDestination": { +"$ref": "GoogleCloudVisionV1p4beta1GcsDestination", +"description": "The Google Cloud Storage location to write the output(s) to." +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Page": { +"description": "Detected page from OCR.", +"id": "GoogleCloudVisionV1p4beta1Page", +"properties": { +"blocks": { +"description": "List of blocks of text, images etc on this page.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1Block" +}, +"type": "array" +}, +"confidence": { +"description": "Confidence of the OCR results on the page. Range [0, 1].", +"format": "float", +"type": "number" +}, +"height": { +"description": "Page height. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +}, +"property": { +"$ref": "GoogleCloudVisionV1p4beta1TextAnnotationTextProperty", +"description": "Additional information detected on the page." +}, +"width": { +"description": "Page width. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Paragraph": { +"description": "Structural unit of text representing a number of words in certain order.", +"id": "GoogleCloudVisionV1p4beta1Paragraph", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "The bounding box for the paragraph. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the paragraph. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p4beta1TextAnnotationTextProperty", +"description": "Additional information detected for the paragraph." +}, +"words": { +"description": "List of all words in this paragraph.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1Word" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Position": { +"description": "A 3D position in the image, used primarily for Face detection landmarks. A valid Position must have both x and y coordinates. The position coordinates are in the same scale as the original image.", +"id": "GoogleCloudVisionV1p4beta1Position", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +}, +"z": { +"description": "Z coordinate (or depth).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Product": { +"description": "A Product contains ReferenceImages.", +"id": "GoogleCloudVisionV1p4beta1Product", +"properties": { +"description": { +"description": "User-provided metadata to be stored with this product. Must be at most 4096 characters long.", +"type": "string" +}, +"displayName": { +"description": "The user-provided name for this Product. Must not be empty. Must be at most 4096 characters long.", +"type": "string" +}, +"name": { +"description": "The resource name of the product. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This field is ignored when creating a product.", +"type": "string" +}, +"productCategory": { +"description": "Immutable. The category for the product identified by the reference image. This should be one of \"homegoods-v2\", \"apparel-v2\", \"toys-v2\", \"packagedgoods-v1\" or \"general-v1\". The legacy categories \"homegoods\", \"apparel\", and \"toys\" are still supported, but these should not be used for new products.", +"type": "string" +}, +"productLabels": { +"description": "Key-value pairs that can be attached to a product. At query time, constraints can be specified based on the product_labels. Note that integer values can be provided as strings, e.g. \"1199\". Only strings with integer values can match a range-based restriction which is to be supported soon. Multiple values can be assigned to the same key. One product may have up to 500 product_labels. Notice that the total number of distinct product_labels over all products in one ProductSet cannot exceed 1M, otherwise the product search pipeline will refuse to work for that ProductSet.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1ProductKeyValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ProductKeyValue": { +"description": "A product label represented as a key-value pair.", +"id": "GoogleCloudVisionV1p4beta1ProductKeyValue", +"properties": { +"key": { +"description": "The key of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +}, +"value": { +"description": "The value of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ProductSearchResults": { +"description": "Results for a product search request.", +"id": "GoogleCloudVisionV1p4beta1ProductSearchResults", +"properties": { +"indexTime": { +"description": "Timestamp of the index which provided these results. Products added to the product set and products removed from the product set after this time are not reflected in the current results.", +"format": "google-datetime", +"type": "string" +}, +"productGroupedResults": { +"description": "List of results grouped by products detected in the query image. Each entry corresponds to one bounding polygon in the query image, and contains the matching products specific to that region. There may be duplicate product matches in the union of all the per-product results.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1ProductSearchResultsResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult": { +"description": "Information about the products similar to a single product in a query image.", +"id": "GoogleCloudVisionV1p4beta1ProductSearchResultsGroupedResult", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "The bounding polygon around the product detected in the query image." +}, +"objectAnnotations": { +"description": "List of generic predictions for the object in the bounding box.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1ProductSearchResultsResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation": { +"description": "Prediction for what the object in the bounding box is.", +"id": "GoogleCloudVisionV1p4beta1ProductSearchResultsObjectAnnotation", +"properties": { +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ProductSearchResultsResult": { +"description": "Information about a product.", +"id": "GoogleCloudVisionV1p4beta1ProductSearchResultsResult", +"properties": { +"image": { +"description": "The resource name of the image from the product that is the closest match to the query.", +"type": "string" +}, +"product": { +"$ref": "GoogleCloudVisionV1p4beta1Product", +"description": "The Product." +}, +"score": { +"description": "A confidence level on the match, ranging from 0 (no confidence) to 1 (full confidence).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Property": { +"description": "A `Property` consists of a user-supplied name/value pair.", +"id": "GoogleCloudVisionV1p4beta1Property", +"properties": { +"name": { +"description": "Name of the property.", +"type": "string" +}, +"uint64Value": { +"description": "Value of numeric properties.", +"format": "uint64", +"type": "string" +}, +"value": { +"description": "Value of the property.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1ReferenceImage": { +"description": "A `ReferenceImage` represents a product image and its associated metadata, such as bounding boxes.", +"id": "GoogleCloudVisionV1p4beta1ReferenceImage", +"properties": { +"boundingPolys": { +"description": "Optional. Bounding polygons around the areas of interest in the reference image. If this field is empty, the system will try to detect regions of interest. At most 10 bounding polygons will be used. The provided shape is converted into a non-rotated rectangle. Once converted, the small edge of the rectangle must be greater than or equal to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok; 1:5 is not).", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the reference image. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`. This field is ignored when creating a reference image.", +"type": "string" +}, +"uri": { +"description": "Required. The Google Cloud Storage URI of the reference image. The URI must start with `gs://`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1SafeSearchAnnotation": { +"description": "Set of features pertaining to the image, computed by computer vision methods over safe-search verticals (for example, adult, spoof, medical, violence).", +"id": "GoogleCloudVisionV1p4beta1SafeSearchAnnotation", +"properties": { +"adult": { +"description": "Represents the adult content likelihood for the image. Adult content may contain elements such as nudity, pornographic images or cartoons, or sexual activities.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"medical": { +"description": "Likelihood that this is a medical image.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"racy": { +"description": "Likelihood that the request image contains racy content. Racy content may include (but is not limited to) skimpy or sheer clothing, strategically covered nudity, lewd or provocative poses, or close-ups of sensitive body areas.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"spoof": { +"description": "Spoof likelihood. The likelihood that an modification was made to the image's canonical version to make it appear funny or offensive.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"violence": { +"description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Symbol": { +"description": "A single symbol representation.", +"id": "GoogleCloudVisionV1p4beta1Symbol", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "The bounding box for the symbol. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the symbol. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p4beta1TextAnnotationTextProperty", +"description": "Additional information detected for the symbol." +}, +"text": { +"description": "The actual UTF-8 representation of the symbol.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1TextAnnotation": { +"description": "TextAnnotation contains a structured representation of OCR extracted text. The hierarchy of an OCR extracted text structure is like this: TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol Each structural component, starting from Page, may further have their own properties. Properties describe detected languages, breaks etc.. Please refer to the TextAnnotation.TextProperty message definition below for more detail.", +"id": "GoogleCloudVisionV1p4beta1TextAnnotation", +"properties": { +"pages": { +"description": "List of pages detected by OCR.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1Page" +}, +"type": "array" +}, +"text": { +"description": "UTF-8 text detected on the pages.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak": { +"description": "Detected start or end of a structural component.", +"id": "GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak", +"properties": { +"isPrefix": { +"description": "True if break prepends the element.", +"type": "boolean" +}, +"type": { +"description": "Detected break type.", +"enum": [ +"UNKNOWN", +"SPACE", +"SURE_SPACE", +"EOL_SURE_SPACE", +"HYPHEN", +"LINE_BREAK" +], +"enumDescriptions": [ +"Unknown break label type.", +"Regular space.", +"Sure space (very wide).", +"Line-wrapping break.", +"End-line hyphen that is not present in text; does not co-occur with `SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.", +"Line break that ends a paragraph." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage": { +"description": "Detected language for a structural component.", +"id": "GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage", +"properties": { +"confidence": { +"description": "Confidence of detected language. Range [0, 1].", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1TextAnnotationTextProperty": { +"description": "Additional information detected on the structural component.", +"id": "GoogleCloudVisionV1p4beta1TextAnnotationTextProperty", +"properties": { +"detectedBreak": { +"$ref": "GoogleCloudVisionV1p4beta1TextAnnotationDetectedBreak", +"description": "Detected start or end of a text segment." +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1TextAnnotationDetectedLanguage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Vertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image.", +"id": "GoogleCloudVisionV1p4beta1Vertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "int32", +"type": "integer" +}, +"y": { +"description": "Y coordinate.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1WebDetection": { +"description": "Relevant information for the image from the Internet.", +"id": "GoogleCloudVisionV1p4beta1WebDetection", +"properties": { +"bestGuessLabels": { +"description": "The service's best guess as to the topic of the request image. Inferred from similar images on the open web.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1WebDetectionWebLabel" +}, +"type": "array" +}, +"fullMatchingImages": { +"description": "Fully matching images from the Internet. Can include resized copies of the query image.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1WebDetectionWebImage" +}, +"type": "array" +}, +"pagesWithMatchingImages": { +"description": "Web pages containing the matching images from the Internet.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1WebDetectionWebPage" +}, +"type": "array" +}, +"partialMatchingImages": { +"description": "Partial matching images from the Internet. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1WebDetectionWebImage" +}, +"type": "array" +}, +"visuallySimilarImages": { +"description": "The visually similar image results.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1WebDetectionWebImage" +}, +"type": "array" +}, +"webEntities": { +"description": "Deduced entities from similar images on the Internet.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1WebDetectionWebEntity" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1WebDetectionWebEntity": { +"description": "Entity deduced from similar images on the Internet.", +"id": "GoogleCloudVisionV1p4beta1WebDetectionWebEntity", +"properties": { +"description": { +"description": "Canonical description of the entity, in English.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID.", +"type": "string" +}, +"score": { +"description": "Overall relevancy score for the entity. Not normalized and not comparable across different image queries.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1WebDetectionWebImage": { +"description": "Metadata for online images.", +"id": "GoogleCloudVisionV1p4beta1WebDetectionWebImage", +"properties": { +"score": { +"description": "(Deprecated) Overall relevancy score for the image.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result image URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1WebDetectionWebLabel": { +"description": "Label to provide extra metadata for the web detection.", +"id": "GoogleCloudVisionV1p4beta1WebDetectionWebLabel", +"properties": { +"label": { +"description": "Label for extra metadata.", +"type": "string" +}, +"languageCode": { +"description": "The BCP-47 language code for `label`, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1WebDetectionWebPage": { +"description": "Metadata for web pages.", +"id": "GoogleCloudVisionV1p4beta1WebDetectionWebPage", +"properties": { +"fullMatchingImages": { +"description": "Fully matching images on the page. Can include resized copies of the query image.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1WebDetectionWebImage" +}, +"type": "array" +}, +"pageTitle": { +"description": "Title for the web page, may contain HTML markups.", +"type": "string" +}, +"partialMatchingImages": { +"description": "Partial matching images on the page. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1WebDetectionWebImage" +}, +"type": "array" +}, +"score": { +"description": "(Deprecated) Overall relevancy score for the web page.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result web page URL.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p4beta1Word": { +"description": "A word representation.", +"id": "GoogleCloudVisionV1p4beta1Word", +"properties": { +"boundingBox": { +"$ref": "GoogleCloudVisionV1p4beta1BoundingPoly", +"description": "The bounding box for the word. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the word. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "GoogleCloudVisionV1p4beta1TextAnnotationTextProperty", +"description": "Additional information detected for the word." +}, +"symbols": { +"description": "List of symbols in the word. The order of the symbols follows the natural reading order.", +"items": { +"$ref": "GoogleCloudVisionV1p4beta1Symbol" +}, +"type": "array" +} +}, +"type": "object" +}, +"GroupedResult": { +"description": "Information about the products similar to a single product in a query image.", +"id": "GroupedResult", +"properties": { +"boundingPoly": { +"$ref": "BoundingPoly", +"description": "The bounding polygon around the product detected in the query image." +}, +"objectAnnotations": { +"description": "List of generic predictions for the object in the bounding box.", +"items": { +"$ref": "ObjectAnnotation" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "Result" +}, +"type": "array" +} +}, +"type": "object" +}, +"Image": { +"description": "Client image to perform Google Cloud Vision API tasks over.", +"id": "Image", +"properties": { +"content": { +"description": "Image content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64. Currently, this field only works for BatchAnnotateImages requests. It does not work for AsyncBatchAnnotateImages requests.", +"format": "byte", +"type": "string" +}, +"source": { +"$ref": "ImageSource", +"description": "Google Cloud Storage image location, or publicly-accessible image URL. If both `content` and `source` are provided for an image, `content` takes precedence and is used to perform the image annotation request." +} +}, +"type": "object" +}, +"ImageAnnotationContext": { +"description": "If an image was produced from a file (e.g. a PDF), this message gives information about the source of that image.", +"id": "ImageAnnotationContext", +"properties": { +"pageNumber": { +"description": "If the file was a PDF or TIFF, this field gives the page number within the file used to produce the image.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "The URI of the file used to produce the image.", +"type": "string" +} +}, +"type": "object" +}, +"ImageContext": { +"description": "Image context and/or feature-specific parameters.", +"id": "ImageContext", +"properties": { +"cropHintsParams": { +"$ref": "CropHintsParams", +"description": "Parameters for crop hints annotation request." +}, +"languageHints": { +"description": "List of languages to use for TEXT_DETECTION. In most cases, an empty value yields the best results since it enables automatic language detection. For languages based on the Latin alphabet, setting `language_hints` is not needed. In rare cases, when the language of the text in the image is known, setting a hint will help get better results (although it will be a significant hindrance if the hint is wrong). Text detection returns an error if one or more of the specified languages is not one of the [supported languages](https://cloud.google.com/vision/docs/languages).", +"items": { +"type": "string" +}, +"type": "array" +}, +"latLongRect": { +"$ref": "LatLongRect", +"description": "Not used." +}, +"productSearchParams": { +"$ref": "ProductSearchParams", +"description": "Parameters for product search." +}, +"textDetectionParams": { +"$ref": "TextDetectionParams", +"description": "Parameters for text detection and document text detection." +}, +"webDetectionParams": { +"$ref": "WebDetectionParams", +"description": "Parameters for web detection." +} +}, +"type": "object" +}, +"ImageProperties": { +"description": "Stores image properties, such as dominant colors.", +"id": "ImageProperties", +"properties": { +"dominantColors": { +"$ref": "DominantColorsAnnotation", +"description": "If present, dominant colors completed successfully." +} +}, +"type": "object" +}, +"ImageSource": { +"description": "External image source (Google Cloud Storage or web URL image location).", +"id": "ImageSource", +"properties": { +"gcsImageUri": { +"description": "**Use `image_uri` instead.** The Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.", +"type": "string" +}, +"imageUri": { +"description": "The URI of the source image. Can be either: 1. A Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info. 2. A publicly-accessible image HTTP/HTTPS URL. When fetching images from HTTP/HTTPS URLs, Google cannot guarantee that the request will be completed. Your request may fail if the specified host denies the request (e.g. due to request throttling or DOS prevention), or if Google throttles requests to the site for abuse prevention. You should not depend on externally-hosted images for production applications. When both `gcs_image_uri` and `image_uri` are specified, `image_uri` takes precedence.", +"type": "string" +} +}, +"type": "object" +}, +"ImportProductSetsGcsSource": { +"description": "The Google Cloud Storage location for a csv file which preserves a list of ImportProductSetRequests in each line.", +"id": "ImportProductSetsGcsSource", +"properties": { +"csvFileUri": { +"description": "The Google Cloud Storage URI of the input csv file. The URI must start with `gs://`. The format of the input csv file should be one image per line. In each line, there are 8 columns. 1. image-uri 2. image-id 3. product-set-id 4. product-id 5. product-category 6. product-display-name 7. labels 8. bounding-poly The `image-uri`, `product-set-id`, `product-id`, and `product-category` columns are required. All other columns are optional. If the `ProductSet` or `Product` specified by the `product-set-id` and `product-id` values does not exist, then the system will create a new `ProductSet` or `Product` for the image. In this case, the `product-display-name` column refers to display_name, the `product-category` column refers to product_category, and the `labels` column refers to product_labels. The `image-id` column is optional but must be unique if provided. If it is empty, the system will automatically assign a unique id to the image. The `product-display-name` column is optional. If it is empty, the system sets the display_name field for the product to a space (\" \"). You can update the `display_name` later by using the API. If a `Product` with the specified `product-id` already exists, then the system ignores the `product-display-name`, `product-category`, and `labels` columns. The `labels` column (optional) is a line containing a list of comma-separated key-value pairs, in the following format: \"key_1=value_1,key_2=value_2,...,key_n=value_n\" The `bounding-poly` column (optional) identifies one region of interest from the image in the same manner as `CreateReferenceImage`. If you do not specify the `bounding-poly` column, then the system will try to detect regions of interest automatically. At most one `bounding-poly` column is allowed per line. If the image contains multiple regions of interest, add a line to the CSV file that includes the same product information, and the `bounding-poly` values for each region of interest. The `bounding-poly` column must contain an even number of comma-separated numbers, in the format \"p1_x,p1_y,p2_x,p2_y,...,pn_x,pn_y\". Use non-negative integers for absolute bounding polygons, and float values in [0, 1] for normalized bounding polygons. The system will resize the image if the image resolution is too large to process (larger than 20MP).", +"type": "string" +} +}, +"type": "object" +}, +"ImportProductSetsInputConfig": { +"description": "The input content for the `ImportProductSets` method.", +"id": "ImportProductSetsInputConfig", +"properties": { +"gcsSource": { +"$ref": "ImportProductSetsGcsSource", +"description": "The Google Cloud Storage location for a csv file which preserves a list of ImportProductSetRequests in each line." +} +}, +"type": "object" +}, +"ImportProductSetsRequest": { +"description": "Request message for the `ImportProductSets` method.", +"id": "ImportProductSetsRequest", +"properties": { +"inputConfig": { +"$ref": "ImportProductSetsInputConfig", +"description": "Required. The input content for the list of requests." +} +}, +"type": "object" +}, +"ImportProductSetsResponse": { +"description": "Response message for the `ImportProductSets` method. This message is returned by the google.longrunning.Operations.GetOperation method in the returned google.longrunning.Operation.response field.", +"id": "ImportProductSetsResponse", +"properties": { +"referenceImages": { +"description": "The list of reference_images that are imported successfully.", +"items": { +"$ref": "ReferenceImage" +}, +"type": "array" +}, +"statuses": { +"description": "The rpc status for each ImportProductSet request, including both successes and errors. The number of statuses here matches the number of lines in the csv file, and statuses[i] stores the success or failure status of processing the i-th line of the csv, starting from line 0.", +"items": { +"$ref": "Status" +}, +"type": "array" +} +}, +"type": "object" +}, +"InputConfig": { +"description": "The desired input location and metadata.", +"id": "InputConfig", +"properties": { +"content": { +"description": "File content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64. Currently, this field only works for BatchAnnotateFiles requests. It does not work for AsyncBatchAnnotateFiles requests.", +"format": "byte", +"type": "string" +}, +"gcsSource": { +"$ref": "GcsSource", +"description": "The Google Cloud Storage location to read the input from." +}, +"mimeType": { +"description": "The type of the file. Currently only \"application/pdf\", \"image/tiff\" and \"image/gif\" are supported. Wildcards are not supported.", +"type": "string" +} +}, +"type": "object" +}, +"KeyValue": { +"description": "A product label represented as a key-value pair.", +"id": "KeyValue", +"properties": { +"key": { +"description": "The key of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +}, +"value": { +"description": "The value of the label attached to the product. Cannot be empty and cannot exceed 128 bytes.", +"type": "string" +} +}, +"type": "object" +}, +"Landmark": { +"description": "A face-specific landmark (for example, a face feature). Landmark positions may fall outside the bounds of the image if the face is near one or more edges of the image. Therefore it is NOT guaranteed that `0 <= x < width` or `0 <= y < height`.", +"id": "Landmark", +"properties": { +"position": { +"$ref": "Position", +"description": "Face landmark position." +}, +"type": { +"description": "Face landmark type.", +"enum": [ +"UNKNOWN_LANDMARK", +"LEFT_EYE", +"RIGHT_EYE", +"LEFT_OF_LEFT_EYEBROW", +"RIGHT_OF_LEFT_EYEBROW", +"LEFT_OF_RIGHT_EYEBROW", +"RIGHT_OF_RIGHT_EYEBROW", +"MIDPOINT_BETWEEN_EYES", +"NOSE_TIP", +"UPPER_LIP", +"LOWER_LIP", +"MOUTH_LEFT", +"MOUTH_RIGHT", +"MOUTH_CENTER", +"NOSE_BOTTOM_RIGHT", +"NOSE_BOTTOM_LEFT", +"NOSE_BOTTOM_CENTER", +"LEFT_EYE_TOP_BOUNDARY", +"LEFT_EYE_RIGHT_CORNER", +"LEFT_EYE_BOTTOM_BOUNDARY", +"LEFT_EYE_LEFT_CORNER", +"RIGHT_EYE_TOP_BOUNDARY", +"RIGHT_EYE_RIGHT_CORNER", +"RIGHT_EYE_BOTTOM_BOUNDARY", +"RIGHT_EYE_LEFT_CORNER", +"LEFT_EYEBROW_UPPER_MIDPOINT", +"RIGHT_EYEBROW_UPPER_MIDPOINT", +"LEFT_EAR_TRAGION", +"RIGHT_EAR_TRAGION", +"LEFT_EYE_PUPIL", +"RIGHT_EYE_PUPIL", +"FOREHEAD_GLABELLA", +"CHIN_GNATHION", +"CHIN_LEFT_GONION", +"CHIN_RIGHT_GONION", +"LEFT_CHEEK_CENTER", +"RIGHT_CHEEK_CENTER" +], +"enumDescriptions": [ +"Unknown face landmark detected. Should not be filled.", +"Left eye.", +"Right eye.", +"Left of left eyebrow.", +"Right of left eyebrow.", +"Left of right eyebrow.", +"Right of right eyebrow.", +"Midpoint between eyes.", +"Nose tip.", +"Upper lip.", +"Lower lip.", +"Mouth left.", +"Mouth right.", +"Mouth center.", +"Nose, bottom right.", +"Nose, bottom left.", +"Nose, bottom center.", +"Left eye, top boundary.", +"Left eye, right corner.", +"Left eye, bottom boundary.", +"Left eye, left corner.", +"Right eye, top boundary.", +"Right eye, right corner.", +"Right eye, bottom boundary.", +"Right eye, left corner.", +"Left eyebrow, upper midpoint.", +"Right eyebrow, upper midpoint.", +"Left ear tragion.", +"Right ear tragion.", +"Left eye pupil.", +"Right eye pupil.", +"Forehead glabella.", +"Chin gnathion.", +"Chin left gonion.", +"Chin right gonion.", +"Left cheek center.", +"Right cheek center." +], +"type": "string" +} +}, +"type": "object" +}, +"LatLng": { +"description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.", +"id": "LatLng", +"properties": { +"latitude": { +"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"LatLongRect": { +"description": "Rectangle determined by min and max `LatLng` pairs.", +"id": "LatLongRect", +"properties": { +"maxLatLng": { +"$ref": "LatLng", +"description": "Max lat/long pair." +}, +"minLatLng": { +"$ref": "LatLng", +"description": "Min lat/long pair." +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListProductSetsResponse": { +"description": "Response message for the `ListProductSets` method.", +"id": "ListProductSetsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"productSets": { +"description": "List of ProductSets.", +"items": { +"$ref": "ProductSet" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListProductsInProductSetResponse": { +"description": "Response message for the `ListProductsInProductSet` method.", +"id": "ListProductsInProductSetResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"products": { +"description": "The list of Products.", +"items": { +"$ref": "Product" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListProductsResponse": { +"description": "Response message for the `ListProducts` method.", +"id": "ListProductsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"products": { +"description": "List of products.", +"items": { +"$ref": "Product" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListReferenceImagesResponse": { +"description": "Response message for the `ListReferenceImages` method.", +"id": "ListReferenceImagesResponse", +"properties": { +"nextPageToken": { +"description": "The next_page_token returned from a previous List request, if any.", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return. Default 10, maximum 100.", +"format": "int32", +"type": "integer" +}, +"referenceImages": { +"description": "The list of reference images.", +"items": { +"$ref": "ReferenceImage" +}, +"type": "array" +} +}, +"type": "object" +}, +"LocalizedObjectAnnotation": { +"description": "Set of detected objects with bounding boxes.", +"id": "LocalizedObjectAnnotation", +"properties": { +"boundingPoly": { +"$ref": "BoundingPoly", +"description": "Image region to which this object belongs. This must be populated." +}, +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"LocationInfo": { +"description": "Detected entity location information.", +"id": "LocationInfo", +"properties": { +"latLng": { +"$ref": "LatLng", +"description": "lat/long location coordinates." +} +}, +"type": "object" +}, +"NormalizedVertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.", +"id": "NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"ObjectAnnotation": { +"description": "Prediction for what the object in the bounding box is.", +"id": "ObjectAnnotation", +"properties": { +"languageCode": { +"description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +}, +"mid": { +"description": "Object ID that should align with EntityAnnotation mid.", +"type": "string" +}, +"name": { +"description": "Object name, expressed in its `language_code` language.", +"type": "string" +}, +"score": { +"description": "Score of the result. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Contains metadata for the BatchAnnotateImages operation.", +"id": "OperationMetadata", +"properties": { +"createTime": { +"description": "The time when the batch request was received.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Current state of the batch operation.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATED", +"RUNNING", +"DONE", +"CANCELLED" +], +"enumDescriptions": [ +"Invalid.", +"Request is received.", +"Request is actively being processed.", +"The batch processing is done.", +"The batch processing was cancelled." +], +"type": "string" +}, +"updateTime": { +"description": "The time when the operation result was last updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"OutputConfig": { +"description": "The desired output location and metadata.", +"id": "OutputConfig", +"properties": { +"batchSize": { +"description": "The max number of response protos to put into each output JSON file on Google Cloud Storage. The valid range is [1, 100]. If not specified, the default value is 20. For example, for one pdf file with 100 pages, 100 response protos will be generated. If `batch_size` = 20, then 5 json files each containing 20 response protos will be written under the prefix `gcs_destination`.`uri`. Currently, batch_size only applies to GcsDestination, with potential future support for other output configurations.", +"format": "int32", +"type": "integer" +}, +"gcsDestination": { +"$ref": "GcsDestination", +"description": "The Google Cloud Storage location to write the output(s) to." +} +}, +"type": "object" +}, +"Page": { +"description": "Detected page from OCR.", +"id": "Page", +"properties": { +"blocks": { +"description": "List of blocks of text, images etc on this page.", +"items": { +"$ref": "Block" +}, +"type": "array" +}, +"confidence": { +"description": "Confidence of the OCR results on the page. Range [0, 1].", +"format": "float", +"type": "number" +}, +"height": { +"description": "Page height. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +}, +"property": { +"$ref": "TextProperty", +"description": "Additional information detected on the page." +}, +"width": { +"description": "Page width. For PDFs the unit is points. For images (including TIFFs) the unit is pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Paragraph": { +"description": "Structural unit of text representing a number of words in certain order.", +"id": "Paragraph", +"properties": { +"boundingBox": { +"$ref": "BoundingPoly", +"description": "The bounding box for the paragraph. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the paragraph. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "TextProperty", +"description": "Additional information detected for the paragraph." +}, +"words": { +"description": "List of all words in this paragraph.", +"items": { +"$ref": "Word" +}, +"type": "array" +} +}, +"type": "object" +}, +"Position": { +"description": "A 3D position in the image, used primarily for Face detection landmarks. A valid Position must have both x and y coordinates. The position coordinates are in the same scale as the original image.", +"id": "Position", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +}, +"z": { +"description": "Z coordinate (or depth).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"Product": { +"description": "A Product contains ReferenceImages.", +"id": "Product", +"properties": { +"description": { +"description": "User-provided metadata to be stored with this product. Must be at most 4096 characters long.", +"type": "string" +}, +"displayName": { +"description": "The user-provided name for this Product. Must not be empty. Must be at most 4096 characters long.", +"type": "string" +}, +"name": { +"description": "The resource name of the product. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This field is ignored when creating a product.", +"type": "string" +}, +"productCategory": { +"description": "Immutable. The category for the product identified by the reference image. This should be one of \"homegoods-v2\", \"apparel-v2\", \"toys-v2\", \"packagedgoods-v1\" or \"general-v1\". The legacy categories \"homegoods\", \"apparel\", and \"toys\" are still supported, but these should not be used for new products.", +"type": "string" +}, +"productLabels": { +"description": "Key-value pairs that can be attached to a product. At query time, constraints can be specified based on the product_labels. Note that integer values can be provided as strings, e.g. \"1199\". Only strings with integer values can match a range-based restriction which is to be supported soon. Multiple values can be assigned to the same key. One product may have up to 500 product_labels. Notice that the total number of distinct product_labels over all products in one ProductSet cannot exceed 1M, otherwise the product search pipeline will refuse to work for that ProductSet.", +"items": { +"$ref": "KeyValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProductSearchParams": { +"description": "Parameters for a product search request.", +"id": "ProductSearchParams", +"properties": { +"boundingPoly": { +"$ref": "BoundingPoly", +"description": "The bounding polygon around the area of interest in the image. If it is not specified, system discretion will be applied." +}, +"filter": { +"description": "The filtering expression. This can be used to restrict search results based on Product labels. We currently support an AND of OR of key-value expressions, where each expression within an OR must have the same key. An '=' should be used to connect the key and value. For example, \"(color = red OR color = blue) AND brand = Google\" is acceptable, but \"(color = red OR brand = Google)\" is not acceptable. \"color: red\" is not acceptable because it uses a ':' instead of an '='.", +"type": "string" +}, +"productCategories": { +"description": "The list of product categories to search in. Currently, we only consider the first category, and either \"homegoods-v2\", \"apparel-v2\", \"toys-v2\", \"packagedgoods-v1\", or \"general-v1\" should be specified. The legacy categories \"homegoods\", \"apparel\", and \"toys\" are still supported but will be deprecated. For new products, please use \"homegoods-v2\", \"apparel-v2\", or \"toys-v2\" for better product search accuracy. It is recommended to migrate existing products to these categories as well.", +"items": { +"type": "string" +}, +"type": "array" +}, +"productSet": { +"description": "The resource name of a ProductSet to be searched for similar images. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.", +"type": "string" +} +}, +"type": "object" +}, +"ProductSearchResults": { +"description": "Results for a product search request.", +"id": "ProductSearchResults", +"properties": { +"indexTime": { +"description": "Timestamp of the index which provided these results. Products added to the product set and products removed from the product set after this time are not reflected in the current results.", +"format": "google-datetime", +"type": "string" +}, +"productGroupedResults": { +"description": "List of results grouped by products detected in the query image. Each entry corresponds to one bounding polygon in the query image, and contains the matching products specific to that region. There may be duplicate product matches in the union of all the per-product results.", +"items": { +"$ref": "GroupedResult" +}, +"type": "array" +}, +"results": { +"description": "List of results, one for each product match.", +"items": { +"$ref": "Result" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProductSet": { +"description": "A ProductSet contains Products. A ProductSet can contain a maximum of 1 million reference images. If the limit is exceeded, periodic indexing will fail.", +"id": "ProductSet", +"properties": { +"displayName": { +"description": "The user-provided name for this ProductSet. Must not be empty. Must be at most 4096 characters long.", +"type": "string" +}, +"indexError": { +"$ref": "Status", +"description": "Output only. If there was an error with indexing the product set, the field is populated. This field is ignored when creating a ProductSet.", +"readOnly": true +}, +"indexTime": { +"description": "Output only. The time at which this ProductSet was last indexed. Query results will reflect all updates before this time. If this ProductSet has never been indexed, this timestamp is the default value \"1970-01-01T00:00:00Z\". This field is ignored when creating a ProductSet.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The resource name of the ProductSet. Format is: `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`. This field is ignored when creating a ProductSet.", +"type": "string" +} +}, +"type": "object" +}, +"ProductSetPurgeConfig": { +"description": "Config to control which ProductSet contains the Products to be deleted.", +"id": "ProductSetPurgeConfig", +"properties": { +"productSetId": { +"description": "The ProductSet that contains the Products to delete. If a Product is a member of product_set_id in addition to other ProductSets, the Product will still be deleted.", +"type": "string" +} +}, +"type": "object" +}, +"Property": { +"description": "A `Property` consists of a user-supplied name/value pair.", +"id": "Property", +"properties": { +"name": { +"description": "Name of the property.", +"type": "string" +}, +"uint64Value": { +"description": "Value of numeric properties.", +"format": "uint64", +"type": "string" +}, +"value": { +"description": "Value of the property.", +"type": "string" +} +}, +"type": "object" +}, +"PurgeProductsRequest": { +"description": "Request message for the `PurgeProducts` method.", +"id": "PurgeProductsRequest", +"properties": { +"deleteOrphanProducts": { +"description": "If delete_orphan_products is true, all Products that are not in any ProductSet will be deleted.", +"type": "boolean" +}, +"force": { +"description": "The default value is false. Override this value to true to actually perform the purge.", +"type": "boolean" +}, +"productSetPurgeConfig": { +"$ref": "ProductSetPurgeConfig", +"description": "Specify which ProductSet contains the Products to be deleted." +} +}, +"type": "object" +}, +"ReferenceImage": { +"description": "A `ReferenceImage` represents a product image and its associated metadata, such as bounding boxes.", +"id": "ReferenceImage", +"properties": { +"boundingPolys": { +"description": "Optional. Bounding polygons around the areas of interest in the reference image. If this field is empty, the system will try to detect regions of interest. At most 10 bounding polygons will be used. The provided shape is converted into a non-rotated rectangle. Once converted, the small edge of the rectangle must be greater than or equal to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok; 1:5 is not).", +"items": { +"$ref": "BoundingPoly" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the reference image. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`. This field is ignored when creating a reference image.", +"type": "string" +}, +"uri": { +"description": "Required. The Google Cloud Storage URI of the reference image. The URI must start with `gs://`.", +"type": "string" +} +}, +"type": "object" +}, +"RemoveProductFromProductSetRequest": { +"description": "Request message for the `RemoveProductFromProductSet` method.", +"id": "RemoveProductFromProductSetRequest", +"properties": { +"product": { +"description": "Required. The resource name for the Product to be removed from this ProductSet. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`", +"type": "string" +} +}, +"type": "object" +}, +"Result": { +"description": "Information about a product.", +"id": "Result", +"properties": { +"image": { +"description": "The resource name of the image from the product that is the closest match to the query.", +"type": "string" +}, +"product": { +"$ref": "Product", +"description": "The Product." +}, +"score": { +"description": "A confidence level on the match, ranging from 0 (no confidence) to 1 (full confidence).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"SafeSearchAnnotation": { +"description": "Set of features pertaining to the image, computed by computer vision methods over safe-search verticals (for example, adult, spoof, medical, violence).", +"id": "SafeSearchAnnotation", +"properties": { +"adult": { +"description": "Represents the adult content likelihood for the image. Adult content may contain elements such as nudity, pornographic images or cartoons, or sexual activities.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"medical": { +"description": "Likelihood that this is a medical image.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"racy": { +"description": "Likelihood that the request image contains racy content. Racy content may include (but is not limited to) skimpy or sheer clothing, strategically covered nudity, lewd or provocative poses, or close-ups of sensitive body areas.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"spoof": { +"description": "Spoof likelihood. The likelihood that an modification was made to the image's canonical version to make it appear funny or offensive.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +}, +"violence": { +"description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", +"enum": [ +"UNKNOWN", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unknown likelihood.", +"It is very unlikely.", +"It is unlikely.", +"It is possible.", +"It is likely.", +"It is very likely." +], +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Symbol": { +"description": "A single symbol representation.", +"id": "Symbol", +"properties": { +"boundingBox": { +"$ref": "BoundingPoly", +"description": "The bounding box for the symbol. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the symbol. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "TextProperty", +"description": "Additional information detected for the symbol." +}, +"text": { +"description": "The actual UTF-8 representation of the symbol.", +"type": "string" +} +}, +"type": "object" +}, +"TextAnnotation": { +"description": "TextAnnotation contains a structured representation of OCR extracted text. The hierarchy of an OCR extracted text structure is like this: TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol Each structural component, starting from Page, may further have their own properties. Properties describe detected languages, breaks etc.. Please refer to the TextAnnotation.TextProperty message definition below for more detail.", +"id": "TextAnnotation", +"properties": { +"pages": { +"description": "List of pages detected by OCR.", +"items": { +"$ref": "Page" +}, +"type": "array" +}, +"text": { +"description": "UTF-8 text detected on the pages.", +"type": "string" +} +}, +"type": "object" +}, +"TextDetectionParams": { +"description": "Parameters for text detections. This is used to control TEXT_DETECTION and DOCUMENT_TEXT_DETECTION features.", +"id": "TextDetectionParams", +"properties": { +"advancedOcrOptions": { +"description": "A list of advanced OCR options to further fine-tune OCR behavior. Current valid values are: - `legacy_layout`: a heuristics layout detection algorithm, which serves as an alternative to the current ML-based layout detection algorithm. Customers can choose the best suitable layout algorithm based on their situation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"enableTextDetectionConfidenceScore": { +"description": "By default, Cloud Vision API only includes confidence score for DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence score for TEXT_DETECTION as well.", +"type": "boolean" +} +}, +"type": "object" +}, +"TextProperty": { +"description": "Additional information detected on the structural component.", +"id": "TextProperty", +"properties": { +"detectedBreak": { +"$ref": "DetectedBreak", +"description": "Detected start or end of a text segment." +}, +"detectedLanguages": { +"description": "A list of detected languages together with confidence.", +"items": { +"$ref": "DetectedLanguage" +}, +"type": "array" +} +}, +"type": "object" +}, +"Vertex": { +"description": "A vertex represents a 2D point in the image. NOTE: the vertex coordinates are in the same scale as the original image.", +"id": "Vertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "int32", +"type": "integer" +}, +"y": { +"description": "Y coordinate.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"WebDetection": { +"description": "Relevant information for the image from the Internet.", +"id": "WebDetection", +"properties": { +"bestGuessLabels": { +"description": "The service's best guess as to the topic of the request image. Inferred from similar images on the open web.", +"items": { +"$ref": "WebLabel" +}, +"type": "array" +}, +"fullMatchingImages": { +"description": "Fully matching images from the Internet. Can include resized copies of the query image.", +"items": { +"$ref": "WebImage" +}, +"type": "array" +}, +"pagesWithMatchingImages": { +"description": "Web pages containing the matching images from the Internet.", +"items": { +"$ref": "WebPage" +}, +"type": "array" +}, +"partialMatchingImages": { +"description": "Partial matching images from the Internet. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "WebImage" +}, +"type": "array" +}, +"visuallySimilarImages": { +"description": "The visually similar image results.", +"items": { +"$ref": "WebImage" +}, +"type": "array" +}, +"webEntities": { +"description": "Deduced entities from similar images on the Internet.", +"items": { +"$ref": "WebEntity" +}, +"type": "array" +} +}, +"type": "object" +}, +"WebDetectionParams": { +"description": "Parameters for web detection request.", +"id": "WebDetectionParams", +"properties": { +"includeGeoResults": { +"deprecated": true, +"description": "This field has no effect on results.", +"type": "boolean" +} +}, +"type": "object" +}, +"WebEntity": { +"description": "Entity deduced from similar images on the Internet.", +"id": "WebEntity", +"properties": { +"description": { +"description": "Canonical description of the entity, in English.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID.", +"type": "string" +}, +"score": { +"description": "Overall relevancy score for the entity. Not normalized and not comparable across different image queries.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"WebImage": { +"description": "Metadata for online images.", +"id": "WebImage", +"properties": { +"score": { +"description": "(Deprecated) Overall relevancy score for the image.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result image URL.", +"type": "string" +} +}, +"type": "object" +}, +"WebLabel": { +"description": "Label to provide extra metadata for the web detection.", +"id": "WebLabel", +"properties": { +"label": { +"description": "Label for extra metadata.", +"type": "string" +}, +"languageCode": { +"description": "The BCP-47 language code for `label`, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", +"type": "string" +} +}, +"type": "object" +}, +"WebPage": { +"description": "Metadata for web pages.", +"id": "WebPage", +"properties": { +"fullMatchingImages": { +"description": "Fully matching images on the page. Can include resized copies of the query image.", +"items": { +"$ref": "WebImage" +}, +"type": "array" +}, +"pageTitle": { +"description": "Title for the web page, may contain HTML markups.", +"type": "string" +}, +"partialMatchingImages": { +"description": "Partial matching images on the page. Those images are similar enough to share some key-point features. For example an original image will likely have partial matching for its crops.", +"items": { +"$ref": "WebImage" +}, +"type": "array" +}, +"score": { +"description": "(Deprecated) Overall relevancy score for the web page.", +"format": "float", +"type": "number" +}, +"url": { +"description": "The result web page URL.", +"type": "string" +} +}, +"type": "object" +}, +"Word": { +"description": "A word representation.", +"id": "Word", +"properties": { +"boundingBox": { +"$ref": "BoundingPoly", +"description": "The bounding box for the word. The vertices are in the order of top-left, top-right, bottom-right, bottom-left. When a rotation of the bounding box is detected the rotation is represented as around the top-left corner as defined when the text is read in the 'natural' orientation. For example: * when the text is horizontal it might look like: 0----1 | | 3----2 * when it's rotated 180 degrees around the top-left corner it becomes: 2----3 | | 1----0 and the vertex order will still be (0, 1, 2, 3)." +}, +"confidence": { +"description": "Confidence of the OCR results for the word. Range [0, 1].", +"format": "float", +"type": "number" +}, +"property": { +"$ref": "TextProperty", +"description": "Additional information detected for the word." +}, +"symbols": { +"description": "List of symbols in the word. The order of the symbols follows the natural reading order.", +"items": { +"$ref": "Symbol" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Vision API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/walletobjects.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/walletobjects.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..0b3e55e5a8c03e01a35cdf38188a663db971c98e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/walletobjects.v1.json @@ -0,0 +1,9758 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/wallet_object.issuer": { +"description": "Private Service: https://www.googleapis.com/auth/wallet_object.issuer" +} +} +} +}, +"basePath": "", +"baseUrl": "https://walletobjects.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Walletobjects", +"description": "API for issuers to save and manage Google Wallet Objects.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/pay/passes", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "walletobjects:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://walletobjects.mtls.googleapis.com/", +"name": "walletobjects", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"eventticketclass": { +"methods": { +"addmessage": { +"description": "Adds a message to the event ticket class referenced by the given class ID.", +"flatPath": "walletobjects/v1/eventTicketClass/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.eventticketclass.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketClass/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "EventTicketClassAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the event ticket class with the given class ID.", +"flatPath": "walletobjects/v1/eventTicketClass/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.eventticketclass.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketClass/{resourceId}", +"response": { +"$ref": "EventTicketClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an event ticket class with the given ID and properties.", +"flatPath": "walletobjects/v1/eventTicketClass", +"httpMethod": "POST", +"id": "walletobjects.eventticketclass.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/eventTicketClass", +"request": { +"$ref": "EventTicketClass" +}, +"response": { +"$ref": "EventTicketClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all event ticket classes for a given issuer ID.", +"flatPath": "walletobjects/v1/eventTicketClass", +"httpMethod": "GET", +"id": "walletobjects.eventticketclass.list", +"parameterOrder": [], +"parameters": { +"issuerId": { +"description": "The ID of the issuer authorized to list classes.", +"format": "int64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketClass", +"response": { +"$ref": "EventTicketClassListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the event ticket class referenced by the given class ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/eventTicketClass/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.eventticketclass.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketClass/{resourceId}", +"request": { +"$ref": "EventTicketClass" +}, +"response": { +"$ref": "EventTicketClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the event ticket class referenced by the given class ID.", +"flatPath": "walletobjects/v1/eventTicketClass/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.eventticketclass.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketClass/{resourceId}", +"request": { +"$ref": "EventTicketClass" +}, +"response": { +"$ref": "EventTicketClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"eventticketobject": { +"methods": { +"addmessage": { +"description": "Adds a message to the event ticket object referenced by the given object ID.", +"flatPath": "walletobjects/v1/eventTicketObject/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.eventticketobject.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketObject/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "EventTicketObjectAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the event ticket object with the given object ID.", +"flatPath": "walletobjects/v1/eventTicketObject/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.eventticketobject.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketObject/{resourceId}", +"response": { +"$ref": "EventTicketObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an event ticket object with the given ID and properties.", +"flatPath": "walletobjects/v1/eventTicketObject", +"httpMethod": "POST", +"id": "walletobjects.eventticketobject.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/eventTicketObject", +"request": { +"$ref": "EventTicketObject" +}, +"response": { +"$ref": "EventTicketObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all event ticket objects for a given issuer ID.", +"flatPath": "walletobjects/v1/eventTicketObject", +"httpMethod": "GET", +"id": "walletobjects.eventticketobject.list", +"parameterOrder": [], +"parameters": { +"classId": { +"description": "The ID of the class whose objects will be listed.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketObject", +"response": { +"$ref": "EventTicketObjectListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"modifylinkedofferobjects": { +"description": "Modifies linked offer objects for the event ticket object with the given ID.", +"flatPath": "walletobjects/v1/eventTicketObject/{resourceId}/modifyLinkedOfferObjects", +"httpMethod": "POST", +"id": "walletobjects.eventticketobject.modifylinkedofferobjects", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketObject/{resourceId}/modifyLinkedOfferObjects", +"request": { +"$ref": "ModifyLinkedOfferObjectsRequest" +}, +"response": { +"$ref": "EventTicketObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the event ticket object referenced by the given object ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/eventTicketObject/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.eventticketobject.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketObject/{resourceId}", +"request": { +"$ref": "EventTicketObject" +}, +"response": { +"$ref": "EventTicketObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the event ticket object referenced by the given object ID.", +"flatPath": "walletobjects/v1/eventTicketObject/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.eventticketobject.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/eventTicketObject/{resourceId}", +"request": { +"$ref": "EventTicketObject" +}, +"response": { +"$ref": "EventTicketObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"flightclass": { +"methods": { +"addmessage": { +"description": "Adds a message to the flight class referenced by the given class ID.", +"flatPath": "walletobjects/v1/flightClass/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.flightclass.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/flightClass/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "FlightClassAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the flight class with the given class ID.", +"flatPath": "walletobjects/v1/flightClass/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.flightclass.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/flightClass/{resourceId}", +"response": { +"$ref": "FlightClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an flight class with the given ID and properties.", +"flatPath": "walletobjects/v1/flightClass", +"httpMethod": "POST", +"id": "walletobjects.flightclass.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/flightClass", +"request": { +"$ref": "FlightClass" +}, +"response": { +"$ref": "FlightClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all flight classes for a given issuer ID.", +"flatPath": "walletobjects/v1/flightClass", +"httpMethod": "GET", +"id": "walletobjects.flightclass.list", +"parameterOrder": [], +"parameters": { +"issuerId": { +"description": "The ID of the issuer authorized to list classes.", +"format": "int64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/flightClass", +"response": { +"$ref": "FlightClassListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the flight class referenced by the given class ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/flightClass/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.flightclass.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/flightClass/{resourceId}", +"request": { +"$ref": "FlightClass" +}, +"response": { +"$ref": "FlightClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the flight class referenced by the given class ID.", +"flatPath": "walletobjects/v1/flightClass/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.flightclass.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/flightClass/{resourceId}", +"request": { +"$ref": "FlightClass" +}, +"response": { +"$ref": "FlightClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"flightobject": { +"methods": { +"addmessage": { +"description": "Adds a message to the flight object referenced by the given object ID.", +"flatPath": "walletobjects/v1/flightObject/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.flightobject.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/flightObject/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "FlightObjectAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the flight object with the given object ID.", +"flatPath": "walletobjects/v1/flightObject/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.flightobject.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/flightObject/{resourceId}", +"response": { +"$ref": "FlightObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an flight object with the given ID and properties.", +"flatPath": "walletobjects/v1/flightObject", +"httpMethod": "POST", +"id": "walletobjects.flightobject.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/flightObject", +"request": { +"$ref": "FlightObject" +}, +"response": { +"$ref": "FlightObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all flight objects for a given issuer ID.", +"flatPath": "walletobjects/v1/flightObject", +"httpMethod": "GET", +"id": "walletobjects.flightobject.list", +"parameterOrder": [], +"parameters": { +"classId": { +"description": "The ID of the class whose objects will be listed.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/flightObject", +"response": { +"$ref": "FlightObjectListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the flight object referenced by the given object ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/flightObject/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.flightobject.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/flightObject/{resourceId}", +"request": { +"$ref": "FlightObject" +}, +"response": { +"$ref": "FlightObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the flight object referenced by the given object ID.", +"flatPath": "walletobjects/v1/flightObject/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.flightobject.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/flightObject/{resourceId}", +"request": { +"$ref": "FlightObject" +}, +"response": { +"$ref": "FlightObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"genericclass": { +"methods": { +"addmessage": { +"description": "Adds a message to the generic class referenced by the given class ID.", +"flatPath": "walletobjects/v1/genericClass/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.genericclass.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/genericClass/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "GenericClassAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the generic class with the given class ID.", +"flatPath": "walletobjects/v1/genericClass/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.genericclass.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/genericClass/{resourceId}", +"response": { +"$ref": "GenericClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts a generic class with the given ID and properties.", +"flatPath": "walletobjects/v1/genericClass", +"httpMethod": "POST", +"id": "walletobjects.genericclass.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/genericClass", +"request": { +"$ref": "GenericClass" +}, +"response": { +"$ref": "GenericClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all generic classes for a given issuer ID.", +"flatPath": "walletobjects/v1/genericClass", +"httpMethod": "GET", +"id": "walletobjects.genericclass.list", +"parameterOrder": [], +"parameters": { +"issuerId": { +"description": "The ID of the issuer authorized to list classes.", +"format": "int64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/genericClass", +"response": { +"$ref": "GenericClassListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the generic class referenced by the given class ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/genericClass/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.genericclass.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/genericClass/{resourceId}", +"request": { +"$ref": "GenericClass" +}, +"response": { +"$ref": "GenericClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the Generic class referenced by the given class ID.", +"flatPath": "walletobjects/v1/genericClass/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.genericclass.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/genericClass/{resourceId}", +"request": { +"$ref": "GenericClass" +}, +"response": { +"$ref": "GenericClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"genericobject": { +"methods": { +"addmessage": { +"description": "Adds a message to the generic object referenced by the given object ID.", +"flatPath": "walletobjects/v1/genericObject/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.genericobject.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/genericObject/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "GenericObjectAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the generic object with the given object ID.", +"flatPath": "walletobjects/v1/genericObject/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.genericobject.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/genericObject/{resourceId}", +"response": { +"$ref": "GenericObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts a generic object with the given ID and properties.", +"flatPath": "walletobjects/v1/genericObject", +"httpMethod": "POST", +"id": "walletobjects.genericobject.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/genericObject", +"request": { +"$ref": "GenericObject" +}, +"response": { +"$ref": "GenericObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all generic objects for a given issuer ID.", +"flatPath": "walletobjects/v1/genericObject", +"httpMethod": "GET", +"id": "walletobjects.genericobject.list", +"parameterOrder": [], +"parameters": { +"classId": { +"description": "The ID of the class whose objects will be listed.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/genericObject", +"response": { +"$ref": "GenericObjectListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the generic object referenced by the given object ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/genericObject/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.genericobject.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/genericObject/{resourceId}", +"request": { +"$ref": "GenericObject" +}, +"response": { +"$ref": "GenericObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the generic object referenced by the given object ID.", +"flatPath": "walletobjects/v1/genericObject/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.genericobject.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/genericObject/{resourceId}", +"request": { +"$ref": "GenericObject" +}, +"response": { +"$ref": "GenericObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"giftcardclass": { +"methods": { +"addmessage": { +"description": "Adds a message to the gift card class referenced by the given class ID.", +"flatPath": "walletobjects/v1/giftCardClass/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.giftcardclass.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardClass/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "GiftCardClassAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the gift card class with the given class ID.", +"flatPath": "walletobjects/v1/giftCardClass/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.giftcardclass.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardClass/{resourceId}", +"response": { +"$ref": "GiftCardClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an gift card class with the given ID and properties.", +"flatPath": "walletobjects/v1/giftCardClass", +"httpMethod": "POST", +"id": "walletobjects.giftcardclass.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/giftCardClass", +"request": { +"$ref": "GiftCardClass" +}, +"response": { +"$ref": "GiftCardClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all gift card classes for a given issuer ID.", +"flatPath": "walletobjects/v1/giftCardClass", +"httpMethod": "GET", +"id": "walletobjects.giftcardclass.list", +"parameterOrder": [], +"parameters": { +"issuerId": { +"description": "The ID of the issuer authorized to list classes.", +"format": "int64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardClass", +"response": { +"$ref": "GiftCardClassListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the gift card class referenced by the given class ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/giftCardClass/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.giftcardclass.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardClass/{resourceId}", +"request": { +"$ref": "GiftCardClass" +}, +"response": { +"$ref": "GiftCardClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the gift card class referenced by the given class ID.", +"flatPath": "walletobjects/v1/giftCardClass/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.giftcardclass.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardClass/{resourceId}", +"request": { +"$ref": "GiftCardClass" +}, +"response": { +"$ref": "GiftCardClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"giftcardobject": { +"methods": { +"addmessage": { +"description": "Adds a message to the gift card object referenced by the given object ID.", +"flatPath": "walletobjects/v1/giftCardObject/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.giftcardobject.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardObject/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "GiftCardObjectAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the gift card object with the given object ID.", +"flatPath": "walletobjects/v1/giftCardObject/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.giftcardobject.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardObject/{resourceId}", +"response": { +"$ref": "GiftCardObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an gift card object with the given ID and properties.", +"flatPath": "walletobjects/v1/giftCardObject", +"httpMethod": "POST", +"id": "walletobjects.giftcardobject.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/giftCardObject", +"request": { +"$ref": "GiftCardObject" +}, +"response": { +"$ref": "GiftCardObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all gift card objects for a given issuer ID.", +"flatPath": "walletobjects/v1/giftCardObject", +"httpMethod": "GET", +"id": "walletobjects.giftcardobject.list", +"parameterOrder": [], +"parameters": { +"classId": { +"description": "The ID of the class whose objects will be listed.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardObject", +"response": { +"$ref": "GiftCardObjectListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the gift card object referenced by the given object ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/giftCardObject/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.giftcardobject.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardObject/{resourceId}", +"request": { +"$ref": "GiftCardObject" +}, +"response": { +"$ref": "GiftCardObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the gift card object referenced by the given object ID.", +"flatPath": "walletobjects/v1/giftCardObject/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.giftcardobject.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/giftCardObject/{resourceId}", +"request": { +"$ref": "GiftCardObject" +}, +"response": { +"$ref": "GiftCardObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"issuer": { +"methods": { +"get": { +"description": "Returns the issuer with the given issuer ID.", +"flatPath": "walletobjects/v1/issuer/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.issuer.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an issuer.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/issuer/{resourceId}", +"response": { +"$ref": "Issuer" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an issuer with the given ID and properties.", +"flatPath": "walletobjects/v1/issuer", +"httpMethod": "POST", +"id": "walletobjects.issuer.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/issuer", +"request": { +"$ref": "Issuer" +}, +"response": { +"$ref": "Issuer" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all issuers shared to the caller.", +"flatPath": "walletobjects/v1/issuer", +"httpMethod": "GET", +"id": "walletobjects.issuer.list", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/issuer", +"response": { +"$ref": "IssuerListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the issuer referenced by the given issuer ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/issuer/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.issuer.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an issuer.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/issuer/{resourceId}", +"request": { +"$ref": "Issuer" +}, +"response": { +"$ref": "Issuer" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the issuer referenced by the given issuer ID.", +"flatPath": "walletobjects/v1/issuer/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.issuer.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an issuer.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/issuer/{resourceId}", +"request": { +"$ref": "Issuer" +}, +"response": { +"$ref": "Issuer" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"jwt": { +"methods": { +"insert": { +"description": "Inserts the resources in the JWT.", +"flatPath": "walletobjects/v1/jwt", +"httpMethod": "POST", +"id": "walletobjects.jwt.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/jwt", +"request": { +"$ref": "JwtResource" +}, +"response": { +"$ref": "JwtInsertResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"loyaltyclass": { +"methods": { +"addmessage": { +"description": "Adds a message to the loyalty class referenced by the given class ID.", +"flatPath": "walletobjects/v1/loyaltyClass/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.loyaltyclass.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyClass/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "LoyaltyClassAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the loyalty class with the given class ID.", +"flatPath": "walletobjects/v1/loyaltyClass/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.loyaltyclass.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyClass/{resourceId}", +"response": { +"$ref": "LoyaltyClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an loyalty class with the given ID and properties.", +"flatPath": "walletobjects/v1/loyaltyClass", +"httpMethod": "POST", +"id": "walletobjects.loyaltyclass.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/loyaltyClass", +"request": { +"$ref": "LoyaltyClass" +}, +"response": { +"$ref": "LoyaltyClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all loyalty classes for a given issuer ID.", +"flatPath": "walletobjects/v1/loyaltyClass", +"httpMethod": "GET", +"id": "walletobjects.loyaltyclass.list", +"parameterOrder": [], +"parameters": { +"issuerId": { +"description": "The ID of the issuer authorized to list classes.", +"format": "int64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyClass", +"response": { +"$ref": "LoyaltyClassListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the loyalty class referenced by the given class ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/loyaltyClass/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.loyaltyclass.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyClass/{resourceId}", +"request": { +"$ref": "LoyaltyClass" +}, +"response": { +"$ref": "LoyaltyClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the loyalty class referenced by the given class ID.", +"flatPath": "walletobjects/v1/loyaltyClass/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.loyaltyclass.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyClass/{resourceId}", +"request": { +"$ref": "LoyaltyClass" +}, +"response": { +"$ref": "LoyaltyClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"loyaltyobject": { +"methods": { +"addmessage": { +"description": "Adds a message to the loyalty object referenced by the given object ID.", +"flatPath": "walletobjects/v1/loyaltyObject/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.loyaltyobject.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyObject/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "LoyaltyObjectAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the loyalty object with the given object ID.", +"flatPath": "walletobjects/v1/loyaltyObject/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.loyaltyobject.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyObject/{resourceId}", +"response": { +"$ref": "LoyaltyObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an loyalty object with the given ID and properties.", +"flatPath": "walletobjects/v1/loyaltyObject", +"httpMethod": "POST", +"id": "walletobjects.loyaltyobject.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/loyaltyObject", +"request": { +"$ref": "LoyaltyObject" +}, +"response": { +"$ref": "LoyaltyObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all loyalty objects for a given issuer ID.", +"flatPath": "walletobjects/v1/loyaltyObject", +"httpMethod": "GET", +"id": "walletobjects.loyaltyobject.list", +"parameterOrder": [], +"parameters": { +"classId": { +"description": "The ID of the class whose objects will be listed.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyObject", +"response": { +"$ref": "LoyaltyObjectListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"modifylinkedofferobjects": { +"description": "Modifies linked offer objects for the loyalty object with the given ID.", +"flatPath": "walletobjects/v1/loyaltyObject/{resourceId}/modifyLinkedOfferObjects", +"httpMethod": "POST", +"id": "walletobjects.loyaltyobject.modifylinkedofferobjects", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyObject/{resourceId}/modifyLinkedOfferObjects", +"request": { +"$ref": "ModifyLinkedOfferObjectsRequest" +}, +"response": { +"$ref": "LoyaltyObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the loyalty object referenced by the given object ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/loyaltyObject/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.loyaltyobject.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyObject/{resourceId}", +"request": { +"$ref": "LoyaltyObject" +}, +"response": { +"$ref": "LoyaltyObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the loyalty object referenced by the given object ID.", +"flatPath": "walletobjects/v1/loyaltyObject/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.loyaltyobject.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/loyaltyObject/{resourceId}", +"request": { +"$ref": "LoyaltyObject" +}, +"response": { +"$ref": "LoyaltyObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"media": { +"methods": { +"download": { +"description": "Downloads rotating barcode values for the transit object referenced by the given object ID.", +"flatPath": "walletobjects/v1/transitObject/{resourceId}/downloadRotatingBarcodeValues", +"httpMethod": "GET", +"id": "walletobjects.media.download", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitObject/{resourceId}/downloadRotatingBarcodeValues", +"response": { +"$ref": "Media" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +], +"supportsMediaDownload": true, +"useMediaDownloadService": true +}, +"upload": { +"description": "Uploads rotating barcode values for the transit object referenced by the given object ID. Note the max upload size is specified in google3/production/config/cdd/apps-upload/customers/payments-consumer-passes/config.gcl and enforced by Scotty.", +"flatPath": "walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues", +"httpMethod": "POST", +"id": "walletobjects.media.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues" +} +} +}, +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues", +"request": { +"$ref": "TransitObjectUploadRotatingBarcodeValuesRequest" +}, +"response": { +"$ref": "TransitObjectUploadRotatingBarcodeValuesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +], +"supportsMediaUpload": true +} +} +}, +"offerclass": { +"methods": { +"addmessage": { +"description": "Adds a message to the offer class referenced by the given class ID.", +"flatPath": "walletobjects/v1/offerClass/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.offerclass.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/offerClass/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "OfferClassAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the offer class with the given class ID.", +"flatPath": "walletobjects/v1/offerClass/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.offerclass.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/offerClass/{resourceId}", +"response": { +"$ref": "OfferClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an offer class with the given ID and properties.", +"flatPath": "walletobjects/v1/offerClass", +"httpMethod": "POST", +"id": "walletobjects.offerclass.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/offerClass", +"request": { +"$ref": "OfferClass" +}, +"response": { +"$ref": "OfferClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all offer classes for a given issuer ID.", +"flatPath": "walletobjects/v1/offerClass", +"httpMethod": "GET", +"id": "walletobjects.offerclass.list", +"parameterOrder": [], +"parameters": { +"issuerId": { +"description": "The ID of the issuer authorized to list classes.", +"format": "int64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/offerClass", +"response": { +"$ref": "OfferClassListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the offer class referenced by the given class ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/offerClass/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.offerclass.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/offerClass/{resourceId}", +"request": { +"$ref": "OfferClass" +}, +"response": { +"$ref": "OfferClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the offer class referenced by the given class ID.", +"flatPath": "walletobjects/v1/offerClass/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.offerclass.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/offerClass/{resourceId}", +"request": { +"$ref": "OfferClass" +}, +"response": { +"$ref": "OfferClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"offerobject": { +"methods": { +"addmessage": { +"description": "Adds a message to the offer object referenced by the given object ID.", +"flatPath": "walletobjects/v1/offerObject/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.offerobject.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/offerObject/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "OfferObjectAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the offer object with the given object ID.", +"flatPath": "walletobjects/v1/offerObject/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.offerobject.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/offerObject/{resourceId}", +"response": { +"$ref": "OfferObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an offer object with the given ID and properties.", +"flatPath": "walletobjects/v1/offerObject", +"httpMethod": "POST", +"id": "walletobjects.offerobject.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/offerObject", +"request": { +"$ref": "OfferObject" +}, +"response": { +"$ref": "OfferObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all offer objects for a given issuer ID.", +"flatPath": "walletobjects/v1/offerObject", +"httpMethod": "GET", +"id": "walletobjects.offerobject.list", +"parameterOrder": [], +"parameters": { +"classId": { +"description": "The ID of the class whose objects will be listed.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/offerObject", +"response": { +"$ref": "OfferObjectListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the offer object referenced by the given object ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/offerObject/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.offerobject.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/offerObject/{resourceId}", +"request": { +"$ref": "OfferObject" +}, +"response": { +"$ref": "OfferObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the offer object referenced by the given object ID.", +"flatPath": "walletobjects/v1/offerObject/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.offerobject.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/offerObject/{resourceId}", +"request": { +"$ref": "OfferObject" +}, +"response": { +"$ref": "OfferObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"permissions": { +"methods": { +"get": { +"description": "Returns the permissions for the given issuer id.", +"flatPath": "walletobjects/v1/permissions/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.permissions.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an issuer. This ID must be unique across all issuers.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/permissions/{resourceId}", +"response": { +"$ref": "Permissions" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the permissions for the given issuer.", +"flatPath": "walletobjects/v1/permissions/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.permissions.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an issuer. This ID must be unique across all issuers.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/permissions/{resourceId}", +"request": { +"$ref": "Permissions" +}, +"response": { +"$ref": "Permissions" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"smarttap": { +"methods": { +"insert": { +"description": "Inserts the smart tap.", +"flatPath": "walletobjects/v1/smartTap", +"httpMethod": "POST", +"id": "walletobjects.smarttap.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/smartTap", +"request": { +"$ref": "SmartTap" +}, +"response": { +"$ref": "SmartTap" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"transitclass": { +"methods": { +"addmessage": { +"description": "Adds a message to the transit class referenced by the given class ID.", +"flatPath": "walletobjects/v1/transitClass/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.transitclass.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitClass/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "TransitClassAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the transit class with the given class ID.", +"flatPath": "walletobjects/v1/transitClass/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.transitclass.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitClass/{resourceId}", +"response": { +"$ref": "TransitClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts a transit class with the given ID and properties.", +"flatPath": "walletobjects/v1/transitClass", +"httpMethod": "POST", +"id": "walletobjects.transitclass.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/transitClass", +"request": { +"$ref": "TransitClass" +}, +"response": { +"$ref": "TransitClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all transit classes for a given issuer ID.", +"flatPath": "walletobjects/v1/transitClass", +"httpMethod": "GET", +"id": "walletobjects.transitclass.list", +"parameterOrder": [], +"parameters": { +"issuerId": { +"description": "The ID of the issuer authorized to list classes.", +"format": "int64", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/transitClass", +"response": { +"$ref": "TransitClassListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the transit class referenced by the given class ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/transitClass/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.transitclass.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitClass/{resourceId}", +"request": { +"$ref": "TransitClass" +}, +"response": { +"$ref": "TransitClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the transit class referenced by the given class ID.", +"flatPath": "walletobjects/v1/transitClass/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.transitclass.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitClass/{resourceId}", +"request": { +"$ref": "TransitClass" +}, +"response": { +"$ref": "TransitClass" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +}, +"transitobject": { +"methods": { +"addmessage": { +"description": "Adds a message to the transit object referenced by the given object ID.", +"flatPath": "walletobjects/v1/transitObject/{resourceId}/addMessage", +"httpMethod": "POST", +"id": "walletobjects.transitobject.addmessage", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitObject/{resourceId}/addMessage", +"request": { +"$ref": "AddMessageRequest" +}, +"response": { +"$ref": "TransitObjectAddMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"get": { +"description": "Returns the transit object with the given object ID.", +"flatPath": "walletobjects/v1/transitObject/{resourceId}", +"httpMethod": "GET", +"id": "walletobjects.transitobject.get", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitObject/{resourceId}", +"response": { +"$ref": "TransitObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"insert": { +"description": "Inserts an transit object with the given ID and properties.", +"flatPath": "walletobjects/v1/transitObject", +"httpMethod": "POST", +"id": "walletobjects.transitobject.insert", +"parameterOrder": [], +"parameters": {}, +"path": "walletobjects/v1/transitObject", +"request": { +"$ref": "TransitObject" +}, +"response": { +"$ref": "TransitObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"list": { +"description": "Returns a list of all transit objects for a given issuer ID.", +"flatPath": "walletobjects/v1/transitObject", +"httpMethod": "GET", +"id": "walletobjects.transitobject.list", +"parameterOrder": [], +"parameters": { +"classId": { +"description": "The ID of the class whose objects will be listed.", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"token": { +"description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", +"location": "query", +"type": "string" +} +}, +"path": "walletobjects/v1/transitObject", +"response": { +"$ref": "TransitObjectListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"patch": { +"description": "Updates the transit object referenced by the given object ID. This method supports patch semantics.", +"flatPath": "walletobjects/v1/transitObject/{resourceId}", +"httpMethod": "PATCH", +"id": "walletobjects.transitobject.patch", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitObject/{resourceId}", +"request": { +"$ref": "TransitObject" +}, +"response": { +"$ref": "TransitObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +}, +"update": { +"description": "Updates the transit object referenced by the given object ID.", +"flatPath": "walletobjects/v1/transitObject/{resourceId}", +"httpMethod": "PUT", +"id": "walletobjects.transitobject.update", +"parameterOrder": [ +"resourceId" +], +"parameters": { +"resourceId": { +"description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "walletobjects/v1/transitObject/{resourceId}", +"request": { +"$ref": "TransitObject" +}, +"response": { +"$ref": "TransitObject" +}, +"scopes": [ +"https://www.googleapis.com/auth/wallet_object.issuer" +] +} +} +} +}, +"revision": "20241203", +"rootUrl": "https://walletobjects.googleapis.com/", +"schemas": { +"ActivationOptions": { +"description": "ActivationOptions for the class", +"id": "ActivationOptions", +"properties": { +"activationUrl": { +"description": "HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.", +"type": "string" +}, +"allowReactivation": { +"description": "Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.", +"type": "boolean" +} +}, +"type": "object" +}, +"ActivationStatus": { +"description": "The activation status of the object. This field includes activation status if valuable supports activation.", +"id": "ActivationStatus", +"properties": { +"state": { +"enum": [ +"UNKNOWN_STATE", +"NOT_ACTIVATED", +"not_activated", +"ACTIVATED", +"activated" +], +"enumDeprecated": [ +false, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Not-Activated, this is the default status", +"Legacy alias for `NOT_ACTIVATED`. Deprecated.", +"Activated", +"Legacy alias for `ACTIVATED`. Deprecated." +], +"type": "string" +} +}, +"type": "object" +}, +"AddMessageRequest": { +"description": "Resource used when the AddMessage endpoints are called.", +"id": "AddMessageRequest", +"properties": { +"message": { +"$ref": "Message" +} +}, +"type": "object" +}, +"AirportInfo": { +"id": "AirportInfo", +"properties": { +"airportIataCode": { +"description": "Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: \"SFO\"", +"type": "string" +}, +"airportNameOverride": { +"$ref": "LocalizedString", +"description": "Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code \"LTN\", IATA website tells us that the corresponding airport city is \"London\". If this field is not populated, Google would display \"London\". However, populating this field with a custom name (eg: \"London Luton\") would override it." +}, +"gate": { +"description": "A name of the gate. Eg: \"B59\" or \"59\"", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#airportInfo\"`.", +"type": "string" +}, +"terminal": { +"description": "Terminal name. Eg: \"INTL\" or \"I\"", +"type": "string" +} +}, +"type": "object" +}, +"AppLinkData": { +"id": "AppLinkData", +"properties": { +"androidAppLinkInfo": { +"$ref": "AppLinkDataAppLinkInfo", +"description": "Optional information about the partner app link." +}, +"displayText": { +"$ref": "LocalizedString", +"description": "Optional display text for the app link button. Character limit is 30." +}, +"iosAppLinkInfo": { +"$ref": "AppLinkDataAppLinkInfo", +"deprecated": true, +"description": "Deprecated. Links to open iOS apps are not supported." +}, +"webAppLinkInfo": { +"$ref": "AppLinkDataAppLinkInfo", +"description": "Optional information about the partner web link." +} +}, +"type": "object" +}, +"AppLinkDataAppLinkInfo": { +"id": "AppLinkDataAppLinkInfo", +"properties": { +"appLogoImage": { +"$ref": "Image", +"deprecated": true, +"description": "Deprecated. Image isn't supported in the app link module." +}, +"appTarget": { +"$ref": "AppLinkDataAppLinkInfoAppTarget", +"description": "Target to follow when opening the app link on clients. It will be used by partners to open their app or webpage." +}, +"description": { +"$ref": "LocalizedString", +"deprecated": true, +"description": "Deprecated. Description isn't supported in the app link module." +}, +"title": { +"$ref": "LocalizedString", +"deprecated": true, +"description": "Deprecated. Title isn't supported in the app link module." +} +}, +"type": "object" +}, +"AppLinkDataAppLinkInfoAppTarget": { +"id": "AppLinkDataAppLinkInfoAppTarget", +"properties": { +"packageName": { +"description": "Package name for AppTarget. For example: com.google.android.gm", +"type": "string" +}, +"targetUri": { +"$ref": "Uri", +"description": "URI for AppTarget. The description on the URI must be set. Prefer setting package field instead, if this target is defined for your application." +} +}, +"type": "object" +}, +"AuthenticationKey": { +"id": "AuthenticationKey", +"properties": { +"id": { +"description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", +"format": "int32", +"type": "integer" +}, +"publicKeyPem": { +"description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", +"type": "string" +} +}, +"type": "object" +}, +"Barcode": { +"id": "Barcode", +"properties": { +"alternateText": { +"description": "An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#barcode\"`.", +"type": "string" +}, +"renderEncoding": { +"description": "The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.", +"enum": [ +"RENDER_ENCODING_UNSPECIFIED", +"UTF_8" +], +"enumDescriptions": [ +"", +"UTF_8 encoding for barcodes. This is only supported for barcode type qrCode." +], +"type": "string" +}, +"showCodeText": { +"$ref": "LocalizedString", +"description": "Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google." +}, +"type": { +"description": "The type of barcode.", +"enum": [ +"BARCODE_TYPE_UNSPECIFIED", +"AZTEC", +"aztec", +"CODE_39", +"code39", +"CODE_128", +"code128", +"CODABAR", +"codabar", +"DATA_MATRIX", +"dataMatrix", +"EAN_8", +"ean8", +"EAN_13", +"ean13", +"EAN13", +"ITF_14", +"itf14", +"PDF_417", +"pdf417", +"PDF417", +"QR_CODE", +"qrCode", +"qrcode", +"UPC_A", +"upcA", +"TEXT_ONLY", +"textOnly" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true, +true, +false, +true, +false, +true, +true, +false, +true, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Not supported for Rotating Barcodes.", +"Legacy alias for `AZTEC`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `CODE_39`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `CODE_128`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `CODABAR`. Deprecated. Not supported for Rotating Barcodes.", +"A 2D matrix barcode consisting of black and white. Cells or modules are arranged in either a square or rectangle. Not supported for Rotating Barcodes.", +"Legacy alias for `DATA_MATRIX`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `EAN_8`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `EAN_13`. Deprecated. Not supported for Rotating Barcodes.", +"Legacy alias for `EAN_13`. Deprecated. Not supported for Rotating Barcodes.", +"14 digit ITF code Not supported for Rotating Barcodes.", +"Legacy alias for `ITF_14`. Deprecated. Not supported for Rotating Barcodes.", +"Supported for Rotating Barcodes.", +"Legacy alias for `PDF_417`. Deprecated.", +"Legacy alias for `PDF_417`. Deprecated.", +"Supported for Rotating Barcodes.", +"Legacy alias for `QR_CODE`. Deprecated.", +"Legacy alias for `QR_CODE`. Deprecated.", +"11 or 12 digit codes Not supported for Rotating Barcodes.", +"Legacy alias for `UPC_A`. Deprecated. Not supported for Rotating Barcodes.", +"Renders the field as a text field. The `alternateText` field may not be used with a barcode of type `textOnly`. Not supported for Rotating Barcodes.", +"Legacy alias for `TEXT_ONLY`. Deprecated. Not supported for Rotating Barcodes." +], +"type": "string" +}, +"value": { +"description": "The value encoded in the barcode.", +"type": "string" +} +}, +"type": "object" +}, +"BarcodeSectionDetail": { +"id": "BarcodeSectionDetail", +"properties": { +"fieldSelector": { +"$ref": "FieldSelector", +"description": "A reference to an existing text-based or image field to display." +} +}, +"type": "object" +}, +"Blobstore2Info": { +"description": "Information to read/write to blobstore2.", +"id": "Blobstore2Info", +"properties": { +"blobGeneration": { +"description": "The blob generation id.", +"format": "int64", +"type": "string" +}, +"blobId": { +"description": "The blob id, e.g., /blobstore/prod/playground/scotty", +"type": "string" +}, +"downloadReadHandle": { +"description": "Read handle passed from Bigstore -> Scotty for a GCS download. This is a signed, serialized blobstore2.ReadHandle proto which must never be set outside of Bigstore, and is not applicable to non-GCS media downloads.", +"format": "byte", +"type": "string" +}, +"readToken": { +"description": "The blob read token. Needed to read blobs that have not been replicated. Might not be available until the final call.", +"type": "string" +}, +"uploadMetadataContainer": { +"description": "Metadata passed from Blobstore -> Scotty for a new GCS upload. This is a signed, serialized blobstore2.BlobMetadataContainer proto which must never be consumed outside of Bigstore, and is not applicable to non-GCS media uploads.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"BoardingAndSeatingInfo": { +"id": "BoardingAndSeatingInfo", +"properties": { +"boardingDoor": { +"description": "Set this field only if this flight boards through more than one door or bridge and you want to explicitly print the door location on the boarding pass. Most airlines route their passengers to the right door or bridge by refering to doors/bridges by the `seatClass`. In those cases `boardingDoor` should not be set.", +"enum": [ +"BOARDING_DOOR_UNSPECIFIED", +"FRONT", +"front", +"BACK", +"back" +], +"enumDeprecated": [ +false, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `FRONT`. Deprecated.", +"", +"Legacy alias for `BACK`. Deprecated." +], +"type": "string" +}, +"boardingGroup": { +"description": "The value of boarding group (or zone) this passenger shall board with. eg: \"B\" The label for this value will be determined by the `boardingPolicy` field in the `flightClass` referenced by this object.", +"type": "string" +}, +"boardingPosition": { +"description": "The value of boarding position. eg: \"76\"", +"type": "string" +}, +"boardingPrivilegeImage": { +"$ref": "Image", +"description": "A small image shown above the boarding barcode. Airlines can use it to communicate any special boarding privileges. In the event the security program logo is also set, this image might be rendered alongside the logo for that security program." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#boardingAndSeatingInfo\"`.", +"type": "string" +}, +"seatAssignment": { +"$ref": "LocalizedString", +"description": "The passenger's seat assignment. To be used when there is no specific identifier to use in `seatNumber`. eg: \"assigned at gate\"" +}, +"seatClass": { +"description": "The value of the seat class. eg: \"Economy\" or \"Economy Plus\"", +"type": "string" +}, +"seatNumber": { +"description": "The value of passenger seat. If there is no specific identifier, use `seatAssignment` instead. eg: \"25A\"", +"type": "string" +}, +"sequenceNumber": { +"description": "The sequence number on the boarding pass. This usually matches the sequence in which the passengers checked in. Airline might use the number for manual boarding and bag tags. eg: \"49\"", +"type": "string" +} +}, +"type": "object" +}, +"BoardingAndSeatingPolicy": { +"id": "BoardingAndSeatingPolicy", +"properties": { +"boardingPolicy": { +"description": "Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.", +"enum": [ +"BOARDING_POLICY_UNSPECIFIED", +"ZONE_BASED", +"zoneBased", +"GROUP_BASED", +"groupBased", +"BOARDING_POLICY_OTHER", +"boardingPolicyOther" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `ZONE_BASED`. Deprecated.", +"", +"Legacy alias for `GROUP_BASED`. Deprecated.", +"", +"Legacy alias for `BOARDING_POLICY_OTHER`. Deprecated." +], +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#boardingAndSeatingPolicy\"`.", +"type": "string" +}, +"seatClassPolicy": { +"description": "Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.", +"enum": [ +"SEAT_CLASS_POLICY_UNSPECIFIED", +"CABIN_BASED", +"cabinBased", +"CLASS_BASED", +"classBased", +"TIER_BASED", +"tierBased", +"SEAT_CLASS_POLICY_OTHER", +"seatClassPolicyOther" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `CABIN_BASED`. Deprecated.", +"", +"Legacy alias for `CLASS_BASED`. Deprecated.", +"", +"Legacy alias for `TIER_BASED`. Deprecated.", +"", +"Legacy alias for `SEAT_CLASS_POLICY_OTHER`. Deprecated." +], +"type": "string" +} +}, +"type": "object" +}, +"CallbackOptions": { +"id": "CallbackOptions", +"properties": { +"updateRequestUrl": { +"deprecated": true, +"description": "URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Googlebot. Deprecated.", +"type": "string" +}, +"url": { +"description": "The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Googlebot.", +"type": "string" +} +}, +"type": "object" +}, +"CardBarcodeSectionDetails": { +"id": "CardBarcodeSectionDetails", +"properties": { +"firstBottomDetail": { +"$ref": "BarcodeSectionDetail", +"description": "Optional information to display below the barcode." +}, +"firstTopDetail": { +"$ref": "BarcodeSectionDetail", +"description": "Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section." +}, +"secondTopDetail": { +"$ref": "BarcodeSectionDetail", +"description": "Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section." +} +}, +"type": "object" +}, +"CardRowOneItem": { +"id": "CardRowOneItem", +"properties": { +"item": { +"$ref": "TemplateItem", +"description": "The item to be displayed in the row. This item will be automatically centered." +} +}, +"type": "object" +}, +"CardRowTemplateInfo": { +"id": "CardRowTemplateInfo", +"properties": { +"oneItem": { +"$ref": "CardRowOneItem", +"description": "Template for a row containing one item. Exactly one of \"one_item\", \"two_items\", \"three_items\" must be set." +}, +"threeItems": { +"$ref": "CardRowThreeItems", +"description": "Template for a row containing three items. Exactly one of \"one_item\", \"two_items\", \"three_items\" must be set." +}, +"twoItems": { +"$ref": "CardRowTwoItems", +"description": "Template for a row containing two items. Exactly one of \"one_item\", \"two_items\", \"three_items\" must be set." +} +}, +"type": "object" +}, +"CardRowThreeItems": { +"id": "CardRowThreeItems", +"properties": { +"endItem": { +"$ref": "TemplateItem", +"description": "The item to be displayed at the end of the row. This item will be aligned to the right." +}, +"middleItem": { +"$ref": "TemplateItem", +"description": "The item to be displayed in the middle of the row. This item will be centered between the start and end items." +}, +"startItem": { +"$ref": "TemplateItem", +"description": "The item to be displayed at the start of the row. This item will be aligned to the left." +} +}, +"type": "object" +}, +"CardRowTwoItems": { +"id": "CardRowTwoItems", +"properties": { +"endItem": { +"$ref": "TemplateItem", +"description": "The item to be displayed at the end of the row. This item will be aligned to the right." +}, +"startItem": { +"$ref": "TemplateItem", +"description": "The item to be displayed at the start of the row. This item will be aligned to the left." +} +}, +"type": "object" +}, +"CardTemplateOverride": { +"id": "CardTemplateOverride", +"properties": { +"cardRowTemplateInfos": { +"description": "Template information for rows in the card view. At most three rows are allowed to be specified.", +"items": { +"$ref": "CardRowTemplateInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClassTemplateInfo": { +"id": "ClassTemplateInfo", +"properties": { +"cardBarcodeSectionDetails": { +"$ref": "CardBarcodeSectionDetails", +"description": "Specifies extra information to be displayed above and below the barcode." +}, +"cardTemplateOverride": { +"$ref": "CardTemplateOverride", +"description": "Override for the card view." +}, +"detailsTemplateOverride": { +"$ref": "DetailsTemplateOverride", +"description": "Override for the details view (beneath the card view)." +}, +"listTemplateOverride": { +"$ref": "ListTemplateOverride", +"description": "Override for the passes list view." +} +}, +"type": "object" +}, +"CompositeMedia": { +"description": "A sequence of media data references representing composite data. Introduced to support Bigstore composite objects. For details, visit http://go/bigstore-composites.", +"id": "CompositeMedia", +"properties": { +"blobRef": { +"deprecated": true, +"description": "Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating v1, use blobstore2_info instead. For now, any v2 blob will also be represented in this field as v1 BlobRef.", +"format": "byte", +"type": "string" +}, +"blobstore2Info": { +"$ref": "Blobstore2Info", +"description": "Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers to a v2 blob." +}, +"cosmoBinaryReference": { +"description": "A binary data reference for a media download. Serves as a technology-agnostic binary reference in some Google infrastructure. This value is a serialized storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get around the fact that the cosmo proto (as well as others it includes) doesn't support JavaScript. This prevents us from including the actual type of this field.", +"format": "byte", +"type": "string" +}, +"crc32cHash": { +"description": "crc32.c hash for the payload.", +"format": "uint32", +"type": "integer" +}, +"inline": { +"description": "Media data, set if reference_type is INLINE", +"format": "byte", +"type": "string" +}, +"length": { +"description": "Size of the data, in bytes", +"format": "int64", +"type": "string" +}, +"md5Hash": { +"description": "MD5 hash for the payload.", +"format": "byte", +"type": "string" +}, +"objectId": { +"$ref": "ObjectId", +"description": "Reference to a TI Blob, set if reference_type is BIGSTORE_REF." +}, +"path": { +"description": "Path to the data, set if reference_type is PATH", +"type": "string" +}, +"referenceType": { +"description": "Describes what the field reference contains.", +"enum": [ +"PATH", +"BLOB_REF", +"INLINE", +"BIGSTORE_REF", +"COSMO_BINARY_REFERENCE" +], +"enumDescriptions": [ +"Reference contains a GFS path or a local path.", +"Reference points to a blobstore object. This could be either a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info first, since v1 is being deprecated.", +"Data is included into this proto buffer", +"Reference points to a bigstore object", +"Indicates the data is stored in cosmo_binary_reference." +], +"type": "string" +}, +"sha1Hash": { +"description": "SHA-1 hash for the payload.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ContentTypeInfo": { +"description": "Detailed Content-Type information from Scotty. The Content-Type of the media will typically be filled in by the header or Scotty's best_guess, but this extended information provides the backend with more information so that it can make a better decision if needed. This is only used on media upload requests from Scotty.", +"id": "ContentTypeInfo", +"properties": { +"bestGuess": { +"description": "Scotty's best guess of what the content type of the file is.", +"type": "string" +}, +"fromBytes": { +"description": "The content type of the file derived by looking at specific bytes (i.e. \"magic bytes\") of the actual file.", +"type": "string" +}, +"fromFileName": { +"description": "The content type of the file derived from the file extension of the original file name used by the client.", +"type": "string" +}, +"fromHeader": { +"description": "The content type of the file as specified in the request headers, multipart headers, or RUPIO start request.", +"type": "string" +}, +"fromUrlPath": { +"description": "The content type of the file derived from the file extension of the URL path. The URL path is assumed to represent a file name (which is typically only true for agents that are providing a REST API).", +"type": "string" +} +}, +"type": "object" +}, +"DateTime": { +"id": "DateTime", +"properties": { +"date": { +"description": "An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field's documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user's time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user's current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.", +"type": "string" +} +}, +"type": "object" +}, +"DetailsItemInfo": { +"id": "DetailsItemInfo", +"properties": { +"item": { +"$ref": "TemplateItem", +"description": "The item to be displayed in the details list." +} +}, +"type": "object" +}, +"DetailsTemplateOverride": { +"id": "DetailsTemplateOverride", +"properties": { +"detailsItemInfos": { +"description": "Information for the \"nth\" item displayed in the details list.", +"items": { +"$ref": "DetailsItemInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"DeviceContext": { +"description": "Device context associated with the object.", +"id": "DeviceContext", +"properties": { +"deviceToken": { +"description": "If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user's device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.", +"type": "string" +} +}, +"type": "object" +}, +"DiffChecksumsResponse": { +"description": "Backend response for a Diff get checksums response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", +"id": "DiffChecksumsResponse", +"properties": { +"checksumsLocation": { +"$ref": "CompositeMedia", +"description": "Exactly one of these fields must be populated. If checksums_location is filled, the server will return the corresponding contents to the user. If object_location is filled, the server will calculate the checksums based on the content there and return that to the user. For details on the format of the checksums, see http://go/scotty-diff-protocol." +}, +"chunkSizeBytes": { +"description": "The chunk size of checksums. Must be a multiple of 256KB.", +"format": "int64", +"type": "string" +}, +"objectLocation": { +"$ref": "CompositeMedia", +"description": "If set, calculate the checksums based on the contents and return them to the caller." +}, +"objectSizeBytes": { +"description": "The total size of the server object.", +"format": "int64", +"type": "string" +}, +"objectVersion": { +"description": "The object version of the object the checksums are being returned for.", +"type": "string" +} +}, +"type": "object" +}, +"DiffDownloadResponse": { +"description": "Backend response for a Diff download response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", +"id": "DiffDownloadResponse", +"properties": { +"objectLocation": { +"$ref": "CompositeMedia", +"description": "The original object location." +} +}, +"type": "object" +}, +"DiffUploadRequest": { +"description": "A Diff upload request. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", +"id": "DiffUploadRequest", +"properties": { +"checksumsInfo": { +"$ref": "CompositeMedia", +"description": "The location of the checksums for the new object. Agents must clone the object located here, as the upload server will delete the contents once a response is received. For details on the format of the checksums, see http://go/scotty-diff-protocol." +}, +"objectInfo": { +"$ref": "CompositeMedia", +"description": "The location of the new object. Agents must clone the object located here, as the upload server will delete the contents once a response is received." +}, +"objectVersion": { +"description": "The object version of the object that is the base version the incoming diff script will be applied to. This field will always be filled in.", +"type": "string" +} +}, +"type": "object" +}, +"DiffUploadResponse": { +"description": "Backend response for a Diff upload request. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", +"id": "DiffUploadResponse", +"properties": { +"objectVersion": { +"description": "The object version of the object at the server. Must be included in the end notification response. The version in the end notification response must correspond to the new version of the object that is now stored at the server, after the upload.", +"type": "string" +}, +"originalObject": { +"$ref": "CompositeMedia", +"description": "The location of the original file for a diff upload request. Must be filled in if responding to an upload start notification." +} +}, +"type": "object" +}, +"DiffVersionResponse": { +"description": "Backend response for a Diff get version response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", +"id": "DiffVersionResponse", +"properties": { +"objectSizeBytes": { +"description": "The total size of the server object.", +"format": "int64", +"type": "string" +}, +"objectVersion": { +"description": "The version of the object stored at the server.", +"type": "string" +} +}, +"type": "object" +}, +"DiscoverableProgram": { +"description": "Information about how a class may be discovered and instantiated from within the Google Wallet app. This is done by searching for a loyalty or gift card program and scanning or manually entering.", +"id": "DiscoverableProgram", +"properties": { +"merchantSigninInfo": { +"$ref": "DiscoverableProgramMerchantSigninInfo", +"description": "Information about the ability to signin and add a valuable for this program through a merchant site. Used when MERCHANT_HOSTED_SIGNIN is enabled." +}, +"merchantSignupInfo": { +"$ref": "DiscoverableProgramMerchantSignupInfo", +"description": "Information about the ability to signup and add a valuable for this program through a merchant site. Used when MERCHANT_HOSTED_SIGNUP is enabled." +}, +"state": { +"description": "Visibility state of the discoverable program.", +"enum": [ +"STATE_UNSPECIFIED", +"TRUSTED_TESTERS", +"trustedTesters", +"LIVE", +"live", +"DISABLED", +"disabled" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Visible only to testers that have access to issuer account.", +"Legacy alias for `TRUSTED_TESTERS`. Deprecated.", +"Visible to all.", +"Legacy alias for `LIVE`. Deprecated.", +"Not visible.", +"Legacy alias for `DISABLED`. Deprecated." +], +"type": "string" +} +}, +"type": "object" +}, +"DiscoverableProgramMerchantSigninInfo": { +"description": "Information about the merchant hosted signin flow for a program.", +"id": "DiscoverableProgramMerchantSigninInfo", +"properties": { +"signinWebsite": { +"$ref": "Uri", +"description": "The URL to direct the user to for the merchant's signin site." +} +}, +"type": "object" +}, +"DiscoverableProgramMerchantSignupInfo": { +"description": "Information about the merchant hosted signup flow for a program.", +"id": "DiscoverableProgramMerchantSignupInfo", +"properties": { +"signupSharedDatas": { +"description": " User data that is sent in a POST request to the signup website URL. This information is encoded and then shared so that the merchant's website can prefill fields used to enroll the user for the discoverable program.", +"items": { +"enum": [ +"SHARED_DATA_TYPE_UNSPECIFIED", +"FIRST_NAME", +"LAST_NAME", +"STREET_ADDRESS", +"ADDRESS_LINE_1", +"ADDRESS_LINE_2", +"ADDRESS_LINE_3", +"CITY", +"STATE", +"ZIPCODE", +"COUNTRY", +"EMAIL", +"PHONE" +], +"enumDescriptions": [ +"", +"", +"", +"single line address field", +"multi line address fields", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"signupWebsite": { +"$ref": "Uri", +"description": "The URL to direct the user to for the merchant's signup site." +} +}, +"type": "object" +}, +"DownloadParameters": { +"description": "Parameters specific to media downloads.", +"id": "DownloadParameters", +"properties": { +"allowGzipCompression": { +"description": "A boolean to be returned in the response to Scotty. Allows/disallows gzip encoding of the payload content when the server thinks it's advantageous (hence, does not guarantee compression) which allows Scotty to GZip the response to the client.", +"type": "boolean" +}, +"ignoreRange": { +"description": "Determining whether or not Apiary should skip the inclusion of any Content-Range header on its response to Scotty.", +"type": "boolean" +} +}, +"type": "object" +}, +"EventDateTime": { +"id": "EventDateTime", +"properties": { +"customDoorsOpenLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the doors open value (`doorsOpen`) on the card detail view. This should only be used if the default \"Doors Open\" label or one of the `doorsOpenLabel` options is not sufficient. Both `doorsOpenLabel` and `customDoorsOpenLabel` may not be set. If neither is set, the label will default to \"Doors Open\", localized. If the doors open field is unset, this label will not be used." +}, +"doorsOpen": { +"description": "The date/time when the doors open at the venue. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the venue. For example, if the event occurs at the 20th hour of June 5th, 2018 at the venue, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the venue is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", +"type": "string" +}, +"doorsOpenLabel": { +"description": "The label to use for the doors open value (`doorsOpen`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `doorsOpenLabel` and `customDoorsOpenLabel` may not be set. If neither is set, the label will default to \"Doors Open\", localized. If the doors open field is unset, this label will not be used.", +"enum": [ +"DOORS_OPEN_LABEL_UNSPECIFIED", +"DOORS_OPEN", +"doorsOpen", +"GATES_OPEN", +"gatesOpen" +], +"enumDeprecated": [ +false, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `DOORS_OPEN`. Deprecated.", +"", +"Legacy alias for `GATES_OPEN`. Deprecated." +], +"type": "string" +}, +"end": { +"description": "The date/time when the event ends. If the event spans multiple days, it should be the end date/time on the last day. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the venue. For example, if the event occurs at the 20th hour of June 5th, 2018 at the venue, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the venue is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventDateTime\"`.", +"type": "string" +}, +"start": { +"description": "The date/time when the event starts. If the event spans multiple days, it should be the start date/time on the first day. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the venue. For example, if the event occurs at the 20th hour of June 5th, 2018 at the venue, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the venue is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", +"type": "string" +} +}, +"type": "object" +}, +"EventReservationInfo": { +"id": "EventReservationInfo", +"properties": { +"confirmationCode": { +"description": "The confirmation code of the event reservation. This may also take the form of an \"order number\", \"confirmation number\", \"reservation number\", or other equivalent.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventReservationInfo\"`.", +"type": "string" +} +}, +"type": "object" +}, +"EventSeat": { +"id": "EventSeat", +"properties": { +"gate": { +"$ref": "LocalizedString", +"description": "The gate the ticket holder should enter to get to their seat, such as \"A\" or \"West\". This field is localizable so you may translate words or use different alphabets for the characters in an identifier." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventSeat\"`.", +"type": "string" +}, +"row": { +"$ref": "LocalizedString", +"description": "The row of the seat, such as \"1\", E\", \"BB\", or \"A5\". This field is localizable so you may translate words or use different alphabets for the characters in an identifier." +}, +"seat": { +"$ref": "LocalizedString", +"description": "The seat number, such as \"1\", \"2\", \"3\", or any other seat identifier. This field is localizable so you may translate words or use different alphabets for the characters in an identifier." +}, +"section": { +"$ref": "LocalizedString", +"description": "The section of the seat, such as \"121\". This field is localizable so you may translate words or use different alphabets for the characters in an identifier." +} +}, +"type": "object" +}, +"EventTicketClass": { +"id": "EventTicketClass", +"properties": { +"allowMultipleUsersPerObject": { +"deprecated": true, +"description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", +"type": "boolean" +}, +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding object that will be used instead." +}, +"callbackOptions": { +"$ref": "CallbackOptions", +"description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." +}, +"classTemplateInfo": { +"$ref": "ClassTemplateInfo", +"description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." +}, +"confirmationCodeLabel": { +"description": "The label to use for the confirmation code value (`eventTicketObject.reservationInfo.confirmationCode`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `confirmationCodeLabel` and `customConfirmationCodeLabel` may not be set. If neither is set, the label will default to \"Confirmation Code\", localized. If the confirmation code field is unset, this label will not be used.", +"enum": [ +"CONFIRMATION_CODE_LABEL_UNSPECIFIED", +"CONFIRMATION_CODE", +"confirmationCode", +"CONFIRMATION_NUMBER", +"confirmationNumber", +"ORDER_NUMBER", +"orderNumber", +"RESERVATION_NUMBER", +"reservationNumber" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `CONFIRMATION_CODE`. Deprecated.", +"", +"Legacy alias for `CONFIRMATION_NUMBER`. Deprecated.", +"", +"Legacy alias for `ORDER_NUMBER`. Deprecated.", +"", +"Legacy alias for `RESERVATION_NUMBER`. Deprecated." +], +"type": "string" +}, +"countryCode": { +"description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", +"type": "string" +}, +"customConfirmationCodeLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the confirmation code value (`eventTicketObject.reservationInfo.confirmationCode`) on the card detail view. This should only be used if the default \"Confirmation Code\" label or one of the `confirmationCodeLabel` options is not sufficient. Both `confirmationCodeLabel` and `customConfirmationCodeLabel` may not be set. If neither is set, the label will default to \"Confirmation Code\", localized. If the confirmation code field is unset, this label will not be used." +}, +"customGateLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the gate value (`eventTicketObject.seatInfo.gate`) on the card detail view. This should only be used if the default \"Gate\" label or one of the `gateLabel` options is not sufficient. Both `gateLabel` and `customGateLabel` may not be set. If neither is set, the label will default to \"Gate\", localized. If the gate field is unset, this label will not be used." +}, +"customRowLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the row value (`eventTicketObject.seatInfo.row`) on the card detail view. This should only be used if the default \"Row\" label or one of the `rowLabel` options is not sufficient. Both `rowLabel` and `customRowLabel` may not be set. If neither is set, the label will default to \"Row\", localized. If the row field is unset, this label will not be used." +}, +"customSeatLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the seat value (`eventTicketObject.seatInfo.seat`) on the card detail view. This should only be used if the default \"Seat\" label or one of the `seatLabel` options is not sufficient. Both `seatLabel` and `customSeatLabel` may not be set. If neither is set, the label will default to \"Seat\", localized. If the seat field is unset, this label will not be used." +}, +"customSectionLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the section value (`eventTicketObject.seatInfo.section`) on the card detail view. This should only be used if the default \"Section\" label or one of the `sectionLabel` options is not sufficient. Both `sectionLabel` and `customSectionLabel` may not be set. If neither is set, the label will default to \"Section\", localized. If the section field is unset, this label will not be used." +}, +"dateTime": { +"$ref": "EventDateTime", +"description": "The date & time information of the event." +}, +"enableSmartTap": { +"description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"type": "boolean" +}, +"eventId": { +"description": "The ID of the event. This ID should be unique for every event in an account. It is used to group tickets together if the user has saved multiple tickets for the same event. It can be at most 64 characters. If provided, the grouping will be stable. Be wary of unintentional collision to avoid grouping tickets that should not be grouped. If you use only one class per event, you can simply set this to the `classId` (with or without the issuer ID portion). If not provided, the platform will attempt to use other data to group tickets (potentially unstable).", +"type": "string" +}, +"eventName": { +"$ref": "LocalizedString", +"description": "Required. The name of the event, such as \"LA Dodgers at SF Giants\"." +}, +"finePrint": { +"$ref": "LocalizedString", +"description": "The fine print, terms, or conditions of the ticket." +}, +"gateLabel": { +"description": "The label to use for the gate value (`eventTicketObject.seatInfo.gate`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `gateLabel` and `customGateLabel` may not be set. If neither is set, the label will default to \"Gate\", localized. If the gate field is unset, this label will not be used.", +"enum": [ +"GATE_LABEL_UNSPECIFIED", +"GATE", +"gate", +"DOOR", +"door", +"ENTRANCE", +"entrance" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `GATE`. Deprecated.", +"", +"Legacy alias for `DOOR`. Deprecated.", +"", +"Legacy alias for `ENTRANCE`. Deprecated." +], +"type": "string" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", +"type": "string" +}, +"homepageUri": { +"$ref": "Uri", +"description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." +}, +"id": { +"description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"deprecated": true, +"description": "Deprecated. Use textModulesData instead." +}, +"issuerName": { +"description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventTicketClass\"`.", +"type": "string" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the object, both will be displayed." +}, +"localizedIssuerName": { +"$ref": "LocalizedString", +"description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"logo": { +"$ref": "Image", +"description": "The logo image of the ticket. This image is displayed in the card detail view of the app." +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the class. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"multipleDevicesAndHoldersAllowedStatus": { +"description": "Identifies whether multiple users and devices will save the same object referencing this class.", +"enum": [ +"STATUS_UNSPECIFIED", +"MULTIPLE_HOLDERS", +"ONE_USER_ALL_DEVICES", +"ONE_USER_ONE_DEVICE", +"multipleHolders", +"oneUserAllDevices", +"oneUserOneDevice" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +true, +true +], +"enumDescriptions": [ +"Unspecified preference.", +"The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", +"An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", +"An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", +"Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", +"Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", +"Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." +], +"type": "string" +}, +"notifyPreference": { +"description": "Whether or not field updates to this class should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If not specified, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"redemptionIssuers": { +"description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"review": { +"$ref": "Review", +"description": "The review comments set by the platform when a class is marked `approved` or `rejected`." +}, +"reviewStatus": { +"description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"UNDER_REVIEW", +"underReview", +"APPROVED", +"approved", +"REJECTED", +"rejected", +"DRAFT", +"draft" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `UNDER_REVIEW`. Deprecated.", +"", +"Legacy alias for `APPROVED`. Deprecated.", +"", +"Legacy alias for `REJECTED`. Deprecated.", +"", +"Legacy alias for `DRAFT`. Deprecated." +], +"type": "string" +}, +"rowLabel": { +"description": "The label to use for the row value (`eventTicketObject.seatInfo.row`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `rowLabel` and `customRowLabel` may not be set. If neither is set, the label will default to \"Row\", localized. If the row field is unset, this label will not be used.", +"enum": [ +"ROW_LABEL_UNSPECIFIED", +"ROW", +"row" +], +"enumDeprecated": [ +false, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `ROW`. Deprecated." +], +"type": "string" +}, +"seatLabel": { +"description": "The label to use for the seat value (`eventTicketObject.seatInfo.seat`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `seatLabel` and `customSeatLabel` may not be set. If neither is set, the label will default to \"Seat\", localized. If the seat field is unset, this label will not be used.", +"enum": [ +"SEAT_LABEL_UNSPECIFIED", +"SEAT", +"seat" +], +"enumDeprecated": [ +false, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `SEAT`. Deprecated." +], +"type": "string" +}, +"sectionLabel": { +"description": "The label to use for the section value (`eventTicketObject.seatInfo.section`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `sectionLabel` and `customSectionLabel` may not be set. If neither is set, the label will default to \"Section\", localized. If the section field is unset, this label will not be used.", +"enum": [ +"SECTION_LABEL_UNSPECIFIED", +"SECTION", +"section", +"THEATER", +"theater" +], +"enumDeprecated": [ +false, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `SECTION`. Deprecated.", +"", +"Legacy alias for `THEATER`. Deprecated." +], +"type": "string" +}, +"securityAnimation": { +"$ref": "SecurityAnimation", +"description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the class. For a pass only ten will be displayed, prioritizing those from the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"venue": { +"$ref": "EventVenue", +"description": "Event venue details." +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +}, +"viewUnlockRequirement": { +"description": "View Unlock Requirement options for the event ticket.", +"enum": [ +"VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", +"UNLOCK_NOT_REQUIRED", +"UNLOCK_REQUIRED_TO_VIEW" +], +"enumDescriptions": [ +"Default value, same as UNLOCK_NOT_REQUIRED.", +"Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", +"Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." +], +"type": "string" +}, +"wideLogo": { +"$ref": "Image", +"description": "The wide logo of the ticket. When provided, this will be used in place of the logo in the top left of the card view." +}, +"wordMark": { +"$ref": "Image", +"deprecated": true, +"description": "Deprecated." +} +}, +"type": "object" +}, +"EventTicketClassAddMessageResponse": { +"id": "EventTicketClassAddMessageResponse", +"properties": { +"resource": { +"$ref": "EventTicketClass", +"description": "The updated EventTicketClass resource." +} +}, +"type": "object" +}, +"EventTicketClassListResponse": { +"id": "EventTicketClassListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "EventTicketClass" +}, +"type": "array" +} +}, +"type": "object" +}, +"EventTicketObject": { +"id": "EventTicketObject", +"properties": { +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding class only object AppLinkData will be displayed." +}, +"barcode": { +"$ref": "Barcode", +"description": "The barcode type and value." +}, +"classId": { +"description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", +"type": "string" +}, +"classReference": { +"$ref": "EventTicketClass", +"description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." +}, +"disableExpirationNotification": { +"description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", +"type": "boolean" +}, +"faceValue": { +"$ref": "Money", +"description": "The face value of the ticket, matching what would be printed on a physical version of the ticket." +}, +"groupingInfo": { +"$ref": "GroupingInfo", +"description": "Information that controls how passes are grouped together." +}, +"hasLinkedDevice": { +"description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", +"type": "boolean" +}, +"hasUsers": { +"description": "Indicates if the object has users. This field is set by the platform.", +"type": "boolean" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", +"type": "string" +}, +"id": { +"description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"description": "Deprecated. Use textModulesData instead." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventTicketObject\"`.", +"type": "string" +}, +"linkedObjectIds": { +"description": "linked_object_ids are a list of other objects such as event ticket, loyalty, offer, generic, giftcard, transit and boarding pass that should be automatically attached to this event ticket object. If a user had saved this event ticket, then these linked_object_ids would be automatically pushed to the user's wallet (unless they turned off the setting to receive such linked passes). Make sure that objects present in linked_object_ids are already inserted - if not, calls would fail. Once linked, the linked objects cannot be unlinked. You cannot link objects belonging to another issuer. There is a limit to the number of objects that can be linked to a single object. After the limit is reached, new linked objects in the call will be ignored silently. Object IDs should follow the format issuer ID. identifier where the former is issued by Google and the latter is chosen by you.", +"items": { +"type": "string" +}, +"type": "array" +}, +"linkedOfferIds": { +"description": "A list of offer objects linked to this event ticket. The offer objects must already exist. Offer object IDs should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you.", +"items": { +"type": "string" +}, +"type": "array" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the class, both will be displayed." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the object. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"notifyPreference": { +"description": "Whether or not field updates to this object should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If set to DO_NOT_NOTIFY or NOTIFICATION_SETTINGS_UNSPECIFIED, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"passConstraints": { +"$ref": "PassConstraints", +"description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." +}, +"reservationInfo": { +"$ref": "EventReservationInfo", +"description": "Reservation details for this ticket. This is expected to be shared amongst all tickets that were purchased in the same order." +}, +"rotatingBarcode": { +"$ref": "RotatingBarcode", +"description": "The rotating barcode type and value." +}, +"saveRestrictions": { +"$ref": "SaveRestrictions", +"description": "Restrictions on the object that needs to be verified before the user tries to save the pass. Note that this restrictions will only be applied during save time. If the restrictions changed after a user saves the pass, the new restrictions will not be applied to an already saved pass." +}, +"seatInfo": { +"$ref": "EventSeat", +"description": "Seating details for this ticket." +}, +"smartTapRedemptionValue": { +"description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", +"type": "string" +}, +"state": { +"description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"active", +"COMPLETED", +"completed", +"EXPIRED", +"expired", +"INACTIVE", +"inactive" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Object is active and displayed to with other active objects.", +"Legacy alias for `ACTIVE`. Deprecated.", +"", +"Legacy alias for `COMPLETED`. Deprecated.", +"Object is no longer valid (`validTimeInterval` passed).", +"Legacy alias for `EXPIRED`. Deprecated.", +"", +"Legacy alias for `INACTIVE`. Deprecated." +], +"type": "string" +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"ticketHolderName": { +"description": "Name of the ticket holder, if the ticket is assigned to a person. E.g. \"John Doe\" or \"Jane Doe\".", +"type": "string" +}, +"ticketNumber": { +"description": "The number of the ticket. This can be a unique identifier across all tickets in an issuer's system, all tickets for the event (e.g. XYZ1234512345), or all tickets in the order (1, 2, 3, etc.).", +"type": "string" +}, +"ticketType": { +"$ref": "LocalizedString", +"description": "The type of the ticket, such as \"Adult\" or \"Child\", or \"VIP\" or \"Standard\"." +}, +"validTimeInterval": { +"$ref": "TimeInterval", +"description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"EventTicketObjectAddMessageResponse": { +"id": "EventTicketObjectAddMessageResponse", +"properties": { +"resource": { +"$ref": "EventTicketObject", +"description": "The updated EventTicketObject resource." +} +}, +"type": "object" +}, +"EventTicketObjectListResponse": { +"id": "EventTicketObjectListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "EventTicketObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"EventVenue": { +"id": "EventVenue", +"properties": { +"address": { +"$ref": "LocalizedString", +"description": "The address of the venue, such as \"24 Willie Mays Plaza\\nSan Francisco, CA 94107\". Address lines are separated by line feed (`\\n`) characters. This is required." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventVenue\"`.", +"type": "string" +}, +"name": { +"$ref": "LocalizedString", +"description": "The name of the venue, such as \"AT&T Park\". This is required." +} +}, +"type": "object" +}, +"ExpiryNotification": { +"description": "Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration.", +"id": "ExpiryNotification", +"properties": { +"enableNotification": { +"description": "Indicates if the object needs to have expiry notification enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"FieldReference": { +"description": "Reference definition to use with field overrides.", +"id": "FieldReference", +"properties": { +"dateFormat": { +"description": "Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.", +"enum": [ +"DATE_FORMAT_UNSPECIFIED", +"DATE_TIME", +"dateTime", +"DATE_ONLY", +"dateOnly", +"TIME_ONLY", +"timeOnly", +"DATE_TIME_YEAR", +"dateTimeYear", +"DATE_YEAR", +"dateYear", +"YEAR_MONTH", +"YEAR_MONTH_DAY" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true, +false, +false +], +"enumDescriptions": [ +"Default option when no format is specified, when selected, no formatting will be applied.", +"Renders `2018-12-14T13:00:00` as `Dec 14, 1:00 PM` in `en_US`.", +"Legacy alias for `DATE_TIME`. Deprecated.", +"Renders `2018-12-14T13:00:00` as `Dec 14` in `en_US`.", +"Legacy alias for `DATE_ONLY`. Deprecated.", +"Renders `2018-12-14T13:00:00` as `1:00 PM` in `en_US`.", +"Legacy alias for `TIME_ONLY`. Deprecated.", +"Renders `2018-12-14T13:00:00` as `Dec 14, 2018, 1:00 PM` in `en_US`.", +"Legacy alias for `DATE_TIME_YEAR`. Deprecated.", +"Renders `2018-12-14T13:00:00` as `Dec 14, 2018` in `en_US`.", +"Legacy alias for `DATE_YEAR`. Deprecated.", +"Renders `2018-12-14T13:00:00` as `2018-12`.", +"Renders `2018-12-14T13:00:00` as `2018-12-14`." +], +"type": "string" +}, +"fieldPath": { +"description": "Path to the field being referenced, prefixed with \"object\" or \"class\" and separated with dots. For example, it may be the string \"object.purchaseDetails.purchasePrice\".", +"type": "string" +} +}, +"type": "object" +}, +"FieldSelector": { +"description": "Custom field selector to use with field overrides.", +"id": "FieldSelector", +"properties": { +"fields": { +"description": "If more than one reference is supplied, then the first one that references a non-empty field will be displayed.", +"items": { +"$ref": "FieldReference" +}, +"type": "array" +} +}, +"type": "object" +}, +"FirstRowOption": { +"id": "FirstRowOption", +"properties": { +"fieldOption": { +"$ref": "FieldSelector", +"description": "A reference to the field to be displayed in the first row." +}, +"transitOption": { +"enum": [ +"TRANSIT_OPTION_UNSPECIFIED", +"ORIGIN_AND_DESTINATION_NAMES", +"originAndDestinationNames", +"ORIGIN_AND_DESTINATION_CODES", +"originAndDestinationCodes", +"ORIGIN_NAME", +"originName" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `ORIGIN_AND_DESTINATION_NAMES`. Deprecated.", +"", +"Legacy alias for `ORIGIN_AND_DESTINATION_CODES`. Deprecated.", +"", +"Legacy alias for `ORIGIN_NAME`. Deprecated." +], +"type": "string" +} +}, +"type": "object" +}, +"FlightCarrier": { +"id": "FlightCarrier", +"properties": { +"airlineAllianceLogo": { +"$ref": "Image", +"description": "A logo for the airline alliance, displayed below the QR code that the passenger scans to board." +}, +"airlineLogo": { +"$ref": "Image", +"description": "A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view." +}, +"airlineName": { +"$ref": "LocalizedString", +"description": "A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: \"Swiss Air\" for \"LX\"" +}, +"carrierIataCode": { +"description": "Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: \"LX\" for Swiss Air", +"type": "string" +}, +"carrierIcaoCode": { +"description": "Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: \"EZY\" for Easy Jet", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightCarrier\"`.", +"type": "string" +}, +"wideAirlineLogo": { +"$ref": "Image", +"description": "The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view." +} +}, +"type": "object" +}, +"FlightClass": { +"id": "FlightClass", +"properties": { +"allowMultipleUsersPerObject": { +"deprecated": true, +"description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", +"type": "boolean" +}, +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding object that will be used instead." +}, +"boardingAndSeatingPolicy": { +"$ref": "BoardingAndSeatingPolicy", +"description": "Policies for boarding and seating. These will inform which labels will be shown to users." +}, +"callbackOptions": { +"$ref": "CallbackOptions", +"description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." +}, +"classTemplateInfo": { +"$ref": "ClassTemplateInfo", +"description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." +}, +"countryCode": { +"description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", +"type": "string" +}, +"destination": { +"$ref": "AirportInfo", +"description": "Required. Destination airport." +}, +"enableSmartTap": { +"description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"type": "boolean" +}, +"flightHeader": { +"$ref": "FlightHeader", +"description": "Required. Information about the flight carrier and number." +}, +"flightStatus": { +"description": "Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.", +"enum": [ +"FLIGHT_STATUS_UNSPECIFIED", +"SCHEDULED", +"scheduled", +"ACTIVE", +"active", +"LANDED", +"landed", +"CANCELLED", +"cancelled", +"REDIRECTED", +"redirected", +"DIVERTED", +"diverted" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Flight is on time, early, or delayed.", +"Legacy alias for `SCHEDULED`. Deprecated.", +"Flight is in progress (taxiing, taking off, landing, airborne).", +"Legacy alias for `ACTIVE`. Deprecated.", +"Flight landed at the original destination.", +"Legacy alias for `LANDED`. Deprecated.", +"Flight is cancelled.", +"Legacy alias for `CANCELLED`. Deprecated.", +"Flight is airborne but heading to a different airport than the original destination.", +"Legacy alias for `REDIRECTED`. Deprecated.", +"Flight has already landed at a different airport than the original destination.", +"Legacy alias for `DIVERTED`. Deprecated." +], +"type": "string" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", +"type": "string" +}, +"homepageUri": { +"$ref": "Uri", +"description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." +}, +"id": { +"description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"deprecated": true, +"description": "Deprecated. Use textModulesData instead." +}, +"issuerName": { +"description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightClass\"`.", +"type": "string" +}, +"languageOverride": { +"description": "If this field is present, boarding passes served to a user's device will always be in this language. Represents the BCP 47 language tag. Example values are \"en-US\", \"en-GB\", \"de\", or \"de-AT\".", +"type": "string" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the object, both will be displayed." +}, +"localBoardingDateTime": { +"description": "The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.", +"type": "string" +}, +"localEstimatedOrActualArrivalDateTime": { +"description": "The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport.", +"type": "string" +}, +"localEstimatedOrActualDepartureDateTime": { +"description": "The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.", +"type": "string" +}, +"localGateClosingDateTime": { +"description": "The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.", +"type": "string" +}, +"localScheduledArrivalDateTime": { +"description": "The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport.", +"type": "string" +}, +"localScheduledDepartureDateTime": { +"description": "Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.", +"type": "string" +}, +"localizedIssuerName": { +"$ref": "LocalizedString", +"description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the class. Any additional MerchantLocations added beyond the 10 will be rejected by the validator. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"multipleDevicesAndHoldersAllowedStatus": { +"description": "Identifies whether multiple users and devices will save the same object referencing this class.", +"enum": [ +"STATUS_UNSPECIFIED", +"MULTIPLE_HOLDERS", +"ONE_USER_ALL_DEVICES", +"ONE_USER_ONE_DEVICE", +"multipleHolders", +"oneUserAllDevices", +"oneUserOneDevice" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +true, +true +], +"enumDescriptions": [ +"Unspecified preference.", +"The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", +"An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", +"An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", +"Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", +"Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", +"Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." +], +"type": "string" +}, +"notifyPreference": { +"description": "Whether or not field updates to this class should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If not specified, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"origin": { +"$ref": "AirportInfo", +"description": "Required. Origin airport." +}, +"redemptionIssuers": { +"description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"review": { +"$ref": "Review", +"description": "The review comments set by the platform when a class is marked `approved` or `rejected`." +}, +"reviewStatus": { +"description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"UNDER_REVIEW", +"underReview", +"APPROVED", +"approved", +"REJECTED", +"rejected", +"DRAFT", +"draft" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `UNDER_REVIEW`. Deprecated.", +"", +"Legacy alias for `APPROVED`. Deprecated.", +"", +"Legacy alias for `REJECTED`. Deprecated.", +"", +"Legacy alias for `DRAFT`. Deprecated." +], +"type": "string" +}, +"securityAnimation": { +"$ref": "SecurityAnimation", +"description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the class. For a pass only ten will be displayed, prioritizing those from the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +}, +"viewUnlockRequirement": { +"description": "View Unlock Requirement options for the boarding pass.", +"enum": [ +"VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", +"UNLOCK_NOT_REQUIRED", +"UNLOCK_REQUIRED_TO_VIEW" +], +"enumDescriptions": [ +"Default value, same as UNLOCK_NOT_REQUIRED.", +"Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", +"Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." +], +"type": "string" +}, +"wordMark": { +"$ref": "Image", +"deprecated": true, +"description": "Deprecated." +} +}, +"type": "object" +}, +"FlightClassAddMessageResponse": { +"id": "FlightClassAddMessageResponse", +"properties": { +"resource": { +"$ref": "FlightClass", +"description": "The updated FlightClass resource." +} +}, +"type": "object" +}, +"FlightClassListResponse": { +"id": "FlightClassListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "FlightClass" +}, +"type": "array" +} +}, +"type": "object" +}, +"FlightHeader": { +"id": "FlightHeader", +"properties": { +"carrier": { +"$ref": "FlightCarrier", +"description": "Information about airline carrier. This is a required property of `flightHeader`." +}, +"flightNumber": { +"description": "The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: \"123\"", +"type": "string" +}, +"flightNumberDisplayOverride": { +"description": "Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: \"XX1234 / YY576\"", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightHeader\"`.", +"type": "string" +}, +"operatingCarrier": { +"$ref": "FlightCarrier", +"description": "Information about operating airline carrier." +}, +"operatingFlightNumber": { +"description": "The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: \"234\"", +"type": "string" +} +}, +"type": "object" +}, +"FlightObject": { +"id": "FlightObject", +"properties": { +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding class only object AppLinkData will be displayed." +}, +"barcode": { +"$ref": "Barcode", +"description": "The barcode type and value." +}, +"boardingAndSeatingInfo": { +"$ref": "BoardingAndSeatingInfo", +"description": "Passenger specific information about boarding and seating." +}, +"classId": { +"description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", +"type": "string" +}, +"classReference": { +"$ref": "FlightClass", +"description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." +}, +"disableExpirationNotification": { +"description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for Flights.", +"type": "boolean" +}, +"groupingInfo": { +"$ref": "GroupingInfo", +"description": "Information that controls how passes are grouped together." +}, +"hasLinkedDevice": { +"description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", +"type": "boolean" +}, +"hasUsers": { +"description": "Indicates if the object has users. This field is set by the platform.", +"type": "boolean" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", +"type": "string" +}, +"id": { +"description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"description": "Deprecated. Use textModulesData instead." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightObject\"`.", +"type": "string" +}, +"linkedObjectIds": { +"description": "linked_object_ids are a list of other objects such as event ticket, loyalty, offer, generic, giftcard, transit and boarding pass that should be automatically attached to this flight object. If a user had saved this boarding pass, then these linked_object_ids would be automatically pushed to the user's wallet (unless they turned off the setting to receive such linked passes). Make sure that objects present in linked_object_ids are already inserted - if not, calls would fail. Once linked, the linked objects cannot be unlinked. You cannot link objects belonging to another issuer. There is a limit to the number of objects that can be linked to a single object. After the limit is reached, new linked objects in the call will be ignored silently. Object IDs should follow the format issuer ID. identifier where the former is issued by Google and the latter is chosen by you.", +"items": { +"type": "string" +}, +"type": "array" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the class, both will be displayed." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the object. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"notifyPreference": { +"description": "Whether or not field updates to this object should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If set to DO_NOT_NOTIFY or NOTIFICATION_SETTINGS_UNSPECIFIED, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"passConstraints": { +"$ref": "PassConstraints", +"description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." +}, +"passengerName": { +"description": "Required. Passenger name as it would appear on the boarding pass. eg: \"Dave M Gahan\" or \"Gahan/Dave\" or \"GAHAN/DAVEM\"", +"type": "string" +}, +"reservationInfo": { +"$ref": "ReservationInfo", +"description": "Required. Information about flight reservation." +}, +"rotatingBarcode": { +"$ref": "RotatingBarcode", +"description": "The rotating barcode type and value." +}, +"saveRestrictions": { +"$ref": "SaveRestrictions", +"description": "Restrictions on the object that needs to be verified before the user tries to save the pass. Note that this restrictions will only be applied during save time. If the restrictions changed after a user saves the pass, the new restrictions will not be applied to an already saved pass." +}, +"securityProgramLogo": { +"$ref": "Image", +"description": "An image for the security program that applies to the passenger." +}, +"smartTapRedemptionValue": { +"description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", +"type": "string" +}, +"state": { +"description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"active", +"COMPLETED", +"completed", +"EXPIRED", +"expired", +"INACTIVE", +"inactive" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Object is active and displayed to with other active objects.", +"Legacy alias for `ACTIVE`. Deprecated.", +"", +"Legacy alias for `COMPLETED`. Deprecated.", +"Object is no longer valid (`validTimeInterval` passed).", +"Legacy alias for `EXPIRED`. Deprecated.", +"", +"Legacy alias for `INACTIVE`. Deprecated." +], +"type": "string" +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"validTimeInterval": { +"$ref": "TimeInterval", +"description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"FlightObjectAddMessageResponse": { +"id": "FlightObjectAddMessageResponse", +"properties": { +"resource": { +"$ref": "FlightObject", +"description": "The updated FlightObject resource." +} +}, +"type": "object" +}, +"FlightObjectListResponse": { +"id": "FlightObjectListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "FlightObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"FrequentFlyerInfo": { +"id": "FrequentFlyerInfo", +"properties": { +"frequentFlyerNumber": { +"description": "Frequent flyer number. Required for each nested object of kind `walletobjects#frequentFlyerInfo`.", +"type": "string" +}, +"frequentFlyerProgramName": { +"$ref": "LocalizedString", +"description": "Frequent flyer program name. eg: \"Lufthansa Miles & More\"" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#frequentFlyerInfo\"`.", +"type": "string" +} +}, +"type": "object" +}, +"GenericClass": { +"description": "Generic Class", +"id": "GenericClass", +"properties": { +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding object that will be used instead." +}, +"callbackOptions": { +"$ref": "CallbackOptions", +"description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." +}, +"classTemplateInfo": { +"$ref": "ClassTemplateInfo", +"description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." +}, +"enableSmartTap": { +"description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", +"type": "boolean" +}, +"id": { +"description": "Required. The unique identifier for the class. This ID must be unique across all from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. If `imageModulesData` is also defined on the object, both will be displayed. Only one of the image from class and one from object level will be rendered when both set.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If `linksModuleData` is also defined on the object, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object." +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the class. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"multipleDevicesAndHoldersAllowedStatus": { +"description": "Identifies whether multiple users and devices will save the same object referencing this class.", +"enum": [ +"STATUS_UNSPECIFIED", +"MULTIPLE_HOLDERS", +"ONE_USER_ALL_DEVICES", +"ONE_USER_ONE_DEVICE", +"multipleHolders", +"oneUserAllDevices", +"oneUserOneDevice" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +true, +true +], +"enumDescriptions": [ +"Unspecified preference.", +"The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", +"An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", +"An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", +"Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", +"Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", +"Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." +], +"type": "string" +}, +"redemptionIssuers": { +"description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"securityAnimation": { +"$ref": "SecurityAnimation", +"description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." +}, +"textModulesData": { +"description": "Text module data. If `textModulesData` is also defined on the object, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the class. For a pass only ten will be displayed, prioritizing those from the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"viewUnlockRequirement": { +"description": "View Unlock Requirement options for the generic pass.", +"enum": [ +"VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", +"UNLOCK_NOT_REQUIRED", +"UNLOCK_REQUIRED_TO_VIEW" +], +"enumDescriptions": [ +"Default value, same as UNLOCK_NOT_REQUIRED.", +"Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", +"Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." +], +"type": "string" +} +}, +"type": "object" +}, +"GenericClassAddMessageResponse": { +"description": "Response to adding a new issuer message to the class. This contains the entire updated GenericClass.", +"id": "GenericClassAddMessageResponse", +"properties": { +"resource": { +"$ref": "GenericClass", +"description": "The updated EventTicketClass resource." +} +}, +"type": "object" +}, +"GenericClassListResponse": { +"description": "List response which contains the list of all generic classes for a given issuer ID.", +"id": "GenericClassListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "GenericClass" +}, +"type": "array" +} +}, +"type": "object" +}, +"GenericObject": { +"description": "Generic Object", +"id": "GenericObject", +"properties": { +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding class only object AppLinkData will be displayed." +}, +"barcode": { +"$ref": "Barcode", +"description": "The barcode type and value. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that." +}, +"cardTitle": { +"$ref": "LocalizedString", +"description": "Required. The header of the pass. This is usually the Business name such as \"XXX Gym\", \"AAA Insurance\". This field is required and appears in the header row at the very top of the pass." +}, +"classId": { +"description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.", +"type": "string" +}, +"genericType": { +"description": "Specify which `GenericType` the card belongs to.", +"enum": [ +"GENERIC_TYPE_UNSPECIFIED", +"GENERIC_SEASON_PASS", +"GENERIC_UTILITY_BILLS", +"GENERIC_PARKING_PASS", +"GENERIC_VOUCHER", +"GENERIC_GYM_MEMBERSHIP", +"GENERIC_LIBRARY_MEMBERSHIP", +"GENERIC_RESERVATIONS", +"GENERIC_AUTO_INSURANCE", +"GENERIC_HOME_INSURANCE", +"GENERIC_ENTRY_TICKET", +"GENERIC_RECEIPT", +"GENERIC_LOYALTY_CARD", +"GENERIC_OTHER" +], +"enumDescriptions": [ +"Unspecified generic type.", +"Season pass", +"Utility bills", +"Parking pass", +"Voucher", +"Gym membership cards", +"Library membership cards", +"Reservations", +"Auto-insurance cards", +"Home-insurance cards", +"Entry tickets", +"Receipts", +"Loyalty cards. Please note that it is advisable to use a dedicated Loyalty card pass type instead of this generic type. A dedicated loyalty card pass type offers more features and functionality than a generic pass type.", +"Other type" +], +"type": "string" +}, +"groupingInfo": { +"$ref": "GroupingInfo", +"description": "Information that controls how passes are grouped together." +}, +"hasUsers": { +"description": "Indicates if the object has users. This field is set by the platform.", +"type": "boolean" +}, +"header": { +"$ref": "LocalizedString", +"description": "Required. The title of the pass, such as \"50% off coupon\" or \"Library card\" or \"Voucher\". This field is required and appears in the title row of the pass detail view." +}, +"heroImage": { +"$ref": "Image", +"description": "Banner image displayed on the front of the card if present. The image will be displayed at 100% width." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set, the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used and if logo is not set, a color would be chosen by Google.", +"type": "string" +}, +"id": { +"description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. Only one of the image from class and one from object level will be rendered when both set.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"linkedObjectIds": { +"description": "linked_object_ids are a list of other objects such as event ticket, loyalty, offer, generic, giftcard, transit and boarding pass that should be automatically attached to this generic object. If a user had saved this generic card, then these linked_object_ids would be automatically pushed to the user's wallet (unless they turned off the setting to receive such linked passes). Make sure that objects present in linked_object_ids are already inserted - if not, calls would fail. Once linked, the linked objects cannot be unlinked. You cannot link objects belonging to another issuer. There is a limit to the number of objects that can be linked to a single object. After the limit is reached, new linked objects in the call will be ignored silently. Object IDs should follow the format issuer ID. identifier where the former is issued by Google and the latter is chosen by you.", +"items": { +"type": "string" +}, +"type": "array" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object." +}, +"logo": { +"$ref": "Image", +"description": "The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo." +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the object. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"notifications": { +"$ref": "Notifications", +"description": "The notification settings that are enabled for this object." +}, +"passConstraints": { +"$ref": "PassConstraints", +"description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." +}, +"rotatingBarcode": { +"$ref": "RotatingBarcode", +"description": "The rotating barcode settings/details." +}, +"saveRestrictions": { +"$ref": "SaveRestrictions", +"description": "Restrictions on the object that needs to be verified before the user tries to save the pass. Note that this restrictions will only be applied during save time. If the restrictions changed after a user saves the pass, the new restrictions will not be applied to an already saved pass." +}, +"smartTapRedemptionValue": { +"description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", +"type": "string" +}, +"state": { +"description": "The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section. If this is not provided, the object would be considered `ACTIVE`.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"active", +"COMPLETED", +"completed", +"EXPIRED", +"expired", +"INACTIVE", +"inactive" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Object is active and displayed to with other active objects.", +"Legacy alias for `ACTIVE`. Deprecated.", +"", +"Legacy alias for `COMPLETED`. Deprecated.", +"Object is no longer valid (`validTimeInterval` passed).", +"Legacy alias for `EXPIRED`. Deprecated.", +"", +"Legacy alias for `INACTIVE`. Deprecated." +], +"type": "string" +}, +"subheader": { +"$ref": "LocalizedString", +"description": "The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view." +}, +"textModulesData": { +"description": "Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"validTimeInterval": { +"$ref": "TimeInterval", +"description": "The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user's devices." +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"wideLogo": { +"$ref": "Image", +"description": "The wide logo of the pass. When provided, this will be used in place of the logo in the top left of the card view." +} +}, +"type": "object" +}, +"GenericObjectAddMessageResponse": { +"description": "Response to adding a new issuer message to the object. This contains the entire updated GenericObject.", +"id": "GenericObjectAddMessageResponse", +"properties": { +"resource": { +"$ref": "GenericObject", +"description": "The updated GenericObject resource." +} +}, +"type": "object" +}, +"GenericObjectListResponse": { +"description": "List response which contains the list of all generic objects for a given issuer ID.", +"id": "GenericObjectListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "GenericObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GiftCardClass": { +"id": "GiftCardClass", +"properties": { +"allowBarcodeRedemption": { +"description": "Determines whether the merchant supports gift card redemption using barcode. If true, app displays a barcode for the gift card on the Gift card details screen. If false, a barcode is not displayed.", +"type": "boolean" +}, +"allowMultipleUsersPerObject": { +"deprecated": true, +"description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", +"type": "boolean" +}, +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding object that will be used instead." +}, +"callbackOptions": { +"$ref": "CallbackOptions", +"description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." +}, +"cardNumberLabel": { +"description": "The label to display for the card number, such as \"Card Number\".", +"type": "string" +}, +"classTemplateInfo": { +"$ref": "ClassTemplateInfo", +"description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." +}, +"countryCode": { +"description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", +"type": "string" +}, +"enableSmartTap": { +"description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"type": "boolean" +}, +"eventNumberLabel": { +"description": "The label to display for event number, such as \"Target Event #\".", +"type": "string" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", +"type": "string" +}, +"homepageUri": { +"$ref": "Uri", +"description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." +}, +"id": { +"description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"deprecated": true, +"description": "Deprecated. Use textModulesData instead." +}, +"issuerName": { +"description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#giftCardClass\"`.", +"type": "string" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the object, both will be displayed." +}, +"localizedCardNumberLabel": { +"$ref": "LocalizedString", +"description": "Translated strings for the card_number_label." +}, +"localizedEventNumberLabel": { +"$ref": "LocalizedString", +"description": "Translated strings for the event_number_label." +}, +"localizedIssuerName": { +"$ref": "LocalizedString", +"description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." +}, +"localizedMerchantName": { +"$ref": "LocalizedString", +"description": "Translated strings for the merchant_name. The app may display an ellipsis after the first 20 characters to ensure full string is displayed on smaller screens." +}, +"localizedPinLabel": { +"$ref": "LocalizedString", +"description": "Translated strings for the pin_label." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the class. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"merchantName": { +"description": "Merchant name, such as \"Adam's Apparel\". The app may display an ellipsis after the first 20 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"multipleDevicesAndHoldersAllowedStatus": { +"description": "Identifies whether multiple users and devices will save the same object referencing this class.", +"enum": [ +"STATUS_UNSPECIFIED", +"MULTIPLE_HOLDERS", +"ONE_USER_ALL_DEVICES", +"ONE_USER_ONE_DEVICE", +"multipleHolders", +"oneUserAllDevices", +"oneUserOneDevice" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +true, +true +], +"enumDescriptions": [ +"Unspecified preference.", +"The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", +"An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", +"An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", +"Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", +"Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", +"Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." +], +"type": "string" +}, +"notifyPreference": { +"description": "Whether or not field updates to this class should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If not specified, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"pinLabel": { +"description": "The label to display for the PIN, such as \"4-digit PIN\".", +"type": "string" +}, +"programLogo": { +"$ref": "Image", +"description": "The logo of the gift card program or company. This logo is displayed in both the details and list views of the app." +}, +"redemptionIssuers": { +"description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"review": { +"$ref": "Review", +"description": "The review comments set by the platform when a class is marked `approved` or `rejected`." +}, +"reviewStatus": { +"description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"UNDER_REVIEW", +"underReview", +"APPROVED", +"approved", +"REJECTED", +"rejected", +"DRAFT", +"draft" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `UNDER_REVIEW`. Deprecated.", +"", +"Legacy alias for `APPROVED`. Deprecated.", +"", +"Legacy alias for `REJECTED`. Deprecated.", +"", +"Legacy alias for `DRAFT`. Deprecated." +], +"type": "string" +}, +"securityAnimation": { +"$ref": "SecurityAnimation", +"description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the class. For a pass only ten will be displayed, prioritizing those from the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +}, +"viewUnlockRequirement": { +"description": "View Unlock Requirement options for the gift card.", +"enum": [ +"VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", +"UNLOCK_NOT_REQUIRED", +"UNLOCK_REQUIRED_TO_VIEW" +], +"enumDescriptions": [ +"Default value, same as UNLOCK_NOT_REQUIRED.", +"Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", +"Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." +], +"type": "string" +}, +"wideProgramLogo": { +"$ref": "Image", +"description": "The wide logo of the gift card program or company. When provided, this will be used in place of the program logo in the top left of the card view." +}, +"wordMark": { +"$ref": "Image", +"deprecated": true, +"description": "Deprecated." +} +}, +"type": "object" +}, +"GiftCardClassAddMessageResponse": { +"id": "GiftCardClassAddMessageResponse", +"properties": { +"resource": { +"$ref": "GiftCardClass", +"description": "The updated GiftCardClass resource." +} +}, +"type": "object" +}, +"GiftCardClassListResponse": { +"id": "GiftCardClassListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "GiftCardClass" +}, +"type": "array" +} +}, +"type": "object" +}, +"GiftCardObject": { +"id": "GiftCardObject", +"properties": { +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding class only object AppLinkData will be displayed." +}, +"balance": { +"$ref": "Money", +"description": "The card's monetary balance." +}, +"balanceUpdateTime": { +"$ref": "DateTime", +"description": "The date and time when the balance was last updated. Offset is required. If balance is updated and this property is not provided, system will default to the current time." +}, +"barcode": { +"$ref": "Barcode", +"description": "The barcode type and value." +}, +"cardNumber": { +"description": "Required. The card's number.", +"type": "string" +}, +"classId": { +"description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", +"type": "string" +}, +"classReference": { +"$ref": "GiftCardClass", +"description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." +}, +"disableExpirationNotification": { +"description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", +"type": "boolean" +}, +"eventNumber": { +"description": "The card's event number, an optional field used by some gift cards.", +"type": "string" +}, +"groupingInfo": { +"$ref": "GroupingInfo", +"description": "Information that controls how passes are grouped together." +}, +"hasLinkedDevice": { +"description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", +"type": "boolean" +}, +"hasUsers": { +"description": "Indicates if the object has users. This field is set by the platform.", +"type": "boolean" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." +}, +"id": { +"description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"description": "Deprecated. Use textModulesData instead." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#giftCardObject\"`.", +"type": "string" +}, +"linkedObjectIds": { +"description": "linked_object_ids are a list of other objects such as event ticket, loyalty, offer, generic, giftcard, transit and boarding pass that should be automatically attached to this giftcard object. If a user had saved this gift card, then these linked_object_ids would be automatically pushed to the user's wallet (unless they turned off the setting to receive such linked passes). Make sure that objects present in linked_object_ids are already inserted - if not, calls would fail. Once linked, the linked objects cannot be unlinked. You cannot link objects belonging to another issuer. There is a limit to the number of objects that can be linked to a single object. After the limit is reached, new linked objects in the call will be ignored silently. Object IDs should follow the format issuer ID. identifier where the former is issued by Google and the latter is chosen by you.", +"items": { +"type": "string" +}, +"type": "array" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the class, both will be displayed." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the object. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"notifyPreference": { +"description": "Whether or not field updates to this object should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If set to DO_NOT_NOTIFY or NOTIFICATION_SETTINGS_UNSPECIFIED, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"passConstraints": { +"$ref": "PassConstraints", +"description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." +}, +"pin": { +"description": "The card's PIN.", +"type": "string" +}, +"rotatingBarcode": { +"$ref": "RotatingBarcode", +"description": "The rotating barcode type and value." +}, +"saveRestrictions": { +"$ref": "SaveRestrictions", +"description": "Restrictions on the object that needs to be verified before the user tries to save the pass. Note that this restrictions will only be applied during save time. If the restrictions changed after a user saves the pass, the new restrictions will not be applied to an already saved pass." +}, +"smartTapRedemptionValue": { +"description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", +"type": "string" +}, +"state": { +"description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"active", +"COMPLETED", +"completed", +"EXPIRED", +"expired", +"INACTIVE", +"inactive" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Object is active and displayed to with other active objects.", +"Legacy alias for `ACTIVE`. Deprecated.", +"", +"Legacy alias for `COMPLETED`. Deprecated.", +"Object is no longer valid (`validTimeInterval` passed).", +"Legacy alias for `EXPIRED`. Deprecated.", +"", +"Legacy alias for `INACTIVE`. Deprecated." +], +"type": "string" +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"validTimeInterval": { +"$ref": "TimeInterval", +"description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GiftCardObjectAddMessageResponse": { +"id": "GiftCardObjectAddMessageResponse", +"properties": { +"resource": { +"$ref": "GiftCardObject", +"description": "The updated GiftCardObject resource." +} +}, +"type": "object" +}, +"GiftCardObjectListResponse": { +"id": "GiftCardObjectListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "GiftCardObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GroupingInfo": { +"id": "GroupingInfo", +"properties": { +"groupingId": { +"description": "Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.", +"type": "string" +}, +"sortIndex": { +"description": "Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Image": { +"description": "Wrapping type for Google hosted images. Next ID: 7", +"id": "Image", +"properties": { +"contentDescription": { +"$ref": "LocalizedString", +"description": "Description of the image used for accessibility." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#image\"`.", +"type": "string" +}, +"sourceUri": { +"$ref": "ImageUri", +"description": "The URI for the image." +} +}, +"type": "object" +}, +"ImageModuleData": { +"id": "ImageModuleData", +"properties": { +"id": { +"description": "The ID associated with an image module. This field is here to enable ease of management of image modules.", +"type": "string" +}, +"mainImage": { +"$ref": "Image", +"description": "A 100% width image." +} +}, +"type": "object" +}, +"ImageUri": { +"id": "ImageUri", +"properties": { +"description": { +"deprecated": true, +"description": "Additional information about the image, which is unused and retained only for backward compatibility.", +"type": "string" +}, +"localizedDescription": { +"$ref": "LocalizedString", +"deprecated": true, +"description": "Translated strings for the description, which are unused and retained only for backward compatibility." +}, +"uri": { +"description": "The location of the image. URIs must have a scheme.", +"type": "string" +} +}, +"type": "object" +}, +"InfoModuleData": { +"id": "InfoModuleData", +"properties": { +"labelValueRows": { +"description": "A list of collections of labels and values. These will be displayed one after the other in a singular column.", +"items": { +"$ref": "LabelValueRow" +}, +"type": "array" +}, +"showLastUpdateTime": { +"deprecated": true, +"type": "boolean" +} +}, +"type": "object" +}, +"Issuer": { +"id": "Issuer", +"properties": { +"callbackOptions": { +"$ref": "CallbackOptions", +"description": "Allows the issuer to provide their callback settings." +}, +"contactInfo": { +"$ref": "IssuerContactInfo", +"description": "Issuer contact information." +}, +"homepageUrl": { +"description": "URL for the issuer's home page.", +"type": "string" +}, +"issuerId": { +"description": "The unique identifier for an issuer account. This is automatically generated when the issuer is inserted.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "The account name of the issuer.", +"type": "string" +}, +"smartTapMerchantData": { +"$ref": "SmartTapMerchantData", +"description": "Available only to Smart Tap enabled partners. Contact support for additional guidance." +} +}, +"type": "object" +}, +"IssuerContactInfo": { +"id": "IssuerContactInfo", +"properties": { +"alertsEmails": { +"description": "Email addresses which will receive alerts.", +"items": { +"type": "string" +}, +"type": "array" +}, +"email": { +"description": "The primary contact email address.", +"type": "string" +}, +"name": { +"description": "The primary contact name.", +"type": "string" +}, +"phone": { +"description": "The primary contact phone number.", +"type": "string" +} +}, +"type": "object" +}, +"IssuerListResponse": { +"id": "IssuerListResponse", +"properties": { +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "Issuer" +}, +"type": "array" +} +}, +"type": "object" +}, +"IssuerToUserInfo": { +"id": "IssuerToUserInfo", +"properties": { +"action": { +"enum": [ +"ACTION_UNSPECIFIED", +"S2AP", +"s2ap", +"SIGN_UP", +"signUp" +], +"enumDeprecated": [ +false, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `S2AP`. Deprecated.", +"", +"Legacy alias for `SIGN_UP`. Deprecated." +], +"type": "string" +}, +"signUpInfo": { +"$ref": "SignUpInfo" +}, +"url": { +"description": "Currently not used, consider deprecating.", +"type": "string" +}, +"value": { +"description": "JSON web token for action S2AP.", +"type": "string" +} +}, +"type": "object" +}, +"JwtInsertResponse": { +"id": "JwtInsertResponse", +"properties": { +"resources": { +"$ref": "Resources", +"description": "Data that corresponds to the ids of the provided classes and objects in the JWT. resources will only include the non-empty arrays (i.e. if the JWT only includes eventTicketObjects, then that is the only field that will be present in resources)." +}, +"saveUri": { +"description": "A URI that, when opened, will allow the end user to save the object(s) identified in the JWT to their Google account.", +"type": "string" +} +}, +"type": "object" +}, +"JwtResource": { +"id": "JwtResource", +"properties": { +"jwt": { +"description": "A string representing a JWT of the format described at https://developers.google.com/wallet/reference/rest/v1/Jwt", +"type": "string" +} +}, +"type": "object" +}, +"LabelValue": { +"description": "A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.", +"id": "LabelValue", +"properties": { +"label": { +"description": "The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.", +"type": "string" +}, +"localizedLabel": { +"$ref": "LocalizedString", +"description": "Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout." +}, +"localizedValue": { +"$ref": "LocalizedString", +"description": "Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout." +}, +"value": { +"description": "The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.", +"type": "string" +} +}, +"type": "object" +}, +"LabelValueRow": { +"id": "LabelValueRow", +"properties": { +"columns": { +"description": "A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.", +"items": { +"$ref": "LabelValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"LatLongPoint": { +"id": "LatLongPoint", +"properties": { +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#latLongPoint\"`.", +"type": "string" +}, +"latitude": { +"description": "The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"LinksModuleData": { +"id": "LinksModuleData", +"properties": { +"uris": { +"description": "The list of URIs.", +"items": { +"$ref": "Uri" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTemplateOverride": { +"id": "ListTemplateOverride", +"properties": { +"firstRowOption": { +"$ref": "FirstRowOption", +"description": "Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row. To set this override, set the FirstRowOption.fieldOption to the FieldSelector of your choice." +}, +"secondRowOption": { +"$ref": "FieldSelector", +"description": "A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects. To set this override, please set secondRowOption to the FieldSelector of you choice." +}, +"thirdRowOption": { +"$ref": "FieldSelector", +"deprecated": true, +"description": "An unused/deprecated field. Setting it will have no effect on what the user sees." +} +}, +"type": "object" +}, +"LocalizedString": { +"id": "LocalizedString", +"properties": { +"defaultValue": { +"$ref": "TranslatedString", +"description": "Contains the string to be displayed if no appropriate translation is available." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#localizedString\"`.", +"type": "string" +}, +"translatedValues": { +"description": "Contains the translations for the string.", +"items": { +"$ref": "TranslatedString" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoyaltyClass": { +"id": "LoyaltyClass", +"properties": { +"accountIdLabel": { +"description": "The account ID label, such as \"Member ID.\" Recommended maximum length is 15 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"accountNameLabel": { +"description": "The account name label, such as \"Member Name.\" Recommended maximum length is 15 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"allowMultipleUsersPerObject": { +"deprecated": true, +"description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", +"type": "boolean" +}, +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding object that will be used instead." +}, +"callbackOptions": { +"$ref": "CallbackOptions", +"description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." +}, +"classTemplateInfo": { +"$ref": "ClassTemplateInfo", +"description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." +}, +"countryCode": { +"description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", +"type": "string" +}, +"discoverableProgram": { +"$ref": "DiscoverableProgram", +"description": "Information about how the class may be discovered and instantiated from within the Google Pay app." +}, +"enableSmartTap": { +"description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and one of object level `smartTapRedemptionLevel`, barcode.value`, or `accountId` fields must also be set up correctly in order for a pass to support Smart Tap.", +"type": "boolean" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", +"type": "string" +}, +"homepageUri": { +"$ref": "Uri", +"description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." +}, +"id": { +"description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"deprecated": true, +"description": "Deprecated. Use textModulesData instead." +}, +"issuerName": { +"description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#loyaltyClass\"`.", +"type": "string" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the object, both will be displayed." +}, +"localizedAccountIdLabel": { +"$ref": "LocalizedString", +"description": "Translated strings for the account_id_label. Recommended maximum length is 15 characters to ensure full string is displayed on smaller screens." +}, +"localizedAccountNameLabel": { +"$ref": "LocalizedString", +"description": "Translated strings for the account_name_label. Recommended maximum length is 15 characters to ensure full string is displayed on smaller screens." +}, +"localizedIssuerName": { +"$ref": "LocalizedString", +"description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." +}, +"localizedProgramName": { +"$ref": "LocalizedString", +"description": "Translated strings for the program_name. The app may display an ellipsis after the first 20 characters to ensure full string is displayed on smaller screens." +}, +"localizedRewardsTier": { +"$ref": "LocalizedString", +"description": "Translated strings for the rewards_tier. Recommended maximum length is 7 characters to ensure full string is displayed on smaller screens." +}, +"localizedRewardsTierLabel": { +"$ref": "LocalizedString", +"description": "Translated strings for the rewards_tier_label. Recommended maximum length is 9 characters to ensure full string is displayed on smaller screens." +}, +"localizedSecondaryRewardsTier": { +"$ref": "LocalizedString", +"description": "Translated strings for the secondary_rewards_tier." +}, +"localizedSecondaryRewardsTierLabel": { +"$ref": "LocalizedString", +"description": "Translated strings for the secondary_rewards_tier_label." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the class. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"multipleDevicesAndHoldersAllowedStatus": { +"description": "Identifies whether multiple users and devices will save the same object referencing this class.", +"enum": [ +"STATUS_UNSPECIFIED", +"MULTIPLE_HOLDERS", +"ONE_USER_ALL_DEVICES", +"ONE_USER_ONE_DEVICE", +"multipleHolders", +"oneUserAllDevices", +"oneUserOneDevice" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +true, +true +], +"enumDescriptions": [ +"Unspecified preference.", +"The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", +"An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", +"An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", +"Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", +"Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", +"Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." +], +"type": "string" +}, +"notifyPreference": { +"description": "Whether or not field updates to this class should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If not specified, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"programLogo": { +"$ref": "Image", +"description": "Required. The logo of the loyalty program or company. This logo is displayed in both the details and list views of the app." +}, +"programName": { +"description": "Required. The program name, such as \"Adam's Apparel\". The app may display an ellipsis after the first 20 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"redemptionIssuers": { +"description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and one of object level `smartTapRedemptionValue`, barcode.value`, or `accountId` fields must also be set up correctly in order for a pass to support Smart Tap.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"review": { +"$ref": "Review", +"description": "The review comments set by the platform when a class is marked `approved` or `rejected`." +}, +"reviewStatus": { +"description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"UNDER_REVIEW", +"underReview", +"APPROVED", +"approved", +"REJECTED", +"rejected", +"DRAFT", +"draft" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `UNDER_REVIEW`. Deprecated.", +"", +"Legacy alias for `APPROVED`. Deprecated.", +"", +"Legacy alias for `REJECTED`. Deprecated.", +"", +"Legacy alias for `DRAFT`. Deprecated." +], +"type": "string" +}, +"rewardsTier": { +"description": "The rewards tier, such as \"Gold\" or \"Platinum.\" Recommended maximum length is 7 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"rewardsTierLabel": { +"description": "The rewards tier label, such as \"Rewards Tier.\" Recommended maximum length is 9 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"secondaryRewardsTier": { +"description": "The secondary rewards tier, such as \"Gold\" or \"Platinum.\"", +"type": "string" +}, +"secondaryRewardsTierLabel": { +"description": "The secondary rewards tier label, such as \"Rewards Tier.\"", +"type": "string" +}, +"securityAnimation": { +"$ref": "SecurityAnimation", +"description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the class. For a pass only ten will be displayed, prioritizing those from the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +}, +"viewUnlockRequirement": { +"description": "View Unlock Requirement options for the loyalty card.", +"enum": [ +"VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", +"UNLOCK_NOT_REQUIRED", +"UNLOCK_REQUIRED_TO_VIEW" +], +"enumDescriptions": [ +"Default value, same as UNLOCK_NOT_REQUIRED.", +"Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", +"Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." +], +"type": "string" +}, +"wideProgramLogo": { +"$ref": "Image", +"description": "The wide logo of the loyalty program or company. When provided, this will be used in place of the program logo in the top left of the card view." +}, +"wordMark": { +"$ref": "Image", +"deprecated": true, +"description": "Deprecated." +} +}, +"type": "object" +}, +"LoyaltyClassAddMessageResponse": { +"id": "LoyaltyClassAddMessageResponse", +"properties": { +"resource": { +"$ref": "LoyaltyClass", +"description": "The updated LoyaltyClass resource." +} +}, +"type": "object" +}, +"LoyaltyClassListResponse": { +"id": "LoyaltyClassListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "LoyaltyClass" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoyaltyObject": { +"id": "LoyaltyObject", +"properties": { +"accountId": { +"description": "The loyalty account identifier. Recommended maximum length is 20 characters.", +"type": "string" +}, +"accountName": { +"description": "The loyalty account holder name, such as \"John Smith.\" Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding class only object AppLinkData will be displayed." +}, +"barcode": { +"$ref": "Barcode", +"description": "The barcode type and value." +}, +"classId": { +"description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", +"type": "string" +}, +"classReference": { +"$ref": "LoyaltyClass", +"description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." +}, +"disableExpirationNotification": { +"description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", +"type": "boolean" +}, +"groupingInfo": { +"$ref": "GroupingInfo", +"description": "Information that controls how passes are grouped together." +}, +"hasLinkedDevice": { +"description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", +"type": "boolean" +}, +"hasUsers": { +"description": "Indicates if the object has users. This field is set by the platform.", +"type": "boolean" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." +}, +"id": { +"description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"description": "Deprecated. Use textModulesData instead." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#loyaltyObject\"`.", +"type": "string" +}, +"linkedObjectIds": { +"description": "linked_object_ids are a list of other objects such as event ticket, loyalty, offer, generic, giftcard, transit and boarding pass that should be automatically attached to this loyalty object. If a user had saved this loyalty card, then these linked_object_ids would be automatically pushed to the user's wallet (unless they turned off the setting to receive such linked passes). Make sure that objects present in linked_object_ids are already inserted - if not, calls would fail. Once linked, the linked objects cannot be unlinked. You cannot link objects belonging to another issuer. There is a limit to the number of objects that can be linked to a single object. After the limit is reached, new linked objects in the call will be ignored silently. Object IDs should follow the format issuer ID. identifier where the former is issued by Google and the latter is chosen by you.", +"items": { +"type": "string" +}, +"type": "array" +}, +"linkedOfferIds": { +"description": "A list of offer objects linked to this loyalty card. The offer objects must already exist. Offer object IDs should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you.", +"items": { +"type": "string" +}, +"type": "array" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the class, both will be displayed." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"loyaltyPoints": { +"$ref": "LoyaltyPoints", +"description": "The loyalty reward points label, balance, and type." +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the object. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"notifyPreference": { +"description": "Whether or not field updates to this object should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If set to DO_NOT_NOTIFY or NOTIFICATION_SETTINGS_UNSPECIFIED, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"passConstraints": { +"$ref": "PassConstraints", +"description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." +}, +"rotatingBarcode": { +"$ref": "RotatingBarcode", +"description": "The rotating barcode type and value." +}, +"saveRestrictions": { +"$ref": "SaveRestrictions", +"description": "Restrictions on the object that needs to be verified before the user tries to save the pass. Note that this restrictions will only be applied during save time. If the restrictions changed after a user saves the pass, the new restrictions will not be applied to an already saved pass." +}, +"secondaryLoyaltyPoints": { +"$ref": "LoyaltyPoints", +"description": "The secondary loyalty reward points label, balance, and type. Shown in addition to the primary loyalty points." +}, +"smartTapRedemptionValue": { +"description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported. If this value is not set but the class level fields `enableSmartTap` and `redemptionIssuers` are set up correctly, the `barcode.value` or the `accountId` fields are used as fallback if present.", +"type": "string" +}, +"state": { +"description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"active", +"COMPLETED", +"completed", +"EXPIRED", +"expired", +"INACTIVE", +"inactive" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Object is active and displayed to with other active objects.", +"Legacy alias for `ACTIVE`. Deprecated.", +"", +"Legacy alias for `COMPLETED`. Deprecated.", +"Object is no longer valid (`validTimeInterval` passed).", +"Legacy alias for `EXPIRED`. Deprecated.", +"", +"Legacy alias for `INACTIVE`. Deprecated." +], +"type": "string" +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"validTimeInterval": { +"$ref": "TimeInterval", +"description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"LoyaltyObjectAddMessageResponse": { +"id": "LoyaltyObjectAddMessageResponse", +"properties": { +"resource": { +"$ref": "LoyaltyObject", +"description": "The updated LoyaltyObject resource." +} +}, +"type": "object" +}, +"LoyaltyObjectListResponse": { +"id": "LoyaltyObjectListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "LoyaltyObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoyaltyPoints": { +"id": "LoyaltyPoints", +"properties": { +"balance": { +"$ref": "LoyaltyPointsBalance", +"description": "The account holder's loyalty point balance, such as \"500\" or \"$10.00\". Recommended maximum length is 7 characters. This is a required field of `loyaltyPoints` and `secondaryLoyaltyPoints`." +}, +"label": { +"description": "The loyalty points label, such as \"Points\". Recommended maximum length is 9 characters.", +"type": "string" +}, +"localizedLabel": { +"$ref": "LocalizedString", +"description": "Translated strings for the label. Recommended maximum length is 9 characters." +} +}, +"type": "object" +}, +"LoyaltyPointsBalance": { +"id": "LoyaltyPointsBalance", +"properties": { +"double": { +"description": "The double form of a balance. Only one of these subtypes (string, int, double, money) should be populated.", +"format": "double", +"type": "number" +}, +"int": { +"description": "The integer form of a balance. Only one of these subtypes (string, int, double, money) should be populated.", +"format": "int32", +"type": "integer" +}, +"money": { +"$ref": "Money", +"description": "The money form of a balance. Only one of these subtypes (string, int, double, money) should be populated." +}, +"string": { +"description": "The string form of a balance. Only one of these subtypes (string, int, double, money) should be populated.", +"type": "string" +} +}, +"type": "object" +}, +"Media": { +"description": "A reference to data stored on the filesystem, on GFS or in blobstore.", +"id": "Media", +"properties": { +"algorithm": { +"deprecated": true, +"description": "Deprecated, use one of explicit hash type fields instead. Algorithm used for calculating the hash. As of 2011/01/21, \"MD5\" is the only possible value for this field. New values may be added at any time.", +"type": "string" +}, +"bigstoreObjectRef": { +"deprecated": true, +"description": "Use object_id instead.", +"format": "byte", +"type": "string" +}, +"blobRef": { +"deprecated": true, +"description": "Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating v1, use blobstore2_info instead. For now, any v2 blob will also be represented in this field as v1 BlobRef.", +"format": "byte", +"type": "string" +}, +"blobstore2Info": { +"$ref": "Blobstore2Info", +"description": "Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers to a v2 blob." +}, +"compositeMedia": { +"description": "A composite media composed of one or more media objects, set if reference_type is COMPOSITE_MEDIA. The media length field must be set to the sum of the lengths of all composite media objects. Note: All composite media must have length specified.", +"items": { +"$ref": "CompositeMedia" +}, +"type": "array" +}, +"contentType": { +"description": "MIME type of the data", +"type": "string" +}, +"contentTypeInfo": { +"$ref": "ContentTypeInfo", +"description": "Extended content type information provided for Scotty uploads." +}, +"cosmoBinaryReference": { +"description": "A binary data reference for a media download. Serves as a technology-agnostic binary reference in some Google infrastructure. This value is a serialized storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get around the fact that the cosmo proto (as well as others it includes) doesn't support JavaScript. This prevents us from including the actual type of this field.", +"format": "byte", +"type": "string" +}, +"crc32cHash": { +"description": "For Scotty Uploads: Scotty-provided hashes for uploads For Scotty Downloads: (WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY TEAM.) A Hash provided by the agent to be used to verify the data being downloaded. Currently only supported for inline payloads. Further, only crc32c_hash is currently supported.", +"format": "uint32", +"type": "integer" +}, +"diffChecksumsResponse": { +"$ref": "DiffChecksumsResponse", +"description": "Set if reference_type is DIFF_CHECKSUMS_RESPONSE." +}, +"diffDownloadResponse": { +"$ref": "DiffDownloadResponse", +"description": "Set if reference_type is DIFF_DOWNLOAD_RESPONSE." +}, +"diffUploadRequest": { +"$ref": "DiffUploadRequest", +"description": "Set if reference_type is DIFF_UPLOAD_REQUEST." +}, +"diffUploadResponse": { +"$ref": "DiffUploadResponse", +"description": "Set if reference_type is DIFF_UPLOAD_RESPONSE." +}, +"diffVersionResponse": { +"$ref": "DiffVersionResponse", +"description": "Set if reference_type is DIFF_VERSION_RESPONSE." +}, +"downloadParameters": { +"$ref": "DownloadParameters", +"description": "Parameters for a media download." +}, +"filename": { +"description": "Original file name", +"type": "string" +}, +"hash": { +"deprecated": true, +"description": "Deprecated, use one of explicit hash type fields instead. These two hash related fields will only be populated on Scotty based media uploads and will contain the content of the hash group in the NotificationRequest: http://cs/#google3/blobstore2/api/scotty/service/proto/upload_listener.proto&q=class:Hash Hex encoded hash value of the uploaded media.", +"type": "string" +}, +"hashVerified": { +"description": "For Scotty uploads only. If a user sends a hash code and the backend has requested that Scotty verify the upload against the client hash, Scotty will perform the check on behalf of the backend and will reject it if the hashes don't match. This is set to true if Scotty performed this verification.", +"type": "boolean" +}, +"inline": { +"description": "Media data, set if reference_type is INLINE", +"format": "byte", +"type": "string" +}, +"isPotentialRetry": { +"description": "|is_potential_retry| is set false only when Scotty is certain that it has not sent the request before. When a client resumes an upload, this field must be set true in agent calls, because Scotty cannot be certain that it has never sent the request before due to potential failure in the session state persistence.", +"type": "boolean" +}, +"length": { +"description": "Size of the data, in bytes", +"format": "int64", +"type": "string" +}, +"md5Hash": { +"description": "Scotty-provided MD5 hash for an upload.", +"format": "byte", +"type": "string" +}, +"mediaId": { +"description": "Media id to forward to the operation GetMedia. Can be set if reference_type is GET_MEDIA.", +"format": "byte", +"type": "string" +}, +"objectId": { +"$ref": "ObjectId", +"description": "Reference to a TI Blob, set if reference_type is BIGSTORE_REF." +}, +"path": { +"description": "Path to the data, set if reference_type is PATH", +"type": "string" +}, +"referenceType": { +"description": "Describes what the field reference contains.", +"enum": [ +"PATH", +"BLOB_REF", +"INLINE", +"GET_MEDIA", +"COMPOSITE_MEDIA", +"BIGSTORE_REF", +"DIFF_VERSION_RESPONSE", +"DIFF_CHECKSUMS_RESPONSE", +"DIFF_DOWNLOAD_RESPONSE", +"DIFF_UPLOAD_REQUEST", +"DIFF_UPLOAD_RESPONSE", +"COSMO_BINARY_REFERENCE", +"ARBITRARY_BYTES" +], +"enumDescriptions": [ +"Reference contains a GFS path or a local path.", +"Reference points to a blobstore object. This could be either a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info first, since v1 is being deprecated.", +"Data is included into this proto buffer", +"Data should be accessed from the current service using the operation GetMedia.", +"The content for this media object is stored across multiple partial media objects under the composite_media field.", +"Reference points to a bigstore object", +"Indicates the data is stored in diff_version_response.", +"Indicates the data is stored in diff_checksums_response.", +"Indicates the data is stored in diff_download_response.", +"Indicates the data is stored in diff_upload_request.", +"Indicates the data is stored in diff_upload_response.", +"Indicates the data is stored in cosmo_binary_reference.", +"Informs Scotty to generate a response payload with the size specified in the length field. The contents of the payload are generated by Scotty and are undefined. This is useful for testing download speeds between the user and Scotty without involving a real payload source. Note: range is not supported when using arbitrary_bytes." +], +"type": "string" +}, +"sha1Hash": { +"description": "Scotty-provided SHA1 hash for an upload.", +"format": "byte", +"type": "string" +}, +"sha256Hash": { +"description": "Scotty-provided SHA256 hash for an upload.", +"format": "byte", +"type": "string" +}, +"timestamp": { +"description": "Time at which the media data was last updated, in milliseconds since UNIX epoch", +"format": "uint64", +"type": "string" +}, +"token": { +"description": "A unique fingerprint/version id for the media data", +"type": "string" +} +}, +"type": "object" +}, +"MediaRequestInfo": { +"description": "Extra information added to operations that support Scotty media requests.", +"id": "MediaRequestInfo", +"properties": { +"currentBytes": { +"description": "The number of current bytes uploaded or downloaded.", +"format": "int64", +"type": "string" +}, +"customData": { +"description": "Data to be copied to backend requests. Custom data is returned to Scotty in the agent_state field, which Scotty will then provide in subsequent upload notifications.", +"type": "string" +}, +"diffObjectVersion": { +"description": "Set if the http request info is diff encoded. The value of this field is the version number of the base revision. This is corresponding to Apiary's mediaDiffObjectVersion (//depot/google3/java/com/google/api/server/media/variable/DiffObjectVersionVariable.java). See go/esf-scotty-diff-upload for more information.", +"type": "string" +}, +"finalStatus": { +"description": "The existence of the final_status field indicates that this is the last call to the agent for this request_id. http://google3/uploader/agent/scotty_agent.proto?l=737&rcl=347601929", +"format": "int32", +"type": "integer" +}, +"notificationType": { +"description": "The type of notification received from Scotty.", +"enum": [ +"START", +"PROGRESS", +"END", +"RESPONSE_SENT", +"ERROR" +], +"enumDescriptions": [ +"Such requests signals the start of a request containing media upload. Only the media field(s) in the inserted/updated resource are set. The response should either return an error or succeed. On success, responses don't need to contain anything.", +"Such requests signals that the upload has progressed and that the backend might want to access the media file specified in relevant fields in the resource. Only the media field(s) in the inserted/updated resource are set. The response should either return an error or succeed. On success, responses don't need to contain anything.", +"Such requests signals the end of a request containing media upload. END should be handled just like normal Insert/Upload requests, that is, they should process the request and return a complete resource in the response. Pointers to media data (a GFS path usually) appear in the relevant fields in the inserted/updated resource. See gdata.Media in data.proto.", +"Such requests occur after an END and signal that the response has been sent back to the client. RESPONSE_SENT is only sent to the backend if it is configured to receive them. The response does not need to contain anything.", +"Such requests indicate that an error occurred while processing the request. ERROR is only sent to the backend if it is configured to receive them. It is not guaranteed that all errors will result in this notification to the backend, even if the backend requests them. Since these requests are just for informational purposes, the response does not need to contain anything." +], +"type": "string" +}, +"requestId": { +"description": "The Scotty request ID.", +"type": "string" +}, +"requestReceivedParamsServingInfo": { +"description": "The partition of the Scotty server handling this request. type is uploader_service.RequestReceivedParamsServingInfo LINT.IfChange(request_received_params_serving_info_annotations) LINT.ThenChange()", +"format": "byte", +"type": "string" +}, +"totalBytes": { +"description": "The total size of the file.", +"format": "int64", +"type": "string" +}, +"totalBytesIsEstimated": { +"description": "Whether the total bytes field contains an estimated data.", +"type": "boolean" +} +}, +"type": "object" +}, +"MerchantLocation": { +"description": "Locations of interest for this class or object. Currently, this location is used for geofenced notifications. When a user is within a set radius of this lat/long, and dwells there, Google will trigger a notification. When a user exits this radius, the notification will be hidden.", +"id": "MerchantLocation", +"properties": { +"latitude": { +"description": "The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.", +"format": "double", +"type": "number" +}, +"longitude": { +"description": "The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Message": { +"description": "A message that will be displayed with a Valuable", +"id": "Message", +"properties": { +"body": { +"description": "The message body.", +"type": "string" +}, +"displayInterval": { +"$ref": "TimeInterval", +"description": "The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided." +}, +"header": { +"description": "The message header.", +"type": "string" +}, +"id": { +"description": "The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#walletObjectMessage\"`.", +"type": "string" +}, +"localizedBody": { +"$ref": "LocalizedString", +"description": "Translated strings for the message body." +}, +"localizedHeader": { +"$ref": "LocalizedString", +"description": "Translated strings for the message header." +}, +"messageType": { +"description": "The message type.", +"enum": [ +"MESSAGE_TYPE_UNSPECIFIED", +"TEXT", +"text", +"EXPIRATION_NOTIFICATION", +"expirationNotification", +"TEXT_AND_NOTIFY" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false +], +"enumDescriptions": [ +"", +"Renders the message as text on the card details screen. This is the default message type.", +"Legacy alias for `TEXT`. Deprecated.", +"Note: This enum is currently not supported.", +"Legacy alias for `EXPIRATION_NOTIFICATION`. Deprecated.", +"Renders the message as text on the card details screen and as an Android notification." +], +"type": "string" +} +}, +"type": "object" +}, +"ModifyLinkedOfferObjects": { +"id": "ModifyLinkedOfferObjects", +"properties": { +"addLinkedOfferObjectIds": { +"description": "The linked offer object ids to add to the object.", +"items": { +"type": "string" +}, +"type": "array" +}, +"removeLinkedOfferObjectIds": { +"description": "The linked offer object ids to remove from the object.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ModifyLinkedOfferObjectsRequest": { +"id": "ModifyLinkedOfferObjectsRequest", +"properties": { +"linkedOfferObjectIds": { +"$ref": "ModifyLinkedOfferObjects", +"description": "The linked offer object ids to add or remove from the object." +} +}, +"type": "object" +}, +"ModuleViewConstraints": { +"description": "Constraints that all must be met for the module to be shown.", +"id": "ModuleViewConstraints", +"properties": { +"displayInterval": { +"$ref": "TimeInterval", +"description": "The period of time that the module will be displayed to users. Can define both a `startTime` and `endTime`. The module is displayed immediately after insertion unless a `startTime` is set. The module is displayed indefinitely if `endTime` is not set." +} +}, +"type": "object" +}, +"Money": { +"id": "Money", +"properties": { +"currencyCode": { +"description": "The currency code, such as \"USD\" or \"EUR.\"", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#money\"`.", +"type": "string" +}, +"micros": { +"description": "The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Notifications": { +"description": "Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field.", +"id": "Notifications", +"properties": { +"expiryNotification": { +"$ref": "ExpiryNotification", +"description": "A notification would be triggered at a specific time before the card expires." +}, +"upcomingNotification": { +"$ref": "UpcomingNotification", +"description": "A notification would be triggered at a specific time before the card becomes usable." +} +}, +"type": "object" +}, +"ObjectId": { +"description": "This is a copy of the tech.blob.ObjectId proto, which could not be used directly here due to transitive closure issues with JavaScript support; see http://b/8801763.", +"id": "ObjectId", +"properties": { +"bucketName": { +"description": "The name of the bucket to which this object belongs.", +"type": "string" +}, +"generation": { +"description": "Generation of the object. Generations are monotonically increasing across writes, allowing them to be be compared to determine which generation is newer. If this is omitted in a request, then you are requesting the live object. See http://go/bigstore-versions", +"format": "int64", +"type": "string" +}, +"objectName": { +"description": "The name of the object.", +"type": "string" +} +}, +"type": "object" +}, +"OfferClass": { +"id": "OfferClass", +"properties": { +"allowMultipleUsersPerObject": { +"deprecated": true, +"description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", +"type": "boolean" +}, +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding object that will be used instead." +}, +"callbackOptions": { +"$ref": "CallbackOptions", +"description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." +}, +"classTemplateInfo": { +"$ref": "ClassTemplateInfo", +"description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." +}, +"countryCode": { +"description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", +"type": "string" +}, +"details": { +"description": "The details of the offer.", +"type": "string" +}, +"enableSmartTap": { +"description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"type": "boolean" +}, +"finePrint": { +"description": "The fine print or terms of the offer, such as \"20% off any t-shirt at Adam's Apparel.\"", +"type": "string" +}, +"helpUri": { +"$ref": "Uri", +"description": "The help link for the offer, such as `http://myownpersonaldomain.com/help`" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", +"type": "string" +}, +"homepageUri": { +"$ref": "Uri", +"description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." +}, +"id": { +"description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"deprecated": true, +"description": "Deprecated. Use textModulesData instead." +}, +"issuerName": { +"description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#offerClass\"`.", +"type": "string" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the object, both will be displayed." +}, +"localizedDetails": { +"$ref": "LocalizedString", +"description": "Translated strings for the details." +}, +"localizedFinePrint": { +"$ref": "LocalizedString", +"description": "Translated strings for the fine_print." +}, +"localizedIssuerName": { +"$ref": "LocalizedString", +"description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." +}, +"localizedProvider": { +"$ref": "LocalizedString", +"description": "Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens." +}, +"localizedShortTitle": { +"$ref": "LocalizedString", +"description": "Translated strings for the short title. Recommended maximum length is 20 characters." +}, +"localizedTitle": { +"$ref": "LocalizedString", +"description": "Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the class. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"multipleDevicesAndHoldersAllowedStatus": { +"description": "Identifies whether multiple users and devices will save the same object referencing this class.", +"enum": [ +"STATUS_UNSPECIFIED", +"MULTIPLE_HOLDERS", +"ONE_USER_ALL_DEVICES", +"ONE_USER_ONE_DEVICE", +"multipleHolders", +"oneUserAllDevices", +"oneUserOneDevice" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +true, +true +], +"enumDescriptions": [ +"Unspecified preference.", +"The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", +"An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", +"An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", +"Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", +"Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", +"Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." +], +"type": "string" +}, +"notifyPreference": { +"description": "Whether or not field updates to this class should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If not specified, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"provider": { +"description": "Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"redemptionChannel": { +"description": "Required. The redemption channels applicable to this offer.", +"enum": [ +"REDEMPTION_CHANNEL_UNSPECIFIED", +"INSTORE", +"instore", +"ONLINE", +"online", +"BOTH", +"both", +"TEMPORARY_PRICE_REDUCTION", +"temporaryPriceReduction" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `INSTORE`. Deprecated.", +"", +"Legacy alias for `ONLINE`. Deprecated.", +"", +"Legacy alias for `BOTH`. Deprecated.", +"", +"Legacy alias for `TEMPORARY_PRICE_REDUCTION`. Deprecated." +], +"type": "string" +}, +"redemptionIssuers": { +"description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"review": { +"$ref": "Review", +"description": "The review comments set by the platform when a class is marked `approved` or `rejected`." +}, +"reviewStatus": { +"description": "Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"UNDER_REVIEW", +"underReview", +"APPROVED", +"approved", +"REJECTED", +"rejected", +"DRAFT", +"draft" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `UNDER_REVIEW`. Deprecated.", +"", +"Legacy alias for `APPROVED`. Deprecated.", +"", +"Legacy alias for `REJECTED`. Deprecated.", +"", +"Legacy alias for `DRAFT`. Deprecated." +], +"type": "string" +}, +"securityAnimation": { +"$ref": "SecurityAnimation", +"description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." +}, +"shortTitle": { +"description": "A shortened version of the title of the offer, such as \"20% off,\" shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.", +"type": "string" +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"title": { +"description": "Required. The title of the offer, such as \"20% off any t-shirt.\" Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"titleImage": { +"$ref": "Image", +"description": "The title image of the offer. This image is displayed in both the details and list views of the app." +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the class. For a pass only ten will be displayed, prioritizing those from the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +}, +"viewUnlockRequirement": { +"description": "View Unlock Requirement options for the offer.", +"enum": [ +"VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", +"UNLOCK_NOT_REQUIRED", +"UNLOCK_REQUIRED_TO_VIEW" +], +"enumDescriptions": [ +"Default value, same as UNLOCK_NOT_REQUIRED.", +"Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", +"Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." +], +"type": "string" +}, +"wideTitleImage": { +"$ref": "Image", +"description": "The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view." +}, +"wordMark": { +"$ref": "Image", +"deprecated": true, +"description": "Deprecated." +} +}, +"type": "object" +}, +"OfferClassAddMessageResponse": { +"id": "OfferClassAddMessageResponse", +"properties": { +"resource": { +"$ref": "OfferClass", +"description": "The updated OfferClass resource." +} +}, +"type": "object" +}, +"OfferClassListResponse": { +"id": "OfferClassListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "OfferClass" +}, +"type": "array" +} +}, +"type": "object" +}, +"OfferObject": { +"id": "OfferObject", +"properties": { +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding class only object AppLinkData will be displayed." +}, +"barcode": { +"$ref": "Barcode", +"description": "The barcode type and value." +}, +"classId": { +"description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", +"type": "string" +}, +"classReference": { +"$ref": "OfferClass", +"description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." +}, +"disableExpirationNotification": { +"description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", +"type": "boolean" +}, +"groupingInfo": { +"$ref": "GroupingInfo", +"description": "Information that controls how passes are grouped together." +}, +"hasLinkedDevice": { +"description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", +"type": "boolean" +}, +"hasUsers": { +"description": "Indicates if the object has users. This field is set by the platform.", +"type": "boolean" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." +}, +"id": { +"description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"description": "Deprecated. Use textModulesData instead." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#offerObject\"`.", +"type": "string" +}, +"linkedObjectIds": { +"description": "linked_object_ids are a list of other objects such as event ticket, loyalty, offer, generic, giftcard, transit and boarding pass that should be automatically attached to this offer object. If a user had saved this offer, then these linked_object_ids would be automatically pushed to the user's wallet (unless they turned off the setting to receive such linked passes). Make sure that objects present in linked_object_ids are already inserted - if not, calls would fail. Once linked, the linked objects cannot be unlinked. You cannot link objects belonging to another issuer. There is a limit to the number of objects that can be linked to a single object. After the limit is reached, new linked objects in the call will be ignored silently. Object IDs should follow the format issuer ID.identifier where the former is issued by Google and the latter is chosen by you.", +"items": { +"type": "string" +}, +"type": "array" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the class, both will be displayed." +}, +"locations": { +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the object. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"notifyPreference": { +"description": "Whether or not field updates to this object should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If set to DO_NOT_NOTIFY or NOTIFICATION_SETTINGS_UNSPECIFIED, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"passConstraints": { +"$ref": "PassConstraints", +"description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." +}, +"rotatingBarcode": { +"$ref": "RotatingBarcode", +"description": "The rotating barcode type and value." +}, +"saveRestrictions": { +"$ref": "SaveRestrictions", +"description": "Restrictions on the object that needs to be verified before the user tries to save the pass. Note that this restrictions will only be applied during save time. If the restrictions changed after a user saves the pass, the new restrictions will not be applied to an already saved pass." +}, +"smartTapRedemptionValue": { +"description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", +"type": "string" +}, +"state": { +"description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"active", +"COMPLETED", +"completed", +"EXPIRED", +"expired", +"INACTIVE", +"inactive" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Object is active and displayed to with other active objects.", +"Legacy alias for `ACTIVE`. Deprecated.", +"", +"Legacy alias for `COMPLETED`. Deprecated.", +"Object is no longer valid (`validTimeInterval` passed).", +"Legacy alias for `EXPIRED`. Deprecated.", +"", +"Legacy alias for `INACTIVE`. Deprecated." +], +"type": "string" +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"validTimeInterval": { +"$ref": "TimeInterval", +"description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"OfferObjectAddMessageResponse": { +"id": "OfferObjectAddMessageResponse", +"properties": { +"resource": { +"$ref": "OfferObject", +"description": "The updated OfferObject resource." +} +}, +"type": "object" +}, +"OfferObjectListResponse": { +"id": "OfferObjectListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "OfferObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"Pagination": { +"id": "Pagination", +"properties": { +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#pagination\"`.", +"type": "string" +}, +"nextPageToken": { +"description": "Page token to send to fetch the next page.", +"type": "string" +}, +"resultsPerPage": { +"description": "Number of results returned in this page.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PassConstraints": { +"description": "Container for any constraints that may be placed on passes.", +"id": "PassConstraints", +"properties": { +"nfcConstraint": { +"description": "The NFC constraints for the pass.", +"items": { +"enum": [ +"NFC_CONSTRAINT_UNSPECIFIED", +"BLOCK_PAYMENT", +"BLOCK_CLOSED_LOOP_TRANSIT" +], +"enumDescriptions": [ +"Default value, no specified constraint.", +"Payment cards will not be conveyed while the pass is open.", +"Closed loop transit cards will not be conveyed while the pass is open." +], +"type": "string" +}, +"type": "array" +}, +"screenshotEligibility": { +"description": "The screenshot eligibility for the pass.", +"enum": [ +"SCREENSHOT_ELIGIBILITY_UNSPECIFIED", +"ELIGIBLE", +"INELIGIBLE" +], +"enumDescriptions": [ +"Default value, same as ELIGIBLE.", +"Default behavior for all existing Passes if ScreenshotEligibility is not set. Allows screenshots to be taken on Android devices.", +"Disallows screenshots to be taken on Android devices. Note that older versions of Wallet may still allow screenshots to be taken." +], +"type": "string" +} +}, +"type": "object" +}, +"Permission": { +"id": "Permission", +"properties": { +"emailAddress": { +"description": "The email address of the user, group, or service account to which this permission refers to.", +"type": "string" +}, +"role": { +"description": "The role granted by this permission.", +"enum": [ +"ROLE_UNSPECIFIED", +"OWNER", +"owner", +"READER", +"reader", +"WRITER", +"writer" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `OWNER`. Deprecated.", +"", +"Legacy alias for `READER`. Deprecated.", +"", +"Legacy alias for `WRITER`. Deprecated." +], +"type": "string" +} +}, +"type": "object" +}, +"Permissions": { +"id": "Permissions", +"properties": { +"issuerId": { +"description": "ID of the issuer the list of permissions refer to.", +"format": "int64", +"type": "string" +}, +"permissions": { +"description": "The complete list of permissions for the issuer account.", +"items": { +"$ref": "Permission" +}, +"type": "array" +} +}, +"type": "object" +}, +"PurchaseDetails": { +"id": "PurchaseDetails", +"properties": { +"accountId": { +"description": "ID of the account used to purchase the ticket.", +"type": "string" +}, +"confirmationCode": { +"description": "The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.", +"type": "string" +}, +"purchaseDateTime": { +"description": "The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Without offset information, some rich features may not be available.", +"type": "string" +}, +"purchaseReceiptNumber": { +"description": "Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.", +"type": "string" +}, +"ticketCost": { +"$ref": "TicketCost", +"description": "The cost of the ticket." +} +}, +"type": "object" +}, +"ReservationInfo": { +"id": "ReservationInfo", +"properties": { +"confirmationCode": { +"description": "Confirmation code needed to check into this flight. This is the number that the passenger would enter into a kiosk at the airport to look up the flight and print a boarding pass.", +"type": "string" +}, +"eticketNumber": { +"description": "E-ticket number.", +"type": "string" +}, +"frequentFlyerInfo": { +"$ref": "FrequentFlyerInfo", +"description": "Frequent flyer membership information." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#reservationInfo\"`.", +"type": "string" +} +}, +"type": "object" +}, +"Resources": { +"id": "Resources", +"properties": { +"eventTicketClasses": { +"description": "A list of event ticket classes.", +"items": { +"$ref": "EventTicketClass" +}, +"type": "array" +}, +"eventTicketObjects": { +"description": "A list of event ticket objects.", +"items": { +"$ref": "EventTicketObject" +}, +"type": "array" +}, +"flightClasses": { +"description": "A list of flight classes.", +"items": { +"$ref": "FlightClass" +}, +"type": "array" +}, +"flightObjects": { +"description": "A list of flight objects.", +"items": { +"$ref": "FlightObject" +}, +"type": "array" +}, +"genericClasses": { +"description": "A list of generic classes.", +"items": { +"$ref": "GenericClass" +}, +"type": "array" +}, +"genericObjects": { +"description": "A list of generic objects.", +"items": { +"$ref": "GenericObject" +}, +"type": "array" +}, +"giftCardClasses": { +"description": "A list of gift card classes.", +"items": { +"$ref": "GiftCardClass" +}, +"type": "array" +}, +"giftCardObjects": { +"description": "A list of gift card objects.", +"items": { +"$ref": "GiftCardObject" +}, +"type": "array" +}, +"loyaltyClasses": { +"description": "A list of loyalty classes.", +"items": { +"$ref": "LoyaltyClass" +}, +"type": "array" +}, +"loyaltyObjects": { +"description": "A list of loyalty objects.", +"items": { +"$ref": "LoyaltyObject" +}, +"type": "array" +}, +"offerClasses": { +"description": "A list of offer classes.", +"items": { +"$ref": "OfferClass" +}, +"type": "array" +}, +"offerObjects": { +"description": "A list of offer objects.", +"items": { +"$ref": "OfferObject" +}, +"type": "array" +}, +"transitClasses": { +"description": "A list of transit classes.", +"items": { +"$ref": "TransitClass" +}, +"type": "array" +}, +"transitObjects": { +"description": "A list of transit objects.", +"items": { +"$ref": "TransitObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"Review": { +"id": "Review", +"properties": { +"comments": { +"type": "string" +} +}, +"type": "object" +}, +"RotatingBarcode": { +"id": "RotatingBarcode", +"properties": { +"alternateText": { +"description": "An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.", +"type": "string" +}, +"initialRotatingBarcodeValues": { +"$ref": "RotatingBarcodeValues", +"description": "Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint." +}, +"renderEncoding": { +"description": "The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.", +"enum": [ +"RENDER_ENCODING_UNSPECIFIED", +"UTF_8" +], +"enumDescriptions": [ +"", +"UTF_8 encoding for barcodes. This is only supported for barcode type qrCode." +], +"type": "string" +}, +"showCodeText": { +"$ref": "LocalizedString", +"description": "Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google." +}, +"totpDetails": { +"$ref": "RotatingBarcodeTotpDetails", +"description": "Details used to evaluate the {totp_value_n} substitutions." +}, +"type": { +"description": "The type of this barcode.", +"enum": [ +"BARCODE_TYPE_UNSPECIFIED", +"AZTEC", +"aztec", +"CODE_39", +"code39", +"CODE_128", +"code128", +"CODABAR", +"codabar", +"DATA_MATRIX", +"dataMatrix", +"EAN_8", +"ean8", +"EAN_13", +"ean13", +"EAN13", +"ITF_14", +"itf14", +"PDF_417", +"pdf417", +"PDF417", +"QR_CODE", +"qrCode", +"qrcode", +"UPC_A", +"upcA", +"TEXT_ONLY", +"textOnly" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true, +true, +false, +true, +false, +true, +true, +false, +true, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Not supported for Rotating Barcodes.", +"Legacy alias for `AZTEC`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `CODE_39`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `CODE_128`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `CODABAR`. Deprecated. Not supported for Rotating Barcodes.", +"A 2D matrix barcode consisting of black and white. Cells or modules are arranged in either a square or rectangle. Not supported for Rotating Barcodes.", +"Legacy alias for `DATA_MATRIX`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `EAN_8`. Deprecated. Not supported for Rotating Barcodes.", +"Not supported for Rotating Barcodes.", +"Legacy alias for `EAN_13`. Deprecated. Not supported for Rotating Barcodes.", +"Legacy alias for `EAN_13`. Deprecated. Not supported for Rotating Barcodes.", +"14 digit ITF code Not supported for Rotating Barcodes.", +"Legacy alias for `ITF_14`. Deprecated. Not supported for Rotating Barcodes.", +"Supported for Rotating Barcodes.", +"Legacy alias for `PDF_417`. Deprecated.", +"Legacy alias for `PDF_417`. Deprecated.", +"Supported for Rotating Barcodes.", +"Legacy alias for `QR_CODE`. Deprecated.", +"Legacy alias for `QR_CODE`. Deprecated.", +"11 or 12 digit codes Not supported for Rotating Barcodes.", +"Legacy alias for `UPC_A`. Deprecated. Not supported for Rotating Barcodes.", +"Renders the field as a text field. The `alternateText` field may not be used with a barcode of type `textOnly`. Not supported for Rotating Barcodes.", +"Legacy alias for `TEXT_ONLY`. Deprecated. Not supported for Rotating Barcodes." +], +"type": "string" +}, +"valuePattern": { +"description": "String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.", +"type": "string" +} +}, +"type": "object" +}, +"RotatingBarcodeTotpDetails": { +"description": "Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238", +"id": "RotatingBarcodeTotpDetails", +"properties": { +"algorithm": { +"description": "The TOTP algorithm used to generate the OTP.", +"enum": [ +"TOTP_ALGORITHM_UNSPECIFIED", +"TOTP_SHA1" +], +"enumDescriptions": [ +"", +"TOTP algorithm from RFC 6238 with the SHA1 hash function" +], +"type": "string" +}, +"parameters": { +"description": "The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.", +"items": { +"$ref": "RotatingBarcodeTotpDetailsTotpParameters" +}, +"type": "array" +}, +"periodMillis": { +"description": "The time interval used for the TOTP value generation, in milliseconds.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"RotatingBarcodeTotpDetailsTotpParameters": { +"description": "Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3", +"id": "RotatingBarcodeTotpDetailsTotpParameters", +"properties": { +"key": { +"description": "The secret key used for the TOTP value generation, encoded as a Base16 string.", +"type": "string" +}, +"valueLength": { +"description": "The length of the TOTP value in decimal digits.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"RotatingBarcodeValues": { +"description": "A payload containing many barcode values and start date/time.", +"id": "RotatingBarcodeValues", +"properties": { +"periodMillis": { +"description": "Required. The amount of time each barcode is valid for.", +"format": "int64", +"type": "string" +}, +"startDateTime": { +"description": "Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object's RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year.", +"type": "string" +}, +"values": { +"description": "Required. The values to encode in the barcode. At least one value is required.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SaveRestrictions": { +"description": "Defines restrictions on the object that will be verified during save. Note: this is an advanced feature, please contact Google for implementation support.", +"id": "SaveRestrictions", +"properties": { +"restrictToEmailSha256": { +"description": "Restrict the save of the referencing object to the given email address only. This is the hex output of SHA256 sum of the email address, all lowercase and without any notations like \".\" or \"+\", except \"@\". For example, for example@example.com, this value will be 31c5543c1734d25c7206f5fd591525d0295bec6fe84ff82f946a34fe970a1e66 and for Example@example.com, this value will be bc34f262c93ad7122763684ccea6f07fb7f5d8a2d11e60ce15a6f43fe70ce632 If email address of the logged-in user who tries to save this pass does not match with the defined value here, users won't be allowed to save this pass. They will instead be prompted with an error to contact the issuer. This information should be gathered from the user with an explicit consent via Sign in with Google integration https://developers.google.com/identity/authentication. Please contact with support before using Save Restrictions.", +"type": "string" +} +}, +"type": "object" +}, +"SecurityAnimation": { +"id": "SecurityAnimation", +"properties": { +"animationType": { +"description": "Type of animation.", +"enum": [ +"ANIMATION_UNSPECIFIED", +"FOIL_SHIMMER", +"foilShimmer" +], +"enumDeprecated": [ +false, +false, +true +], +"enumDescriptions": [ +"", +"Default Foil & Shimmer animation", +"Legacy alias for `FOIL_SHIMMER`. Deprecated." +], +"type": "string" +} +}, +"type": "object" +}, +"SignUpInfo": { +"id": "SignUpInfo", +"properties": { +"classId": { +"description": "ID of the class the user can sign up for.", +"type": "string" +} +}, +"type": "object" +}, +"SmartTap": { +"id": "SmartTap", +"properties": { +"id": { +"description": "The unique identifier for a smart tap. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is the Smart Tap id. The Smart Tap id is a Base64 encoded string which represents the id which was generated by the Google Pay app.", +"type": "string" +}, +"infos": { +"description": "Communication from merchant to user.", +"items": { +"$ref": "IssuerToUserInfo" +}, +"type": "array" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#smartTap\"`.", +"type": "string" +}, +"merchantId": { +"description": "Smart Tap merchant ID of who engaged in the Smart Tap interaction.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SmartTapMerchantData": { +"id": "SmartTapMerchantData", +"properties": { +"authenticationKeys": { +"description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", +"items": { +"$ref": "AuthenticationKey" +}, +"type": "array" +}, +"smartTapMerchantId": { +"description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"TemplateItem": { +"id": "TemplateItem", +"properties": { +"firstValue": { +"$ref": "FieldSelector", +"description": "A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as \"A / B\"." +}, +"predefinedItem": { +"description": "A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.", +"enum": [ +"PREDEFINED_ITEM_UNSPECIFIED", +"FREQUENT_FLYER_PROGRAM_NAME_AND_NUMBER", +"frequentFlyerProgramNameAndNumber", +"FLIGHT_NUMBER_AND_OPERATING_FLIGHT_NUMBER", +"flightNumberAndOperatingFlightNumber" +], +"enumDeprecated": [ +false, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `FREQUENT_FLYER_PROGRAM_NAME_AND_NUMBER`. Deprecated.", +"", +"Legacy alias for `FLIGHT_NUMBER_AND_OPERATING_FLIGHT_NUMBER`. Deprecated." +], +"type": "string" +}, +"secondValue": { +"$ref": "FieldSelector", +"description": "A reference to a field to display. This may only be populated if the `firstValue` field is populated." +} +}, +"type": "object" +}, +"TextModuleData": { +"description": "Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.", +"id": "TextModuleData", +"properties": { +"body": { +"description": "The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"header": { +"description": "The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"id": { +"description": "The ID associated with a text module. This field is here to enable ease of management of text modules and referencing them in template overrides. The ID should only include alphanumeric characters, '_', or '-'. It can not include dots, as dots are used to separate fields within FieldReference.fieldPaths in template overrides.", +"type": "string" +}, +"localizedBody": { +"$ref": "LocalizedString", +"description": "Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens." +}, +"localizedHeader": { +"$ref": "LocalizedString", +"description": "Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens." +} +}, +"type": "object" +}, +"TicketCost": { +"id": "TicketCost", +"properties": { +"discountMessage": { +"$ref": "LocalizedString", +"description": "A message describing any kind of discount that was applied." +}, +"faceValue": { +"$ref": "Money", +"description": "The face value of the ticket." +}, +"purchasePrice": { +"$ref": "Money", +"description": "The actual purchase price of the ticket, after tax and/or discounts." +} +}, +"type": "object" +}, +"TicketLeg": { +"id": "TicketLeg", +"properties": { +"arrivalDateTime": { +"description": "The date/time of arrival. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", +"type": "string" +}, +"carriage": { +"description": "The train or ship name/number that the passsenger needs to board.", +"type": "string" +}, +"departureDateTime": { +"description": "The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", +"type": "string" +}, +"destinationName": { +"$ref": "LocalizedString", +"description": "The destination name." +}, +"destinationStationCode": { +"description": "The destination station code.", +"type": "string" +}, +"fareName": { +"$ref": "LocalizedString", +"description": "Short description/name of the fare for this leg of travel. Eg \"Anytime Single Use\"." +}, +"originName": { +"$ref": "LocalizedString", +"description": "The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present." +}, +"originStationCode": { +"description": "The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.", +"type": "string" +}, +"platform": { +"description": "The platform or gate where the passenger can board the carriage.", +"type": "string" +}, +"ticketSeat": { +"$ref": "TicketSeat", +"description": "The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set." +}, +"ticketSeats": { +"description": "The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.", +"items": { +"$ref": "TicketSeat" +}, +"type": "array" +}, +"transitOperatorName": { +"$ref": "LocalizedString", +"description": "The name of the transit operator that is operating this leg of a trip." +}, +"transitTerminusName": { +"$ref": "LocalizedString", +"description": "Terminus station or destination of the train/bus/etc." +}, +"zone": { +"description": "The zone of boarding within the platform.", +"type": "string" +} +}, +"type": "object" +}, +"TicketRestrictions": { +"id": "TicketRestrictions", +"properties": { +"otherRestrictions": { +"$ref": "LocalizedString", +"description": "Extra restrictions that don't fall under the \"route\" or \"time\" categories." +}, +"routeRestrictions": { +"$ref": "LocalizedString", +"description": "Restrictions about routes that may be taken. For example, this may be the string \"Reserved CrossCountry trains only\"." +}, +"routeRestrictionsDetails": { +"$ref": "LocalizedString", +"description": "More details about the above `routeRestrictions`." +}, +"timeRestrictions": { +"$ref": "LocalizedString", +"description": "Restrictions about times this ticket may be used." +} +}, +"type": "object" +}, +"TicketSeat": { +"id": "TicketSeat", +"properties": { +"coach": { +"description": "The identifier of the train car or coach in which the ticketed seat is located. Eg. \"10\"", +"type": "string" +}, +"customFareClass": { +"$ref": "LocalizedString", +"description": "A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set." +}, +"fareClass": { +"description": "The fare class of the ticketed seat.", +"enum": [ +"FARE_CLASS_UNSPECIFIED", +"ECONOMY", +"economy", +"FIRST", +"first", +"BUSINESS", +"business" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `ECONOMY`. Deprecated.", +"", +"Legacy alias for `FIRST`. Deprecated.", +"", +"Legacy alias for `BUSINESS`. Deprecated." +], +"type": "string" +}, +"seat": { +"description": "The identifier of where the ticketed seat is located. Eg. \"42\". If there is no specific identifier, use `seatAssigment` instead.", +"type": "string" +}, +"seatAssignment": { +"$ref": "LocalizedString", +"description": "The passenger's seat assignment. Eg. \"no specific seat\". To be used when there is no specific identifier to use in `seat`." +} +}, +"type": "object" +}, +"TimeInterval": { +"id": "TimeInterval", +"properties": { +"end": { +"$ref": "DateTime", +"description": "End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset." +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#timeInterval\"`.", +"type": "string" +}, +"start": { +"$ref": "DateTime", +"description": "Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset." +} +}, +"type": "object" +}, +"TransitClass": { +"id": "TransitClass", +"properties": { +"activationOptions": { +"$ref": "ActivationOptions", +"description": "Activation options for an activatable ticket." +}, +"allowMultipleUsersPerObject": { +"deprecated": true, +"description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", +"type": "boolean" +}, +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding object that will be used instead." +}, +"callbackOptions": { +"$ref": "CallbackOptions", +"description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." +}, +"classTemplateInfo": { +"$ref": "ClassTemplateInfo", +"description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." +}, +"countryCode": { +"description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", +"type": "string" +}, +"customCarriageLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`)." +}, +"customCoachLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`)." +}, +"customConcessionCategoryLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the transit concession category value (`transitObject.concessionCategory`)." +}, +"customConfirmationCodeLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`)." +}, +"customDiscountMessageLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`)." +}, +"customFareClassLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`)." +}, +"customFareNameLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`)." +}, +"customOtherRestrictionsLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`)." +}, +"customPlatformLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`)." +}, +"customPurchaseFaceValueLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`)." +}, +"customPurchasePriceLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`)." +}, +"customPurchaseReceiptNumberLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`)." +}, +"customRouteRestrictionsDetailsLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`)." +}, +"customRouteRestrictionsLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`)." +}, +"customSeatLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`)." +}, +"customTicketNumberLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the ticket number value (`transitObject.ticketNumber`)." +}, +"customTimeRestrictionsLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`)." +}, +"customTransitTerminusNameLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`)." +}, +"customZoneLabel": { +"$ref": "LocalizedString", +"description": "A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`)." +}, +"enableSingleLegItinerary": { +"description": "Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.", +"type": "boolean" +}, +"enableSmartTap": { +"description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"type": "boolean" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", +"type": "string" +}, +"homepageUri": { +"$ref": "Uri", +"description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." +}, +"id": { +"description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"deprecated": true, +"description": "Deprecated. Use textModulesData instead." +}, +"issuerName": { +"description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", +"type": "string" +}, +"languageOverride": { +"description": "If this field is present, transit tickets served to a user's device will always be in this language. Represents the BCP 47 language tag. Example values are \"en-US\", \"en-GB\", \"de\", or \"de-AT\".", +"type": "string" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the object, both will be displayed." +}, +"localizedIssuerName": { +"$ref": "LocalizedString", +"description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"logo": { +"$ref": "Image", +"description": "Required. The logo image of the ticket. This image is displayed in the card detail view of the app." +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the class. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"multipleDevicesAndHoldersAllowedStatus": { +"description": "Identifies whether multiple users and devices will save the same object referencing this class.", +"enum": [ +"STATUS_UNSPECIFIED", +"MULTIPLE_HOLDERS", +"ONE_USER_ALL_DEVICES", +"ONE_USER_ONE_DEVICE", +"multipleHolders", +"oneUserAllDevices", +"oneUserOneDevice" +], +"enumDeprecated": [ +false, +false, +false, +false, +true, +true, +true +], +"enumDescriptions": [ +"Unspecified preference.", +"The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", +"An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", +"An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", +"Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", +"Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", +"Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." +], +"type": "string" +}, +"notifyPreference": { +"description": "Whether or not field updates to this class should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If set to DO_NOT_NOTIFY or NOTIFICATION_SETTINGS_UNSPECIFIED, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"redemptionIssuers": { +"description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"review": { +"$ref": "Review", +"description": "The review comments set by the platform when a class is marked `approved` or `rejected`." +}, +"reviewStatus": { +"description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", +"enum": [ +"REVIEW_STATUS_UNSPECIFIED", +"UNDER_REVIEW", +"underReview", +"APPROVED", +"approved", +"REJECTED", +"rejected", +"DRAFT", +"draft" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `UNDER_REVIEW`. Deprecated.", +"", +"Legacy alias for `APPROVED`. Deprecated.", +"", +"Legacy alias for `REJECTED`. Deprecated.", +"", +"Legacy alias for `DRAFT`. Deprecated." +], +"type": "string" +}, +"securityAnimation": { +"$ref": "SecurityAnimation", +"description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"transitOperatorName": { +"$ref": "LocalizedString", +"description": "The name of the transit operator." +}, +"transitType": { +"description": "Required. The type of transit this class represents, such as \"bus\".", +"enum": [ +"TRANSIT_TYPE_UNSPECIFIED", +"BUS", +"bus", +"RAIL", +"rail", +"TRAM", +"tram", +"FERRY", +"ferry", +"OTHER", +"other" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `BUS`. Deprecated.", +"", +"Legacy alias for `RAIL`. Deprecated.", +"", +"Legacy alias for `TRAM`. Deprecated.", +"", +"Legacy alias for `FERRY`. Deprecated.", +"", +"Legacy alias for `OTHER`. Deprecated." +], +"type": "string" +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the class. For a pass only ten will be displayed, prioritizing those from the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +}, +"viewUnlockRequirement": { +"description": "View Unlock Requirement options for the transit ticket.", +"enum": [ +"VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", +"UNLOCK_NOT_REQUIRED", +"UNLOCK_REQUIRED_TO_VIEW" +], +"enumDescriptions": [ +"Default value, same as UNLOCK_NOT_REQUIRED.", +"Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", +"Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." +], +"type": "string" +}, +"watermark": { +"$ref": "Image", +"description": "Watermark image to display on the user's device." +}, +"wideLogo": { +"$ref": "Image", +"description": "The wide logo of the ticket. When provided, this will be used in place of the logo in the top left of the card view." +}, +"wordMark": { +"$ref": "Image", +"deprecated": true, +"description": "Deprecated." +} +}, +"type": "object" +}, +"TransitClassAddMessageResponse": { +"id": "TransitClassAddMessageResponse", +"properties": { +"resource": { +"$ref": "TransitClass", +"description": "The updated TransitClass resource." +} +}, +"type": "object" +}, +"TransitClassListResponse": { +"id": "TransitClassListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "TransitClass" +}, +"type": "array" +} +}, +"type": "object" +}, +"TransitObject": { +"id": "TransitObject", +"properties": { +"activationStatus": { +"$ref": "ActivationStatus", +"description": "The activation status for the object. Required if the class has `activationOptions` set." +}, +"appLinkData": { +"$ref": "AppLinkData", +"description": "Optional app or website link that will be displayed as a button on the front of the pass. If AppLinkData is provided for the corresponding class only object AppLinkData will be displayed." +}, +"barcode": { +"$ref": "Barcode", +"description": "The barcode type and value." +}, +"classId": { +"description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", +"type": "string" +}, +"classReference": { +"$ref": "TransitClass", +"description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." +}, +"concessionCategory": { +"description": "The concession category for the ticket.", +"enum": [ +"CONCESSION_CATEGORY_UNSPECIFIED", +"ADULT", +"adult", +"CHILD", +"child", +"SENIOR", +"senior" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `ADULT`. Deprecated.", +"", +"Legacy alias for `CHILD`. Deprecated.", +"", +"Legacy alias for `SENIOR`. Deprecated." +], +"type": "string" +}, +"customConcessionCategory": { +"$ref": "LocalizedString", +"description": "A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set." +}, +"customTicketStatus": { +"$ref": "LocalizedString", +"description": "A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set." +}, +"deviceContext": { +"$ref": "DeviceContext", +"description": "Device context associated with the object." +}, +"disableExpirationNotification": { +"description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", +"type": "boolean" +}, +"groupingInfo": { +"$ref": "GroupingInfo", +"description": "Information that controls how passes are grouped together." +}, +"hasLinkedDevice": { +"description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", +"type": "boolean" +}, +"hasUsers": { +"description": "Indicates if the object has users. This field is set by the platform.", +"type": "boolean" +}, +"heroImage": { +"$ref": "Image", +"description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." +}, +"hexBackgroundColor": { +"description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", +"type": "string" +}, +"id": { +"description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", +"type": "string" +}, +"imageModulesData": { +"description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", +"items": { +"$ref": "ImageModuleData" +}, +"type": "array" +}, +"infoModuleData": { +"$ref": "InfoModuleData", +"description": "Deprecated. Use textModulesData instead." +}, +"linkedObjectIds": { +"description": "linked_object_ids are a list of other objects such as event ticket, loyalty, offer, generic, giftcard, transit and boarding pass that should be automatically attached to this transit object. If a user had saved this transit card, then these linked_object_ids would be automatically pushed to the user's wallet (unless they turned off the setting to receive such linked passes). Make sure that objects present in linked_object_ids are already inserted - if not, calls would fail. Once linked, the linked objects cannot be unlinked. You cannot link objects belonging to another issuer. There is a limit to the number of objects that can be linked to a single object. After the limit is reached, new linked objects in the call will be ignored silently. Object IDs should follow the format issuer ID. identifier where the former is issued by Google and the latter is chosen by you.", +"items": { +"type": "string" +}, +"type": "array" +}, +"linksModuleData": { +"$ref": "LinksModuleData", +"description": "Links module data. If links module data is also defined on the class, both will be displayed." +}, +"locations": { +"deprecated": true, +"description": "Note: This field is currently not supported to trigger geo notifications.", +"items": { +"$ref": "LatLongPoint" +}, +"type": "array" +}, +"merchantLocations": { +"description": "Merchant locations. There is a maximum of ten on the object. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.", +"items": { +"$ref": "MerchantLocation" +}, +"type": "array" +}, +"messages": { +"description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", +"items": { +"$ref": "Message" +}, +"type": "array" +}, +"notifyPreference": { +"description": "Whether or not field updates to this object should trigger notifications. When set to NOTIFY, we will attempt to trigger a field update notification to users. These notifications will only be sent to users if the field is part of an allowlist. If set to DO_NOT_NOTIFY or NOTIFICATION_SETTINGS_UNSPECIFIED, no notification will be triggered. This setting is ephemeral and needs to be set with each PATCH or UPDATE request, otherwise a notification will not be triggered.", +"enum": [ +"NOTIFICATION_SETTINGS_FOR_UPDATES_UNSPECIFIED", +"NOTIFY_ON_UPDATE" +], +"enumDescriptions": [ +"Default behavior is no notifications sent.", +"This value will result in a notification being sent, if the updated fields are part of an allowlist." +], +"type": "string" +}, +"passConstraints": { +"$ref": "PassConstraints", +"description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." +}, +"passengerNames": { +"description": "The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.", +"type": "string" +}, +"passengerType": { +"description": "The number of passengers.", +"enum": [ +"PASSENGER_TYPE_UNSPECIFIED", +"SINGLE_PASSENGER", +"singlePassenger", +"MULTIPLE_PASSENGERS", +"multiplePassengers" +], +"enumDeprecated": [ +false, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `SINGLE_PASSENGER`. Deprecated.", +"", +"Legacy alias for `MULTIPLE_PASSENGERS`. Deprecated." +], +"type": "string" +}, +"purchaseDetails": { +"$ref": "PurchaseDetails", +"description": "Purchase details for this ticket." +}, +"rotatingBarcode": { +"$ref": "RotatingBarcode", +"description": "The rotating barcode type and value." +}, +"saveRestrictions": { +"$ref": "SaveRestrictions", +"description": "Restrictions on the object that needs to be verified before the user tries to save the pass. Note that this restrictions will only be applied during save time. If the restrictions changed after a user saves the pass, the new restrictions will not be applied to an already saved pass." +}, +"smartTapRedemptionValue": { +"description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", +"type": "string" +}, +"state": { +"description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"active", +"COMPLETED", +"completed", +"EXPIRED", +"expired", +"INACTIVE", +"inactive" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"Object is active and displayed to with other active objects.", +"Legacy alias for `ACTIVE`. Deprecated.", +"", +"Legacy alias for `COMPLETED`. Deprecated.", +"Object is no longer valid (`validTimeInterval` passed).", +"Legacy alias for `EXPIRED`. Deprecated.", +"", +"Legacy alias for `INACTIVE`. Deprecated." +], +"type": "string" +}, +"textModulesData": { +"description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", +"items": { +"$ref": "TextModuleData" +}, +"type": "array" +}, +"ticketLeg": { +"$ref": "TicketLeg", +"description": "A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set." +}, +"ticketLegs": { +"description": "Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.", +"items": { +"$ref": "TicketLeg" +}, +"type": "array" +}, +"ticketNumber": { +"description": "The number of the ticket. This is a unique identifier for the ticket in the transit operator's system.", +"type": "string" +}, +"ticketRestrictions": { +"$ref": "TicketRestrictions", +"description": "Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken." +}, +"ticketStatus": { +"description": "The status of the ticket. For states which affect display, use the `state` field instead.", +"enum": [ +"TICKET_STATUS_UNSPECIFIED", +"USED", +"used", +"REFUNDED", +"refunded", +"EXCHANGED", +"exchanged" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `USED`. Deprecated.", +"", +"Legacy alias for `REFUNDED`. Deprecated.", +"", +"Legacy alias for `EXCHANGED`. Deprecated." +], +"type": "string" +}, +"tripId": { +"description": "This id is used to group tickets together if the user has saved multiple tickets for the same trip.", +"type": "string" +}, +"tripType": { +"description": "Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.", +"enum": [ +"TRIP_TYPE_UNSPECIFIED", +"ROUND_TRIP", +"roundTrip", +"ONE_WAY", +"oneWay" +], +"enumDeprecated": [ +false, +false, +true, +false, +true +], +"enumDescriptions": [ +"", +"", +"Legacy alias for `ROUND_TRIP`. Deprecated.", +"", +"Legacy alias for `ONE_WAY`. Deprecated." +], +"type": "string" +}, +"validTimeInterval": { +"$ref": "TimeInterval", +"description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." +}, +"valueAddedModuleData": { +"description": "Optional value added module data. Maximum of ten on the object.", +"items": { +"$ref": "ValueAddedModuleData" +}, +"type": "array" +}, +"version": { +"deprecated": true, +"description": "Deprecated", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"TransitObjectAddMessageResponse": { +"id": "TransitObjectAddMessageResponse", +"properties": { +"resource": { +"$ref": "TransitObject", +"description": "The updated TransitObject resource." +} +}, +"type": "object" +}, +"TransitObjectListResponse": { +"id": "TransitObjectListResponse", +"properties": { +"pagination": { +"$ref": "Pagination", +"description": "Pagination of the response." +}, +"resources": { +"description": "Resources corresponding to the list request.", +"items": { +"$ref": "TransitObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"TransitObjectUploadRotatingBarcodeValuesRequest": { +"description": "Request to upload rotating barcode values.", +"id": "TransitObjectUploadRotatingBarcodeValuesRequest", +"properties": { +"blob": { +"$ref": "Media", +"description": "A reference to the rotating barcode values payload that was uploaded." +}, +"mediaRequestInfo": { +"$ref": "MediaRequestInfo", +"description": "Extra information about the uploaded media." +} +}, +"type": "object" +}, +"TransitObjectUploadRotatingBarcodeValuesResponse": { +"description": "Response for uploading rotating barcode values.", +"id": "TransitObjectUploadRotatingBarcodeValuesResponse", +"properties": {}, +"type": "object" +}, +"TranslatedString": { +"id": "TranslatedString", +"properties": { +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#translatedString\"`.", +"type": "string" +}, +"language": { +"description": "Represents the BCP 47 language tag. Example values are \"en-US\", \"en-GB\", \"de\", or \"de-AT\".", +"type": "string" +}, +"value": { +"description": "The UTF-8 encoded translated string.", +"type": "string" +} +}, +"type": "object" +}, +"UpcomingNotification": { +"description": "Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable.", +"id": "UpcomingNotification", +"properties": { +"enableNotification": { +"description": "Indicates if the object needs to have upcoming notification enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"Uri": { +"id": "Uri", +"properties": { +"description": { +"description": "The URI's title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.", +"type": "string" +}, +"id": { +"description": "The ID associated with a uri. This field is here to enable ease of management of uris.", +"type": "string" +}, +"kind": { +"deprecated": true, +"description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#uri\"`.", +"type": "string" +}, +"localizedDescription": { +"$ref": "LocalizedString", +"description": "Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens." +}, +"uri": { +"description": "The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.", +"type": "string" +} +}, +"type": "object" +}, +"ValueAddedModuleData": { +"description": "Data for Value Added module. Required fields are header and uri.", +"id": "ValueAddedModuleData", +"properties": { +"body": { +"$ref": "LocalizedString", +"description": "Body to be displayed on the module. Character limit is 50 and longer strings will be truncated." +}, +"header": { +"$ref": "LocalizedString", +"description": "Header to be displayed on the module. Character limit is 60 and longer strings will be truncated." +}, +"image": { +"$ref": "Image", +"description": "Image to be displayed on the module. Recommended image ratio is 1:1. Images will be resized to fit this ratio." +}, +"sortIndex": { +"description": "The index for sorting the modules. Modules with a lower sort index are shown before modules with a higher sort index. If unspecified, the sort index is assumed to be INT_MAX. For two modules with the same index, the sorting behavior is undefined.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "URI that the module leads to on click. This can be a web link or a deep link as mentioned in https://developer.android.com/training/app-links/deep-linking.", +"type": "string" +}, +"viewConstraints": { +"$ref": "ModuleViewConstraints", +"description": "Constraints that all must be met for the module to be shown." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Wallet API", +"version": "v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workflows.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workflows.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..6cefa439a632deb284a6e83096a415a75afb0fe3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workflows.v1.json @@ -0,0 +1,871 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://workflows.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Workflows", +"description": "Manage workflow definitions. To execute workflows and manage executions, see the Workflows Executions API.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/workflows", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "workflows:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://workflows.mtls.googleapis.com/", +"name": "workflows", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "workflows.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "workflows.projects.locations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", +"location": "query", +"type": "string" +}, +"name": { +"description": "The resource that owns the locations collection, if applicable.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results to return. If not set, the service selects a default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"operations": { +"methods": { +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "workflows.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "workflows.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "workflows.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workflows": { +"methods": { +"create": { +"description": "Creates a new workflow. If a workflow with the specified name already exists in the specified project and location, the long running operation returns a ALREADY_EXISTS error.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows", +"httpMethod": "POST", +"id": "workflows.projects.locations.workflows.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Project and location in which the workflow should be created. Format: projects/{project}/locations/{location}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"workflowId": { +"description": "Required. The ID of the workflow to be created. It has to fulfill the following requirements: * Must contain only letters, numbers, underscores and hyphens. * Must start with a letter. * Must be between 1-64 characters. * Must end with a number or a letter. * Must be unique within the customer project and location.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/workflows", +"request": { +"$ref": "Workflow" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a workflow with the specified name. This method also cancels and deletes all running executions of the workflow.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}", +"httpMethod": "DELETE", +"id": "workflows.projects.locations.workflows.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the workflow to be deleted. Format: projects/{project}/locations/{location}/workflows/{workflow}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single workflow.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}", +"httpMethod": "GET", +"id": "workflows.projects.locations.workflows.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the workflow for which information should be retrieved. Format: projects/{project}/locations/{location}/workflows/{workflow}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", +"required": true, +"type": "string" +}, +"revisionId": { +"description": "Optional. The revision of the workflow to retrieve. If the revision_id is empty, the latest revision is retrieved. The format is \"000001-a4d\", where the first six characters define the zero-padded decimal revision number. They are followed by a hyphen and three hexadecimal characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Workflow" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists workflows in a given project and location. The default order is not specified.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows", +"httpMethod": "GET", +"id": "workflows.projects.locations.workflows.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter to restrict results to specific workflows. For details, see AIP-160. For example, if you are using the Google APIs Explorer: `state=\"SUCCEEDED\"` or `createTime>\"2023-08-01\" AND state=\"FAILED\"`", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Comma-separated list of fields that specify the order of the results. Default sorting order for a field is ascending. To specify descending order for a field, append a \"desc\" suffix. If not specified, the results are returned in an unspecified order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of workflows to return per call. The service might return fewer than this value even if not at the end of the collection. If a value is not specified, a default value of 500 is used. The maximum permitted value is 1000 and values greater than 1000 are coerced down to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListWorkflows` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListWorkflows` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project and location from which the workflows should be listed. Format: projects/{project}/locations/{location}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/workflows", +"response": { +"$ref": "ListWorkflowsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listRevisions": { +"description": "Lists revisions for a given workflow.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}:listRevisions", +"httpMethod": "GET", +"id": "workflows.projects.locations.workflows.listRevisions", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Workflow for which the revisions should be listed. Format: projects/{project}/locations/{location}/workflows/{workflow}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of revisions to return per page. If a value is not specified, a default value of 20 is used. The maximum permitted value is 100. Values greater than 100 are coerced down to 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token, received from a previous ListWorkflowRevisions call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:listRevisions", +"response": { +"$ref": "ListWorkflowRevisionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing workflow. Running this method has no impact on already running executions of the workflow. A new revision of the workflow might be created as a result of a successful update operation. In that case, the new revision is used in new workflow executions.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}", +"httpMethod": "PATCH", +"id": "workflows.projects.locations.workflows.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "List of fields to be updated. If not present, the entire workflow will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Workflow" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://workflows.googleapis.com/", +"schemas": { +"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); }", +"id": "Empty", +"properties": {}, +"type": "object" +}, +"ListLocationsResponse": { +"description": "The response message for Locations.ListLocations.", +"id": "ListLocationsResponse", +"properties": { +"locations": { +"description": "A list of locations that matches the specified filter in the request.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkflowRevisionsResponse": { +"description": "Response for the ListWorkflowRevisions method.", +"id": "ListWorkflowRevisionsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"workflows": { +"description": "The revisions of the workflow, ordered in reverse chronological order.", +"items": { +"$ref": "Workflow" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkflowsResponse": { +"description": "Response for the ListWorkflows method.", +"id": "ListWorkflowsResponse", +"properties": { +"nextPageToken": { +"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"unreachable": { +"description": "Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workflows": { +"description": "The workflows that match the request.", +"items": { +"$ref": "Workflow" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A resource that represents a Google Cloud location.", +"id": "Location", +"properties": { +"displayName": { +"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", +"type": "object" +}, +"locationId": { +"description": "The canonical id for this location. For example: `\"us-east1\"`.", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata. For example the available capacity at the given location.", +"type": "object" +}, +"name": { +"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "API version used to start the operation.", +"type": "string" +}, +"createTime": { +"description": "The time the operation was created.", +"format": "google-datetime", +"type": "string" +}, +"endTime": { +"description": "The time the operation finished running.", +"format": "google-datetime", +"type": "string" +}, +"target": { +"description": "Server-defined resource path for the target of the operation.", +"type": "string" +}, +"verb": { +"description": "Name of the verb executed by the operation.", +"type": "string" +} +}, +"type": "object" +}, +"StateError": { +"description": "Describes an error related to the current state of the workflow.", +"id": "StateError", +"properties": { +"details": { +"description": "Provides specifics about the error.", +"type": "string" +}, +"type": { +"description": "The type of this state error.", +"enum": [ +"TYPE_UNSPECIFIED", +"KMS_ERROR" +], +"enumDescriptions": [ +"No type specified.", +"Caused by an issue with KMS." +], +"type": "string" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"Workflow": { +"description": "Workflow program to be executed by Workflows.", +"id": "Workflow", +"properties": { +"allKmsKeys": { +"description": "Output only. A list of all KMS crypto keys used to encrypt or decrypt the data associated with the workflow.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"allKmsKeysVersions": { +"description": "Output only. A list of all KMS crypto key versions used to encrypt or decrypt the data associated with the workflow.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"callLogLevel": { +"description": "Optional. Describes the level of platform logging to apply to calls and call responses during executions of this workflow. If both the workflow and the execution specify a logging level, the execution level takes precedence.", +"enum": [ +"CALL_LOG_LEVEL_UNSPECIFIED", +"LOG_ALL_CALLS", +"LOG_ERRORS_ONLY", +"LOG_NONE" +], +"enumDescriptions": [ +"No call logging level specified.", +"Log all call steps within workflows, all call returns, and all exceptions raised.", +"Log only exceptions that are raised from call steps within workflows.", +"Explicitly log nothing." +], +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp for when the workflow was created. This is a workflow-wide field and is not tied to a specific revision.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"cryptoKeyName": { +"description": "Optional. The resource name of a KMS crypto key used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. If not provided, data associated with the workflow will not be CMEK-encrypted.", +"type": "string" +}, +"cryptoKeyVersion": { +"description": "Output only. The resource name of a KMS crypto key version used to encrypt or decrypt the data associated with the workflow. Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of the workflow provided by the user. Must be at most 1000 Unicode characters long. This is a workflow-wide field and is not tied to a specific revision.", +"type": "string" +}, +"executionHistoryLevel": { +"description": "Optional. Describes the level of the execution history feature to apply to this workflow.", +"enum": [ +"EXECUTION_HISTORY_LEVEL_UNSPECIFIED", +"EXECUTION_HISTORY_BASIC", +"EXECUTION_HISTORY_DETAILED" +], +"enumDescriptions": [ +"The default/unset value.", +"Enable execution history basic feature.", +"Enable execution history detailed feature." +], +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels associated with this workflow. Labels can contain at most 64 entries. Keys and values can be no longer than 63 characters and can only contain lowercase letters, numeric characters, underscores, and dashes. Label keys must start with a letter. International characters are allowed. This is a workflow-wide field and is not tied to a specific revision.", +"type": "object" +}, +"name": { +"description": "The resource name of the workflow. Format: projects/{project}/locations/{location}/workflows/{workflow}. This is a workflow-wide field and is not tied to a specific revision.", +"type": "string" +}, +"revisionCreateTime": { +"description": "Output only. The timestamp for the latest revision of the workflow's creation.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"revisionId": { +"description": "Output only. The revision of the workflow. A new revision of a workflow is created as a result of updating the following properties of a workflow: - Service account - Workflow code to be executed The format is \"000001-a4d\", where the first six characters define the zero-padded revision ordinal number. They are followed by a hyphen and three hexadecimal random characters.", +"readOnly": true, +"type": "string" +}, +"serviceAccount": { +"description": "The service account associated with the latest workflow version. This service account represents the identity of the workflow and determines what permissions the workflow has. Format: projects/{project}/serviceAccounts/{account} or {account} Using `-` as a wildcard for the `{project}` or not providing one at all will infer the project from the account. The `{account}` value can be the `email` address or the `unique_id` of the service account. If not provided, workflow will use the project's default service account. Modifying this field for an existing workflow results in a new workflow revision.", +"type": "string" +}, +"sourceContents": { +"description": "Workflow code to be executed. The size limit is 128KB.", +"type": "string" +}, +"state": { +"description": "Output only. State of the workflow deployment.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"UNAVAILABLE" +], +"enumDescriptions": [ +"Invalid state.", +"The workflow has been deployed successfully and is serving.", +"Workflow data is unavailable. See the `state_error` field." +], +"readOnly": true, +"type": "string" +}, +"stateError": { +"$ref": "StateError", +"description": "Output only. Error regarding the state of the workflow. For example, this field will have error details if the execution data is unavailable due to revoked KMS key permissions.", +"readOnly": true +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tags associated with this workflow.", +"type": "object" +}, +"updateTime": { +"description": "Output only. The timestamp for when the workflow was last updated. This is a workflow-wide field and is not tied to a specific revision.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"userEnvVars": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-defined environment variables associated with this workflow revision. This map has a maximum length of 20. Each string can take up to 4KiB. Keys cannot be empty strings and cannot start with \"GOOGLE\" or \"WORKFLOWS\".", +"type": "object" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Workflows API", +"version": "v1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workstations.v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workstations.v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..6f6199394d13b1d73a3e72022030149e719f66ad --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/workstations.v1beta.json @@ -0,0 +1,2501 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-platform": { +"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." +} +} +} +}, +"basePath": "", +"baseUrl": "https://workstations.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Workstations", +"description": "Allows administrators to create managed developer environments in the cloud. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/workstations", +"fullyEncodeReservedExpansion": true, +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "workstations:v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://workstations.mtls.googleapis.com/", +"name": "workstations", +"ownerDomain": "google.com", +"ownerName": "Google", +"parameters": { +"$.xgafv": { +"description": "V1 error format.", +"enum": [ +"1", +"2" +], +"enumDescriptions": [ +"v1 error format", +"v2 error format" +], +"location": "query", +"type": "string" +}, +"access_token": { +"description": "OAuth access token.", +"location": "query", +"type": "string" +}, +"alt": { +"default": "json", +"description": "Data format for response.", +"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", +"type": "string" +}, +"callback": { +"description": "JSONP", +"location": "query", +"type": "string" +}, +"fields": { +"description": "Selector specifying which fields to include in a partial response.", +"location": "query", +"type": "string" +}, +"key": { +"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", +"location": "query", +"type": "string" +}, +"oauth_token": { +"description": "OAuth 2.0 token for the current user.", +"location": "query", +"type": "string" +}, +"prettyPrint": { +"default": "true", +"description": "Returns response with indentations and line breaks.", +"location": "query", +"type": "boolean" +}, +"quotaUser": { +"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", +"type": "string" +}, +"uploadType": { +"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", +"location": "query", +"type": "string" +}, +"upload_protocol": { +"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", +"location": "query", +"type": "string" +} +}, +"protocol": "rest", +"resources": { +"projects": { +"resources": { +"locations": { +"resources": { +"operations": { +"methods": { +"cancel": { +"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "workstations.projects.locations.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "workstations.projects.locations.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "workstations.projects.locations.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "workstations.projects.locations.operations.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "The standard list filter.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The name of the operation's parent resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The standard list page size.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The standard list page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workstationClusters": { +"methods": { +"create": { +"description": "Creates a new workstation cluster.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"location": "query", +"type": "boolean" +}, +"workstationClusterId": { +"description": "Required. ID to use for the workstation cluster.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+parent}/workstationClusters", +"request": { +"$ref": "WorkstationCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified workstation cluster.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}", +"httpMethod": "DELETE", +"id": "workstations.projects.locations.workstationClusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If set, the request will be rejected if the latest version of the workstation cluster on the server does not have this ETag.", +"location": "query", +"type": "string" +}, +"force": { +"description": "Optional. If set, any workstation configurations and workstations in the workstation cluster are also deleted. Otherwise, the request only works if the workstation cluster has no configurations or workstations.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the workstation cluster to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not apply it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the requested workstation cluster.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the requested resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "WorkstationCluster" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns all workstation clusters in the specified location.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/workstationClusters", +"response": { +"$ref": "ListWorkstationClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing workstation cluster.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}", +"httpMethod": "PATCH", +"id": "workstations.projects.locations.workstationClusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set, and the workstation cluster is not found, a new workstation cluster will be created. In this situation, update_mask is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Identifier. Full name of this workstation cluster.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask that specifies which fields in the workstation cluster should be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "WorkstationCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"workstationConfigs": { +"methods": { +"create": { +"description": "Creates a new workstation configuration.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"location": "query", +"type": "boolean" +}, +"workstationConfigId": { +"description": "Required. ID to use for the workstation configuration.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+parent}/workstationConfigs", +"request": { +"$ref": "WorkstationConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified workstation configuration.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}", +"httpMethod": "DELETE", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If set, the request is rejected if the latest version of the workstation configuration on the server does not have this ETag.", +"location": "query", +"type": "string" +}, +"force": { +"description": "Optional. If set, any workstations in the workstation configuration are also deleted. Otherwise, the request works only if the workstation configuration has no workstations.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the workstation configuration to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the requested workstation configuration.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the requested resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "WorkstationConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}:getIamPolicy", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns all workstation configurations in the specified cluster.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/workstationConfigs", +"response": { +"$ref": "ListWorkstationConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listUsable": { +"description": "Returns all workstation configurations in the specified cluster on which the caller has the \"workstations.workstation.create\" permission.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs:listUsable", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.listUsable", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/workstationConfigs:listUsable", +"response": { +"$ref": "ListUsableWorkstationConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing workstation configuration.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}", +"httpMethod": "PATCH", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set and the workstation configuration is not found, a new workstation configuration will be created. In this situation, update_mask is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Identifier. Full name of this workstation configuration.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask specifying which fields in the workstation configuration should be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "WorkstationConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}:setIamPolicy", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}:testIamPermissions", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"workstations": { +"methods": { +"create": { +"description": "Creates a new workstation.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"location": "query", +"type": "boolean" +}, +"workstationId": { +"description": "Required. ID to use for the workstation.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+parent}/workstations", +"request": { +"$ref": "Workstation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified workstation.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}", +"httpMethod": "DELETE", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. If set, the request will be rejected if the latest version of the workstation on the server does not have this ETag.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the workstation to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+/workstations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateAccessToken": { +"description": "Returns a short-lived credential that can be used to send authenticated and authorized traffic to a workstation. Once generated this token cannot be revoked and is good for the lifetime of the token.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}:generateAccessToken", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.generateAccessToken", +"parameterOrder": [ +"workstation" +], +"parameters": { +"workstation": { +"description": "Required. Name of the workstation for which the access token should be generated.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+/workstations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+workstation}:generateAccessToken", +"request": { +"$ref": "GenerateAccessTokenRequest" +}, +"response": { +"$ref": "GenerateAccessTokenResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the requested workstation.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the requested resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+/workstations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Workstation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}:getIamPolicy", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.getIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"options.requestedPolicyVersion": { +"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resource": { +"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+/workstations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns all Workstations using the specified workstation configuration.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/workstations", +"response": { +"$ref": "ListWorkstationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listUsable": { +"description": "Returns all workstations using the specified workstation configuration on which the caller has the \"workstations.workstations.use\" permission.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations:listUsable", +"httpMethod": "GET", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.listUsable", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of items to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. next_page_token value returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/workstations:listUsable", +"response": { +"$ref": "ListUsableWorkstationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing workstation.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}", +"httpMethod": "PATCH", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If set and the workstation configuration is not found, a new workstation configuration is created. In this situation, update_mask is ignored.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Identifier. Full name of this workstation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+/workstations/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask specifying which fields in the workstation configuration should be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "Workstation" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}:setIamPolicy", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.setIamPolicy", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+/workstations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"start": { +"description": "Starts running a workstation so that users can connect to it.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}:start", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.start", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the workstation to start.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+/workstations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}:start", +"request": { +"$ref": "StartWorkstationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"stop": { +"description": "Stops running a workstation, reducing costs.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}:stop", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.stop", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the workstation to stop.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+/workstations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}:stop", +"request": { +"$ref": "StopWorkstationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}:testIamPermissions", +"httpMethod": "POST", +"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.testIamPermissions", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/workstationClusters/[^/]+/workstationConfigs/[^/]+/workstations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +} +} +}, +"revision": "20250101", +"rootUrl": "https://workstations.googleapis.com/", +"schemas": { +"Accelerator": { +"description": "An accelerator card attached to the instance.", +"id": "Accelerator", +"properties": { +"count": { +"description": "Optional. Number of accelerator cards exposed to the instance.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "Optional. Type of accelerator resource to attach to the instance, for example, `\"nvidia-tesla-p100\"`.", +"type": "string" +} +}, +"type": "object" +}, +"AuditConfig": { +"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", +"id": "AuditConfig", +"properties": { +"auditLogConfigs": { +"description": "The configuration for logging of each type of permission.", +"items": { +"$ref": "AuditLogConfig" +}, +"type": "array" +}, +"service": { +"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", +"type": "string" +} +}, +"type": "object" +}, +"AuditLogConfig": { +"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", +"id": "AuditLogConfig", +"properties": { +"exemptedMembers": { +"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logType": { +"description": "The log type that this config enables.", +"enum": [ +"LOG_TYPE_UNSPECIFIED", +"ADMIN_READ", +"DATA_WRITE", +"DATA_READ" +], +"enumDescriptions": [ +"Default case. Should never be this.", +"Admin reads. Example: CloudIAM getIamPolicy", +"Data writes. Example: CloudSQL Users create", +"Data reads. Example: CloudSQL Users list" +], +"type": "string" +} +}, +"type": "object" +}, +"Binding": { +"description": "Associates `members`, or principals, with a `role`.", +"id": "Binding", +"properties": { +"condition": { +"$ref": "Expr", +"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." +}, +"members": { +"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"role": { +"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", +"type": "string" +} +}, +"type": "object" +}, +"BoostConfig": { +"description": "A boost configuration is a set of resources that a workstation can use to increase its performance. If you specify a boost configuration, upon startup, workstation users can choose to use a VM provisioned under the boost config by passing the boost config ID in the start request. If the workstation user does not provide a boost config ID in the start request, the system will choose a VM from the pool provisioned under the default config.", +"id": "BoostConfig", +"properties": { +"accelerators": { +"description": "Optional. A list of the type and count of accelerator cards attached to the boost instance. Defaults to `none`.", +"items": { +"$ref": "Accelerator" +}, +"type": "array" +}, +"bootDiskSizeGb": { +"description": "Optional. The size of the boot disk for the VM in gigabytes (GB). The minimum boot disk size is `30` GB. Defaults to `50` GB.", +"format": "int32", +"type": "integer" +}, +"enableNestedVirtualization": { +"description": "Optional. Whether to enable nested virtualization on boosted Cloud Workstations VMs running using this boost configuration. Defaults to false. Nested virtualization lets you run virtual machine (VM) instances inside your workstation. Before enabling nested virtualization, consider the following important considerations. Cloud Workstations instances are subject to the [same restrictions as Compute Engine instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): * **Organization policy**: projects, folders, or organizations may be restricted from creating nested VMs if the **Disable VM nested virtualization** constraint is enforced in the organization policy. For more information, see the Compute Engine section, [Checking whether nested virtualization is allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). * **Performance**: nested VMs might experience a 10% or greater decrease in performance for workloads that are CPU-bound and possibly greater than a 10% decrease for workloads that are input/output bound. * **Machine Type**: nested virtualization can only be enabled on boost configurations that specify a machine_type in the N1 or N2 machine series.", +"type": "boolean" +}, +"id": { +"description": "Required. The ID to be used for the boost configuration.", +"type": "string" +}, +"machineType": { +"description": "Optional. The type of machine that boosted VM instances will use\u2014for example, `e2-standard-4`. For more information about machine types that Cloud Workstations supports, see the list of [available machine types](https://cloud.google.com/workstations/docs/available-machine-types). Defaults to `e2-standard-4`.", +"type": "string" +}, +"poolSize": { +"description": "Optional. The number of boost VMs that the system should keep idle so that workstations can be boosted quickly. Defaults to `0`.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Container": { +"description": "A Docker container.", +"id": "Container", +"properties": { +"args": { +"description": "Optional. Arguments passed to the entrypoint.", +"items": { +"type": "string" +}, +"type": "array" +}, +"command": { +"description": "Optional. If set, overrides the default ENTRYPOINT specified by the image.", +"items": { +"type": "string" +}, +"type": "array" +}, +"env": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Environment variables passed to the container's entrypoint.", +"type": "object" +}, +"image": { +"description": "Optional. A Docker container image that defines a custom environment. Cloud Workstations provides a number of [preconfigured images](https://cloud.google.com/workstations/docs/preconfigured-base-images), but you can create your own [custom container images](https://cloud.google.com/workstations/docs/custom-container-images). If using a private image, the `host.gceInstance.serviceAccount` field must be specified in the workstation configuration. If using a custom container image, the service account must have [Artifact Registry Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) permission to pull the specified image. Otherwise, the image must be publicly accessible.", +"type": "string" +}, +"runAsUser": { +"description": "Optional. If set, overrides the USER specified in the image with the given uid.", +"format": "int32", +"type": "integer" +}, +"workingDir": { +"description": "Optional. If set, overrides the default DIR specified by the image.", +"type": "string" +} +}, +"type": "object" +}, +"CustomerEncryptionKey": { +"description": "A customer-managed encryption key (CMEK) for the Compute Engine resources of the associated workstation configuration. Specify the name of your Cloud KMS encryption key and the default service account. We recommend that you use a separate service account and follow [Cloud KMS best practices](https://cloud.google.com/kms/docs/separation-of-duties).", +"id": "CustomerEncryptionKey", +"properties": { +"kmsKey": { +"description": "Immutable. The name of the Google Cloud KMS encryption key. For example, `\"projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME\"`. The key must be in the same region as the workstation configuration.", +"type": "string" +}, +"kmsKeyServiceAccount": { +"description": "Immutable. The service account to use with the specified KMS key. We recommend that you use a separate service account and follow KMS best practices. For more information, see [Separation of duties](https://cloud.google.com/kms/docs/separation-of-duties) and `gcloud kms keys add-iam-policy-binding` [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member).", +"type": "string" +} +}, +"type": "object" +}, +"DomainConfig": { +"description": "Configuration options for a custom domain.", +"id": "DomainConfig", +"properties": { +"domain": { +"description": "Immutable. Domain used by Workstations for HTTP ingress.", +"type": "string" +} +}, +"type": "object" +}, +"EphemeralDirectory": { +"description": "An ephemeral directory which won't persist across workstation sessions. It is freshly created on every workstation start operation.", +"id": "EphemeralDirectory", +"properties": { +"gcePd": { +"$ref": "GcePersistentDisk", +"description": "An EphemeralDirectory backed by a Compute Engine persistent disk." +}, +"mountPath": { +"description": "Required. Location of this directory in the running workstation.", +"type": "string" +} +}, +"type": "object" +}, +"Expr": { +"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", +"id": "Expr", +"properties": { +"description": { +"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", +"type": "string" +}, +"expression": { +"description": "Textual representation of an expression in Common Expression Language syntax.", +"type": "string" +}, +"location": { +"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", +"type": "string" +}, +"title": { +"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", +"type": "string" +} +}, +"type": "object" +}, +"GceConfidentialInstanceConfig": { +"description": "A set of Compute Engine Confidential VM instance options.", +"id": "GceConfidentialInstanceConfig", +"properties": { +"enableConfidentialCompute": { +"description": "Optional. Whether the instance has confidential compute enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GceInstance": { +"description": "A runtime using a Compute Engine instance.", +"id": "GceInstance", +"properties": { +"accelerators": { +"description": "Optional. A list of the type and count of accelerator cards attached to the instance.", +"items": { +"$ref": "Accelerator" +}, +"type": "array" +}, +"boostConfigs": { +"description": "Optional. A list of the boost configurations that workstations created using this workstation configuration are allowed to use. If specified, users will have the option to choose from the list of boost configs when starting a workstation.", +"items": { +"$ref": "BoostConfig" +}, +"type": "array" +}, +"bootDiskSizeGb": { +"description": "Optional. The size of the boot disk for the VM in gigabytes (GB). The minimum boot disk size is `30` GB. Defaults to `50` GB.", +"format": "int32", +"type": "integer" +}, +"confidentialInstanceConfig": { +"$ref": "GceConfidentialInstanceConfig", +"description": "Optional. A set of Compute Engine Confidential VM instance options." +}, +"disablePublicIpAddresses": { +"description": "Optional. When set to true, disables public IP addresses for VMs. If you disable public IP addresses, you must set up Private Google Access or Cloud NAT on your network. If you use Private Google Access and you use `private.googleapis.com` or `restricted.googleapis.com` for Container Registry and Artifact Registry, make sure that you set up DNS records for domains `*.gcr.io` and `*.pkg.dev`. Defaults to false (VMs have public IP addresses).", +"type": "boolean" +}, +"disableSsh": { +"description": "Optional. Whether to disable SSH access to the VM.", +"type": "boolean" +}, +"enableNestedVirtualization": { +"description": "Optional. Whether to enable nested virtualization on Cloud Workstations VMs created using this workstation configuration. Defaults to false. Nested virtualization lets you run virtual machine (VM) instances inside your workstation. Before enabling nested virtualization, consider the following important considerations. Cloud Workstations instances are subject to the [same restrictions as Compute Engine instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): * **Organization policy**: projects, folders, or organizations may be restricted from creating nested VMs if the **Disable VM nested virtualization** constraint is enforced in the organization policy. For more information, see the Compute Engine section, [Checking whether nested virtualization is allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). * **Performance**: nested VMs might experience a 10% or greater decrease in performance for workloads that are CPU-bound and possibly greater than a 10% decrease for workloads that are input/output bound. * **Machine Type**: nested virtualization can only be enabled on workstation configurations that specify a machine_type in the N1 or N2 machine series.", +"type": "boolean" +}, +"machineType": { +"description": "Optional. The type of machine to use for VM instances\u2014for example, `\"e2-standard-4\"`. For more information about machine types that Cloud Workstations supports, see the list of [available machine types](https://cloud.google.com/workstations/docs/available-machine-types).", +"type": "string" +}, +"poolSize": { +"description": "Optional. The number of VMs that the system should keep idle so that new workstations can be started quickly for new users. Defaults to `0` in the API.", +"format": "int32", +"type": "integer" +}, +"pooledInstances": { +"description": "Output only. Number of instances currently available in the pool for faster workstation startup.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"serviceAccount": { +"description": "Optional. The email address of the service account for Cloud Workstations VMs created with this configuration. When specified, be sure that the service account has `logging.logEntries.create` and `monitoring.timeSeries.create` permissions on the project so it can write logs out to Cloud Logging. If using a custom container image, the service account must have [Artifact Registry Reader](https://cloud.google.com/artifact-registry/docs/access-control#roles) permission to pull the specified image. If you as the administrator want to be able to `ssh` into the underlying VM, you need to set this value to a service account for which you have the `iam.serviceAccounts.actAs` permission. Conversely, if you don't want anyone to be able to `ssh` into the underlying VM, use a service account where no one has that permission. If not set, VMs run with a service account provided by the Cloud Workstations service, and the image must be publicly accessible.", +"type": "string" +}, +"serviceAccountScopes": { +"description": "Optional. Scopes to grant to the service_account. When specified, users of workstations under this configuration must have `iam.serviceAccounts.actAs` on the service account.", +"items": { +"type": "string" +}, +"type": "array" +}, +"shieldedInstanceConfig": { +"$ref": "GceShieldedInstanceConfig", +"description": "Optional. A set of Compute Engine Shielded instance options." +}, +"tags": { +"description": "Optional. Network tags to add to the Compute Engine VMs backing the workstations. This option applies [network tags](https://cloud.google.com/vpc/docs/add-remove-network-tags) to VMs created with this configuration. These network tags enable the creation of [firewall rules](https://cloud.google.com/workstations/docs/configure-firewall-rules).", +"items": { +"type": "string" +}, +"type": "array" +}, +"vmTags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource manager tags to be bound to this instance. Tag keys and values have the same definition as [resource manager tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview). Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`.", +"type": "object" +} +}, +"type": "object" +}, +"GceInstanceHost": { +"description": "The Compute Engine instance host.", +"id": "GceInstanceHost", +"properties": { +"id": { +"description": "Optional. Output only. The ID of the Compute Engine instance.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Optional. Output only. The name of the Compute Engine instance.", +"readOnly": true, +"type": "string" +}, +"zone": { +"description": "Optional. Output only. The zone of the Compute Engine instance.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GcePersistentDisk": { +"description": "An EphemeralDirectory is backed by a Compute Engine persistent disk.", +"id": "GcePersistentDisk", +"properties": { +"diskType": { +"description": "Optional. Type of the disk to use. Defaults to `\"pd-standard\"`.", +"type": "string" +}, +"readOnly": { +"description": "Optional. Whether the disk is read only. If true, the disk may be shared by multiple VMs and source_snapshot must be set.", +"type": "boolean" +}, +"sourceImage": { +"description": "Optional. Name of the disk image to use as the source for the disk. Must be empty if source_snapshot is set. Updating source_image will update content in the ephemeral directory after the workstation is restarted. This field is mutable.", +"type": "string" +}, +"sourceSnapshot": { +"description": "Optional. Name of the snapshot to use as the source for the disk. Must be empty if source_image is set. Must be empty if read_only is false. Updating source_snapshot will update content in the ephemeral directory after the workstation is restarted. This field is mutable.", +"type": "string" +} +}, +"type": "object" +}, +"GceRegionalPersistentDisk": { +"description": "A Persistent Directory backed by a Compute Engine regional persistent disk. The persistent_directories field is repeated, but it may contain only one entry. It creates a [persistent disk](https://cloud.google.com/compute/docs/disks/persistent-disks) that mounts to the workstation VM at `/home` when the session starts and detaches when the session ends. If this field is empty, workstations created with this configuration do not have a persistent home directory.", +"id": "GceRegionalPersistentDisk", +"properties": { +"diskType": { +"description": "Optional. The [type of the persistent disk](https://cloud.google.com/compute/docs/disks#disk-types) for the home directory. Defaults to `\"pd-standard\"`.", +"type": "string" +}, +"fsType": { +"description": "Optional. Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if source_snapshot is set. Defaults to `\"ext4\"`.", +"type": "string" +}, +"reclaimPolicy": { +"description": "Optional. Whether the persistent disk should be deleted when the workstation is deleted. Valid values are `DELETE` and `RETAIN`. Defaults to `DELETE`.", +"enum": [ +"RECLAIM_POLICY_UNSPECIFIED", +"DELETE", +"RETAIN" +], +"enumDescriptions": [ +"Do not use.", +"Delete the persistent disk when deleting the workstation.", +"Keep the persistent disk when deleting the workstation. An administrator must manually delete the disk." +], +"type": "string" +}, +"sizeGb": { +"description": "Optional. The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if source_snapshot is set. Valid values are `10`, `50`, `100`, `200`, `500`, or `1000`. Defaults to `200`. If less than `200` GB, the disk_type must be `\"pd-balanced\"` or `\"pd-ssd\"`.", +"format": "int32", +"type": "integer" +}, +"sourceSnapshot": { +"description": "Optional. Name of the snapshot to use as the source for the disk. If set, size_gb and fs_type must be empty.", +"type": "string" +} +}, +"type": "object" +}, +"GceShieldedInstanceConfig": { +"description": "A set of Compute Engine Shielded instance options.", +"id": "GceShieldedInstanceConfig", +"properties": { +"enableIntegrityMonitoring": { +"description": "Optional. Whether the instance has integrity monitoring enabled.", +"type": "boolean" +}, +"enableSecureBoot": { +"description": "Optional. Whether the instance has Secure Boot enabled.", +"type": "boolean" +}, +"enableVtpm": { +"description": "Optional. Whether the instance has the vTPM enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GenerateAccessTokenRequest": { +"description": "Request message for GenerateAccessToken.", +"id": "GenerateAccessTokenRequest", +"properties": { +"expireTime": { +"description": "Desired expiration time of the access token. This value must be at most 24 hours in the future. If a value is not specified, the token's expiration time will be set to a default value of 1 hour in the future.", +"format": "google-datetime", +"type": "string" +}, +"port": { +"description": "Optional. Port for which the access token should be generated. If specified, the generated access token grants access only to the specified port of the workstation. If specified, values must be within the range [1 - 65535]. If not specified, the generated access token grants access to all ports of the workstation.", +"format": "int32", +"type": "integer" +}, +"ttl": { +"description": "Desired lifetime duration of the access token. This value must be at most 24 hours. If a value is not specified, the token's lifetime will be set to a default value of 1 hour.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GenerateAccessTokenResponse": { +"description": "Response message for GenerateAccessToken.", +"id": "GenerateAccessTokenResponse", +"properties": { +"accessToken": { +"description": "The generated bearer access token. To use this token, include it in an Authorization header of an HTTP request sent to the associated workstation's hostname\u2014for example, `Authorization: Bearer `.", +"type": "string" +}, +"expireTime": { +"description": "Time at which the generated token will expire.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleProtobufEmpty": { +"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); }", +"id": "GoogleProtobufEmpty", +"properties": {}, +"type": "object" +}, +"Host": { +"description": "Runtime host for a workstation.", +"id": "Host", +"properties": { +"gceInstance": { +"$ref": "GceInstance", +"description": "Specifies a Compute Engine instance as the host." +} +}, +"type": "object" +}, +"HttpOptions": { +"description": "HTTP options for the running workstations.", +"id": "HttpOptions", +"properties": { +"allowedUnauthenticatedCorsPreflightRequests": { +"description": "Optional. By default, the workstations service makes sure that all requests to the workstation are authenticated. CORS preflight requests do not include cookies or custom headers, and so are considered unauthenticated and blocked by the workstations service. Enabling this option allows these unauthenticated CORS preflight requests through to the workstation, where it becomes the responsibility of the destination server in the workstation to validate the request.", +"type": "boolean" +}, +"disableLocalhostReplacement": { +"description": "Optional. By default, the workstations service replaces references to localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http responses from the workstation so that applications under development run properly on the workstation. This may intefere with some applications, and so this option allows that behavior to be disabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "ListOperationsResponse", +"properties": { +"nextPageToken": { +"description": "The standard List next-page token.", +"type": "string" +}, +"operations": { +"description": "A list of operations that matches the specified filter in the request.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUsableWorkstationConfigsResponse": { +"description": "Response message for ListUsableWorkstationConfigs.", +"id": "ListUsableWorkstationConfigsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workstationConfigs": { +"description": "The requested configs.", +"items": { +"$ref": "WorkstationConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListUsableWorkstationsResponse": { +"description": "Response message for ListUsableWorkstations.", +"id": "ListUsableWorkstationsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workstations": { +"description": "The requested workstations.", +"items": { +"$ref": "Workstation" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkstationClustersResponse": { +"description": "Response message for ListWorkstationClusters.", +"id": "ListWorkstationClustersResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workstationClusters": { +"description": "The requested workstation clusters.", +"items": { +"$ref": "WorkstationCluster" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkstationConfigsResponse": { +"description": "Response message for ListWorkstationConfigs.", +"id": "ListWorkstationConfigsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workstationConfigs": { +"description": "The requested configs.", +"items": { +"$ref": "WorkstationConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkstationsResponse": { +"description": "Response message for ListWorkstations.", +"id": "ListWorkstationsResponse", +"properties": { +"nextPageToken": { +"description": "Optional. Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"unreachable": { +"description": "Optional. Unreachable resources.", +"items": { +"type": "string" +}, +"type": "array" +}, +"workstations": { +"description": "The requested workstations.", +"items": { +"$ref": "Workstation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "Operation", +"properties": { +"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": { +"$ref": "Status", +"description": "The error result of the operation in case of failure or cancellation." +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", +"type": "object" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Metadata for long-running operations.", +"id": "OperationMetadata", +"properties": { +"apiVersion": { +"description": "Output only. API version used to start the operation.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. Time that the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. Time that the operation finished running.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"requestedCancellation": { +"description": "Output only. Identifies whether the user has requested cancellation of the operation.", +"readOnly": true, +"type": "boolean" +}, +"statusMessage": { +"description": "Output only. Human-readable status of the operation, if any.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Server-defined resource path for the target of the operation.", +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PersistentDirectory": { +"description": "A directory to persist across workstation sessions. Updates to this field will not update existing workstations and will only take effect on new workstations.", +"id": "PersistentDirectory", +"properties": { +"gcePd": { +"$ref": "GceRegionalPersistentDisk", +"description": "A PersistentDirectory backed by a Compute Engine persistent disk." +}, +"mountPath": { +"description": "Optional. Location of this directory in the running workstation.", +"type": "string" +} +}, +"type": "object" +}, +"Policy": { +"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", +"id": "Policy", +"properties": { +"auditConfigs": { +"description": "Specifies cloud audit logging configuration for this policy.", +"items": { +"$ref": "AuditConfig" +}, +"type": "array" +}, +"bindings": { +"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PortRange": { +"description": "A PortRange defines a range of ports. Both first and last are inclusive. To specify a single port, both first and last should be the same.", +"id": "PortRange", +"properties": { +"first": { +"description": "Required. Starting port number for the current range of ports. Valid ports are 22, 80, and ports within the range 1024-65535.", +"format": "int32", +"type": "integer" +}, +"last": { +"description": "Required. Ending port number for the current range of ports. Valid ports are 22, 80, and ports within the range 1024-65535.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PrivateClusterConfig": { +"description": "Configuration options for private workstation clusters.", +"id": "PrivateClusterConfig", +"properties": { +"allowedProjects": { +"description": "Optional. Additional projects that are allowed to attach to the workstation cluster's service attachment. By default, the workstation cluster's project and the VPC host project (if different) are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"clusterHostname": { +"description": "Output only. Hostname for the workstation cluster. This field will be populated only when private endpoint is enabled. To access workstations in the workstation cluster, create a new DNS zone mapping this domain name to an internal IP address and a forwarding rule mapping that address to the service attachment.", +"readOnly": true, +"type": "string" +}, +"enablePrivateEndpoint": { +"description": "Immutable. Whether Workstations endpoint is private.", +"type": "boolean" +}, +"serviceAttachmentUri": { +"description": "Output only. Service attachment URI for the workstation cluster. The service attachemnt is created when private endpoint is enabled. To access workstations in the workstation cluster, configure access to the managed service using [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services).", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ReadinessCheck": { +"description": "A readiness check to be performed on a workstation.", +"id": "ReadinessCheck", +"properties": { +"path": { +"description": "Optional. Path to which the request should be sent.", +"type": "string" +}, +"port": { +"description": "Optional. Port to which the request should be sent.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"RuntimeHost": { +"description": "Runtime host for the workstation.", +"id": "RuntimeHost", +"properties": { +"gceInstanceHost": { +"$ref": "GceInstanceHost", +"description": "Specifies a Compute Engine instance as the host." +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "Policy", +"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." +}, +"updateMask": { +"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"StartWorkstationRequest": { +"description": "Request message for StartWorkstation.", +"id": "StartWorkstationRequest", +"properties": { +"boostConfig": { +"description": "Optional. If set, the workstation starts using the boost configuration with the specified ID.", +"type": "string" +}, +"etag": { +"description": "Optional. If set, the request will be rejected if the latest version of the workstation on the server does not have this ETag.", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"type": "boolean" +} +}, +"type": "object" +}, +"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).", +"id": "Status", +"properties": { +"code": { +"description": "The status code, which should be an enum value of google.rpc.Code.", +"format": "int32", +"type": "integer" +}, +"details": { +"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", +"items": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", +"type": "string" +} +}, +"type": "object" +}, +"StopWorkstationRequest": { +"description": "Request message for StopWorkstation.", +"id": "StopWorkstationRequest", +"properties": { +"etag": { +"description": "Optional. If set, the request will be rejected if the latest version of the workstation on the server does not have this ETag.", +"type": "string" +}, +"validateOnly": { +"description": "Optional. If set, validate the request and preview the review, but do not actually apply it.", +"type": "boolean" +} +}, +"type": "object" +}, +"TestIamPermissionsRequest": { +"description": "Request message for `TestIamPermissions` method.", +"id": "TestIamPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestIamPermissionsResponse": { +"description": "Response message for `TestIamPermissions` method.", +"id": "TestIamPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Workstation": { +"description": "A single instance of a developer workstation with its own persistent storage.", +"id": "Workstation", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Client-specified annotations.", +"type": "object" +}, +"boostConfigs": { +"description": "Output only. List of available boost configuration IDs that this workstation can be boosted up to.", +"items": { +"$ref": "WorkstationBoostConfig" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. Time when this workstation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. Time when this workstation was soft-deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. Human-readable name for this workstation.", +"type": "string" +}, +"env": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Environment variables passed to the workstation container's entrypoint.", +"type": "object" +}, +"etag": { +"description": "Optional. Checksum computed by the server. May be sent on update and delete requests to make sure that the client has an up-to-date value before proceeding.", +"type": "string" +}, +"host": { +"description": "Output only. Host to which clients can send HTTPS traffic that will be received by the workstation. Authorized traffic will be received to the workstation as HTTP on port 80. To send traffic to a different port, clients may prefix the host with the destination port in the format `{port}-{host}`.", +"readOnly": true, +"type": "string" +}, +"kmsKey": { +"description": "Output only. The name of the Google Cloud KMS encryption key used to encrypt this workstation. The KMS key can only be configured in the WorkstationConfig. The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. [Labels](https://cloud.google.com/workstations/docs/label-resources) that are applied to the workstation and that are also propagated to the underlying Compute Engine resources.", +"type": "object" +}, +"name": { +"description": "Identifier. Full name of this workstation.", +"type": "string" +}, +"reconciling": { +"description": "Output only. Indicates whether this workstation is currently being updated to match its intended state.", +"readOnly": true, +"type": "boolean" +}, +"runtimeHost": { +"$ref": "RuntimeHost", +"description": "Optional. Output only. Runtime host for the workstation when in STATE_RUNNING.", +"readOnly": true +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"sourceWorkstation": { +"description": "Optional. The source workstation from which this workstation's persistent directories were cloned on creation.", +"type": "string" +}, +"startTime": { +"description": "Output only. Time when this workstation was most recently successfully started, regardless of the workstation's initial state.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. Current state of the workstation.", +"enum": [ +"STATE_UNSPECIFIED", +"STATE_STARTING", +"STATE_RUNNING", +"STATE_STOPPING", +"STATE_STOPPED" +], +"enumDescriptions": [ +"Do not use.", +"The workstation is not yet ready to accept requests from users but will be soon.", +"The workstation is ready to accept requests from users.", +"The workstation is being stopped.", +"The workstation is stopped and will not be able to receive requests until it is started." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. A system-assigned unique identifier for this workstation.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when this workstation was most recently updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WorkstationBoostConfig": { +"description": "Boost configuration for this workstation. This object is populated from the parent workstation configuration.", +"id": "WorkstationBoostConfig", +"properties": { +"id": { +"description": "Output only. Boost configuration ID.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WorkstationCluster": { +"description": "A workstation cluster resource in the Cloud Workstations API. Defines a group of workstations in a particular region and the VPC network they're attached to.", +"id": "WorkstationCluster", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Client-specified annotations.", +"type": "object" +}, +"conditions": { +"description": "Output only. Status conditions describing the workstation cluster's current state.", +"items": { +"$ref": "Status" +}, +"readOnly": true, +"type": "array" +}, +"controlPlaneIp": { +"description": "Output only. The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. Time when this workstation cluster was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"degraded": { +"description": "Output only. Whether this workstation cluster is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in conditions.", +"readOnly": true, +"type": "boolean" +}, +"deleteTime": { +"description": "Output only. Time when this workstation cluster was soft-deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. Human-readable name for this workstation cluster.", +"type": "string" +}, +"domainConfig": { +"$ref": "DomainConfig", +"description": "Optional. Configuration options for a custom domain." +}, +"etag": { +"description": "Optional. Checksum computed by the server. May be sent on update and delete requests to make sure that the client has an up-to-date value before proceeding.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. [Labels](https://cloud.google.com/workstations/docs/label-resources) that are applied to the workstation cluster and that are also propagated to the underlying Compute Engine resources.", +"type": "object" +}, +"name": { +"description": "Identifier. Full name of this workstation cluster.", +"type": "string" +}, +"network": { +"description": "Immutable. Name of the Compute Engine network in which instances associated with this workstation cluster will be created.", +"type": "string" +}, +"privateClusterConfig": { +"$ref": "PrivateClusterConfig", +"description": "Optional. Configuration for private workstation cluster." +}, +"reconciling": { +"description": "Output only. Indicates whether this workstation cluster is currently being updated to match its intended state.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"subnetwork": { +"description": "Immutable. Name of the Compute Engine subnetwork in which instances associated with this workstation cluster will be created. Must be part of the subnetwork specified for this workstation cluster.", +"type": "string" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Tag keys/values directly bound to this resource. For example: \"123/environment\": \"production\", \"123/costCenter\": \"marketing\"", +"type": "object" +}, +"uid": { +"description": "Output only. A system-assigned unique identifier for this workstation cluster.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when this workstation cluster was most recently updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WorkstationConfig": { +"description": "A workstation configuration resource in the Cloud Workstations API. Workstation configurations act as templates for workstations. The workstation configuration defines details such as the workstation virtual machine (VM) instance type, persistent storage, container image defining environment, which IDE or Code Editor to use, and more. Administrators and platform teams can also use [Identity and Access Management (IAM)](https://cloud.google.com/iam/docs/overview) rules to grant access to teams or to individual developers.", +"id": "WorkstationConfig", +"properties": { +"allowedPorts": { +"description": "Optional. A list of PortRanges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535.", +"items": { +"$ref": "PortRange" +}, +"type": "array" +}, +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Client-specified annotations.", +"type": "object" +}, +"conditions": { +"description": "Output only. Status conditions describing the current resource state.", +"items": { +"$ref": "Status" +}, +"readOnly": true, +"type": "array" +}, +"container": { +"$ref": "Container", +"description": "Optional. Container that runs upon startup for each workstation using this workstation configuration." +}, +"createTime": { +"description": "Output only. Time when this workstation configuration was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"degraded": { +"description": "Output only. Whether this resource is degraded, in which case it may require user action to restore full functionality. See also the conditions field.", +"readOnly": true, +"type": "boolean" +}, +"deleteTime": { +"description": "Output only. Time when this workstation configuration was soft-deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"disableTcpConnections": { +"description": "Optional. Disables support for plain TCP connections in the workstation. By default the service supports TCP connections through a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain TCP connections, such as SSH. When enabled, all communication must occur over HTTPS or WSS.", +"type": "boolean" +}, +"displayName": { +"description": "Optional. Human-readable name for this workstation configuration.", +"type": "string" +}, +"enableAuditAgent": { +"description": "Optional. Whether to enable Linux `auditd` logging on the workstation. When enabled, a service_account must also be specified that has `roles/logging.logWriter` and `roles/monitoring.metricWriter` on the project. Operating system audit logging is distinct from [Cloud Audit Logs](https://cloud.google.com/workstations/docs/audit-logging) and [Container output logging](https://cloud.google.com/workstations/docs/container-output-logging#overview). Operating system audit logs are available in the [Cloud Logging](https://cloud.google.com/logging/docs) console by querying: resource.type=\"gce_instance\" log_name:\"/logs/linux-auditd\"", +"type": "boolean" +}, +"encryptionKey": { +"$ref": "CustomerEncryptionKey", +"description": "Immutable. Encrypts resources of this workstation configuration using a customer-managed encryption key (CMEK). If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk might be lost. If the encryption key is revoked, the workstation session automatically stops within 7 hours. Immutable after the workstation configuration is created." +}, +"ephemeralDirectories": { +"description": "Optional. Ephemeral directories which won't persist across workstation sessions.", +"items": { +"$ref": "EphemeralDirectory" +}, +"type": "array" +}, +"etag": { +"description": "Optional. Checksum computed by the server. May be sent on update and delete requests to make sure that the client has an up-to-date value before proceeding.", +"type": "string" +}, +"grantWorkstationAdminRoleOnCreate": { +"description": "Optional. Grant creator of a workstation `roles/workstations.policyAdmin` role along with `roles/workstations.user` role on the workstation created by them. This allows workstation users to share access to either their entire workstation, or individual ports. Defaults to false.", +"type": "boolean" +}, +"host": { +"$ref": "Host", +"description": "Optional. Runtime host for the workstation." +}, +"httpOptions": { +"$ref": "HttpOptions", +"description": "Optional. HTTP options that customize the behavior of the workstation service's HTTP proxy." +}, +"idleTimeout": { +"description": "Optional. Number of seconds to wait before automatically stopping a workstation after it last received user traffic. A value of `\"0s\"` indicates that Cloud Workstations VMs created with this configuration should never time out due to idleness. Provide [duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration) terminated by `s` for seconds\u2014for example, `\"7200s\"` (2 hours). The default is `\"1200s\"` (20 minutes).", +"format": "google-duration", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. [Labels](https://cloud.google.com/workstations/docs/label-resources) that are applied to the workstation configuration and that are also propagated to the underlying Compute Engine resources.", +"type": "object" +}, +"maxUsableWorkstations": { +"description": "Optional. Maximum number of workstations under this configuration a user can have `workstations.workstation.use` permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request. Can be overridden by: - granting a user workstations.workstationConfigs.exemptMaxUsableWorkstationLimit permission, or - having a user with that permission create a workstation and granting another user `workstations.workstation.use` permission on that workstation. If not specified, defaults to `0`, which indicates unlimited.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Identifier. Full name of this workstation configuration.", +"type": "string" +}, +"persistentDirectories": { +"description": "Optional. Directories to persist across workstation sessions.", +"items": { +"$ref": "PersistentDirectory" +}, +"type": "array" +}, +"readinessChecks": { +"description": "Optional. Readiness checks to perform when starting a workstation using this workstation configuration. Mark a workstation as running only after all specified readiness checks return 200 status codes.", +"items": { +"$ref": "ReadinessCheck" +}, +"type": "array" +}, +"reconciling": { +"description": "Output only. Indicates whether this workstation configuration is currently being updated to match its intended state.", +"readOnly": true, +"type": "boolean" +}, +"replicaZones": { +"description": "Optional. Immutable. Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified\u2014for example, `['us-central1-a', 'us-central1-f']`. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.", +"items": { +"type": "string" +}, +"type": "array" +}, +"runningTimeout": { +"description": "Optional. Number of seconds that a workstation can run until it is automatically shut down. We recommend that workstations be shut down daily to reduce costs and so that security updates can be applied upon restart. The idle_timeout and running_timeout fields are independent of each other. Note that the running_timeout field shuts down VMs after the specified time, regardless of whether or not the VMs are idle. Provide duration terminated by `s` for seconds\u2014for example, `\"54000s\"` (15 hours). Defaults to `\"43200s\"` (12 hours). A value of `\"0s\"` indicates that workstations using this configuration should never time out. If encryption_key is set, it must be greater than `\"0s\"` and less than `\"86400s\"` (24 hours). Warning: A value of `\"0s\"` indicates that Cloud Workstations VMs created with this configuration have no maximum running time. This is strongly discouraged because you incur costs and will not pick up security updates.", +"format": "google-duration", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"uid": { +"description": "Output only. A system-assigned unique identifier for this workstation configuration.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when this workstation configuration was most recently updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Workstations API", +"version": "v1beta", +"version_module": true +} \ No newline at end of file